From fcae98221177ec8f9cf722e3b98289e513ed74ee Mon Sep 17 00:00:00 2001 From: sehugg Date: Wed, 18 Mar 2026 11:52:42 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20sehugg/8?= =?UTF-8?q?bitworkshop@698f3cd7cb414f647a11980e507223213c7bd9f5=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gen/{basic-6XAR7ABN.js => basic-Z6JCRUQB.js} | 4 +- ...-6XAR7ABN.js.map => basic-Z6JCRUQB.js.map} | 0 gen/channelf-RLYU47L6.js | 17 + gen/channelf-RLYU47L6.js.map | 7 + gen/{chunk-IBRDAYM2.js => chunk-2DVTTN6M.js} | 4 +- ...-IBRDAYM2.js.map => chunk-2DVTTN6M.js.map} | 0 gen/{chunk-R5KWJQBC.js => chunk-7WOMNSMI.js} | 4 +- ...-R5KWJQBC.js.map => chunk-7WOMNSMI.js.map} | 4 +- gen/common/cpu/F8.js | 795 ++++++++++++++++++ gen/common/cpu/F8.js.map | 1 + gen/common/cpu/disasmF8.js | 333 ++++++++ gen/common/cpu/disasmF8.js.map | 1 + gen/{devel-WKD7YYYS.js => devel-CIOOAUIW.js} | 4 +- ...-WKD7YYYS.js.map => devel-CIOOAUIW.js.map} | 0 gen/embedui.js | 2 +- gen/gb-CFUFZHGK.js | 15 + gen/gb-CFUFZHGK.js.map | 7 + gen/gb-YCJUD6HA.js | 12 - gen/gb-YCJUD6HA.js.map | 7 - gen/machine/channelf.js | 377 +++++++++ gen/machine/channelf.js.map | 1 + gen/machine/gb.js | 511 +++++++++-- gen/machine/gb.js.map | 2 +- gen/machine/mcr.js | 83 +- gen/machine/mcr.js.map | 2 +- gen/mcr-FYCFELOC.js | 2 + gen/mcr-FYCFELOC.js.map | 7 + gen/mcr-VN2VYZMU.js | 2 - gen/mcr-VN2VYZMU.js.map | 7 - gen/platform/_index.js | 1 + gen/platform/_index.js.map | 2 +- gen/platform/channelf.js | 70 ++ gen/platform/channelf.js.map | 1 + gen/platform/gb.js | 34 +- gen/platform/gb.js.map | 2 +- gen/platform/mcr.js | 3 + gen/platform/mcr.js.map | 2 +- gen/tsconfig.tsbuildinfo | 2 +- gen/ui.js | 2 +- gen/worker/bundle.js | 3 +- gen/worker/bundle.js.map | 4 +- gen/worker/platforms.js | 3 +- gen/worker/platforms.js.map | 2 +- src/common/cpu/F8.ts | 691 +++++++++++++++ src/common/cpu/disasmF8.ts | 139 +++ src/machine/channelf.ts | 357 ++++++++ src/machine/gb.ts | 451 ++++++++-- src/machine/mcr.ts | 84 +- src/platform/_index.ts | 1 + src/platform/channelf.ts | 75 ++ src/platform/gb.ts | 40 +- src/platform/mcr.ts | 3 + src/worker/platforms.ts | 3 +- 53 files changed, 3928 insertions(+), 258 deletions(-) rename gen/{basic-6XAR7ABN.js => basic-Z6JCRUQB.js} (99%) rename gen/{basic-6XAR7ABN.js.map => basic-Z6JCRUQB.js.map} (100%) create mode 100644 gen/channelf-RLYU47L6.js create mode 100644 gen/channelf-RLYU47L6.js.map rename gen/{chunk-IBRDAYM2.js => chunk-2DVTTN6M.js} (99%) rename gen/{chunk-IBRDAYM2.js.map => chunk-2DVTTN6M.js.map} (100%) rename gen/{chunk-R5KWJQBC.js => chunk-7WOMNSMI.js} (75%) rename gen/{chunk-R5KWJQBC.js.map => chunk-7WOMNSMI.js.map} (85%) create mode 100644 gen/common/cpu/F8.js create mode 100644 gen/common/cpu/F8.js.map create mode 100644 gen/common/cpu/disasmF8.js create mode 100644 gen/common/cpu/disasmF8.js.map rename gen/{devel-WKD7YYYS.js => devel-CIOOAUIW.js} (95%) rename gen/{devel-WKD7YYYS.js.map => devel-CIOOAUIW.js.map} (100%) create mode 100644 gen/gb-CFUFZHGK.js create mode 100644 gen/gb-CFUFZHGK.js.map delete mode 100644 gen/gb-YCJUD6HA.js delete mode 100644 gen/gb-YCJUD6HA.js.map create mode 100644 gen/machine/channelf.js create mode 100644 gen/machine/channelf.js.map create mode 100644 gen/mcr-FYCFELOC.js create mode 100644 gen/mcr-FYCFELOC.js.map delete mode 100644 gen/mcr-VN2VYZMU.js delete mode 100644 gen/mcr-VN2VYZMU.js.map create mode 100644 gen/platform/channelf.js create mode 100644 gen/platform/channelf.js.map create mode 100644 src/common/cpu/F8.ts create mode 100644 src/common/cpu/disasmF8.ts create mode 100644 src/machine/channelf.ts create mode 100644 src/platform/channelf.ts diff --git a/gen/basic-6XAR7ABN.js b/gen/basic-Z6JCRUQB.js similarity index 99% rename from gen/basic-6XAR7ABN.js rename to gen/basic-Z6JCRUQB.js index f6f46615..a31074b6 100644 --- a/gen/basic-6XAR7ABN.js +++ b/gen/basic-Z6JCRUQB.js @@ -1,4 +1,4 @@ -import{b as E}from"./chunk-3FIVEUG2.js";import{a as S,t as y}from"./chunk-IBRDAYM2.js";import"./chunk-JSIZCY7X.js";import"./chunk-LNOKARBD.js";import"./chunk-R5KWJQBC.js";import"./chunk-GTDJ7CMC.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-MZ4MJULD.js";import"./chunk-KT7KMEQC.js";function O(u){return u.value!=null}function k(u){return u.name!=null}function N(u){return u.op!=null&&u.left!=null&&u.right!=null}function I(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},L=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=L),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFromGosub(){this.returnStack.length==0&&this.runtimeError("I tried to RETURN, but there wasn't a corresponding GOSUB.");var t=this.returnStack.pop();this.curpc=t,this.popLocalScope()}popReturnStack(){this.returnStack.length==0&&this.runtimeError("I tried to POP, but there wasn't a corresponding GOSUB."),this.returnStack.pop()}valueToString(t,r){var e;if(typeof t=="number"){var i=this.float2str(t,this.opts.printZoneLength-4);return r?i.startsWith("-")?`${i} `:` ${i} `:i}else if(t==` +import{b as E}from"./chunk-3FIVEUG2.js";import{a as S,t as y}from"./chunk-2DVTTN6M.js";import"./chunk-JSIZCY7X.js";import"./chunk-LNOKARBD.js";import"./chunk-7WOMNSMI.js";import"./chunk-GTDJ7CMC.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-MZ4MJULD.js";import"./chunk-KT7KMEQC.js";function O(u){return u.value!=null}function k(u){return u.name!=null}function N(u){return u.op!=null&&u.left!=null&&u.right!=null}function I(u){return u.op!=null&&u.expr!=null}var m=class{randomize(){this.seed(Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647,Math.random()*2147483647)}constructor(){(()=>{var r,e,i,n;this.seed=function(s,a,h,o){r=s,e=a,i=h,n=o},this.seedfloat=function(s){this.seed(s,s*4294,s*429496,s*4294967296),this.next(),this.next(),this.next()},this.next=function(){r>>>=0,e>>>=0,i>>>=0,n>>>=0;var s=r+e|0;return r=e^e>>>9,e=i+(i<<3)|0,i=i<<21|i>>>11,n=n+1|0,s=s+n|0,i=i+s|0,(s>>>0)/4294967296}})(),this.seedfloat(-1)}},L=1024*1024,l=class u{constructor(){this.margin=80;this.running=!1;this.exited=!0;this.trace=!1}load(t){let r=null,e=0;if(this.pc2label!=null){let s=this.curpc;for(;s>0&&(r=this.pc2label.get(s))==null;)s--;e=this.curpc-s,console.log("oldpc=",this.curpc,"restart @ label",r,"+",e)}this.program=t,this.opts=t.opts,this.opts.maxArrayElements||(this.opts.maxArrayElements=L),this.allstmts=t.stmts,this.label2pc=t.labels,this.label2dataptr={},this.pc2label=new Map,this.datums=[],this.subroutines={},this.builtins=this.getBuiltinFunctions();for(var i in t.labels){var n=t.labels[i];this.pc2label.set(n,i)}return this.allstmts.forEach((s,a)=>{this.curpc=a+1,this.compileStatement(s),s.command=="DATA"&&(this.label2dataptr[s.$loc.label]=this.datums.length,s.datums.forEach(h=>{this.curpc=s.$loc.offset,this.datums.push(h)}))}),this.label2pc[r]!=null?(this.curpc=this.label2pc[r]+e,!0):(this.curpc=0,!1)}reset(){this.curpc=0,this.dataptr=0,this.clearVars(),this.returnStack=[],this.column=0,this.running=!0,this.exited=!1}clearVars(){this.globals=this.vars={},this.arrays={},this.defs={},this.forLoops={},this.forLoopStack=[],this.whileLoops=[],this.rng=new m,this.opts&&this.opts.staticArrays&&this.allstmts.filter(t=>t.command=="DIM").forEach(t=>{t.args.forEach(r=>this.compileJS(this._DIM(r))())})}saveState(){return $.extend(!0,{},this)}loadState(t){$.extend(!0,this,t)}getBuiltinFunctions(){var t=this.program&&this.opts.validFunctions;t||(t=Object.getOwnPropertyNames(u.prototype).filter(i=>/^[A-Z]{3,}[$]?$/.test(i)));var r={};for(var e of t)this.supportsFunction(e)&&(r[e]=this[e].bind(this));return r}supportsFunction(t){return typeof this[t]=="function"}runtimeError(t){throw this.curpc--,new d(t,this.getCurrentSourceLocation())}dialectError(t){this.runtimeError(`I can't ${t} in this dialect of BASIC.`)}getLineForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.line}getLabelForPC(t){var r=this.allstmts[t];return r&&r.$loc&&r.$loc.label}getCurrentSourceLocation(){var t=this.getStatement();return t&&t.$loc}getCurrentLabel(){var t=this.getCurrentSourceLocation();return t&&t.label}getStatement(){return this.allstmts[this.curpc]}step(){if(!this.running)return!1;var t=this.getStatement();return t?(this.trace&&console.log(this.curpc,t,this.vars,Object.keys(this.arrays)),this.curpc++,this.executeStatement(t),this.running):(this.running=!1,this.exited=!0,!1)}compileStatement(t){if(t.$run==null)try{var r=this["do__"+t.command];r==null&&this.runtimeError(`I don't know how to "${t.command}".`);var e=r.bind(this)(t);this.trace&&console.log(e),t.$run=this.compileJS(e)}catch(i){throw e&&console.log(e),i}}compileJS(t){return new Function(t).bind(this)}executeStatement(t){this.compileStatement(t),t.$run()}skipToEOL(){do this.curpc++;while(this.curpc=0?this.curpc=r:this.runtimeError(`I tried to go to the label "${t}" but couldn't find it.`)}newLocalScope(){this.vars=Object.create(this.vars)}popLocalScope(){this.vars!==this.globals&&(this.vars=Object.getPrototypeOf(this.vars))}gosubLabel(t){this.returnStack.length>32767&&this.runtimeError("I did too many GOSUBs without a RETURN."),this.returnStack.push(this.curpc),this.gotoLabel(t)}returnFromGosub(){this.returnStack.length==0&&this.runtimeError("I tried to RETURN, but there wasn't a corresponding GOSUB.");var t=this.returnStack.pop();this.curpc=t,this.popLocalScope()}popReturnStack(){this.returnStack.length==0&&this.runtimeError("I tried to POP, but there wasn't a corresponding GOSUB."),this.returnStack.pop()}valueToString(t,r){var e;if(typeof t=="number"){var i=this.float2str(t,this.opts.printZoneLength-4);return r?i.startsWith("-")?`${i} `:` ${i} `:i}else if(t==` `)this.column=0,e=t;else if(t==" "){var n=this.opts.printZoneLength,s=Math.floor(this.column/n),a=(s+1)*this.opts.printZoneLength;a+n>this.margin?(this.column=0,e=` `):e=this.TAB(a)}else e=`${t}`;return e}float2str(t,r){var e=t.toString().toUpperCase();if(r>0){for(var i=r;e.length>r;)e=t.toPrecision(i--);e.startsWith("0.")?e=e.substr(1):e.startsWith("-0.")&&(e="-"+e.substr(2))}return e}printExpr(t){var r=this.valueToString(t,this.opts.numericPadding);this.column+=r.length,this.print(r)}print(t){console.log(t)}async input(t,r){return{line:"",vals:[]}}resume(){}expr2js(t,r){if(r||(r={}),O(t))return JSON.stringify(t.value);if(k(t)){if(!t.args&&r.locals&&r.locals.indexOf(t.name)>=0)return t.name;{r.isconst&&this.runtimeError("I expected a constant value here.");var e="",i=JSON.stringify(t.name);let h=t.args?t.args.map(o=>this.expr2js(o,r)).join(", "):[];return t.name.startsWith("FN")?e+=`this.getDef(${i})(${h})`:this.builtins[t.name]?(this.checkFuncArgs(t,this.builtins[t.name]),e+=`this.builtins.${t.name}(${h})`):t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?e+=`this.getStringSlice(this.vars.${t.name}, ${h})`:e+=`this.arrayGet(${i}, ${h})`:e+=`this.vars.${t.name}`,r.novalid?e:`this.checkValue(${e}, ${i})`}}else if(N(t)){var n=this.expr2js(t.left,r),s=this.expr2js(t.right,r);return`this.${t.op}(${n}, ${s})`}else if(I(t)){var a=this.expr2js(t.expr,r);return`this.${t.op}(${a})`}}assign2js(t,r){r||(r={});var e="";return(t.name.startsWith("FN")||this.builtins[t.name])&&this.runtimeError("I can't call a function here."),t.args?this.opts.arraysContainChars&&t.name.endsWith("$")?this.runtimeError("I can't set array slices via this command yet."):e+=this.array2js(t,r):e=`this.globals.${t.name}`,e}array2js(t,r){var e=JSON.stringify(t.name),i=t.args||[];return this.expr2js(t,{novalid:!0})+`;this.getArray(${e}, ${i.length})`+i.map(n=>"[this.ROUND("+this.expr2js(n,r)+")]").join("")}checkFuncArgs(t,r){var e=t.args?t.args.length:0;t.name=="RND"&&e==0||t.name=="MID$"&&e==2||t.name=="INSTR"&&e==2||r.length!=e&&this.runtimeError(`I expected ${r.length} arguments for the ${t.name} function, but I got ${e}.`)}startForLoop(t,r,e,i,n){var s=this.curpc-1,a=this.pc2label.get(s);i||(i=1),this.vars[t]=r,this.trace&&console.log(`FOR ${t} = ${r} TO ${e} STEP ${i}`);var h=()=>i>=0?this.vars[t]>e:this.vars[t]o==t)),this.forLoopStack.push(t),this.forLoops[t]={$next:o=>{o&&t!=o&&this.runtimeError(`I executed NEXT "${o}", but the last FOR was for "${t}".`),this.vars[t]+=i;var b=h();b?(this.forLoopStack.pop(),delete this.forLoops[t]):this.curpc=(a!=null&&this.label2pc[a]||s)+1,this.trace&&console.log(`NEXT ${t}: ${this.vars[t]} TO ${e} STEP ${i} DONE=${b}`)}}}nextForLoop(t){var r=this.forLoops[t||this.opts.optionalNextVar&&this.forLoopStack[this.forLoopStack.length-1]];r||this.runtimeError("I couldn't find a matching FOR for this NEXT."),r.$next(t)}whileLoop(t){t?this.whileLoops.push(this.curpc-1):this.skipToAfterWend()}nextWhileLoop(){var t=this.whileLoops.pop();t==null?this.runtimeError("I couldn't find a matching WHILE for this WEND."):this.curpc=t}assign(t,r,e){return e&&t.endsWith("$")?this.checkValue(this.convert(t,r),t):t.endsWith("$")?this.convertToString(r,t):this.convertToNumber(r,t)}convert(t,r){return t.endsWith("$")?r==null?"":r.toString():typeof r=="number"?r:parseFloat(r+"")}convertToString(t,r){if(typeof t!="string")this.runtimeError(`I can't convert ${t} to a string.`);else return t}convertToNumber(t,r){if(typeof t!="number")this.runtimeError(`I can't convert ${t} to a number.`);else return this.checkNum(t)}dimArray(t,...r){if(r=r.map(Math.round),this.arrays[t]!=null){if(this.opts.staticArrays)return;this.runtimeError(`I already dimensioned this array (${t}) earlier.`)}var e=this.getTotalArrayLength(r);e>this.opts.maxArrayElements&&this.runtimeError("I can't create an array with this many elements.");var i=t.endsWith("$"),n=i?Array:Float64Array;if(r.length==1)this.arrays[t]=new n(r[0]+1);else if(r.length==2){this.arrays[t]=new Array(r[0]+1);for(var s=0;s=i.length&&this.runtimeError(`I tried to lookup ${t}(${r}) but it exceeded the dimensions of the array.`),i=i[r[n]]}return c(i)&&this.runtimeError(`I tried to lookup ${t}(${r}) but used too few dimensions.`),i}modifyStringSlice(t,r,e,i){return t=t||"",this.checkString(t),this.checkString(r),i||(i=e),e=this.ROUND(e),i=this.ROUND(i),e<1&&this.dialectError("accept a string slice index less than 1"),ir.length)&&this.runtimeError(`I needed a number between 1 and ${r.length}, but I got ${t}.`),t<1||t>r.length?0:t}onGotoLabel(t,...r){t=this.checkOnGoto(t,r),t&&this.gotoLabel(r[t-1])}onGosubLabel(t,...r){t=this.checkOnGoto(t,r),t&&this.gosubLabel(r[t-1])}nextDatum(){return this.dataptr>=this.datums.length&&this.runtimeError("I tried to READ, but ran out of data."),this.datums[this.dataptr++].value}do__PRINT(t){var r="";for(var e of t.args){var i=this.expr2js(e),n=i.name;r+=`this.printExpr(this.checkValue(${i}, ${JSON.stringify(n)}));`}return r}preInput(){this.running=!1,this.curpc--}postInput(t){t&&this.curpc++,this.running=!0,this.resume()}do__INPUT(t){var r=t.prompt!=null?this.expr2js(t.prompt):'""',e=t.elapsed!=null?this.assign2js(t.elapsed):"let ___",i="";return t.args.forEach((n,s)=>{var a=this.assign2js(n);i+=` var value = this.convert(${JSON.stringify(n.name)}, response.vals[${s}]); @@ -34,4 +34,4 @@ import{b as E}from"./chunk-3FIVEUG2.js";import{a as S,t as y}from"./chunk-IBRDAY `),this.tty.addtext("*** END OF PROGRAM ***",1),this.tty.showPrintHead(!1)}loadROM(t,r){var e=this.runtime.exited;this.program=r;var i=this.runtime.load(r);this.tty.uppercaseOnly=!0,S.input=this.program.opts.uppercaseOnly?n=>n.toUpperCase():null,(!this.hotReload||e||!i)&&this.reset()}getROMExtension(){return".json"}reset(){this.tty.clear(),this.runtime.reset(),this.clock=0,this.transcript=[]}pause(){this.timer.stop()}resume(){this.isBlocked()||(this.animcount=0,this.timer.start())}isBlocked(){return this.tty.waitingfor!=null||this.runtime.exited}isRunning(){return this.timer.isRunning()}getDefaultExtensions(){return[".bas"]}getToolForFilename(){return"basic"}getPresets(){return T}getPC(){return this.runtime.curpc}getSP(){return 4096-this.runtime.returnStack.length}isStable(){return!0}getCPUState(){return{PC:this.getPC(),SP:this.getSP()}}saveState(){return{c:this.getCPUState(),rt:this.runtime.saveState()}}loadState(t){this.runtime.loadState(t)}getDebugTree(){return{CurrentLine:this.runtime.getCurrentLabel(),Variables:this.runtime.vars,Arrays:this.runtime.arrays,Functions:this.runtime.defs,ForLoops:this.runtime.forLoops,WhileLoops:this.runtime.whileLoops,ReturnStack:this.runtime.returnStack,NextDatum:this.runtime.datums[this.runtime.dataptr],Clock:this.clock,Options:this.runtime.opts,Internals:this.runtime}}inspect(t){let r=this.runtime.vars[t];if(r!=null)return`${t} = ${r}`}showHelp(){return"https://8bitworkshop.com/docs/platforms/basic/"}getDebugCategories(){return["Variables"]}getDebugInfo(t,r){switch(t){case"Variables":return this.varsToLongString()}}varsToLongString(){var t="",r=Object.keys(this.runtime.vars);r.sort();for(var e of r){var i=this.runtime.vars[e],n=JSON.stringify(i);n.length>24&&(n=`${n.substr(0,24)}...(${n.length})`),t+=g(e,3)+" = "+n+` `}return t}setupDebug(t){this.onBreakpointHit=t}clearDebug(){this.onBreakpointHit=null,this.debugTrap=null}checkDebugTrap(){return this.debugTrap&&this.debugTrap()?(this.pause(),this.break(),!0):!1}break(){this.onBreakpointHit&&this.onBreakpointHit(this.saveState())}step(){var t=this.clock;this.debugTrap=()=>this.clock>t,this.resume()}stepOver(){var t=this.runtime.getStatement();if(t&&(t.command=="GOSUB"||t.command=="ONGOSUB")){var r=this.getPC()+1;this.runEval(()=>this.getPC()==r)}else this.step()}runUntilReturn(){var t=this.getSP();this.runEval(()=>this.getSP()>t)}runEval(t){this.debugTrap=()=>t(this.getCPUState()),this.resume()}restartAtPC(t){return t=Math.round(t),t>=0&&t9?1:0;r=(s>>4)+(e>>4)+t;let i=r>9?1:0;this.clrOZCS();let x=this.doAdd(s,e);this.setSZ(x);let c=0;return i&&(c|=160),t&&(c|=10),c&&(this.clrOZCS(),x=this.doAdd(x,c),this.setSZ(x)),x}getScratchpadIndex(s){if(s<12)return s;if(s===12)return this.IS&63;if(s===13){let e=this.IS&63;return this.IS=this.IS&56|this.IS+1&7,e}if(s===14){let e=this.IS&63;return this.IS=this.IS&56|this.IS-1&7,e}return 0}advanceInsn(){if(this.irqRequest&&this.W&u)return this.irqRequest=!1,this.PC1=this.PC0,this.PC0=this.bus.read(4094)<<8|this.bus.read(4095),this.W&=~u,6;let s=this.fetchPC0();this.o=s,this.stable=!0;let e=4,r,t;switch(s){case 0:this.A=this.R[12];break;case 1:this.A=this.R[13];break;case 2:this.A=this.R[14];break;case 3:this.A=this.R[15];break;case 4:this.R[12]=this.A;break;case 5:this.R[13]=this.A;break;case 6:this.R[14]=this.A;break;case 7:this.R[15]=this.A;break;case 8:this.R[12]=this.PC1>>8&255,this.R[13]=this.PC1&255,e=8;break;case 9:this.PC1=this.R[12]<<8|this.R[13],e=8;break;case 10:this.A=this.IS&63;break;case 11:this.IS=this.A&63;break;case 12:this.PC1=this.PC0,this.PC0=this.R[12]<<8|this.R[13],e=8;break;case 13:this.PC0=this.R[14]<<8|this.R[15],e=8;break;case 14:this.R[14]=this.DC0>>8&255,this.R[15]=this.DC0&255,e=8;break;case 15:this.DC0=this.R[14]<<8|this.R[15],e=8;break;case 16:this.DC0=this.R[10]<<8|this.R[11],e=8;break;case 17:this.R[10]=this.DC0>>8&255,this.R[11]=this.DC0&255,e=8;break;case 18:this.A=this.A>>1&255,this.clrOZCS(),this.setSZ(this.A);break;case 19:this.A=this.A<<1&255,this.clrOZCS(),this.setSZ(this.A);break;case 20:this.A=this.A>>4&255,this.clrOZCS(),this.setSZ(this.A);break;case 21:this.A=this.A<<4&255,this.clrOZCS(),this.setSZ(this.A);break;case 22:this.A=this.fetchDC0(),e=6;break;case 23:this.storeDC0(this.A),e=6;break;case 24:this.A=~this.A&255,this.clrOZCS(),this.setSZ(this.A);break;case 25:r=this.W&d?1:0,this.clrOZCS(),this.A=this.doAdd(this.A,r),this.setSZ(this.A);break;case 26:this.W&=~u;break;case 27:this.W|=u;break;case 28:this.PC0=this.PC1;break;case 29:this.W=this.R[9]&31;break;case 30:this.R[9]=this.W&31;break;case 31:this.clrOZCS(),this.A=this.doAdd(this.A,1),this.setSZ(this.A);break;case 32:this.A=this.fetchPC0(),e=6;break;case 33:r=this.fetchPC0(),this.A=this.A&r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 34:r=this.fetchPC0(),this.A=this.A|r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 35:r=this.fetchPC0(),this.A=this.A^r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 36:r=this.fetchPC0(),this.clrOZCS(),this.A=this.doAdd(this.A,r),this.setSZ(this.A),e=6;break;case 37:r=this.fetchPC0(),this.clrOZCS(),this.doAdd(~this.A&255,r,1),this.setSZ(this.doAdd(~this.A&255,r,1)),e=6;break;case 38:r=this.fetchPC0(),this.A=this.iobus.read(r)&255,this.clrOZCS(),this.setSZ(this.A),e=8;break;case 39:r=this.fetchPC0(),this.iobus.write(r,this.A),e=8;break;case 40:{let i=this.fetchPC0(),x=this.fetchPC0();this.PC1=this.PC0,this.PC0=i<<8|x,e=12;break}case 41:{let i=this.fetchPC0(),x=this.fetchPC0();this.PC0=i<<8|x,e=10;break}case 42:{let i=this.fetchPC0(),x=this.fetchPC0();this.DC0=i<<8|x,e=10;break}case 43:break;case 44:r=this.DC0,this.DC0=this.DC1,this.DC1=r;break;case 45:case 46:case 47:break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:t=this.getScratchpadIndex(s&15),this.clrOZCS(),this.R[t]=this.doAdd(this.R[t],255),this.setSZ(this.R[t]),e=6;break;case 63:break;case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:t=this.getScratchpadIndex(s&15),this.A=this.R[t];break;case 79:break;case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 92:case 93:case 94:t=this.getScratchpadIndex(s&15),this.R[t]=this.A;break;case 95:break;case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:this.IS=this.IS&7|(s&7)<<3;break;case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:this.IS=this.IS&56|s&7;break;case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 127:this.A=s&15;break;case 128:case 129:case 130:case 131:case 132:case 133:case 134:case 135:{let i=s&7,x=this.fetchPC0();this.W&i&&(this.PC0=this.PC0+(x&128?x-256:x)&65535),e=6;break}case 136:r=this.fetchDC0(),this.clrOZCS(),this.A=this.doAdd(this.A,r),this.setSZ(this.A),e=6;break;case 137:r=this.fetchDC0(),this.A=this.doAddDecimal(this.A,r),e=6;break;case 138:r=this.fetchDC0(),this.A=this.A&r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 139:r=this.fetchDC0(),this.A=this.A|r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 140:r=this.fetchDC0(),this.A=this.A^r,this.clrOZCS(),this.setSZ(this.A),e=6;break;case 141:r=this.fetchDC0(),this.clrOZCS();{let i=this.doAdd(~this.A&255,r,1);this.setSZ(i)}e=6;break;case 142:this.DC0=this.DC0+(this.A&128?this.A-256:this.A)&65535,e=6;break;case 143:{let i=this.fetchPC0();(this.IS&7)!==7&&(this.PC0=this.PC0+(i&128?i-256:i)&65535),e=6;break}case 144:case 145:case 146:case 147:case 148:case 149:case 150:case 151:case 152:case 153:case 154:case 155:case 156:case 157:case 158:case 159:{let i=s&15,x=this.fetchPC0();(i===0||!(this.W&i))&&(this.PC0=this.PC0+(x&128?x-256:x)&65535),e=6;break}case 160:case 161:this.A=this.iobus.read(s&1)&255,this.clrOZCS(),this.setSZ(this.A);break;case 162:case 163:break;case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:this.A=this.iobus.read(s&15)&255,this.clrOZCS(),this.setSZ(this.A),e=8;break;case 176:case 177:this.iobus.write(s&1,this.A);break;case 178:case 179:break;case 180:case 181:case 182:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:this.iobus.write(s&15,this.A),e=8;break;case 192:case 193:case 194:case 195:case 196:case 197:case 198:case 199:case 200:case 201:case 202:case 203:case 204:case 205:case 206:t=this.getScratchpadIndex(s&15),this.clrOZCS(),this.A=this.doAdd(this.A,this.R[t]),this.setSZ(this.A);break;case 207:break;case 208:case 209:case 210:case 211:case 212:case 213:case 214:case 215:case 216:case 217:case 218:case 219:case 220:case 221:case 222:t=this.getScratchpadIndex(s&15),this.A=this.doAddDecimal(this.A,this.R[t]),e=8;break;case 223:break;case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:t=this.getScratchpadIndex(s&15),this.A=(this.A^this.R[t])&255,this.clrOZCS(),this.setSZ(this.A);break;case 239:break;case 240:case 241:case 242:case 243:case 244:case 245:case 246:case 247:case 248:case 249:case 250:case 251:case 252:case 253:case 254:t=this.getScratchpadIndex(s&15),this.A=this.A&this.R[t]&255,this.clrOZCS(),this.setSZ(this.A);break;case 255:break}return e}};var M=[4282927176,4283498320,4283453695,4286611584,4294922320,4283498320,4283453695,4286611584,4282927176,4294922320,4283453695,4286611584,4282927176,4283498320,4294922320,4286611584],B=1,E=2,O=4,Z=8,g=16,v=32,_=64,L=128,C=class extends D{constructor(){super();this.cpuFrequency=1789773;this.defaultROMSize=65536;this.canvasWidth=128;this.numVisibleScanlines=64;this.numTotalScanlines=64;this.cpuCyclesPerLine=this.cpuFrequency/60/64;this.sampleRate=this.cpuFrequency/2;this.cpu=new l;this.ram=new Uint8Array(65536);this.vram=new Uint8Array(8192);this.port0=0;this.port1=0;this.port4=0;this.port5=0;this.row_reg=0;this.col_reg=0;this.color=0;this.soundMode=0;this.soundCounter=0;this.soundEnvelope=0;this.soundOnTime=0;this.read=A([[0,2047,2047,e=>this.bios[e]],[2048,65535,65535,e=>this.rom&&this.rom[e-2048]||0]],{gmask:65535});this.write=A([[10240,12287,2047,(e,r)=>{this.rom&&(this.rom[e-2048]=r)}]],{gmask:65535});this.bios=new Uint8Array(2048),this.connectCPUMemoryBus(this),this.cpu.connectIOBus(this.newIOBus())}newIOBus(){return this.probeIOBus({read:e=>this.readPort(e),write:(e,r)=>{this.writePort(e,r)}})}readPort(e){switch(e&255){case 0:return~this.inputs[0]&255;case 1:return~this.inputs[1]&255;case 4:return~this.inputs[2]&255;default:return 255}}writePort(e,r){switch(e&255){case 0:this.port0=r;break;case 1:this.port1=r,this.col_reg=r;break;case 4:this.port4=r;break;case 5:this.port5=r,this.soundMode=r>>6&3,this.soundMode>0&&(this.soundEnvelope=1023,this.soundOnTime=60),this.row_reg=r&63,this.writePixel();break}}writePixel(){let e=this.row_reg,r=this.col_reg&127;if(e<64&&r<128){let t=this.port1>>6&3,i=e*128+r;this.vram[i]=t}}readConst(e){return e<2048?this.bios[e]:this.rom&&this.rom[e-2048]||0}loadROM(e){this.rom||(this.rom=new Uint8Array(this.defaultROMSize)),this.rom.set(e),this.reset()}loadBIOS(e){this.bios=P(e,2048),this.reset()}reset(){super.reset(),this.vram.fill(0),this.port0=0,this.port1=0,this.port4=0,this.port5=0,this.row_reg=0,this.col_reg=0,this.soundMode=0,this.soundCounter=0,this.soundEnvelope=0}advanceFrame(e){var r=0,t=this.cpuFrequency/60;for(this.probe.logNewFrame();r>1)*4;for(let x=0;x<128;x++){let c=this.vram[e*128+x]&3,o=M[r+c];this.pixels[e*128+x]=o}}}generateAudio(e){if(!this.audio)return;let r=Math.floor(this.sampleRate/60);for(let t=0;t0&&this.soundEnvelope>0){let x;switch(this.soundMode){case 1:x=1e3;break;case 2:x=500;break;case 3:x=120;break;default:x=0}if(x>0){let c=Math.floor(this.sampleRate/x);this.soundCounter=(this.soundCounter+1)%c,i=this.soundCounter0?this.soundOnTime--:(this.soundEnvelope-=2,this.soundEnvelope<0&&(this.soundEnvelope=0))}this.audio.feedSample(i,1)}}setKeyInput(e,r,t){let i=!!(t&1),x=!!(t&64);e===n.VK_1.c&&(i?this.inputs[0]|=1:x&&(this.inputs[0]&=-2)),e===n.VK_2.c&&(i?this.inputs[0]|=2:x&&(this.inputs[0]&=-3)),e===n.VK_3.c&&(i?this.inputs[0]|=4:x&&(this.inputs[0]&=-5)),e===n.VK_4.c&&(i?this.inputs[0]|=8:x&&(this.inputs[0]&=-9)),(e===n.VK_UP.c||e===n.VK_W.c)&&(i?this.inputs[1]|=Z:x&&(this.inputs[1]&=~Z)),(e===n.VK_DOWN.c||e===n.VK_S.c)&&(i?this.inputs[1]|=O:x&&(this.inputs[1]&=~O)),(e===n.VK_LEFT.c||e===n.VK_A.c)&&(i?this.inputs[1]|=E:x&&(this.inputs[1]&=~E)),(e===n.VK_RIGHT.c||e===n.VK_D.c)&&(i?this.inputs[1]|=B:x&&(this.inputs[1]&=~B)),e===n.VK_Q.c&&(i?this.inputs[1]|=g:x&&(this.inputs[1]&=~g)),e===n.VK_E.c&&(i?this.inputs[1]|=v:x&&(this.inputs[1]&=~v)),e===n.VK_R.c&&(i?this.inputs[1]|=L:x&&(this.inputs[1]&=~L)),e===n.VK_F.c&&(i?this.inputs[1]|=_:x&&(this.inputs[1]&=~_))}saveState(){return{c:this.cpu.saveState(),ram:this.ram.slice(0),inputs:this.inputs.slice(0),vram:this.vram.slice(0),port0:this.port0,port1:this.port1,port4:this.port4,port5:this.port5,row_reg:this.row_reg,col_reg:this.col_reg,soundMode:this.soundMode,soundCounter:this.soundCounter,soundEnvelope:this.soundEnvelope}}loadState(e){this.cpu.loadState(e.c),this.ram.set(e.ram),this.inputs.set(e.inputs),this.vram.set(e.vram),this.port0=e.port0,this.port1=e.port1,this.port4=e.port4,this.port5=e.port5,this.row_reg=e.row_reg,this.col_reg=e.col_reg,this.soundMode=e.soundMode,this.soundCounter=e.soundCounter,this.soundEnvelope=e.soundEnvelope}};function F(a){return a<9?"r"+a:a===9?"J":a===10?"HU":a===11?"HL":a===12?"S":a===13?"I":a===14?"D":"?"}function w(a,s,e,r){let t="",i="",x=1,c=!1;if(s<=7){let o=["KU","KL","QU","QL"];s<4?(t="LR",i="A,"+o[s]):(t="LR",i=o[s-4]+",A")}else if(s===8)t="LR",i="K,P";else if(s===9)t="LR",i="P,K";else if(s===10)t="LR",i="A,IS";else if(s===11)t="LR",i="IS,A";else if(s===12)t="PK";else if(s===13)t="LR",i="P0,Q";else if(s===14)t="LR",i="Q,DC";else if(s===15)t="LR",i="DC,Q";else if(s===16)t="LR",i="DC,H";else if(s===17)t="LR",i="H,DC";else if(s===18)t="SR",i="1";else if(s===19)t="SL",i="1";else if(s===20)t="SR",i="4";else if(s===21)t="SL",i="4";else if(s===22)t="LM";else if(s===23)t="ST";else if(s===24)t="COM";else if(s===25)t="LNK";else if(s===26)t="DI";else if(s===27)t="EI";else if(s===28)t="POP";else if(s===29)t="LR",i="W,J";else if(s===30)t="LR",i="J,W";else if(s===31)t="INC";else if(s===32)t="LI",i="$"+h(e,2),x=2;else if(s===33)t="NI",i="$"+h(e,2),x=2;else if(s===34)t="OI",i="$"+h(e,2),x=2;else if(s===35)t="XI",i="$"+h(e,2),x=2;else if(s===36)t="AI",i="$"+h(e,2),x=2;else if(s===37)t="CI",i="$"+h(e,2),x=2;else if(s===38)t="IN",i="$"+h(e,2),x=2;else if(s===39)t="OUT",i="$"+h(e,2),x=2;else if(s===40)t="PI",i="$"+h(e<<8|r,4),x=3,c=!0;else if(s===41)t="JMP",i="$"+h(e<<8|r,4),x=3,c=!0;else if(s===42)t="DCI",i="$"+h(e<<8|r,4),x=3,c=!0;else if(s===43)t="NOP";else if(s===44)t="XDC";else if(s<=47)t="???";else if(s>=48&&s<=62)t="DS",i=F(s&15),x=1;else if(s===63)t="???";else if(s>=64&&s<=78)t="LR",i="A,"+F(s&15);else if(s===79)t="???";else if(s>=80&&s<=94)t="LR",i=F(s&15)+",A";else if(s===95)t="???";else if(s>=96&&s<=103)t="LISU",i=""+(s&7);else if(s>=104&&s<=111)t="LISL",i=""+(s&7);else if(s>=112&&s<=127)t="LIS",i=""+(s&15);else if(s>=128&&s<=135){let o=e&128?a+2+e-256:a+2+e;t="BT",i=""+(s&7)+",$"+h(o&65535,4),x=2,c=!0}else if(s===136)t="AM";else if(s===137)t="AMD";else if(s===138)t="NM";else if(s===139)t="OM";else if(s===140)t="XM";else if(s===141)t="CM";else if(s===142)t="ADC";else if(s===143){let o=e&128?a+2+e-256:a+2+e;t="BR7",i="$"+h(o&65535,4),x=2,c=!0}else if(s>=144&&s<=159){let o=e&128?a+2+e-256:a+2+e,f=s&15;f===0?t="BR":t="BF",f!==0&&(i=""+f+","),i+="$"+h(o&65535,4),x=2,c=!0}else s>=160&&s<=161?(t="INS",i=""+(s&15)):s>=162&&s<=163?t="???":s>=164&&s<=175?(t="INS",i=""+(s&15)):s>=176&&s<=177?(t="OUTS",i=""+(s&15)):s>=178&&s<=179?t="???":s>=180&&s<=191?(t="OUTS",i=""+(s&15)):s>=192&&s<=206?(t="AS",i=F(s&15)):s===207?t="???":s>=208&&s<=222?(t="ASD",i=F(s&15)):s===223?t="???":s>=224&&s<=238?(t="XS",i=F(s&15)):s===239?t="???":s>=240&&s<=254?(t="NS",i=F(s&15)):t="???";return{line:t+(i?" "+i:""),nbytes:x,isaddr:c}}var W=[{id:"hello.dasm",name:"Hello World (ASM)"}];function U(a){return"PC0 = "+h(a.PC0,4)+" PC1 = "+h(a.PC1,4)+` +DC0 = `+h(a.DC0,4)+" DC1 = "+h(a.DC1,4)+` + A = `+h(a.A,2)+" W = "+h(a.W,2)+` + IS = `+h(a.IS,2)+` +`+p(a.W,["S","C","Z","O","I"],!0)+` + R0-R3: `+a.R.slice(0,4).map(s=>h(s,2)).join(" ")+` + R4-R7: `+a.R.slice(4,8).map(s=>h(s,2)).join(" ")+` + R8/J/H: `+a.R.slice(8,12).map(s=>h(s,2)).join(" ")+` + K/Q: `+a.R.slice(12,16).map(s=>h(s,2)).join(" ")+` +`}var m=class extends R{newMachine(){return new C}getPresets(){return W}getDefaultExtensions(){return[".dasm"]}getToolForFilename(s){return s.endsWith(".c")?"cc65":s.endsWith(".s")||s.endsWith(".ca65")?"ca65":"dasm"}readAddress(s){return this.machine.readConst(s)}disassemble(s,e){return w(s,e(s),e(s+1),e(s+2))}getDebugCategories(){return["CPU","I/O","VRAM"]}getDebugInfo(s,e){switch(s){case"CPU":return U(e.c);case"I/O":return"Port 0: "+h(e.port0||0,2)+` +Port 1: `+h(e.port1||0,2)+` +Port 4: `+h(e.port4||0,2)+` +Port 5: `+h(e.port5||0,2)+` +Row: `+h(e.row_reg||0,2)+` +Col: `+h(e.col_reg||0,2)+` +`;case"VRAM":return"";default:return""}}getMemoryMap(){return{main:[{name:"BIOS",start:0,size:2048,type:"rom"},{name:"Cart ROM",start:2048,size:30720,type:"rom"}]}}};S.channelf=m; +//# sourceMappingURL=channelf-RLYU47L6.js.map diff --git a/gen/channelf-RLYU47L6.js.map b/gen/channelf-RLYU47L6.js.map new file mode 100644 index 00000000..d0177c2d --- /dev/null +++ b/gen/channelf-RLYU47L6.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../src/common/cpu/F8.ts", "../src/machine/channelf.ts", "../src/common/cpu/disasmF8.ts", "../src/platform/channelf.ts"], + "sourcesContent": ["// based on https://github.com/mamedev/mame/blob/master/src/devices/cpu/f8/f8.cpp\n// license:BSD-3-Clause\n// copyright-holders:Juergen Buchmueller\n// and https://raw.githubusercontent.com/mamedev/mame/master/src/mame/fairchild/channelf.cpp\n// license:GPL-2.0+\n// copyright-holders:Juergen Buchmueller, Frank Palazzolo, Sean Riddle\n\nimport { Bus, CPU, InstructionBased, SavesState, Interruptable, MemoryBusConnected } from \"../devices\";\n\nexport interface F8State {\n PC: number; // alias for PC0 (required by CpuState)\n PC0: number; // program counter\n PC1: number; // saved program counter (stack)\n DC0: number; // data counter\n DC1: number; // alternate data counter\n A: number; // accumulator\n W: number; // status register (flags)\n IS: number; // indirect scratchpad address register (6-bit)\n R: number[]; // 64-byte scratchpad RAM\n o: number; // last opcode\n irq: boolean;\n}\n\n// Status register flag bits\nconst FLAG_S = 0x01; // Sign (complementary: set when positive)\nconst FLAG_C = 0x02; // Carry\nconst FLAG_Z = 0x04; // Zero\nconst FLAG_O = 0x08; // Overflow\nconst FLAG_I = 0x10; // Interrupt Control Bit\n\nexport class F8CPU implements CPU, InstructionBased, SavesState, Interruptable, MemoryBusConnected {\n\n // Registers\n PC0: number = 0; // active program counter\n PC1: number = 0; // saved program counter\n DC0: number = 0; // active data counter\n DC1: number = 0; // alternate data counter\n A: number = 0; // accumulator\n W: number = 0; // status/flags\n IS: number = 0; // indirect scratchpad address (6-bit)\n R: Uint8Array = new Uint8Array(64); // scratchpad RAM\n\n bus: Bus;\n iobus: Bus;\n o: number = 0; // last opcode\n stable: boolean = true;\n irqRequest: boolean = false;\n\n connectMemoryBus(bus: Bus): void {\n this.bus = bus;\n }\n connectIOBus(bus: Bus): void {\n this.iobus = bus;\n }\n\n reset(): void {\n this.PC0 = 0;\n this.PC1 = 0;\n this.DC0 = 0;\n this.DC1 = 0;\n this.A = 0;\n this.W = 0;\n this.IS = 0;\n this.R.fill(0);\n this.irqRequest = false;\n }\n\n interrupt(type: number): void {\n this.irqRequest = true;\n }\n\n getPC(): number { return this.PC0; }\n getSP(): number { return this.PC1; }\n isStable(): boolean { return this.stable; }\n\n saveState(): F8State {\n return {\n PC: this.PC0,\n PC0: this.PC0,\n PC1: this.PC1,\n DC0: this.DC0,\n DC1: this.DC1,\n A: this.A,\n W: this.W,\n IS: this.IS,\n R: Array.from(this.R),\n o: this.o,\n irq: this.irqRequest,\n };\n }\n\n loadState(state: F8State): void {\n this.PC0 = state.PC0 ?? state.PC;\n this.PC1 = state.PC1;\n this.DC0 = state.DC0;\n this.DC1 = state.DC1;\n this.A = state.A;\n this.W = state.W;\n this.IS = state.IS;\n for (let i = 0; i < 64; i++) this.R[i] = state.R[i];\n this.o = state.o;\n this.irqRequest = state.irq;\n }\n\n // Read byte at PC0, increment PC0\n private fetchPC0(): number {\n const val = this.bus.read(this.PC0);\n this.PC0 = (this.PC0 + 1) & 0xFFFF;\n return val;\n }\n\n // Read byte at DC0, increment DC0\n private fetchDC0(): number {\n const val = this.bus.read(this.DC0);\n this.DC0 = (this.DC0 + 1) & 0xFFFF;\n return val;\n }\n\n // Write byte at DC0, increment DC0\n private storeDC0(val: number): void {\n this.bus.write(this.DC0, val);\n this.DC0 = (this.DC0 + 1) & 0xFFFF;\n }\n\n // Clear O, Z, C, S flags\n private clrOZCS(): void {\n this.W &= ~(FLAG_O | FLAG_Z | FLAG_C | FLAG_S);\n }\n\n // Set Sign and Zero flags from value\n // Note: F8 sign flag is COMPLEMENTARY - set when bit 7 is CLEAR (positive)\n private setSZ(val: number): void {\n if ((val & 0xFF) === 0) this.W |= FLAG_Z;\n if ((val & 0x80) === 0) this.W |= FLAG_S; // complementary sign\n }\n\n // Addition with carry/overflow detection\n private doAdd(a: number, b: number, carry: number = 0): number {\n const result = (a & 0xFF) + (b & 0xFF) + (carry & 1);\n // Set carry if overflow past 8 bits\n if (result & 0x100) this.W |= FLAG_C;\n // Set overflow using XOR method\n if (((a ^ result) & (b ^ result) & 0x80) !== 0) this.W |= FLAG_O;\n return result & 0xFF;\n }\n\n // BCD addition\n private doAddDecimal(augend: number, addend: number): number {\n let tmp = (augend & 0x0F) + (addend & 0x0F);\n let c1 = (tmp > 9) ? 1 : 0;\n tmp = (augend >> 4) + (addend >> 4) + c1;\n let c2 = (tmp > 9) ? 1 : 0;\n\n // Do binary add for flags\n this.clrOZCS();\n let result = this.doAdd(augend, addend);\n this.setSZ(result);\n\n // Apply BCD correction\n let correction = 0;\n if (c2) correction |= 0xA0;\n if (c1) correction |= 0x0A;\n if (correction) {\n this.clrOZCS();\n result = this.doAdd(result, correction);\n this.setSZ(result);\n }\n return result;\n }\n\n // Get scratchpad register for operand (0-11 direct, 12=ISAR, 13=ISAR++, 14=ISAR--)\n private getScratchpadIndex(r: number): number {\n if (r < 12) return r;\n if (r === 12) return this.IS & 0x3F;\n if (r === 13) {\n const idx = this.IS & 0x3F;\n // Increment lower 3 bits of IS\n this.IS = (this.IS & 0x38) | ((this.IS + 1) & 0x07);\n return idx;\n }\n if (r === 14) {\n const idx = this.IS & 0x3F;\n // Decrement lower 3 bits of IS\n this.IS = (this.IS & 0x38) | ((this.IS - 1) & 0x07);\n return idx;\n }\n return 0; // illegal\n }\n\n advanceInsn(): number {\n // Check for interrupts\n if (this.irqRequest && (this.W & FLAG_I)) {\n this.irqRequest = false;\n // Save PC0 to PC1\n this.PC1 = this.PC0;\n // Load interrupt vector (at address 0x0020 typically)\n this.PC0 = (this.bus.read(0x0FFE) << 8) | this.bus.read(0x0FFF);\n // Clear interrupt enable\n this.W &= ~FLAG_I;\n return 6;\n }\n\n const opcode = this.fetchPC0();\n this.o = opcode;\n this.stable = true;\n let cycles = 4; // short cycle default\n let tmp: number;\n let r: number;\n\n switch (opcode) {\n // 0x00: LR A,KU\n case 0x00: this.A = this.R[12]; break;\n // 0x01: LR A,KL\n case 0x01: this.A = this.R[13]; break;\n // 0x02: LR A,QU\n case 0x02: this.A = this.R[14]; break;\n // 0x03: LR A,QL\n case 0x03: this.A = this.R[15]; break;\n // 0x04: LR KU,A\n case 0x04: this.R[12] = this.A; break;\n // 0x05: LR KL,A\n case 0x05: this.R[13] = this.A; break;\n // 0x06: LR QU,A\n case 0x06: this.R[14] = this.A; break;\n // 0x07: LR QL,A\n case 0x07: this.R[15] = this.A; break;\n\n // 0x08: LR K,P (K <- PC1)\n case 0x08:\n this.R[12] = (this.PC1 >> 8) & 0xFF;\n this.R[13] = this.PC1 & 0xFF;\n cycles = 8;\n break;\n // 0x09: LR P,K (PC1 <- K)\n case 0x09:\n this.PC1 = (this.R[12] << 8) | this.R[13];\n cycles = 8;\n break;\n\n // 0x0A: LR A,IS\n case 0x0A: this.A = this.IS & 0x3F; break;\n // 0x0B: LR IS,A\n case 0x0B: this.IS = this.A & 0x3F; break;\n\n // 0x0C: PK (Push K to PC: PC1<-PC0+1, PC0<-K)\n case 0x0C:\n this.PC1 = this.PC0;\n this.PC0 = (this.R[12] << 8) | this.R[13];\n cycles = 8;\n break;\n // 0x0D: LR P0,Q (PC0 <- Q)\n case 0x0D:\n this.PC0 = (this.R[14] << 8) | this.R[15];\n cycles = 8;\n break;\n // 0x0E: LR Q,DC (Q <- DC0)\n case 0x0E:\n this.R[14] = (this.DC0 >> 8) & 0xFF;\n this.R[15] = this.DC0 & 0xFF;\n cycles = 8;\n break;\n // 0x0F: LR DC,Q (DC0 <- Q)\n case 0x0F:\n this.DC0 = (this.R[14] << 8) | this.R[15];\n cycles = 8;\n break;\n\n // 0x10: LR DC,H (DC0 <- H)\n case 0x10:\n this.DC0 = (this.R[10] << 8) | this.R[11];\n cycles = 8;\n break;\n // 0x11: LR H,DC (H <- DC0)\n case 0x11:\n this.R[10] = (this.DC0 >> 8) & 0xFF;\n this.R[11] = this.DC0 & 0xFF;\n cycles = 8;\n break;\n\n // 0x12: SR 1 (shift right 1)\n case 0x12:\n this.A = (this.A >> 1) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n // 0x13: SL 1 (shift left 1)\n case 0x13:\n this.A = (this.A << 1) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n // 0x14: SR 4 (shift right 4)\n case 0x14:\n this.A = (this.A >> 4) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n // 0x15: SL 4 (shift left 4)\n case 0x15:\n this.A = (this.A << 4) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n\n // 0x16: LM (load A from memory at DC0, increment DC0)\n case 0x16:\n this.A = this.fetchDC0();\n cycles = 6;\n break;\n // 0x17: ST (store A to memory at DC0, increment DC0)\n case 0x17:\n this.storeDC0(this.A);\n cycles = 6;\n break;\n\n // 0x18: COM (complement A)\n case 0x18:\n this.A = (~this.A) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n\n // 0x19: LNK (add carry to A)\n case 0x19:\n tmp = (this.W & FLAG_C) ? 1 : 0;\n this.clrOZCS();\n this.A = this.doAdd(this.A, tmp);\n this.setSZ(this.A);\n break;\n\n // 0x1A: DI (disable interrupts)\n case 0x1A:\n this.W &= ~FLAG_I;\n break;\n // 0x1B: EI (enable interrupts)\n case 0x1B:\n this.W |= FLAG_I;\n break;\n\n // 0x1C: POP (PC0 <- PC1)\n case 0x1C:\n this.PC0 = this.PC1;\n break;\n\n // 0x1D: LR W,J (W <- scratchpad[9])\n case 0x1D:\n this.W = this.R[9] & 0x1F;\n break;\n // 0x1E: LR J,W (scratchpad[9] <- W)\n case 0x1E:\n this.R[9] = this.W & 0x1F;\n break;\n\n // 0x1F: INC (increment A)\n case 0x1F:\n this.clrOZCS();\n this.A = this.doAdd(this.A, 1);\n this.setSZ(this.A);\n break;\n\n // 0x20: LI immediate\n case 0x20:\n this.A = this.fetchPC0();\n cycles = 6;\n break;\n // 0x21: NI immediate (AND)\n case 0x21:\n tmp = this.fetchPC0();\n this.A = this.A & tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n // 0x22: OI immediate (OR)\n case 0x22:\n tmp = this.fetchPC0();\n this.A = this.A | tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n // 0x23: XI immediate (XOR)\n case 0x23:\n tmp = this.fetchPC0();\n this.A = this.A ^ tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n // 0x24: AI immediate (ADD)\n case 0x24:\n tmp = this.fetchPC0();\n this.clrOZCS();\n this.A = this.doAdd(this.A, tmp);\n this.setSZ(this.A);\n cycles = 6;\n break;\n // 0x25: CI immediate (compare: sets flags from ~A + immediate + 1)\n case 0x25:\n tmp = this.fetchPC0();\n this.clrOZCS();\n this.doAdd((~this.A) & 0xFF, tmp, 1);\n this.setSZ(this.doAdd((~this.A) & 0xFF, tmp, 1));\n cycles = 6;\n break;\n // 0x26: IN immediate (input from port)\n case 0x26:\n tmp = this.fetchPC0();\n this.A = this.iobus.read(tmp) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 8;\n break;\n // 0x27: OUT immediate (output to port)\n case 0x27:\n tmp = this.fetchPC0();\n this.iobus.write(tmp, this.A);\n cycles = 8;\n break;\n\n // 0x28: PI (push and jump immediate: PC1<-PC0, PC0<-address)\n case 0x28: {\n const hi = this.fetchPC0();\n const lo = this.fetchPC0();\n this.PC1 = this.PC0;\n this.PC0 = (hi << 8) | lo;\n cycles = 12;\n break;\n }\n // 0x29: JMP (jump immediate)\n case 0x29: {\n const hi = this.fetchPC0();\n const lo = this.fetchPC0();\n this.PC0 = (hi << 8) | lo;\n cycles = 10;\n break;\n }\n // 0x2A: DCI (load DC0 immediate)\n case 0x2A: {\n const hi = this.fetchPC0();\n const lo = this.fetchPC0();\n this.DC0 = (hi << 8) | lo;\n cycles = 10;\n break;\n }\n // 0x2B: NOP\n case 0x2B: break;\n\n // 0x2C: XDC (exchange DC0 and DC1)\n case 0x2C:\n tmp = this.DC0;\n this.DC0 = this.DC1;\n this.DC1 = tmp;\n break;\n\n // 0x2D-0x2F: illegal\n case 0x2D: case 0x2E: case 0x2F: break;\n\n // 0x30-0x3E: DS (decrement scratchpad register, skip if zero)\n case 0x30: case 0x31: case 0x32: case 0x33:\n case 0x34: case 0x35: case 0x36: case 0x37:\n case 0x38: case 0x39: case 0x3A: case 0x3B:\n case 0x3C: case 0x3D: case 0x3E:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.clrOZCS();\n this.R[r] = this.doAdd(this.R[r], 0xFF);\n this.setSZ(this.R[r]);\n cycles = 6;\n break;\n case 0x3F: break; // illegal\n\n // 0x40-0x4E: LR A,r (load A from scratchpad)\n case 0x40: case 0x41: case 0x42: case 0x43:\n case 0x44: case 0x45: case 0x46: case 0x47:\n case 0x48: case 0x49: case 0x4A: case 0x4B:\n case 0x4C: case 0x4D: case 0x4E:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.A = this.R[r];\n break;\n case 0x4F: break; // illegal\n\n // 0x50-0x5E: LR r,A (store A to scratchpad)\n case 0x50: case 0x51: case 0x52: case 0x53:\n case 0x54: case 0x55: case 0x56: case 0x57:\n case 0x58: case 0x59: case 0x5A: case 0x5B:\n case 0x5C: case 0x5D: case 0x5E:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.R[r] = this.A;\n break;\n case 0x5F: break; // illegal\n\n // 0x60-0x67: LISU (load IS upper 3 bits)\n case 0x60: case 0x61: case 0x62: case 0x63:\n case 0x64: case 0x65: case 0x66: case 0x67:\n this.IS = (this.IS & 0x07) | ((opcode & 0x07) << 3);\n break;\n\n // 0x68-0x6F: LISL (load IS lower 3 bits)\n case 0x68: case 0x69: case 0x6A: case 0x6B:\n case 0x6C: case 0x6D: case 0x6E: case 0x6F:\n this.IS = (this.IS & 0x38) | (opcode & 0x07);\n break;\n\n // 0x70-0x7F: LIS (load A with 4-bit immediate)\n case 0x70: case 0x71: case 0x72: case 0x73:\n case 0x74: case 0x75: case 0x76: case 0x77:\n case 0x78: case 0x79: case 0x7A: case 0x7B:\n case 0x7C: case 0x7D: case 0x7E: case 0x7F:\n this.A = opcode & 0x0F;\n break;\n\n // 0x80-0x87: BT (branch if flag test true)\n case 0x80: case 0x81: case 0x82: case 0x83:\n case 0x84: case 0x85: case 0x86: case 0x87: {\n const mask = opcode & 0x07;\n const offset = this.fetchPC0();\n if (this.W & mask) {\n // Sign-extend offset and add to PC0\n this.PC0 = (this.PC0 + ((offset & 0x80) ? (offset - 256) : offset)) & 0xFFFF;\n cycles = 6;\n } else {\n cycles = 6;\n }\n break;\n }\n\n // 0x88: AM (add memory at DC0 to A)\n case 0x88:\n tmp = this.fetchDC0();\n this.clrOZCS();\n this.A = this.doAdd(this.A, tmp);\n this.setSZ(this.A);\n cycles = 6;\n break;\n\n // 0x89: AMD (decimal add memory at DC0 to A)\n case 0x89:\n tmp = this.fetchDC0();\n this.A = this.doAddDecimal(this.A, tmp);\n cycles = 6;\n break;\n\n // 0x8A: NM (AND memory at DC0)\n case 0x8A:\n tmp = this.fetchDC0();\n this.A = this.A & tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n\n // 0x8B: OM (OR memory at DC0)\n case 0x8B:\n tmp = this.fetchDC0();\n this.A = this.A | tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n\n // 0x8C: XM (XOR memory at DC0)\n case 0x8C:\n tmp = this.fetchDC0();\n this.A = this.A ^ tmp;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 6;\n break;\n\n // 0x8D: CM (compare memory at DC0)\n case 0x8D:\n tmp = this.fetchDC0();\n this.clrOZCS();\n { const cmp = this.doAdd((~this.A) & 0xFF, tmp, 1); this.setSZ(cmp); }\n cycles = 6;\n break;\n\n // 0x8E: ADC (add accumulator to DC0)\n case 0x8E:\n this.DC0 = (this.DC0 + ((this.A & 0x80) ? (this.A - 256) : this.A)) & 0xFFFF;\n cycles = 6;\n break;\n\n // 0x8F: BR7 (branch if IS lower 3 bits != 7)\n case 0x8F: {\n const offset = this.fetchPC0();\n if ((this.IS & 0x07) !== 7) {\n this.PC0 = (this.PC0 + ((offset & 0x80) ? (offset - 256) : offset)) & 0xFFFF;\n }\n cycles = 6;\n break;\n }\n\n // 0x90-0x9F: BF (branch if flag false)\n case 0x90: case 0x91: case 0x92: case 0x93:\n case 0x94: case 0x95: case 0x96: case 0x97:\n case 0x98: case 0x99: case 0x9A: case 0x9B:\n case 0x9C: case 0x9D: case 0x9E: case 0x9F: {\n const mask = opcode & 0x0F;\n const offset = this.fetchPC0();\n if (mask === 0 || !(this.W & mask)) {\n // BF 0 is unconditional branch (BR)\n this.PC0 = (this.PC0 + ((offset & 0x80) ? (offset - 256) : offset)) & 0xFFFF;\n }\n cycles = 6;\n break;\n }\n\n // 0xA0-0xA1: INS 0-1 (input from port 0/1, direct)\n case 0xA0: case 0xA1:\n this.A = this.iobus.read(opcode & 0x01) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n // 0xA2-0xA3: illegal\n case 0xA2: case 0xA3: break;\n // 0xA4-0xAF: INS 4-F (input from addressed port)\n case 0xA4: case 0xA5: case 0xA6: case 0xA7:\n case 0xA8: case 0xA9: case 0xAA: case 0xAB:\n case 0xAC: case 0xAD: case 0xAE: case 0xAF:\n this.A = this.iobus.read(opcode & 0x0F) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n cycles = 8;\n break;\n\n // 0xB0-0xB1: OUTS 0-1 (output to port 0/1, direct)\n case 0xB0: case 0xB1:\n this.iobus.write(opcode & 0x01, this.A);\n break;\n // 0xB2-0xB3: illegal\n case 0xB2: case 0xB3: break;\n // 0xB4-0xBF: OUTS 4-F (output to addressed port)\n case 0xB4: case 0xB5: case 0xB6: case 0xB7:\n case 0xB8: case 0xB9: case 0xBA: case 0xBB:\n case 0xBC: case 0xBD: case 0xBE: case 0xBF:\n this.iobus.write(opcode & 0x0F, this.A);\n cycles = 8;\n break;\n\n // 0xC0-0xCE: AS (add scratchpad to A)\n case 0xC0: case 0xC1: case 0xC2: case 0xC3:\n case 0xC4: case 0xC5: case 0xC6: case 0xC7:\n case 0xC8: case 0xC9: case 0xCA: case 0xCB:\n case 0xCC: case 0xCD: case 0xCE:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.clrOZCS();\n this.A = this.doAdd(this.A, this.R[r]);\n this.setSZ(this.A);\n break;\n case 0xCF: break; // illegal\n\n // 0xD0-0xDE: ASD (decimal add scratchpad to A)\n case 0xD0: case 0xD1: case 0xD2: case 0xD3:\n case 0xD4: case 0xD5: case 0xD6: case 0xD7:\n case 0xD8: case 0xD9: case 0xDA: case 0xDB:\n case 0xDC: case 0xDD: case 0xDE:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.A = this.doAddDecimal(this.A, this.R[r]);\n cycles = 8;\n break;\n case 0xDF: break; // illegal\n\n // 0xE0-0xEE: XS (XOR scratchpad with A)\n case 0xE0: case 0xE1: case 0xE2: case 0xE3:\n case 0xE4: case 0xE5: case 0xE6: case 0xE7:\n case 0xE8: case 0xE9: case 0xEA: case 0xEB:\n case 0xEC: case 0xED: case 0xEE:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.A = (this.A ^ this.R[r]) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n case 0xEF: break; // illegal\n\n // 0xF0-0xFE: NS (AND scratchpad with A)\n case 0xF0: case 0xF1: case 0xF2: case 0xF3:\n case 0xF4: case 0xF5: case 0xF6: case 0xF7:\n case 0xF8: case 0xF9: case 0xFA: case 0xFB:\n case 0xFC: case 0xFD: case 0xFE:\n r = this.getScratchpadIndex(opcode & 0x0F);\n this.A = (this.A & this.R[r]) & 0xFF;\n this.clrOZCS();\n this.setSZ(this.A);\n break;\n case 0xFF: break; // illegal\n }\n\n return cycles;\n }\n}\n", "// based on https://github.com/mamedev/mame/blob/master/src/devices/cpu/f8/f8.cpp\n// license:BSD-3-Clause\n// copyright-holders:Juergen Buchmueller\n// and https://raw.githubusercontent.com/mamedev/mame/master/src/mame/fairchild/channelf.cpp\n// license:GPL-2.0+\n// copyright-holders:Juergen Buchmueller, Frank Palazzolo, Sean Riddle\n\nimport { F8CPU, F8State } from \"../common/cpu/F8\";\nimport { BasicMachine, Bus, SampledAudioSink } from \"../common/devices\";\nimport { KeyFlags, Keys, newAddressDecoder, padBytes } from \"../common/emu\";\nimport { hex } from \"../common/util\";\n\n// Channel F color palette (RGBA)\nconst CHANNELF_COLORS = [\n 0xFF484848, // 0: dark gray/background (approximation for \"field\" color)\n 0xFF5050FF, // 1: blue\n 0xFF50FF50, // 2: green -> actually the red\n 0xFF808080, // 3: gray\n 0xFFFFFFFF, // 4: white (BG palette)\n 0xFF50FF50, // 5: green\n 0xFFFF5050, // 6: red\n 0xFFC8C8C8, // 7: light gray\n];\n\n// Full 16-entry color map (4 palette banks x 4 colors)\nconst CHANNELF_COLORMAP = [\n // Palette 0 (default)\n 0xFF484848, // 0: background\n 0xFF50FF50, // 1: green\n 0xFF5050FF, // 2: blue\n 0xFF808080, // 3: gray\n // Palette 1\n 0xFFFF5050, // 0: red (background)\n 0xFF50FF50, // 1: green\n 0xFF5050FF, // 2: blue\n 0xFF808080, // 3: gray\n // Palette 2\n 0xFF484848, // 0: background\n 0xFFFF5050, // 1: red\n 0xFF5050FF, // 2: blue\n 0xFF808080, // 3: gray\n // Palette 3\n 0xFF484848, // 0: background\n 0xFF50FF50, // 1: green\n 0xFFFF5050, // 2: red\n 0xFF808080, // 3: gray\n];\n\n// Input port bit definitions\nconst INPUT_RIGHT = 0x01;\nconst INPUT_LEFT = 0x02;\nconst INPUT_BACK = 0x04;\nconst INPUT_FORWARD = 0x08;\nconst INPUT_CCW = 0x10; // counter-clockwise\nconst INPUT_CW = 0x20; // clockwise\nconst INPUT_PULL = 0x40;\nconst INPUT_PUSH = 0x80;\n\nexport class ChannelF extends BasicMachine {\n\n cpuFrequency = 1789773; // NTSC: 3.579545 MHz / 2\n defaultROMSize = 0x10000;\n\n // Video params\n canvasWidth = 128;\n numVisibleScanlines = 64;\n numTotalScanlines = 64;\n cpuCyclesPerLine = this.cpuFrequency / 60 / 64; // ~466 cycles per line\n\n sampleRate = this.cpuFrequency / 2; // audio sample rate\n\n cpu = new F8CPU();\n ram = new Uint8Array(0x10000); // address space (ROM + VRAM)\n vram = new Uint8Array(0x2000); // 8KB video RAM (128x64, 2 bits per pixel)\n\n bios: Uint8Array;\n\n // I/O port latches\n port0: number = 0; // console switches\n port1: number = 0; // right controller\n port4: number = 0; // left controller\n port5: number = 0; // row/column/sound\n\n // Video registers\n row_reg: number = 0;\n col_reg: number = 0;\n color: number = 0;\n\n // Audio state\n soundMode: number = 0;\n soundCounter: number = 0;\n soundEnvelope: number = 0;\n soundOnTime: number = 0;\n\n constructor() {\n super();\n this.bios = new Uint8Array(0x800); // 2KB BIOS\n this.connectCPUMemoryBus(this);\n this.cpu.connectIOBus(this.newIOBus());\n }\n\n newIOBus(): Bus {\n return this.probeIOBus({\n read: (port: number): number => {\n return this.readPort(port);\n },\n write: (port: number, val: number): void => {\n this.writePort(port, val);\n }\n });\n }\n\n readPort(port: number): number {\n switch (port & 0xFF) {\n case 0:\n // Console switches: TIME(0), MODE(1), HOLD(2), START(3)\n return (~this.inputs[0]) & 0xFF;\n case 1:\n // Right controller\n return (~this.inputs[1]) & 0xFF;\n case 4:\n // Left controller\n return (~this.inputs[2]) & 0xFF;\n default:\n return 0xFF;\n }\n }\n\n writePort(port: number, val: number): void {\n switch (port & 0xFF) {\n case 0:\n this.port0 = val;\n break;\n case 1:\n this.port1 = val;\n // The right controller port is also used for video column\n this.col_reg = val;\n break;\n case 4:\n this.port4 = val;\n break;\n case 5:\n this.port5 = val;\n // Upper 2 bits control sound\n this.soundMode = (val >> 6) & 3;\n if (this.soundMode > 0) {\n this.soundEnvelope = 0x3FF; // reset envelope on new sound\n this.soundOnTime = 60; // minimum on time (~2ms)\n }\n // Lower 6 bits control video row\n this.row_reg = val & 0x3F;\n // Write pixel to VRAM when both row and column are set\n this.writePixel();\n break;\n }\n }\n\n writePixel(): void {\n const row = this.row_reg;\n const col = this.col_reg & 0x7F;\n if (row < 64 && col < 128) {\n // Color comes from port 1 upper bits\n const color = (this.port1 >> 6) & 0x03;\n const addr = row * 128 + col;\n this.vram[addr] = color;\n }\n }\n\n read = newAddressDecoder([\n [0x0000, 0x07FF, 0x07FF, (a) => { return this.bios[a]; }],\n [0x0800, 0xFFFF, 0xFFFF, (a) => { return this.rom ? (this.rom[a - 0x0800] || 0) : 0; }],\n ], { gmask: 0xFFFF });\n\n write = newAddressDecoder([\n // Channel F has no writable main memory in the base config\n // Some cartridges have RAM at 0x2800-0x2FFF\n [0x2800, 0x2FFF, 0x07FF, (a, v) => { if (this.rom) this.rom[a - 0x0800] = v; }],\n ], { gmask: 0xFFFF });\n\n readConst(a: number): number {\n if (a < 0x0800) return this.bios[a];\n return this.rom ? (this.rom[a - 0x0800] || 0) : 0;\n }\n\n loadROM(data: Uint8Array): void {\n if (!this.rom) this.rom = new Uint8Array(this.defaultROMSize);\n this.rom.set(data);\n this.reset();\n }\n\n loadBIOS(data: Uint8Array): void {\n this.bios = padBytes(data, 0x800);\n this.reset();\n }\n\n reset(): void {\n super.reset();\n this.vram.fill(0);\n this.port0 = 0;\n this.port1 = 0;\n this.port4 = 0;\n this.port5 = 0;\n this.row_reg = 0;\n this.col_reg = 0;\n this.soundMode = 0;\n this.soundCounter = 0;\n this.soundEnvelope = 0;\n }\n\n advanceFrame(trap): number {\n var clock = 0;\n var targetClocks = this.cpuFrequency / 60;\n this.probe.logNewFrame();\n while (clock < targetClocks) {\n if (trap && trap()) break;\n clock += this.advanceCPU();\n }\n this.renderFrame();\n this.generateAudio(targetClocks);\n return clock;\n }\n\n renderFrame(): void {\n if (!this.pixels) return;\n // Determine palette offset from VRAM locations 125 and 126 of row 0\n // (simplified - uses palette 0 by default)\n for (let y = 0; y < 64; y++) {\n // Palette selection per row from vram[y*128 + 125] and [y*128 + 126]\n let palOffset = 0;\n const p125 = this.vram[y * 128 + 125];\n const p126 = this.vram[y * 128 + 126];\n palOffset = ((p125 & 2) | ((p126 & 2) >> 1)) * 4;\n\n for (let x = 0; x < 128; x++) {\n const color = this.vram[y * 128 + x] & 0x03;\n const rgba = CHANNELF_COLORMAP[palOffset + color];\n // Double vertical: each Channel F row maps to 4 display rows (NTSC)\n this.pixels[y * 128 + x] = rgba;\n }\n }\n }\n\n generateAudio(cycles: number): void {\n if (!this.audio) return;\n // Simple tone generation based on sound mode\n const samplesPerFrame = Math.floor(this.sampleRate / 60);\n for (let i = 0; i < samplesPerFrame; i++) {\n let sample = 0;\n if (this.soundMode > 0 && this.soundEnvelope > 0) {\n // Generate square wave at appropriate frequency\n let freq: number;\n switch (this.soundMode) {\n case 1: freq = 1000; break; // ~1000 Hz\n case 2: freq = 500; break; // ~500 Hz\n case 3: freq = 120; break; // ~120 Hz\n default: freq = 0;\n }\n if (freq > 0) {\n const period = Math.floor(this.sampleRate / freq);\n this.soundCounter = (this.soundCounter + 1) % period;\n sample = this.soundCounter < period / 2 ? 0.3 : -0.3;\n sample *= this.soundEnvelope / 0x3FF;\n }\n // Decay envelope\n if (this.soundOnTime > 0) {\n this.soundOnTime--;\n } else {\n this.soundEnvelope -= 2;\n if (this.soundEnvelope < 0) this.soundEnvelope = 0;\n }\n }\n this.audio.feedSample(sample, 1);\n }\n }\n\n setKeyInput(key: number, code: number, flags: number): void {\n // inputs[0] = console switches\n // inputs[1] = right controller\n // inputs[2] = left controller\n const pressed = !!(flags & KeyFlags.KeyDown);\n const released = !!(flags & KeyFlags.KeyUp);\n\n // Console buttons (mapped to number keys)\n if (key === Keys.VK_1.c) { // TIME\n if (pressed) this.inputs[0] |= 0x01; else if (released) this.inputs[0] &= ~0x01;\n }\n if (key === Keys.VK_2.c) { // MODE\n if (pressed) this.inputs[0] |= 0x02; else if (released) this.inputs[0] &= ~0x02;\n }\n if (key === Keys.VK_3.c) { // HOLD\n if (pressed) this.inputs[0] |= 0x04; else if (released) this.inputs[0] &= ~0x04;\n }\n if (key === Keys.VK_4.c) { // START\n if (pressed) this.inputs[0] |= 0x08; else if (released) this.inputs[0] &= ~0x08;\n }\n\n // Right controller (WASD + QE for twist + RF for push/pull)\n if (key === Keys.VK_UP.c || key === Keys.VK_W.c) {\n if (pressed) this.inputs[1] |= INPUT_FORWARD; else if (released) this.inputs[1] &= ~INPUT_FORWARD;\n }\n if (key === Keys.VK_DOWN.c || key === Keys.VK_S.c) {\n if (pressed) this.inputs[1] |= INPUT_BACK; else if (released) this.inputs[1] &= ~INPUT_BACK;\n }\n if (key === Keys.VK_LEFT.c || key === Keys.VK_A.c) {\n if (pressed) this.inputs[1] |= INPUT_LEFT; else if (released) this.inputs[1] &= ~INPUT_LEFT;\n }\n if (key === Keys.VK_RIGHT.c || key === Keys.VK_D.c) {\n if (pressed) this.inputs[1] |= INPUT_RIGHT; else if (released) this.inputs[1] &= ~INPUT_RIGHT;\n }\n if (key === Keys.VK_Q.c) { // CCW twist\n if (pressed) this.inputs[1] |= INPUT_CCW; else if (released) this.inputs[1] &= ~INPUT_CCW;\n }\n if (key === Keys.VK_E.c) { // CW twist\n if (pressed) this.inputs[1] |= INPUT_CW; else if (released) this.inputs[1] &= ~INPUT_CW;\n }\n if (key === Keys.VK_R.c) { // Push\n if (pressed) this.inputs[1] |= INPUT_PUSH; else if (released) this.inputs[1] &= ~INPUT_PUSH;\n }\n if (key === Keys.VK_F.c) { // Pull\n if (pressed) this.inputs[1] |= INPUT_PULL; else if (released) this.inputs[1] &= ~INPUT_PULL;\n }\n }\n\n saveState() {\n return {\n c: this.cpu.saveState(),\n ram: this.ram.slice(0),\n inputs: this.inputs.slice(0),\n vram: this.vram.slice(0),\n port0: this.port0,\n port1: this.port1,\n port4: this.port4,\n port5: this.port5,\n row_reg: this.row_reg,\n col_reg: this.col_reg,\n soundMode: this.soundMode,\n soundCounter: this.soundCounter,\n soundEnvelope: this.soundEnvelope,\n };\n }\n\n loadState(state) {\n this.cpu.loadState(state.c);\n this.ram.set(state.ram);\n this.inputs.set(state.inputs);\n this.vram.set(state.vram);\n this.port0 = state.port0;\n this.port1 = state.port1;\n this.port4 = state.port4;\n this.port5 = state.port5;\n this.row_reg = state.row_reg;\n this.col_reg = state.col_reg;\n this.soundMode = state.soundMode;\n this.soundCounter = state.soundCounter;\n this.soundEnvelope = state.soundEnvelope;\n }\n}\n", "// based on https://github.com/mamedev/mame/blob/master/src/devices/cpu/f8/f8.cpp\n// license:BSD-3-Clause\n// copyright-holders:Juergen Buchmueller\n// and https://raw.githubusercontent.com/mamedev/mame/master/src/mame/fairchild/channelf.cpp\n// license:GPL-2.0+\n// copyright-holders:Juergen Buchmueller, Frank Palazzolo, Sean Riddle\n\nimport { hex } from \"../util\";\n\n// Scratchpad register names for operands 0-14\nfunction regName(r: number): string {\n if (r < 9) return 'r' + r;\n if (r === 9) return 'J';\n if (r === 10) return 'HU';\n if (r === 11) return 'HL';\n if (r === 12) return 'S'; // ISAR\n if (r === 13) return 'I'; // ISAR++\n if (r === 14) return 'D'; // ISAR--\n return '?';\n}\n\nexport function disassembleF8(pc: number, b0: number, b1: number, b2: number): { line: string, nbytes: number, isaddr: boolean } {\n let mn = '';\n let args = '';\n let nb = 1;\n let isaddr = false;\n\n if (b0 <= 0x07) {\n const regs = ['KU', 'KL', 'QU', 'QL'];\n if (b0 < 4) { mn = 'LR'; args = 'A,' + regs[b0]; }\n else { mn = 'LR'; args = regs[b0 - 4] + ',A'; }\n } else if (b0 === 0x08) { mn = 'LR'; args = 'K,P'; }\n else if (b0 === 0x09) { mn = 'LR'; args = 'P,K'; }\n else if (b0 === 0x0A) { mn = 'LR'; args = 'A,IS'; }\n else if (b0 === 0x0B) { mn = 'LR'; args = 'IS,A'; }\n else if (b0 === 0x0C) { mn = 'PK'; }\n else if (b0 === 0x0D) { mn = 'LR'; args = 'P0,Q'; }\n else if (b0 === 0x0E) { mn = 'LR'; args = 'Q,DC'; }\n else if (b0 === 0x0F) { mn = 'LR'; args = 'DC,Q'; }\n else if (b0 === 0x10) { mn = 'LR'; args = 'DC,H'; }\n else if (b0 === 0x11) { mn = 'LR'; args = 'H,DC'; }\n else if (b0 === 0x12) { mn = 'SR'; args = '1'; }\n else if (b0 === 0x13) { mn = 'SL'; args = '1'; }\n else if (b0 === 0x14) { mn = 'SR'; args = '4'; }\n else if (b0 === 0x15) { mn = 'SL'; args = '4'; }\n else if (b0 === 0x16) { mn = 'LM'; }\n else if (b0 === 0x17) { mn = 'ST'; }\n else if (b0 === 0x18) { mn = 'COM'; }\n else if (b0 === 0x19) { mn = 'LNK'; }\n else if (b0 === 0x1A) { mn = 'DI'; }\n else if (b0 === 0x1B) { mn = 'EI'; }\n else if (b0 === 0x1C) { mn = 'POP'; }\n else if (b0 === 0x1D) { mn = 'LR'; args = 'W,J'; }\n else if (b0 === 0x1E) { mn = 'LR'; args = 'J,W'; }\n else if (b0 === 0x1F) { mn = 'INC'; }\n else if (b0 === 0x20) { mn = 'LI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x21) { mn = 'NI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x22) { mn = 'OI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x23) { mn = 'XI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x24) { mn = 'AI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x25) { mn = 'CI'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x26) { mn = 'IN'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x27) { mn = 'OUT'; args = '$' + hex(b1, 2); nb = 2; }\n else if (b0 === 0x28) {\n mn = 'PI'; args = '$' + hex((b1 << 8) | b2, 4); nb = 3; isaddr = true;\n }\n else if (b0 === 0x29) {\n mn = 'JMP'; args = '$' + hex((b1 << 8) | b2, 4); nb = 3; isaddr = true;\n }\n else if (b0 === 0x2A) {\n mn = 'DCI'; args = '$' + hex((b1 << 8) | b2, 4); nb = 3; isaddr = true;\n }\n else if (b0 === 0x2B) { mn = 'NOP'; }\n else if (b0 === 0x2C) { mn = 'XDC'; }\n else if (b0 <= 0x2F) { mn = '???'; }\n else if (b0 >= 0x30 && b0 <= 0x3E) {\n mn = 'DS'; args = regName(b0 & 0x0F); nb = 1;\n }\n else if (b0 === 0x3F) { mn = '???'; }\n else if (b0 >= 0x40 && b0 <= 0x4E) {\n mn = 'LR'; args = 'A,' + regName(b0 & 0x0F);\n }\n else if (b0 === 0x4F) { mn = '???'; }\n else if (b0 >= 0x50 && b0 <= 0x5E) {\n mn = 'LR'; args = regName(b0 & 0x0F) + ',A';\n }\n else if (b0 === 0x5F) { mn = '???'; }\n else if (b0 >= 0x60 && b0 <= 0x67) {\n mn = 'LISU'; args = '' + (b0 & 0x07);\n }\n else if (b0 >= 0x68 && b0 <= 0x6F) {\n mn = 'LISL'; args = '' + (b0 & 0x07);\n }\n else if (b0 >= 0x70 && b0 <= 0x7F) {\n mn = 'LIS'; args = '' + (b0 & 0x0F);\n }\n else if (b0 >= 0x80 && b0 <= 0x87) {\n const offset = (b1 & 0x80) ? (pc + 2 + b1 - 256) : (pc + 2 + b1);\n mn = 'BT'; args = '' + (b0 & 0x07) + ',$' + hex(offset & 0xFFFF, 4);\n nb = 2; isaddr = true;\n }\n else if (b0 === 0x88) { mn = 'AM'; }\n else if (b0 === 0x89) { mn = 'AMD'; }\n else if (b0 === 0x8A) { mn = 'NM'; }\n else if (b0 === 0x8B) { mn = 'OM'; }\n else if (b0 === 0x8C) { mn = 'XM'; }\n else if (b0 === 0x8D) { mn = 'CM'; }\n else if (b0 === 0x8E) { mn = 'ADC'; }\n else if (b0 === 0x8F) {\n const offset = (b1 & 0x80) ? (pc + 2 + b1 - 256) : (pc + 2 + b1);\n mn = 'BR7'; args = '$' + hex(offset & 0xFFFF, 4);\n nb = 2; isaddr = true;\n }\n else if (b0 >= 0x90 && b0 <= 0x9F) {\n const offset = (b1 & 0x80) ? (pc + 2 + b1 - 256) : (pc + 2 + b1);\n const mask = b0 & 0x0F;\n if (mask === 0) mn = 'BR';\n else mn = 'BF';\n if (mask !== 0) args = '' + mask + ',';\n args += '$' + hex(offset & 0xFFFF, 4);\n nb = 2; isaddr = true;\n }\n else if (b0 >= 0xA0 && b0 <= 0xA1) { mn = 'INS'; args = '' + (b0 & 0x0F); }\n else if (b0 >= 0xA2 && b0 <= 0xA3) { mn = '???'; }\n else if (b0 >= 0xA4 && b0 <= 0xAF) { mn = 'INS'; args = '' + (b0 & 0x0F); }\n else if (b0 >= 0xB0 && b0 <= 0xB1) { mn = 'OUTS'; args = '' + (b0 & 0x0F); }\n else if (b0 >= 0xB2 && b0 <= 0xB3) { mn = '???'; }\n else if (b0 >= 0xB4 && b0 <= 0xBF) { mn = 'OUTS'; args = '' + (b0 & 0x0F); }\n else if (b0 >= 0xC0 && b0 <= 0xCE) { mn = 'AS'; args = regName(b0 & 0x0F); }\n else if (b0 === 0xCF) { mn = '???'; }\n else if (b0 >= 0xD0 && b0 <= 0xDE) { mn = 'ASD'; args = regName(b0 & 0x0F); }\n else if (b0 === 0xDF) { mn = '???'; }\n else if (b0 >= 0xE0 && b0 <= 0xEE) { mn = 'XS'; args = regName(b0 & 0x0F); }\n else if (b0 === 0xEF) { mn = '???'; }\n else if (b0 >= 0xF0 && b0 <= 0xFE) { mn = 'NS'; args = regName(b0 & 0x0F); }\n else { mn = '???'; }\n\n return { line: mn + (args ? ' ' + args : ''), nbytes: nb, isaddr: isaddr };\n}\n", "// based on https://github.com/mamedev/mame/blob/master/src/devices/cpu/f8/f8.cpp\n// license:BSD-3-Clause\n// copyright-holders:Juergen Buchmueller\n// and https://raw.githubusercontent.com/mamedev/mame/master/src/mame/fairchild/channelf.cpp\n// license:GPL-2.0+\n// copyright-holders:Juergen Buchmueller, Frank Palazzolo, Sean Riddle\n\nimport { Platform, BaseMachinePlatform, DisasmLine } from \"../common/baseplatform\";\nimport { PLATFORMS } from \"../common/emu\";\nimport { ChannelF } from \"../machine/channelf\";\nimport { disassembleF8 } from \"../common/cpu/disasmF8\";\nimport { hex, printFlags } from \"../common/util\";\n\nvar CHANNELF_PRESETS = [\n { id: 'hello.dasm', name: 'Hello World (ASM)' },\n];\n\nfunction cpuStateToLongString_F8(c): string {\n return \"PC0 = \" + hex(c.PC0, 4) + \" PC1 = \" + hex(c.PC1, 4) + \"\\n\"\n + \"DC0 = \" + hex(c.DC0, 4) + \" DC1 = \" + hex(c.DC1, 4) + \"\\n\"\n + \" A = \" + hex(c.A, 2) + \" W = \" + hex(c.W, 2) + \"\\n\"\n + \" IS = \" + hex(c.IS, 2) + \"\\n\"\n + printFlags(c.W, ['S', 'C', 'Z', 'O', 'I'], true) + \"\\n\"\n + \" R0-R3: \" + c.R.slice(0, 4).map(v => hex(v, 2)).join(' ') + \"\\n\"\n + \" R4-R7: \" + c.R.slice(4, 8).map(v => hex(v, 2)).join(' ') + \"\\n\"\n + \" R8/J/H: \" + c.R.slice(8, 12).map(v => hex(v, 2)).join(' ') + \"\\n\"\n + \" K/Q: \" + c.R.slice(12, 16).map(v => hex(v, 2)).join(' ') + \"\\n\";\n}\n\nclass ChannelFPlatform extends BaseMachinePlatform implements Platform {\n\n newMachine() { return new ChannelF(); }\n getPresets() { return CHANNELF_PRESETS; }\n getDefaultExtensions() { return [\".dasm\"]; }\n getToolForFilename(fn: string): string {\n if (fn.endsWith(\".c\")) return \"cc65\";\n if (fn.endsWith(\".s\") || fn.endsWith(\".ca65\")) return \"ca65\";\n return \"dasm\";\n }\n readAddress(a) { return this.machine.readConst(a); }\n\n disassemble(pc: number, read: (addr: number) => number): DisasmLine {\n return disassembleF8(pc, read(pc), read(pc + 1), read(pc + 2));\n }\n\n getDebugCategories() {\n return ['CPU', 'I/O', 'VRAM'];\n }\n\n getDebugInfo(category: string, state): string {\n switch (category) {\n case 'CPU': return cpuStateToLongString_F8(state.c);\n case 'I/O':\n return \"Port 0: \" + hex(state.port0 || 0, 2) + \"\\n\"\n + \"Port 1: \" + hex(state.port1 || 0, 2) + \"\\n\"\n + \"Port 4: \" + hex(state.port4 || 0, 2) + \"\\n\"\n + \"Port 5: \" + hex(state.port5 || 0, 2) + \"\\n\"\n + \"Row: \" + hex(state.row_reg || 0, 2) + \"\\n\"\n + \"Col: \" + hex(state.col_reg || 0, 2) + \"\\n\";\n case 'VRAM': return '';\n default: return '';\n }\n }\n\n getMemoryMap() {\n return {\n main: [\n { name: 'BIOS', start: 0x0000, size: 0x0800, type: 'rom' },\n { name: 'Cart ROM', start: 0x0800, size: 0x7800, type: 'rom' },\n ]\n };\n }\n}\n\nPLATFORMS['channelf'] = ChannelFPlatform;\n"], + "mappings": "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", + "names": ["FLAG_S", "FLAG_C", "FLAG_Z", "FLAG_O", "FLAG_I", "F8CPU", "bus", "type", "state", "_a", "i", "val", "a", "b", "carry", "result", "augend", "addend", "tmp", "c1", "c2", "correction", "r", "idx", "opcode", "cycles", "hi", "lo", "mask", "offset", "cmp", "CHANNELF_COLORMAP", "INPUT_RIGHT", "INPUT_LEFT", "INPUT_BACK", "INPUT_FORWARD", "INPUT_CCW", "INPUT_CW", "INPUT_PULL", "INPUT_PUSH", "ChannelF", "BasicMachine", "F8CPU", "newAddressDecoder", "a", "v", "port", "val", "row", "col", "color", "addr", "data", "padBytes", "trap", "clock", "targetClocks", "y", "palOffset", "p125", "p126", "rgba", "cycles", "samplesPerFrame", "i", "sample", "freq", "period", "key", "code", "flags", "pressed", "released", "Keys", "state", "regName", "r", "disassembleF8", "pc", "b0", "b1", "b2", "mn", "args", "nb", "isaddr", "regs", "hex", "offset", "mask", "CHANNELF_PRESETS", "cpuStateToLongString_F8", "c", "hex", "printFlags", "v", "ChannelFPlatform", "BaseMachinePlatform", "ChannelF", "fn", "a", "pc", "read", "disassembleF8", "category", "state", "PLATFORMS"] +} diff --git a/gen/chunk-IBRDAYM2.js b/gen/chunk-2DVTTN6M.js similarity index 99% rename from gen/chunk-IBRDAYM2.js rename to gen/chunk-2DVTTN6M.js index 531af24a..df097023 100644 --- a/gen/chunk-IBRDAYM2.js +++ b/gen/chunk-2DVTTN6M.js @@ -1,4 +1,4 @@ -import{a as lc,b as ko,c as pw}from"./chunk-JSIZCY7X.js";import{a as $g}from"./chunk-LNOKARBD.js";import{a as wg,b as Pg,c as mw}from"./chunk-R5KWJQBC.js";import{D as Qu,J as yu,t as xg,u as vg}from"./chunk-GTDJ7CMC.js";import{A as Zs,E as hr,F as gu,G as Po,I as oc,J as Sg,K as bu,T as Su,V as Qg,a as ln,b as ma,ba as ac,ca as yg,d as ai,da as ba,e as mu,f as li,g as ut,k as pg,m as tc,n as ic,o as rc,p as Es,q as mg,t as nc,w as gg,x as bg,y as sc,z as Qi}from"./chunk-MZ4MJULD.js";import{a as zi,b as ec,c as pa,d as du,e as pu}from"./chunk-KT7KMEQC.js";var vu=du((kg,xu)=>{(function(i){if(typeof kg=="object"&&typeof xu!="undefined")xu.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(h,O){if(!s[h]){if(!n[h]){var m=typeof pa=="function"&&pa;if(!O&&m)return m(h,!0);if(l)return l(h,!0);var b=new Error("Cannot find module '"+h+"'");throw b.code="MODULE_NOT_FOUND",b}var y=s[h]={exports:{}};n[h][0].call(y.exports,function(P){var X=n[h][1][P];return a(X||P)},y,y.exports,r,n,s,o)}return s[h].exports}for(var l=typeof pa=="function"&&pa,f=0;f=43)}}).catch(function(){return!1})}function Oe(w){return typeof G=="boolean"?m.resolve(G):H(w).then(function(C){return G=C,G})}function Ee(w){var C=q[w.name],k={};k.promise=new m(function(U,M){k.resolve=U,k.reject=M}),C.deferredOperations.push(k),C.dbReady?C.dbReady=C.dbReady.then(function(){return k.promise}):C.dbReady=k.promise}function ge(w){var C=q[w.name],k=C.deferredOperations.pop();if(k)return k.resolve(),k.promise}function ie(w,C){var k=q[w.name],U=k.deferredOperations.pop();if(U)return U.reject(C),U.promise}function ke(w,C){return new m(function(k,U){if(q[w.name]=q[w.name]||nt(),w.db)if(C)Ee(w),w.db.close();else return k(w.db);var M=[w.name];C&&M.push(w.version);var Z=f.open.apply(f,M);C&&(Z.onupgradeneeded=function(K){var re=Z.result;try{re.createObjectStore(w.storeName),K.oldVersion<=1&&re.createObjectStore(Y)}catch(le){if(le.name==="ConstraintError")console.warn('The database "'+w.name+'" has been upgraded from version '+K.oldVersion+" to version "+K.newVersion+', but the storage "'+w.storeName+'" already exists.');else throw le}}),Z.onerror=function(K){K.preventDefault(),U(Z.error)},Z.onsuccess=function(){var K=Z.result;K.onversionchange=function(re){re.target.close()},k(K),ge(w)}})}function Ze(w){return ke(w,!1)}function Be(w){return ke(w,!0)}function te(w,C){if(!w.db)return!0;var k=!w.db.objectStoreNames.contains(w.storeName),U=w.versionw.db.version;if(U&&(w.version!==C&&console.warn('The database "'+w.name+`" can't be downgraded from version `+w.db.version+" to version "+w.version+"."),w.version=w.db.version),M||k){if(k){var Z=w.db.version+1;Z>w.version&&(w.version=Z)}return!0}return!1}function ye(w){return new m(function(C,k){var U=new FileReader;U.onerror=k,U.onloadend=function(M){var Z=btoa(M.target.result||"");C({__local_forage_encoded_blob:!0,data:Z,type:w.type})},U.readAsBinaryString(w)})}function ce(w){var C=j(atob(w.data));return O([C],{type:w.type})}function Me(w){return w&&w.__local_forage_encoded_blob}function je(w){var C=this,k=C._initReady().then(function(){var U=q[C._dbInfo.name];if(U&&U.dbReady)return U.dbReady});return y(k,w,w),k}function We(w){Ee(w);for(var C=q[w.name],k=C.forages,U=0;U0&&(!w.db||Z.name==="InvalidStateError"||Z.name==="NotFoundError"))return m.resolve().then(function(){if(!w.db||Z.name==="NotFoundError"&&!w.db.objectStoreNames.contains(w.storeName)&&w.version<=w.db.version)return w.db&&(w.version=w.db.version+1),Be(w)}).then(function(){return We(w).then(function(){dt(w,C,k,U-1)})}).catch(k);k(Z)}}function nt(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ci(w){var C=this,k={db:null};if(w)for(var U in w)k[U]=w[U];var M=q[k.name];M||(M=nt(),q[k.name]=M),M.forages.push(C),C._initReady||(C._initReady=C.ready,C.ready=je);var Z=[];function K(){return m.resolve()}for(var re=0;re>4,se[M++]=(K&15)<<4|re>>2,se[M++]=(re&3)<<6|le&63;return fe}function bi(w){var C=new Uint8Array(w),k="",U;for(U=0;U>2],k+=Ft[(C[U]&3)<<4|C[U+1]>>4],k+=Ft[(C[U+1]&15)<<2|C[U+2]>>6],k+=Ft[C[U+2]&63];return C.length%3===2?k=k.substring(0,k.length-1)+"=":C.length%3===1&&(k=k.substring(0,k.length-2)+"=="),k}function Bi(w,C){var k="";if(w&&(k=gi.call(w)),w&&(k==="[object ArrayBuffer]"||w.buffer&&gi.call(w.buffer)==="[object ArrayBuffer]")){var U,M=Xr;w instanceof ArrayBuffer?(U=w,M+=Ht):(U=w.buffer,k==="[object Int8Array]"?M+=Hr:k==="[object Uint8Array]"?M+=we:k==="[object Uint8ClampedArray]"?M+=Xt:k==="[object Int16Array]"?M+=_r:k==="[object Uint16Array]"?M+=Dn:k==="[object Int32Array]"?M+=pi:k==="[object Uint32Array]"?M+=Wn:k==="[object Float32Array]"?M+=qn:k==="[object Float64Array]"?M+=sr:C(new Error("Failed to get type for BinaryArray"))),C(M+bi(U))}else if(k==="[object Blob]"){var Z=new FileReader;Z.onload=function(){var K=di+w.type+"~"+bi(this.result);C(Xr+nr+K)},Z.readAsArrayBuffer(w)}else try{C(JSON.stringify(w))}catch(K){console.error("Couldn't convert value into a JSON string: ",w),C(null,K)}}function jn(w){if(w.substring(0,Fr)!==Xr)return JSON.parse(w);var C=w.substring(mi),k=w.substring(Fr,mi),U;if(k===nr&&Tr.test(C)){var M=C.match(Tr);U=M[1],C=C.substring(M[0].length)}var Z=Yi(C);switch(k){case Ht:return Z;case nr:return O([Z],{type:U});case Hr:return new Int8Array(Z);case we:return new Uint8Array(Z);case Xt:return new Uint8ClampedArray(Z);case _r:return new Int16Array(Z);case Dn:return new Uint16Array(Z);case pi:return new Int32Array(Z);case Wn:return new Uint32Array(Z);case qn:return new Float32Array(Z);case sr:return new Float64Array(Z);default:throw new Error("Unkown type: "+k)}}var Kr={serialize:Bi,deserialize:jn,stringToBuffer:Yi,bufferToString:bi};function bo(w,C,k,U){w.executeSql("CREATE TABLE IF NOT EXISTS "+C.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],k,U)}function Gi(w){var C=this,k={db:null};if(w)for(var U in w)k[U]=typeof w[U]!="string"?w[U].toString():w[U];var M=new m(function(Z,K){try{k.db=openDatabase(k.name,String(k.version),k.description,k.size)}catch(re){return K(re)}k.db.transaction(function(re){bo(re,k,function(){C._dbInfo=k,Z()},function(le,fe){K(fe)})},K)});return k.serializer=Kr,M}function Wt(w,C,k,U,M,Z){w.executeSql(k,U,M,function(K,re){re.code===re.SYNTAX_ERR?K.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[C.storeName],function(le,fe){fe.rows.length?Z(le,re):bo(le,C,function(){le.executeSql(k,U,M,Z)},Z)},Z):Z(K,re)},Z)}function So(w,C){var k=this;w=P(w);var U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT * FROM "+K.storeName+" WHERE key = ? LIMIT 1",[w],function(le,fe){var se=fe.rows.length?fe.rows.item(0).value:null;se&&(se=K.serializer.deserialize(se)),M(se)},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function Jr(w,C){var k=this,U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT * FROM "+K.storeName,[],function(le,fe){for(var se=fe.rows,$e=se.length,qe=0;qe<$e;qe++){var ht=se.item(qe),Ot=ht.value;if(Ot&&(Ot=K.serializer.deserialize(Ot)),Ot=w(Ot,ht.key,qe+1),Ot!==void 0){M(Ot);return}}M()},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function Kt(w,C,k,U){var M=this;w=P(w);var Z=new m(function(K,re){M.ready().then(function(){C===void 0&&(C=null);var le=C,fe=M._dbInfo;fe.serializer.serialize(C,function(se,$e){$e?re($e):fe.db.transaction(function(qe){Wt(qe,fe,"INSERT OR REPLACE INTO "+fe.storeName+" (key, value) VALUES (?, ?)",[w,se],function(){K(le)},function(ht,Ot){re(Ot)})},function(qe){if(qe.code===qe.QUOTA_ERR){if(U>0){K(Kt.apply(M,[w,le,k,U-1]));return}re(qe)}})})}).catch(re)});return b(Z,k),Z}function Bt(w,C,k){return Kt.apply(this,[w,C,k,1])}function kt(w,C){var k=this;w=P(w);var U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"DELETE FROM "+K.storeName+" WHERE key = ?",[w],function(){M()},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function en(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"DELETE FROM "+Z.storeName,[],function(){U()},function(re,le){M(le)})})}).catch(M)});return b(k,w),k}function Qo(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"SELECT COUNT(key) as c FROM "+Z.storeName,[],function(re,le){var fe=le.rows.item(0).c;U(fe)},function(re,le){M(le)})})}).catch(M)});return b(k,w),k}function vs(w,C){var k=this,U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT key FROM "+K.storeName+" WHERE id = ? LIMIT 1",[w+1],function(le,fe){var se=fe.rows.length?fe.rows.item(0).key:null;M(se)},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function or(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"SELECT key FROM "+Z.storeName,[],function(re,le){for(var fe=[],se=0;se '__WebKitDatabaseInfoTable__'",[],function(M,Z){for(var K=[],re=0;re0}function $s(w){var C=this,k={};if(w)for(var U in w)k[U]=w[U];return k.keyPrefix=ar(w,C._defaultConfig),ws()?(C._dbInfo=k,k.serializer=Kr,m.resolve()):m.reject()}function xo(w){var C=this,k=C.ready().then(function(){for(var U=C._dbInfo.keyPrefix,M=localStorage.length-1;M>=0;M--){var Z=localStorage.key(M);Z.indexOf(U)===0&&localStorage.removeItem(Z)}});return b(k,w),k}function Zi(w,C){var k=this;w=P(w);var U=k.ready().then(function(){var M=k._dbInfo,Z=localStorage.getItem(M.keyPrefix+w);return Z&&(Z=M.serializer.deserialize(Z)),Z});return b(U,C),U}function vo(w,C){var k=this,U=k.ready().then(function(){for(var M=k._dbInfo,Z=M.keyPrefix,K=Z.length,re=localStorage.length,le=1,fe=0;fe=0;K--){var re=localStorage.key(K);re.indexOf(Z)===0&&localStorage.removeItem(re)}}):M=m.reject("Invalid arguments"),b(M,C),M}var ae={_driver:"localStorageWrapper",_initStorage:$s,_support:Ei(),iterate:vo,getItem:Zi,setItem:Pe,removeItem:ks,clear:xo,length:Bn,key:Cr,keys:Ps,dropInstance:A},xe=function(C,k){return C===k||typeof C=="number"&&typeof k=="number"&&isNaN(C)&&isNaN(k)},pt=function(C,k){for(var U=C.length,M=0;M{(function(i,e){"use strict";typeof Vh=="object"&&typeof Vh.exports=="object"?Vh.exports=i.document?e(i,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(i)})(typeof window!="undefined"?window:f1,function(i,e){"use strict";var t=[],r=Object.getPrototypeOf,n=t.slice,s=t.flat?function(c){return t.flat.call(c)}:function(c){return t.concat.apply([],c)},o=t.push,a=t.indexOf,l={},f=l.toString,h=l.hasOwnProperty,O=h.toString,m=O.call(Object),b={},y=function(u){return typeof u=="function"&&typeof u.nodeType!="number"&&typeof u.item!="function"},P=function(u){return u!=null&&u===u.window},X=i.document,Y={type:!0,src:!0,nonce:!0,noModule:!0};function G(c,u,p){p=p||X;var g,S,Q=p.createElement("script");if(Q.text=c,u)for(g in Y)S=u[g]||u.getAttribute&&u.getAttribute(g),S&&Q.setAttribute(g,S);p.head.appendChild(Q).parentNode.removeChild(Q)}function q(c){return c==null?c+"":typeof c=="object"||typeof c=="function"?l[f.call(c)]||"object":typeof c}var N="3.7.1",V=/HTML$/i,d=function(c,u){return new d.fn.init(c,u)};d.fn=d.prototype={jquery:N,constructor:d,length:0,toArray:function(){return n.call(this)},get:function(c){return c==null?n.call(this):c<0?this[c+this.length]:this[c]},pushStack:function(c){var u=d.merge(this.constructor(),c);return u.prevObject=this,u},each:function(c){return d.each(this,c)},map:function(c){return this.pushStack(d.map(this,function(u,p){return c.call(u,p,u)}))},slice:function(){return this.pushStack(n.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(d.grep(this,function(c,u){return(u+1)%2}))},odd:function(){return this.pushStack(d.grep(this,function(c,u){return u%2}))},eq:function(c){var u=this.length,p=+c+(c<0?u:0);return this.pushStack(p>=0&&p0&&u-1 in c}function H(c,u){return c.nodeName&&c.nodeName.toLowerCase()===u.toLowerCase()}var Oe=t.pop,Ee=t.sort,ge=t.splice,ie="[\\x20\\t\\r\\n\\f]",ke=new RegExp("^"+ie+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ie+"+$","g");d.contains=function(c,u){var p=u&&u.parentNode;return c===p||!!(p&&p.nodeType===1&&(c.contains?c.contains(p):c.compareDocumentPosition&&c.compareDocumentPosition(p)&16))};var Ze=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function Be(c,u){return u?c==="\0"?"\uFFFD":c.slice(0,-1)+"\\"+c.charCodeAt(c.length-1).toString(16)+" ":"\\"+c}d.escapeSelector=function(c){return(c+"").replace(Ze,Be)};var te=X,ye=o;(function(){var c,u,p,g,S,Q=ye,v,R,_,z,B,ee=d.expando,W=0,oe=0,Ve=Fl(),st=Fl(),Ie=Fl(),Jt=Fl(),qt=function(T,E){return T===E&&(S=!0),0},rn="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nn="(?:\\\\[\\da-fA-F]{1,6}"+ie+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",et="\\["+ie+"*("+nn+")(?:"+ie+"*([*^$|!~]?=)"+ie+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+nn+"))|)"+ie+"*\\]",As=":("+nn+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+et+")*)|.*)\\)|)",ct=new RegExp(ie+"+","g"),Yt=new RegExp("^"+ie+"*,"+ie+"*"),ua=new RegExp("^"+ie+"*([>+~]|"+ie+")"+ie+"*"),au=new RegExp(ie+"|>"),sn=new RegExp(As),Oa=new RegExp("^"+nn+"$"),on={ID:new RegExp("^#("+nn+")"),CLASS:new RegExp("^\\.("+nn+")"),TAG:new RegExp("^("+nn+"|[*])"),ATTR:new RegExp("^"+et),PSEUDO:new RegExp("^"+As),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ie+"*(even|odd|(([+-]|)(\\d*)n|)"+ie+"*(?:([+-]|)"+ie+"*(\\d+)|))"+ie+"*\\)|)","i"),bool:new RegExp("^(?:"+rn+")$","i"),needsContext:new RegExp("^"+ie+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ie+"*((?:-\\d)?\\d*)"+ie+"*\\)|)(?=[^-]|$)","i")},Gn=/^(?:input|select|textarea|button)$/i,Fn=/^h\d$/i,cr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,lu=/[+~]/,wn=new RegExp("\\\\[\\da-fA-F]{1,6}"+ie+"?|\\\\([^\\r\\n\\f])","g"),$n=function(T,E){var D="0x"+T.slice(1)-65536;return E||(D<0?String.fromCharCode(D+65536):String.fromCharCode(D>>10|55296,D&1023|56320))},lw=function(){Hn()},cw=Kl(function(T){return T.disabled===!0&&H(T,"fieldset")},{dir:"parentNode",next:"legend"});function fw(){try{return v.activeElement}catch(T){}}try{Q.apply(t=n.call(te.childNodes),te.childNodes),t[te.childNodes.length].nodeType}catch(T){Q={apply:function(E,D){ye.apply(E,n.call(D))},call:function(E){ye.apply(E,n.call(arguments,1))}}}function bt(T,E,D,I){var J,ue,be,Te,Se,He,Ue,De=E&&E.ownerDocument,Ke=E?E.nodeType:9;if(D=D||[],typeof T!="string"||!T||Ke!==1&&Ke!==9&&Ke!==11)return D;if(!I&&(Hn(E),E=E||v,_)){if(Ke!==11&&(Se=cr.exec(T)))if(J=Se[1]){if(Ke===9)if(be=E.getElementById(J)){if(be.id===J)return Q.call(D,be),D}else return D;else if(De&&(be=De.getElementById(J))&&bt.contains(E,be)&&be.id===J)return Q.call(D,be),D}else{if(Se[2])return Q.apply(D,E.getElementsByTagName(T)),D;if((J=Se[3])&&E.getElementsByClassName)return Q.apply(D,E.getElementsByClassName(J)),D}if(!Jt[T+" "]&&(!z||!z.test(T))){if(Ue=T,De=E,Ke===1&&(au.test(T)||ua.test(T))){for(De=lu.test(T)&&cu(E.parentNode)||E,(De!=E||!b.scope)&&((Te=E.getAttribute("id"))?Te=d.escapeSelector(Te):E.setAttribute("id",Te=ee)),He=da(T),ue=He.length;ue--;)He[ue]=(Te?"#"+Te:":scope")+" "+Hl(He[ue]);Ue=He.join(",")}try{return Q.apply(D,De.querySelectorAll(Ue)),D}catch(Ye){Jt(T,!0)}finally{Te===ee&&E.removeAttribute("id")}}}return dg(T.replace(ke,"$1"),E,D,I)}function Fl(){var T=[];function E(D,I){return T.push(D+" ")>u.cacheLength&&delete E[T.shift()],E[D+" "]=I}return E}function Ar(T){return T[ee]=!0,T}function wo(T){var E=v.createElement("fieldset");try{return!!T(E)}catch(D){return!1}finally{E.parentNode&&E.parentNode.removeChild(E),E=null}}function hw(T){return function(E){return H(E,"input")&&E.type===T}}function uw(T){return function(E){return(H(E,"input")||H(E,"button"))&&E.type===T}}function ug(T){return function(E){return"form"in E?E.parentNode&&E.disabled===!1?"label"in E?"label"in E.parentNode?E.parentNode.disabled===T:E.disabled===T:E.isDisabled===T||E.isDisabled!==!T&&cw(E)===T:E.disabled===T:"label"in E?E.disabled===T:!1}}function Ys(T){return Ar(function(E){return E=+E,Ar(function(D,I){for(var J,ue=T([],D.length,E),be=ue.length;be--;)D[J=ue[be]]&&(D[J]=!(I[J]=D[J]))})})}function cu(T){return T&&typeof T.getElementsByTagName!="undefined"&&T}function Hn(T){var E,D=T?T.ownerDocument||T:te;return D==v||D.nodeType!==9||!D.documentElement||(v=D,R=v.documentElement,_=!d.isXMLDoc(v),B=R.matches||R.webkitMatchesSelector||R.msMatchesSelector,R.msMatchesSelector&&te!=v&&(E=v.defaultView)&&E.top!==E&&E.addEventListener("unload",lw),b.getById=wo(function(I){return R.appendChild(I).id=d.expando,!v.getElementsByName||!v.getElementsByName(d.expando).length}),b.disconnectedMatch=wo(function(I){return B.call(I,"*")}),b.scope=wo(function(){return v.querySelectorAll(":scope")}),b.cssHas=wo(function(){try{return v.querySelector(":has(*,:jqfake)"),!1}catch(I){return!0}}),b.getById?(u.filter.ID=function(I){var J=I.replace(wn,$n);return function(ue){return ue.getAttribute("id")===J}},u.find.ID=function(I,J){if(typeof J.getElementById!="undefined"&&_){var ue=J.getElementById(I);return ue?[ue]:[]}}):(u.filter.ID=function(I){var J=I.replace(wn,$n);return function(ue){var be=typeof ue.getAttributeNode!="undefined"&&ue.getAttributeNode("id");return be&&be.value===J}},u.find.ID=function(I,J){if(typeof J.getElementById!="undefined"&&_){var ue,be,Te,Se=J.getElementById(I);if(Se){if(ue=Se.getAttributeNode("id"),ue&&ue.value===I)return[Se];for(Te=J.getElementsByName(I),be=0;Se=Te[be++];)if(ue=Se.getAttributeNode("id"),ue&&ue.value===I)return[Se]}return[]}}),u.find.TAG=function(I,J){return typeof J.getElementsByTagName!="undefined"?J.getElementsByTagName(I):J.querySelectorAll(I)},u.find.CLASS=function(I,J){if(typeof J.getElementsByClassName!="undefined"&&_)return J.getElementsByClassName(I)},z=[],wo(function(I){var J;R.appendChild(I).innerHTML="",I.querySelectorAll("[selected]").length||z.push("\\["+ie+"*(?:value|"+rn+")"),I.querySelectorAll("[id~="+ee+"-]").length||z.push("~="),I.querySelectorAll("a#"+ee+"+*").length||z.push(".#.+[+~]"),I.querySelectorAll(":checked").length||z.push(":checked"),J=v.createElement("input"),J.setAttribute("type","hidden"),I.appendChild(J).setAttribute("name","D"),R.appendChild(I).disabled=!0,I.querySelectorAll(":disabled").length!==2&&z.push(":enabled",":disabled"),J=v.createElement("input"),J.setAttribute("name",""),I.appendChild(J),I.querySelectorAll("[name='']").length||z.push("\\["+ie+"*name"+ie+"*="+ie+`*(?:''|"")`)}),b.cssHas||z.push(":has"),z=z.length&&new RegExp(z.join("|")),qt=function(I,J){if(I===J)return S=!0,0;var ue=!I.compareDocumentPosition-!J.compareDocumentPosition;return ue||(ue=(I.ownerDocument||I)==(J.ownerDocument||J)?I.compareDocumentPosition(J):1,ue&1||!b.sortDetached&&J.compareDocumentPosition(I)===ue?I===v||I.ownerDocument==te&&bt.contains(te,I)?-1:J===v||J.ownerDocument==te&&bt.contains(te,J)?1:g?a.call(g,I)-a.call(g,J):0:ue&4?-1:1)}),v}bt.matches=function(T,E){return bt(T,null,null,E)},bt.matchesSelector=function(T,E){if(Hn(T),_&&!Jt[E+" "]&&(!z||!z.test(E)))try{var D=B.call(T,E);if(D||b.disconnectedMatch||T.document&&T.document.nodeType!==11)return D}catch(I){Jt(E,!0)}return bt(E,v,null,[T]).length>0},bt.contains=function(T,E){return(T.ownerDocument||T)!=v&&Hn(T),d.contains(T,E)},bt.attr=function(T,E){(T.ownerDocument||T)!=v&&Hn(T);var D=u.attrHandle[E.toLowerCase()],I=D&&h.call(u.attrHandle,E.toLowerCase())?D(T,E,!_):void 0;return I!==void 0?I:T.getAttribute(E)},bt.error=function(T){throw new Error("Syntax error, unrecognized expression: "+T)},d.uniqueSort=function(T){var E,D=[],I=0,J=0;if(S=!b.sortStable,g=!b.sortStable&&n.call(T,0),Ee.call(T,qt),S){for(;E=T[J++];)E===T[J]&&(I=D.push(J));for(;I--;)ge.call(T,D[I],1)}return g=null,T},d.fn.uniqueSort=function(){return this.pushStack(d.uniqueSort(n.apply(this)))},u=d.expr={cacheLength:50,createPseudo:Ar,match:on,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(T){return T[1]=T[1].replace(wn,$n),T[3]=(T[3]||T[4]||T[5]||"").replace(wn,$n),T[2]==="~="&&(T[3]=" "+T[3]+" "),T.slice(0,4)},CHILD:function(T){return T[1]=T[1].toLowerCase(),T[1].slice(0,3)==="nth"?(T[3]||bt.error(T[0]),T[4]=+(T[4]?T[5]+(T[6]||1):2*(T[3]==="even"||T[3]==="odd")),T[5]=+(T[7]+T[8]||T[3]==="odd")):T[3]&&bt.error(T[0]),T},PSEUDO:function(T){var E,D=!T[6]&&T[2];return on.CHILD.test(T[0])?null:(T[3]?T[2]=T[4]||T[5]||"":D&&sn.test(D)&&(E=da(D,!0))&&(E=D.indexOf(")",D.length-E)-D.length)&&(T[0]=T[0].slice(0,E),T[2]=D.slice(0,E)),T.slice(0,3))}},filter:{TAG:function(T){var E=T.replace(wn,$n).toLowerCase();return T==="*"?function(){return!0}:function(D){return H(D,E)}},CLASS:function(T){var E=Ve[T+" "];return E||(E=new RegExp("(^|"+ie+")"+T+"("+ie+"|$)"))&&Ve(T,function(D){return E.test(typeof D.className=="string"&&D.className||typeof D.getAttribute!="undefined"&&D.getAttribute("class")||"")})},ATTR:function(T,E,D){return function(I){var J=bt.attr(I,T);return J==null?E==="!=":E?(J+="",E==="="?J===D:E==="!="?J!==D:E==="^="?D&&J.indexOf(D)===0:E==="*="?D&&J.indexOf(D)>-1:E==="$="?D&&J.slice(-D.length)===D:E==="~="?(" "+J.replace(ct," ")+" ").indexOf(D)>-1:E==="|="?J===D||J.slice(0,D.length+1)===D+"-":!1):!0}},CHILD:function(T,E,D,I,J){var ue=T.slice(0,3)!=="nth",be=T.slice(-4)!=="last",Te=E==="of-type";return I===1&&J===0?function(Se){return!!Se.parentNode}:function(Se,He,Ue){var De,Ke,Ye,$t,Ui,oi=ue!==be?"nextSibling":"previousSibling",fr=Se.parentNode,an=Te&&Se.nodeName.toLowerCase(),$o=!Ue&&!Te,Si=!1;if(fr){if(ue){for(;oi;){for(Ye=Se;Ye=Ye[oi];)if(Te?H(Ye,an):Ye.nodeType===1)return!1;Ui=oi=T==="only"&&!Ui&&"nextSibling"}return!0}if(Ui=[be?fr.firstChild:fr.lastChild],be&&$o){for(Ke=fr[ee]||(fr[ee]={}),De=Ke[T]||[],$t=De[0]===W&&De[1],Si=$t&&De[2],Ye=$t&&fr.childNodes[$t];Ye=++$t&&Ye&&Ye[oi]||(Si=$t=0)||Ui.pop();)if(Ye.nodeType===1&&++Si&&Ye===Se){Ke[T]=[W,$t,Si];break}}else if($o&&(Ke=Se[ee]||(Se[ee]={}),De=Ke[T]||[],$t=De[0]===W&&De[1],Si=$t),Si===!1)for(;(Ye=++$t&&Ye&&Ye[oi]||(Si=$t=0)||Ui.pop())&&!((Te?H(Ye,an):Ye.nodeType===1)&&++Si&&($o&&(Ke=Ye[ee]||(Ye[ee]={}),Ke[T]=[W,Si]),Ye===Se)););return Si-=J,Si===I||Si%I===0&&Si/I>=0}}},PSEUDO:function(T,E){var D,I=u.pseudos[T]||u.setFilters[T.toLowerCase()]||bt.error("unsupported pseudo: "+T);return I[ee]?I(E):I.length>1?(D=[T,T,"",E],u.setFilters.hasOwnProperty(T.toLowerCase())?Ar(function(J,ue){for(var be,Te=I(J,E),Se=Te.length;Se--;)be=a.call(J,Te[Se]),J[be]=!(ue[be]=Te[Se])}):function(J){return I(J,0,D)}):I}},pseudos:{not:Ar(function(T){var E=[],D=[],I=Ou(T.replace(ke,"$1"));return I[ee]?Ar(function(J,ue,be,Te){for(var Se,He=I(J,null,Te,[]),Ue=J.length;Ue--;)(Se=He[Ue])&&(J[Ue]=!(ue[Ue]=Se))}):function(J,ue,be){return E[0]=J,I(E,null,be,D),E[0]=null,!D.pop()}}),has:Ar(function(T){return function(E){return bt(T,E).length>0}}),contains:Ar(function(T){return T=T.replace(wn,$n),function(E){return(E.textContent||d.text(E)).indexOf(T)>-1}}),lang:Ar(function(T){return Oa.test(T||"")||bt.error("unsupported lang: "+T),T=T.replace(wn,$n).toLowerCase(),function(E){var D;do if(D=_?E.lang:E.getAttribute("xml:lang")||E.getAttribute("lang"))return D=D.toLowerCase(),D===T||D.indexOf(T+"-")===0;while((E=E.parentNode)&&E.nodeType===1);return!1}}),target:function(T){var E=i.location&&i.location.hash;return E&&E.slice(1)===T.id},root:function(T){return T===R},focus:function(T){return T===fw()&&v.hasFocus()&&!!(T.type||T.href||~T.tabIndex)},enabled:ug(!1),disabled:ug(!0),checked:function(T){return H(T,"input")&&!!T.checked||H(T,"option")&&!!T.selected},selected:function(T){return T.parentNode&&T.parentNode.selectedIndex,T.selected===!0},empty:function(T){for(T=T.firstChild;T;T=T.nextSibling)if(T.nodeType<6)return!1;return!0},parent:function(T){return!u.pseudos.empty(T)},header:function(T){return Fn.test(T.nodeName)},input:function(T){return Gn.test(T.nodeName)},button:function(T){return H(T,"input")&&T.type==="button"||H(T,"button")},text:function(T){var E;return H(T,"input")&&T.type==="text"&&((E=T.getAttribute("type"))==null||E.toLowerCase()==="text")},first:Ys(function(){return[0]}),last:Ys(function(T,E){return[E-1]}),eq:Ys(function(T,E,D){return[D<0?D+E:D]}),even:Ys(function(T,E){for(var D=0;DE?I=E:I=D;--I>=0;)T.push(I);return T}),gt:Ys(function(T,E,D){for(var I=D<0?D+E:D;++I1?function(E,D,I){for(var J=T.length;J--;)if(!T[J](E,D,I))return!1;return!0}:T[0]}function Ow(T,E,D){for(var I=0,J=E.length;I-1&&(be[Ue]=!(Te[Ue]=Ke))}}else Ye=Jl(Ye===Te?Ye.splice(oi,Ye.length):Ye),J?J(null,Te,Ye,He):Q.apply(Te,Ye)})}function uu(T){for(var E,D,I,J=T.length,ue=u.relative[T[0].type],be=ue||u.relative[" "],Te=ue?1:0,Se=Kl(function(De){return De===E},be,!0),He=Kl(function(De){return a.call(E,De)>-1},be,!0),Ue=[function(De,Ke,Ye){var $t=!ue&&(Ye||Ke!=p)||((E=Ke).nodeType?Se(De,Ke,Ye):He(De,Ke,Ye));return E=null,$t}];Te1&&fu(Ue),Te>1&&Hl(T.slice(0,Te-1).concat({value:T[Te-2].type===" "?"*":""})).replace(ke,"$1"),D,Te0,I=T.length>0,J=function(ue,be,Te,Se,He){var Ue,De,Ke,Ye=0,$t="0",Ui=ue&&[],oi=[],fr=p,an=ue||I&&u.find.TAG("*",He),$o=W+=fr==null?1:Math.random()||.1,Si=an.length;for(He&&(p=be==v||be||He);$t!==Si&&(Ue=an[$t])!=null;$t++){if(I&&Ue){for(De=0,!be&&Ue.ownerDocument!=v&&(Hn(Ue),Te=!_);Ke=T[De++];)if(Ke(Ue,be||v,Te)){Q.call(Se,Ue);break}He&&(W=$o)}D&&((Ue=!Ke&&Ue)&&Ye--,ue&&Ui.push(Ue))}if(Ye+=$t,D&&$t!==Ye){for(De=0;Ke=E[De++];)Ke(Ui,oi,be,Te);if(ue){if(Ye>0)for(;$t--;)Ui[$t]||oi[$t]||(oi[$t]=Oe.call(Se));oi=Jl(oi)}Q.apply(Se,oi),He&&!ue&&oi.length>0&&Ye+E.length>1&&d.uniqueSort(Se)}return He&&(W=$o,p=fr),Ui};return D?Ar(J):J}function Ou(T,E){var D,I=[],J=[],ue=Ie[T+" "];if(!ue){for(E||(E=da(T)),D=E.length;D--;)ue=uu(E[D]),ue[ee]?I.push(ue):J.push(ue);ue=Ie(T,dw(J,I)),ue.selector=T}return ue}function dg(T,E,D,I){var J,ue,be,Te,Se,He=typeof T=="function"&&T,Ue=!I&&da(T=He.selector||T);if(D=D||[],Ue.length===1){if(ue=Ue[0]=Ue[0].slice(0),ue.length>2&&(be=ue[0]).type==="ID"&&E.nodeType===9&&_&&u.relative[ue[1].type]){if(E=(u.find.ID(be.matches[0].replace(wn,$n),E)||[])[0],E)He&&(E=E.parentNode);else return D;T=T.slice(ue.shift().value.length)}for(J=on.needsContext.test(T)?0:ue.length;J--&&(be=ue[J],!u.relative[Te=be.type]);)if((Se=u.find[Te])&&(I=Se(be.matches[0].replace(wn,$n),lu.test(ue[0].type)&&cu(E.parentNode)||E))){if(ue.splice(J,1),T=I.length&&Hl(ue),!T)return Q.apply(D,I),D;break}}return(He||Ou(T,Ue))(I,E,!_,D,!E||lu.test(T)&&cu(E.parentNode)||E),D}b.sortStable=ee.split("").sort(qt).join("")===ee,Hn(),b.sortDetached=wo(function(T){return T.compareDocumentPosition(v.createElement("fieldset"))&1}),d.find=bt,d.expr[":"]=d.expr.pseudos,d.unique=d.uniqueSort,bt.compile=Ou,bt.select=dg,bt.setDocument=Hn,bt.tokenize=da,bt.escape=d.escapeSelector,bt.getText=d.text,bt.isXML=d.isXMLDoc,bt.selectors=d.expr,bt.support=d.support,bt.uniqueSort=d.uniqueSort})();var ce=function(c,u,p){for(var g=[],S=p!==void 0;(c=c[u])&&c.nodeType!==9;)if(c.nodeType===1){if(S&&d(c).is(p))break;g.push(c)}return g},Me=function(c,u){for(var p=[];c;c=c.nextSibling)c.nodeType===1&&c!==u&&p.push(c);return p},je=d.expr.match.needsContext,We=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function dt(c,u,p){return y(u)?d.grep(c,function(g,S){return!!u.call(g,S,g)!==p}):u.nodeType?d.grep(c,function(g){return g===u!==p}):typeof u!="string"?d.grep(c,function(g){return a.call(u,g)>-1!==p}):d.filter(u,c,p)}d.filter=function(c,u,p){var g=u[0];return p&&(c=":not("+c+")"),u.length===1&&g.nodeType===1?d.find.matchesSelector(g,c)?[g]:[]:d.find.matches(c,d.grep(u,function(S){return S.nodeType===1}))},d.fn.extend({find:function(c){var u,p,g=this.length,S=this;if(typeof c!="string")return this.pushStack(d(c).filter(function(){for(u=0;u1?d.uniqueSort(p):p},filter:function(c){return this.pushStack(dt(this,c||[],!1))},not:function(c){return this.pushStack(dt(this,c||[],!0))},is:function(c){return!!dt(this,typeof c=="string"&&je.test(c)?d(c):c||[],!1).length}});var nt,Ci=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,ft=d.fn.init=function(c,u,p){var g,S;if(!c)return this;if(p=p||nt,typeof c=="string")if(c[0]==="<"&&c[c.length-1]===">"&&c.length>=3?g=[null,c,null]:g=Ci.exec(c),g&&(g[1]||!u))if(g[1]){if(u=u instanceof d?u[0]:u,d.merge(this,d.parseHTML(g[1],u&&u.nodeType?u.ownerDocument||u:X,!0)),We.test(g[1])&&d.isPlainObject(u))for(g in u)y(this[g])?this[g](u[g]):this.attr(g,u[g]);return this}else return S=X.getElementById(g[2]),S&&(this[0]=S,this.length=1),this;else return!u||u.jquery?(u||p).find(c):this.constructor(u).find(c);else{if(c.nodeType)return this[0]=c,this.length=1,this;if(y(c))return p.ready!==void 0?p.ready(c):c(d)}return d.makeArray(c,this)};ft.prototype=d.fn,nt=d(X);var Ai=/^(?:parents|prev(?:Until|All))/,Gr={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({has:function(c){var u=d(c,this),p=u.length;return this.filter(function(){for(var g=0;g-1:p.nodeType===1&&d.find.matchesSelector(p,c))){Q.push(p);break}}return this.pushStack(Q.length>1?d.uniqueSort(Q):Q)},index:function(c){return c?typeof c=="string"?a.call(d(c),this[0]):a.call(this,c.jquery?c[0]:c):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(c,u){return this.pushStack(d.uniqueSort(d.merge(this.get(),d(c,u))))},addBack:function(c){return this.add(c==null?this.prevObject:this.prevObject.filter(c))}});function $r(c,u){for(;(c=c[u])&&c.nodeType!==1;);return c}d.each({parent:function(c){var u=c.parentNode;return u&&u.nodeType!==11?u:null},parents:function(c){return ce(c,"parentNode")},parentsUntil:function(c,u,p){return ce(c,"parentNode",p)},next:function(c){return $r(c,"nextSibling")},prev:function(c){return $r(c,"previousSibling")},nextAll:function(c){return ce(c,"nextSibling")},prevAll:function(c){return ce(c,"previousSibling")},nextUntil:function(c,u,p){return ce(c,"nextSibling",p)},prevUntil:function(c,u,p){return ce(c,"previousSibling",p)},siblings:function(c){return Me((c.parentNode||{}).firstChild,c)},children:function(c){return Me(c.firstChild)},contents:function(c){return c.contentDocument!=null&&r(c.contentDocument)?c.contentDocument:(H(c,"template")&&(c=c.content||c),d.merge([],c.childNodes))}},function(c,u){d.fn[c]=function(p,g){var S=d.map(this,u,p);return c.slice(-5)!=="Until"&&(g=p),g&&typeof g=="string"&&(S=d.filter(g,S)),this.length>1&&(Gr[c]||d.uniqueSort(S),Ai.test(c)&&S.reverse()),this.pushStack(S)}});var Oi=/[^\x20\t\r\n\f]+/g;function xs(c){var u={};return d.each(c.match(Oi)||[],function(p,g){u[g]=!0}),u}d.Callbacks=function(c){c=typeof c=="string"?xs(c):d.extend({},c);var u,p,g,S,Q=[],v=[],R=-1,_=function(){for(S=S||c.once,g=u=!0;v.length;R=-1)for(p=v.shift();++R-1;)Q.splice(W,1),W<=R&&R--}),this},has:function(B){return B?d.inArray(B,Q)>-1:Q.length>0},empty:function(){return Q&&(Q=[]),this},disable:function(){return S=v=[],Q=p="",this},disabled:function(){return!Q},lock:function(){return S=v=[],!p&&!u&&(Q=p=""),this},locked:function(){return!!S},fireWith:function(B,ee){return S||(ee=ee||[],ee=[B,ee.slice?ee.slice():ee],v.push(ee),u||_()),this},fire:function(){return z.fireWith(this,arguments),this},fired:function(){return!!g}};return z};function Pr(c){return c}function xn(c){throw c}function kr(c,u,p,g){var S;try{c&&y(S=c.promise)?S.call(c).done(u).fail(p):c&&y(S=c.then)?S.call(c,u,p):u.apply(void 0,[c].slice(g))}catch(Q){p.apply(void 0,[Q])}}d.extend({Deferred:function(c){var u=[["notify","progress",d.Callbacks("memory"),d.Callbacks("memory"),2],["resolve","done",d.Callbacks("once memory"),d.Callbacks("once memory"),0,"resolved"],["reject","fail",d.Callbacks("once memory"),d.Callbacks("once memory"),1,"rejected"]],p="pending",g={state:function(){return p},always:function(){return S.done(arguments).fail(arguments),this},catch:function(Q){return g.then(null,Q)},pipe:function(){var Q=arguments;return d.Deferred(function(v){d.each(u,function(R,_){var z=y(Q[_[4]])&&Q[_[4]];S[_[1]](function(){var B=z&&z.apply(this,arguments);B&&y(B.promise)?B.promise().progress(v.notify).done(v.resolve).fail(v.reject):v[_[0]+"With"](this,z?[B]:arguments)})}),Q=null}).promise()},then:function(Q,v,R){var _=0;function z(B,ee,W,oe){return function(){var Ve=this,st=arguments,Ie=function(){var qt,rn;if(!(B<_)){if(qt=W.apply(Ve,st),qt===ee.promise())throw new TypeError("Thenable self-resolution");rn=qt&&(typeof qt=="object"||typeof qt=="function")&&qt.then,y(rn)?oe?rn.call(qt,z(_,ee,Pr,oe),z(_,ee,xn,oe)):(_++,rn.call(qt,z(_,ee,Pr,oe),z(_,ee,xn,oe),z(_,ee,Pr,ee.notifyWith))):(W!==Pr&&(Ve=void 0,st=[qt]),(oe||ee.resolveWith)(Ve,st))}},Jt=oe?Ie:function(){try{Ie()}catch(qt){d.Deferred.exceptionHook&&d.Deferred.exceptionHook(qt,Jt.error),B+1>=_&&(W!==xn&&(Ve=void 0,st=[qt]),ee.rejectWith(Ve,st))}};B?Jt():(d.Deferred.getErrorHook?Jt.error=d.Deferred.getErrorHook():d.Deferred.getStackHook&&(Jt.error=d.Deferred.getStackHook()),i.setTimeout(Jt))}}return d.Deferred(function(B){u[0][3].add(z(0,B,y(R)?R:Pr,B.notifyWith)),u[1][3].add(z(0,B,y(Q)?Q:Pr)),u[2][3].add(z(0,B,y(v)?v:xn))}).promise()},promise:function(Q){return Q!=null?d.extend(Q,g):g}},S={};return d.each(u,function(Q,v){var R=v[2],_=v[5];g[v[1]]=R.add,_&&R.add(function(){p=_},u[3-Q][2].disable,u[3-Q][3].disable,u[0][2].lock,u[0][3].lock),R.add(v[3].fire),S[v[0]]=function(){return S[v[0]+"With"](this===S?void 0:this,arguments),this},S[v[0]+"With"]=R.fireWith}),g.promise(S),c&&c.call(S,S),S},when:function(c){var u=arguments.length,p=u,g=Array(p),S=n.call(arguments),Q=d.Deferred(),v=function(R){return function(_){g[R]=this,S[R]=arguments.length>1?n.call(arguments):_,--u||Q.resolveWith(g,S)}};if(u<=1&&(kr(c,Q.done(v(p)).resolve,Q.reject,!u),Q.state()==="pending"||y(S[p]&&S[p].then)))return Q.then();for(;p--;)kr(S[p],v(p),Q.reject);return Q.promise()}});var Vn=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;d.Deferred.exceptionHook=function(c,u){i.console&&i.console.warn&&c&&Vn.test(c.name)&&i.console.warn("jQuery.Deferred exception: "+c.message,c.stack,u)},d.readyException=function(c){i.setTimeout(function(){throw c})};var Ni=d.Deferred();d.fn.ready=function(c){return Ni.then(c).catch(function(u){d.readyException(u)}),this},d.extend({isReady:!1,readyWait:1,ready:function(c){(c===!0?--d.readyWait:d.isReady)||(d.isReady=!0,!(c!==!0&&--d.readyWait>0)&&Ni.resolveWith(X,[d]))}}),d.ready.then=Ni.then;function Ft(){X.removeEventListener("DOMContentLoaded",Ft),i.removeEventListener("load",Ft),d.ready()}X.readyState==="complete"||X.readyState!=="loading"&&!X.documentElement.doScroll?i.setTimeout(d.ready):(X.addEventListener("DOMContentLoaded",Ft),i.addEventListener("load",Ft));var di=function(c,u,p,g,S,Q,v){var R=0,_=c.length,z=p==null;if(q(p)==="object"){S=!0;for(R in p)di(c,u,R,p[R],!0,Q,v)}else if(g!==void 0&&(S=!0,y(g)||(v=!0),z&&(v?(u.call(c,g),u=null):(z=u,u=function(B,ee,W){return z.call(d(B),W)})),u))for(;R<_;R++)u(c[R],p,v?g:g.call(c[R],R,u(c[R],p)));return S?c:z?u.call(c):_?u(c[0],p):Q},Tr=/^-ms-/,Xr=/-([a-z])/g;function Fr(c,u){return u.toUpperCase()}function Ht(c){return c.replace(Tr,"ms-").replace(Xr,Fr)}var nr=function(c){return c.nodeType===1||c.nodeType===9||!+c.nodeType};function Hr(){this.expando=d.expando+Hr.uid++}Hr.uid=1,Hr.prototype={cache:function(c){var u=c[this.expando];return u||(u={},nr(c)&&(c.nodeType?c[this.expando]=u:Object.defineProperty(c,this.expando,{value:u,configurable:!0}))),u},set:function(c,u,p){var g,S=this.cache(c);if(typeof u=="string")S[Ht(u)]=p;else for(g in u)S[Ht(g)]=u[g];return S},get:function(c,u){return u===void 0?this.cache(c):c[this.expando]&&c[this.expando][Ht(u)]},access:function(c,u,p){return u===void 0||u&&typeof u=="string"&&p===void 0?this.get(c,u):(this.set(c,u,p),p!==void 0?p:u)},remove:function(c,u){var p,g=c[this.expando];if(g!==void 0){if(u!==void 0)for(Array.isArray(u)?u=u.map(Ht):(u=Ht(u),u=u in g?[u]:u.match(Oi)||[]),p=u.length;p--;)delete g[u[p]];(u===void 0||d.isEmptyObject(g))&&(c.nodeType?c[this.expando]=void 0:delete c[this.expando])}},hasData:function(c){var u=c[this.expando];return u!==void 0&&!d.isEmptyObject(u)}};var we=new Hr,Xt=new Hr,_r=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,pi=/[A-Z]/g;function Dn(c){return c==="true"?!0:c==="false"?!1:c==="null"?null:c===+c+""?+c:_r.test(c)?JSON.parse(c):c}function Wn(c,u,p){var g;if(p===void 0&&c.nodeType===1)if(g="data-"+u.replace(pi,"-$&").toLowerCase(),p=c.getAttribute(g),typeof p=="string"){try{p=Dn(p)}catch(S){}Xt.set(c,u,p)}else p=void 0;return p}d.extend({hasData:function(c){return Xt.hasData(c)||we.hasData(c)},data:function(c,u,p){return Xt.access(c,u,p)},removeData:function(c,u){Xt.remove(c,u)},_data:function(c,u,p){return we.access(c,u,p)},_removeData:function(c,u){we.remove(c,u)}}),d.fn.extend({data:function(c,u){var p,g,S,Q=this[0],v=Q&&Q.attributes;if(c===void 0){if(this.length&&(S=Xt.get(Q),Q.nodeType===1&&!we.get(Q,"hasDataAttrs"))){for(p=v.length;p--;)v[p]&&(g=v[p].name,g.indexOf("data-")===0&&(g=Ht(g.slice(5)),Wn(Q,g,S[g])));we.set(Q,"hasDataAttrs",!0)}return S}return typeof c=="object"?this.each(function(){Xt.set(this,c)}):di(this,function(R){var _;if(Q&&R===void 0)return _=Xt.get(Q,c),_!==void 0||(_=Wn(Q,c),_!==void 0)?_:void 0;this.each(function(){Xt.set(this,c,R)})},null,u,arguments.length>1,null,!0)},removeData:function(c){return this.each(function(){Xt.remove(this,c)})}}),d.extend({queue:function(c,u,p){var g;if(c)return u=(u||"fx")+"queue",g=we.get(c,u),p&&(!g||Array.isArray(p)?g=we.access(c,u,d.makeArray(p)):g.push(p)),g||[]},dequeue:function(c,u){u=u||"fx";var p=d.queue(c,u),g=p.length,S=p.shift(),Q=d._queueHooks(c,u),v=function(){d.dequeue(c,u)};S==="inprogress"&&(S=p.shift(),g--),S&&(u==="fx"&&p.unshift("inprogress"),delete Q.stop,S.call(c,v,Q)),!g&&Q&&Q.empty.fire()},_queueHooks:function(c,u){var p=u+"queueHooks";return we.get(c,p)||we.access(c,p,{empty:d.Callbacks("once memory").add(function(){we.remove(c,[u+"queue",p])})})}}),d.fn.extend({queue:function(c,u){var p=2;return typeof c!="string"&&(u=c,c="fx",p--),arguments.length\x20\t\r\n\f]*)/i,Jr=/^$|^module$|\/(?:java|ecma)script/i;(function(){var c=X.createDocumentFragment(),u=c.appendChild(X.createElement("div")),p=X.createElement("input");p.setAttribute("type","radio"),p.setAttribute("checked","checked"),p.setAttribute("name","t"),u.appendChild(p),b.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,u.innerHTML="",b.noCloneChecked=!!u.cloneNode(!0).lastChild.defaultValue,u.innerHTML="",b.option=!!u.lastChild})();var Kt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Kt.tbody=Kt.tfoot=Kt.colgroup=Kt.caption=Kt.thead,Kt.th=Kt.td,b.option||(Kt.optgroup=Kt.option=[1,""]);function Bt(c,u){var p;return typeof c.getElementsByTagName!="undefined"?p=c.getElementsByTagName(u||"*"):typeof c.querySelectorAll!="undefined"?p=c.querySelectorAll(u||"*"):p=[],u===void 0||u&&H(c,u)?d.merge([c],p):p}function kt(c,u){for(var p=0,g=c.length;p-1){S&&S.push(Q);continue}if(z=Yi(Q),v=Bt(ee.appendChild(Q),"script"),z&&kt(v),p)for(B=0;Q=v[B++];)Jr.test(Q.type||"")&&p.push(Q)}return ee}var vs=/^([^.]*)(?:\.(.+)|)/;function or(){return!0}function Rr(){return!1}function In(c,u,p,g,S,Q){var v,R;if(typeof u=="object"){typeof p!="string"&&(g=g||p,p=void 0);for(R in u)In(c,R,p,g,u[R],Q);return c}if(g==null&&S==null?(S=p,g=p=void 0):S==null&&(typeof p=="string"?(S=g,g=void 0):(S=g,g=p,p=void 0)),S===!1)S=Rr;else if(!S)return c;return Q===1&&(v=S,S=function(_){return d().off(_),v.apply(this,arguments)},S.guid=v.guid||(v.guid=d.guid++)),c.each(function(){d.event.add(this,u,S,g,p)})}d.event={global:{},add:function(c,u,p,g,S){var Q,v,R,_,z,B,ee,W,oe,Ve,st,Ie=we.get(c);if(nr(c))for(p.handler&&(Q=p,p=Q.handler,S=Q.selector),S&&d.find.matchesSelector(gi,S),p.guid||(p.guid=d.guid++),(_=Ie.events)||(_=Ie.events=Object.create(null)),(v=Ie.handle)||(v=Ie.handle=function(Jt){return typeof d!="undefined"&&d.event.triggered!==Jt.type?d.event.dispatch.apply(c,arguments):void 0}),u=(u||"").match(Oi)||[""],z=u.length;z--;)R=vs.exec(u[z])||[],oe=st=R[1],Ve=(R[2]||"").split(".").sort(),oe&&(ee=d.event.special[oe]||{},oe=(S?ee.delegateType:ee.bindType)||oe,ee=d.event.special[oe]||{},B=d.extend({type:oe,origType:st,data:g,handler:p,guid:p.guid,selector:S,needsContext:S&&d.expr.match.needsContext.test(S),namespace:Ve.join(".")},Q),(W=_[oe])||(W=_[oe]=[],W.delegateCount=0,(!ee.setup||ee.setup.call(c,g,Ve,v)===!1)&&c.addEventListener&&c.addEventListener(oe,v)),ee.add&&(ee.add.call(c,B),B.handler.guid||(B.handler.guid=p.guid)),S?W.splice(W.delegateCount++,0,B):W.push(B),d.event.global[oe]=!0)},remove:function(c,u,p,g,S){var Q,v,R,_,z,B,ee,W,oe,Ve,st,Ie=we.hasData(c)&&we.get(c);if(!(!Ie||!(_=Ie.events))){for(u=(u||"").match(Oi)||[""],z=u.length;z--;){if(R=vs.exec(u[z])||[],oe=st=R[1],Ve=(R[2]||"").split(".").sort(),!oe){for(oe in _)d.event.remove(c,oe+u[z],p,g,!0);continue}for(ee=d.event.special[oe]||{},oe=(g?ee.delegateType:ee.bindType)||oe,W=_[oe]||[],R=R[2]&&new RegExp("(^|\\.)"+Ve.join("\\.(?:.*\\.|)")+"(\\.|$)"),v=Q=W.length;Q--;)B=W[Q],(S||st===B.origType)&&(!p||p.guid===B.guid)&&(!R||R.test(B.namespace))&&(!g||g===B.selector||g==="**"&&B.selector)&&(W.splice(Q,1),B.selector&&W.delegateCount--,ee.remove&&ee.remove.call(c,B));v&&!W.length&&((!ee.teardown||ee.teardown.call(c,Ve,Ie.handle)===!1)&&d.removeEvent(c,oe,Ie.handle),delete _[oe])}d.isEmptyObject(_)&&we.remove(c,"handle events")}},dispatch:function(c){var u,p,g,S,Q,v,R=new Array(arguments.length),_=d.event.fix(c),z=(we.get(this,"events")||Object.create(null))[_.type]||[],B=d.event.special[_.type]||{};for(R[0]=_,u=1;u=1)){for(;z!==this;z=z.parentNode||this)if(z.nodeType===1&&!(c.type==="click"&&z.disabled===!0)){for(Q=[],v={},p=0;p<_;p++)g=u[p],S=g.selector+" ",v[S]===void 0&&(v[S]=g.needsContext?d(S,this).index(z)>-1:d.find(S,this,null,[z]).length),v[S]&&Q.push(g);Q.length&&R.push({elem:z,handlers:Q})}}return z=this,_\s*$/g;function ws(c,u){return H(c,"table")&&H(u.nodeType!==11?u:u.firstChild,"tr")&&d(c).children("tbody")[0]||c}function $s(c){return c.type=(c.getAttribute("type")!==null)+"/"+c.type,c}function xo(c){return(c.type||"").slice(0,5)==="true/"?c.type=c.type.slice(5):c.removeAttribute("type"),c}function Zi(c,u){var p,g,S,Q,v,R,_;if(u.nodeType===1){if(we.hasData(c)&&(Q=we.get(c),_=Q.events,_)){we.remove(u,"handle events");for(S in _)for(p=0,g=_[S].length;p1&&typeof oe=="string"&&!b.checkClone&&ar.test(oe))return c.each(function(st){var Ie=c.eq(st);Ve&&(u[0]=oe.call(this,st,Ie.html())),Cr(Ie,u,p,g)});if(ee&&(S=Qo(u,c[0].ownerDocument,!1,c,g),Q=S.firstChild,S.childNodes.length===1&&(S=Q),Q||g)){for(v=d.map(Bt(S,"script"),$s),R=v.length;B0&&kt(v,!_&&Bt(c,"script")),R},cleanData:function(c){for(var u,p,g,S=d.event.special,Q=0;(p=c[Q])!==void 0;Q++)if(nr(p)){if(u=p[we.expando]){if(u.events)for(g in u.events)S[g]?d.event.remove(p,g):d.removeEvent(p,g,u.handle);p[we.expando]=void 0}p[Xt.expando]&&(p[Xt.expando]=void 0)}}}),d.fn.extend({detach:function(c){return Ps(this,c,!0)},remove:function(c){return Ps(this,c)},text:function(c){return di(this,function(u){return u===void 0?d.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=u)})},null,c,arguments.length)},append:function(){return Cr(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=ws(this,c);u.appendChild(c)}})},prepend:function(){return Cr(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=ws(this,c);u.insertBefore(c,u.firstChild)}})},before:function(){return Cr(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this)})},after:function(){return Cr(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this.nextSibling)})},empty:function(){for(var c,u=0;(c=this[u])!=null;u++)c.nodeType===1&&(d.cleanData(Bt(c,!1)),c.textContent="");return this},clone:function(c,u){return c=c==null?!1:c,u=u==null?c:u,this.map(function(){return d.clone(this,c,u)})},html:function(c){return di(this,function(u){var p=this[0]||{},g=0,S=this.length;if(u===void 0&&p.nodeType===1)return p.innerHTML;if(typeof u=="string"&&!Ei.test(u)&&!Kt[(So.exec(u)||["",""])[1].toLowerCase()]){u=d.htmlPrefilter(u);try{for(;g=0&&(_+=Math.max(0,Math.ceil(c["offset"+u[0].toUpperCase()+u.slice(1)]-Q-_-R-.5))||0),_+z}function Nl(c,u,p){var g=Pe(c),S=!b.boxSizingReliable()||p,Q=S&&d.css(c,"boxSizing",!1,g)==="border-box",v=Q,R=xe(c,u,g),_="offset"+u[0].toUpperCase()+u.slice(1);if(Bn.test(R)){if(!p)return R;R="auto"}return(!b.boxSizingReliable()&&Q||!b.reliableTrDimensions()&&H(c,"tr")||R==="auto"||!parseFloat(R)&&d.css(c,"display",!1,g)==="inline")&&c.getClientRects().length&&(Q=d.css(c,"boxSizing",!1,g)==="border-box",v=_ in c,v&&(R=c[_])),R=parseFloat(R)||0,R+_s(c,u,p||(Q?"border":"content"),v,g,R)+"px"}d.extend({cssHooks:{opacity:{get:function(c,u){if(u){var p=xe(c,"opacity");return p===""?"1":p}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!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,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(c,u,p,g){if(!(!c||c.nodeType===3||c.nodeType===8||!c.style)){var S,Q,v,R=Ht(u),_=ks.test(u),z=c.style;if(_||(u=lr(R)),v=d.cssHooks[u]||d.cssHooks[R],p!==void 0){if(Q=typeof p,Q==="string"&&(S=sr.exec(p))&&S[1]&&(p=jn(c,u,S),Q="number"),p==null||p!==p)return;Q==="number"&&!_&&(p+=S&&S[3]||(d.cssNumber[R]?"":"px")),!b.clearCloneStyle&&p===""&&u.indexOf("background")===0&&(z[u]="inherit"),(!v||!("set"in v)||(p=v.set(c,p,g))!==void 0)&&(_?z.setProperty(u,p):z[u]=p)}else return v&&"get"in v&&(S=v.get(c,!1,g))!==void 0?S:z[u]}},css:function(c,u,p,g){var S,Q,v,R=Ht(u),_=ks.test(u);return _||(u=lr(R)),v=d.cssHooks[u]||d.cssHooks[R],v&&"get"in v&&(S=v.get(c,!0,p)),S===void 0&&(S=xe(c,u,g)),S==="normal"&&u in Ts&&(S=Ts[u]),p===""||p?(Q=parseFloat(S),p===!0||isFinite(Q)?Q||0:S):S}}),d.each(["height","width"],function(c,u){d.cssHooks[u]={get:function(p,g,S){if(g)return tn.test(d.css(p,"display"))&&(!p.getClientRects().length||!p.getBoundingClientRect().width)?A(p,_t,function(){return Nl(p,u,S)}):Nl(p,u,S)},set:function(p,g,S){var Q,v=Pe(p),R=!b.scrollboxSize()&&v.position==="absolute",_=R||S,z=_&&d.css(p,"boxSizing",!1,v)==="border-box",B=S?_s(p,u,S,z,v):0;return z&&R&&(B-=Math.ceil(p["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(v[u])-_s(p,u,"border",!1,v)-.5)),B&&(Q=sr.exec(g))&&(Q[3]||"px")!=="px"&&(p.style[u]=g,g=d.css(p,u)),Xs(p,g,B)}}}),d.cssHooks.marginLeft=pt(b.reliableMarginLeft,function(c,u){if(u)return(parseFloat(xe(c,"marginLeft"))||c.getBoundingClientRect().left-A(c,{marginLeft:0},function(){return c.getBoundingClientRect().left}))+"px"}),d.each({margin:"",padding:"",border:"Width"},function(c,u){d.cssHooks[c+u]={expand:function(p){for(var g=0,S={},Q=typeof p=="string"?p.split(" "):[p];g<4;g++)S[c+mi[g]+u]=Q[g]||Q[g-2]||Q[0];return S}},c!=="margin"&&(d.cssHooks[c+u].set=Xs)}),d.fn.extend({css:function(c,u){return di(this,function(p,g,S){var Q,v,R={},_=0;if(Array.isArray(g)){for(Q=Pe(p),v=g.length;_1)}});function ni(c,u,p,g,S){return new ni.prototype.init(c,u,p,g,S)}d.Tween=ni,ni.prototype={constructor:ni,init:function(c,u,p,g,S,Q){this.elem=c,this.prop=p,this.easing=S||d.easing._default,this.options=u,this.start=this.now=this.cur(),this.end=g,this.unit=Q||(d.cssNumber[p]?"":"px")},cur:function(){var c=ni.propHooks[this.prop];return c&&c.get?c.get(this):ni.propHooks._default.get(this)},run:function(c){var u,p=ni.propHooks[this.prop];return this.options.duration?this.pos=u=d.easing[this.easing](c,this.options.duration*c,0,1,this.options.duration):this.pos=u=c,this.now=(this.end-this.start)*u+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),p&&p.set?p.set(this):ni.propHooks._default.set(this),this}},ni.prototype.init.prototype=ni.prototype,ni.propHooks={_default:{get:function(c){var u;return c.elem.nodeType!==1||c.elem[c.prop]!=null&&c.elem.style[c.prop]==null?c.elem[c.prop]:(u=d.css(c.elem,c.prop,""),!u||u==="auto"?0:u)},set:function(c){d.fx.step[c.prop]?d.fx.step[c.prop](c):c.elem.nodeType===1&&(d.cssHooks[c.prop]||c.elem.style[lr(c.prop)]!=null)?d.style(c.elem,c.prop,c.now+c.unit):c.elem[c.prop]=c.now}}},ni.propHooks.scrollTop=ni.propHooks.scrollLeft={set:function(c){c.elem.nodeType&&c.elem.parentNode&&(c.elem[c.prop]=c.now)}},d.easing={linear:function(c){return c},swing:function(c){return .5-Math.cos(c*Math.PI)/2},_default:"swing"},d.fx=ni.prototype.init,d.fx.step={};var w,C,k=/^(?:toggle|show|hide)$/,U=/queueHooks$/;function M(){C&&(X.hidden===!1&&i.requestAnimationFrame?i.requestAnimationFrame(M):i.setTimeout(M,d.fx.interval),d.fx.tick())}function Z(){return i.setTimeout(function(){w=void 0}),w=Date.now()}function K(c,u){var p,g=0,S={height:c};for(u=u?1:0;g<4;g+=2-u)p=mi[g],S["margin"+p]=S["padding"+p]=c;return u&&(S.opacity=S.width=c),S}function re(c,u,p){for(var g,S=(se.tweeners[u]||[]).concat(se.tweeners["*"]),Q=0,v=S.length;Q1)},removeAttr:function(c){return this.each(function(){d.removeAttr(this,c)})}}),d.extend({attr:function(c,u,p){var g,S,Q=c.nodeType;if(!(Q===3||Q===8||Q===2)){if(typeof c.getAttribute=="undefined")return d.prop(c,u,p);if((Q!==1||!d.isXMLDoc(c))&&(S=d.attrHooks[u.toLowerCase()]||(d.expr.match.bool.test(u)?$e:void 0)),p!==void 0){if(p===null){d.removeAttr(c,u);return}return S&&"set"in S&&(g=S.set(c,p,u))!==void 0?g:(c.setAttribute(u,p+""),p)}return S&&"get"in S&&(g=S.get(c,u))!==null?g:(g=d.find.attr(c,u),g==null?void 0:g)}},attrHooks:{type:{set:function(c,u){if(!b.radioValue&&u==="radio"&&H(c,"input")){var p=c.value;return c.setAttribute("type",u),p&&(c.value=p),u}}}},removeAttr:function(c,u){var p,g=0,S=u&&u.match(Oi);if(S&&c.nodeType===1)for(;p=S[g++];)c.removeAttribute(p)}}),$e={set:function(c,u,p){return u===!1?d.removeAttr(c,p):c.setAttribute(p,p),p}},d.each(d.expr.match.bool.source.match(/\w+/g),function(c,u){var p=qe[u]||d.find.attr;qe[u]=function(g,S,Q){var v,R,_=S.toLowerCase();return Q||(R=qe[_],qe[_]=v,v=p(g,S,Q)!=null?_:null,qe[_]=R),v}});var ht=/^(?:input|select|textarea|button)$/i,Ot=/^(?:a|area)$/i;d.fn.extend({prop:function(c,u){return di(this,d.prop,c,u,arguments.length>1)},removeProp:function(c){return this.each(function(){delete this[d.propFix[c]||c]})}}),d.extend({prop:function(c,u,p){var g,S,Q=c.nodeType;if(!(Q===3||Q===8||Q===2))return(Q!==1||!d.isXMLDoc(c))&&(u=d.propFix[u]||u,S=d.propHooks[u]),p!==void 0?S&&"set"in S&&(g=S.set(c,p,u))!==void 0?g:c[u]=p:S&&"get"in S&&(g=S.get(c,u))!==null?g:c[u]},propHooks:{tabIndex:{get:function(c){var u=d.find.attr(c,"tabindex");return u?parseInt(u,10):ht.test(c.nodeName)||Ot.test(c.nodeName)&&c.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),b.optSelected||(d.propHooks.selected={get:function(c){var u=c.parentNode;return u&&u.parentNode&&u.parentNode.selectedIndex,null},set:function(c){var u=c.parentNode;u&&(u.selectedIndex,u.parentNode&&u.parentNode.selectedIndex)}}),d.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){d.propFix[this.toLowerCase()]=this});function yt(c){var u=c.match(Oi)||[];return u.join(" ")}function gt(c){return c.getAttribute&&c.getAttribute("class")||""}function si(c){return Array.isArray(c)?c:typeof c=="string"?c.match(Oi)||[]:[]}d.fn.extend({addClass:function(c){var u,p,g,S,Q,v;return y(c)?this.each(function(R){d(this).addClass(c.call(this,R,gt(this)))}):(u=si(c),u.length?this.each(function(){if(g=gt(this),p=this.nodeType===1&&" "+yt(g)+" ",p){for(Q=0;Q-1;)p=p.replace(" "+S+" "," ");v=yt(p),g!==v&&this.setAttribute("class",v)}}):this):this.attr("class","")},toggleClass:function(c,u){var p,g,S,Q,v=typeof c,R=v==="string"||Array.isArray(c);return y(c)?this.each(function(_){d(this).toggleClass(c.call(this,_,gt(this),u),u)}):typeof u=="boolean"&&R?u?this.addClass(c):this.removeClass(c):(p=si(c),this.each(function(){if(R)for(Q=d(this),S=0;S-1)return!0;return!1}});var Rs=/\r/g;d.fn.extend({val:function(c){var u,p,g,S=this[0];return arguments.length?(g=y(c),this.each(function(Q){var v;this.nodeType===1&&(g?v=c.call(this,Q,d(this).val()):v=c,v==null?v="":typeof v=="number"?v+="":Array.isArray(v)&&(v=d.map(v,function(R){return R==null?"":R+""})),u=d.valHooks[this.type]||d.valHooks[this.nodeName.toLowerCase()],(!u||!("set"in u)||u.set(this,v,"value")===void 0)&&(this.value=v))})):S?(u=d.valHooks[S.type]||d.valHooks[S.nodeName.toLowerCase()],u&&"get"in u&&(p=u.get(S,"value"))!==void 0?p:(p=S.value,typeof p=="string"?p.replace(Rs,""):p==null?"":p)):void 0}}),d.extend({valHooks:{option:{get:function(c){var u=d.find.attr(c,"value");return u!=null?u:yt(d.text(c))}},select:{get:function(c){var u,p,g,S=c.options,Q=c.selectedIndex,v=c.type==="select-one",R=v?null:[],_=v?Q+1:S.length;for(Q<0?g=_:g=v?Q:0;g<_;g++)if(p=S[g],(p.selected||g===Q)&&!p.disabled&&(!p.parentNode.disabled||!H(p.parentNode,"optgroup"))){if(u=d(p).val(),v)return u;R.push(u)}return R},set:function(c,u){for(var p,g,S=c.options,Q=d.makeArray(u),v=S.length;v--;)g=S[v],(g.selected=d.inArray(d.valHooks.option.get(g),Q)>-1)&&(p=!0);return p||(c.selectedIndex=-1),Q}}}}),d.each(["radio","checkbox"],function(){d.valHooks[this]={set:function(c,u){if(Array.isArray(u))return c.checked=d.inArray(d(c).val(),u)>-1}},b.checkOn||(d.valHooks[this].get=function(c){return c.getAttribute("value")===null?"on":c.value})});var vn=i.location,Bl={guid:Date.now()},Cs=/\?/;d.parseXML=function(c){var u,p;if(!c||typeof c!="string")return null;try{u=new i.DOMParser().parseFromString(c,"text/xml")}catch(g){}return p=u&&u.getElementsByTagName("parsererror")[0],(!u||p)&&d.error("Invalid XML: "+(p?d.map(p.childNodes,function(g){return g.textContent}).join(` +import{a as lc,b as ko,c as pw}from"./chunk-JSIZCY7X.js";import{a as $g}from"./chunk-LNOKARBD.js";import{a as wg,b as Pg,c as mw}from"./chunk-7WOMNSMI.js";import{D as Qu,J as yu,t as xg,u as vg}from"./chunk-GTDJ7CMC.js";import{A as Zs,E as hr,F as gu,G as Po,I as oc,J as Sg,K as bu,T as Su,V as Qg,a as ln,b as ma,ba as ac,ca as yg,d as ai,da as ba,e as mu,f as li,g as ut,k as pg,m as tc,n as ic,o as rc,p as Es,q as mg,t as nc,w as gg,x as bg,y as sc,z as Qi}from"./chunk-MZ4MJULD.js";import{a as zi,b as ec,c as pa,d as du,e as pu}from"./chunk-KT7KMEQC.js";var vu=du((kg,xu)=>{(function(i){if(typeof kg=="object"&&typeof xu!="undefined")xu.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var e;typeof window!="undefined"?e=window:typeof global!="undefined"?e=global:typeof self!="undefined"?e=self:e=this,e.localforage=i()}})(function(){var i,e,t;return(function r(n,s,o){function a(h,O){if(!s[h]){if(!n[h]){var m=typeof pa=="function"&&pa;if(!O&&m)return m(h,!0);if(l)return l(h,!0);var b=new Error("Cannot find module '"+h+"'");throw b.code="MODULE_NOT_FOUND",b}var y=s[h]={exports:{}};n[h][0].call(y.exports,function(P){var X=n[h][1][P];return a(X||P)},y,y.exports,r,n,s,o)}return s[h].exports}for(var l=typeof pa=="function"&&pa,f=0;f=43)}}).catch(function(){return!1})}function Oe(w){return typeof G=="boolean"?m.resolve(G):H(w).then(function(C){return G=C,G})}function Ee(w){var C=q[w.name],k={};k.promise=new m(function(U,M){k.resolve=U,k.reject=M}),C.deferredOperations.push(k),C.dbReady?C.dbReady=C.dbReady.then(function(){return k.promise}):C.dbReady=k.promise}function ge(w){var C=q[w.name],k=C.deferredOperations.pop();if(k)return k.resolve(),k.promise}function ie(w,C){var k=q[w.name],U=k.deferredOperations.pop();if(U)return U.reject(C),U.promise}function ke(w,C){return new m(function(k,U){if(q[w.name]=q[w.name]||nt(),w.db)if(C)Ee(w),w.db.close();else return k(w.db);var M=[w.name];C&&M.push(w.version);var Z=f.open.apply(f,M);C&&(Z.onupgradeneeded=function(K){var re=Z.result;try{re.createObjectStore(w.storeName),K.oldVersion<=1&&re.createObjectStore(Y)}catch(le){if(le.name==="ConstraintError")console.warn('The database "'+w.name+'" has been upgraded from version '+K.oldVersion+" to version "+K.newVersion+', but the storage "'+w.storeName+'" already exists.');else throw le}}),Z.onerror=function(K){K.preventDefault(),U(Z.error)},Z.onsuccess=function(){var K=Z.result;K.onversionchange=function(re){re.target.close()},k(K),ge(w)}})}function Ze(w){return ke(w,!1)}function Be(w){return ke(w,!0)}function te(w,C){if(!w.db)return!0;var k=!w.db.objectStoreNames.contains(w.storeName),U=w.versionw.db.version;if(U&&(w.version!==C&&console.warn('The database "'+w.name+`" can't be downgraded from version `+w.db.version+" to version "+w.version+"."),w.version=w.db.version),M||k){if(k){var Z=w.db.version+1;Z>w.version&&(w.version=Z)}return!0}return!1}function ye(w){return new m(function(C,k){var U=new FileReader;U.onerror=k,U.onloadend=function(M){var Z=btoa(M.target.result||"");C({__local_forage_encoded_blob:!0,data:Z,type:w.type})},U.readAsBinaryString(w)})}function ce(w){var C=j(atob(w.data));return O([C],{type:w.type})}function Me(w){return w&&w.__local_forage_encoded_blob}function je(w){var C=this,k=C._initReady().then(function(){var U=q[C._dbInfo.name];if(U&&U.dbReady)return U.dbReady});return y(k,w,w),k}function We(w){Ee(w);for(var C=q[w.name],k=C.forages,U=0;U0&&(!w.db||Z.name==="InvalidStateError"||Z.name==="NotFoundError"))return m.resolve().then(function(){if(!w.db||Z.name==="NotFoundError"&&!w.db.objectStoreNames.contains(w.storeName)&&w.version<=w.db.version)return w.db&&(w.version=w.db.version+1),Be(w)}).then(function(){return We(w).then(function(){dt(w,C,k,U-1)})}).catch(k);k(Z)}}function nt(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ci(w){var C=this,k={db:null};if(w)for(var U in w)k[U]=w[U];var M=q[k.name];M||(M=nt(),q[k.name]=M),M.forages.push(C),C._initReady||(C._initReady=C.ready,C.ready=je);var Z=[];function K(){return m.resolve()}for(var re=0;re>4,se[M++]=(K&15)<<4|re>>2,se[M++]=(re&3)<<6|le&63;return fe}function bi(w){var C=new Uint8Array(w),k="",U;for(U=0;U>2],k+=Ft[(C[U]&3)<<4|C[U+1]>>4],k+=Ft[(C[U+1]&15)<<2|C[U+2]>>6],k+=Ft[C[U+2]&63];return C.length%3===2?k=k.substring(0,k.length-1)+"=":C.length%3===1&&(k=k.substring(0,k.length-2)+"=="),k}function Bi(w,C){var k="";if(w&&(k=gi.call(w)),w&&(k==="[object ArrayBuffer]"||w.buffer&&gi.call(w.buffer)==="[object ArrayBuffer]")){var U,M=Xr;w instanceof ArrayBuffer?(U=w,M+=Ht):(U=w.buffer,k==="[object Int8Array]"?M+=Hr:k==="[object Uint8Array]"?M+=we:k==="[object Uint8ClampedArray]"?M+=Xt:k==="[object Int16Array]"?M+=_r:k==="[object Uint16Array]"?M+=Dn:k==="[object Int32Array]"?M+=pi:k==="[object Uint32Array]"?M+=Wn:k==="[object Float32Array]"?M+=qn:k==="[object Float64Array]"?M+=sr:C(new Error("Failed to get type for BinaryArray"))),C(M+bi(U))}else if(k==="[object Blob]"){var Z=new FileReader;Z.onload=function(){var K=di+w.type+"~"+bi(this.result);C(Xr+nr+K)},Z.readAsArrayBuffer(w)}else try{C(JSON.stringify(w))}catch(K){console.error("Couldn't convert value into a JSON string: ",w),C(null,K)}}function jn(w){if(w.substring(0,Fr)!==Xr)return JSON.parse(w);var C=w.substring(mi),k=w.substring(Fr,mi),U;if(k===nr&&Tr.test(C)){var M=C.match(Tr);U=M[1],C=C.substring(M[0].length)}var Z=Yi(C);switch(k){case Ht:return Z;case nr:return O([Z],{type:U});case Hr:return new Int8Array(Z);case we:return new Uint8Array(Z);case Xt:return new Uint8ClampedArray(Z);case _r:return new Int16Array(Z);case Dn:return new Uint16Array(Z);case pi:return new Int32Array(Z);case Wn:return new Uint32Array(Z);case qn:return new Float32Array(Z);case sr:return new Float64Array(Z);default:throw new Error("Unkown type: "+k)}}var Kr={serialize:Bi,deserialize:jn,stringToBuffer:Yi,bufferToString:bi};function bo(w,C,k,U){w.executeSql("CREATE TABLE IF NOT EXISTS "+C.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],k,U)}function Gi(w){var C=this,k={db:null};if(w)for(var U in w)k[U]=typeof w[U]!="string"?w[U].toString():w[U];var M=new m(function(Z,K){try{k.db=openDatabase(k.name,String(k.version),k.description,k.size)}catch(re){return K(re)}k.db.transaction(function(re){bo(re,k,function(){C._dbInfo=k,Z()},function(le,fe){K(fe)})},K)});return k.serializer=Kr,M}function Wt(w,C,k,U,M,Z){w.executeSql(k,U,M,function(K,re){re.code===re.SYNTAX_ERR?K.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[C.storeName],function(le,fe){fe.rows.length?Z(le,re):bo(le,C,function(){le.executeSql(k,U,M,Z)},Z)},Z):Z(K,re)},Z)}function So(w,C){var k=this;w=P(w);var U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT * FROM "+K.storeName+" WHERE key = ? LIMIT 1",[w],function(le,fe){var se=fe.rows.length?fe.rows.item(0).value:null;se&&(se=K.serializer.deserialize(se)),M(se)},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function Jr(w,C){var k=this,U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT * FROM "+K.storeName,[],function(le,fe){for(var se=fe.rows,$e=se.length,qe=0;qe<$e;qe++){var ht=se.item(qe),Ot=ht.value;if(Ot&&(Ot=K.serializer.deserialize(Ot)),Ot=w(Ot,ht.key,qe+1),Ot!==void 0){M(Ot);return}}M()},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function Kt(w,C,k,U){var M=this;w=P(w);var Z=new m(function(K,re){M.ready().then(function(){C===void 0&&(C=null);var le=C,fe=M._dbInfo;fe.serializer.serialize(C,function(se,$e){$e?re($e):fe.db.transaction(function(qe){Wt(qe,fe,"INSERT OR REPLACE INTO "+fe.storeName+" (key, value) VALUES (?, ?)",[w,se],function(){K(le)},function(ht,Ot){re(Ot)})},function(qe){if(qe.code===qe.QUOTA_ERR){if(U>0){K(Kt.apply(M,[w,le,k,U-1]));return}re(qe)}})})}).catch(re)});return b(Z,k),Z}function Bt(w,C,k){return Kt.apply(this,[w,C,k,1])}function kt(w,C){var k=this;w=P(w);var U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"DELETE FROM "+K.storeName+" WHERE key = ?",[w],function(){M()},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function en(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"DELETE FROM "+Z.storeName,[],function(){U()},function(re,le){M(le)})})}).catch(M)});return b(k,w),k}function Qo(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"SELECT COUNT(key) as c FROM "+Z.storeName,[],function(re,le){var fe=le.rows.item(0).c;U(fe)},function(re,le){M(le)})})}).catch(M)});return b(k,w),k}function vs(w,C){var k=this,U=new m(function(M,Z){k.ready().then(function(){var K=k._dbInfo;K.db.transaction(function(re){Wt(re,K,"SELECT key FROM "+K.storeName+" WHERE id = ? LIMIT 1",[w+1],function(le,fe){var se=fe.rows.length?fe.rows.item(0).key:null;M(se)},function(le,fe){Z(fe)})})}).catch(Z)});return b(U,C),U}function or(w){var C=this,k=new m(function(U,M){C.ready().then(function(){var Z=C._dbInfo;Z.db.transaction(function(K){Wt(K,Z,"SELECT key FROM "+Z.storeName,[],function(re,le){for(var fe=[],se=0;se '__WebKitDatabaseInfoTable__'",[],function(M,Z){for(var K=[],re=0;re0}function $s(w){var C=this,k={};if(w)for(var U in w)k[U]=w[U];return k.keyPrefix=ar(w,C._defaultConfig),ws()?(C._dbInfo=k,k.serializer=Kr,m.resolve()):m.reject()}function xo(w){var C=this,k=C.ready().then(function(){for(var U=C._dbInfo.keyPrefix,M=localStorage.length-1;M>=0;M--){var Z=localStorage.key(M);Z.indexOf(U)===0&&localStorage.removeItem(Z)}});return b(k,w),k}function Zi(w,C){var k=this;w=P(w);var U=k.ready().then(function(){var M=k._dbInfo,Z=localStorage.getItem(M.keyPrefix+w);return Z&&(Z=M.serializer.deserialize(Z)),Z});return b(U,C),U}function vo(w,C){var k=this,U=k.ready().then(function(){for(var M=k._dbInfo,Z=M.keyPrefix,K=Z.length,re=localStorage.length,le=1,fe=0;fe=0;K--){var re=localStorage.key(K);re.indexOf(Z)===0&&localStorage.removeItem(re)}}):M=m.reject("Invalid arguments"),b(M,C),M}var ae={_driver:"localStorageWrapper",_initStorage:$s,_support:Ei(),iterate:vo,getItem:Zi,setItem:Pe,removeItem:ks,clear:xo,length:Bn,key:Cr,keys:Ps,dropInstance:A},xe=function(C,k){return C===k||typeof C=="number"&&typeof k=="number"&&isNaN(C)&&isNaN(k)},pt=function(C,k){for(var U=C.length,M=0;M{(function(i,e){"use strict";typeof Vh=="object"&&typeof Vh.exports=="object"?Vh.exports=i.document?e(i,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(i)})(typeof window!="undefined"?window:f1,function(i,e){"use strict";var t=[],r=Object.getPrototypeOf,n=t.slice,s=t.flat?function(c){return t.flat.call(c)}:function(c){return t.concat.apply([],c)},o=t.push,a=t.indexOf,l={},f=l.toString,h=l.hasOwnProperty,O=h.toString,m=O.call(Object),b={},y=function(u){return typeof u=="function"&&typeof u.nodeType!="number"&&typeof u.item!="function"},P=function(u){return u!=null&&u===u.window},X=i.document,Y={type:!0,src:!0,nonce:!0,noModule:!0};function G(c,u,p){p=p||X;var g,S,Q=p.createElement("script");if(Q.text=c,u)for(g in Y)S=u[g]||u.getAttribute&&u.getAttribute(g),S&&Q.setAttribute(g,S);p.head.appendChild(Q).parentNode.removeChild(Q)}function q(c){return c==null?c+"":typeof c=="object"||typeof c=="function"?l[f.call(c)]||"object":typeof c}var N="3.7.1",V=/HTML$/i,d=function(c,u){return new d.fn.init(c,u)};d.fn=d.prototype={jquery:N,constructor:d,length:0,toArray:function(){return n.call(this)},get:function(c){return c==null?n.call(this):c<0?this[c+this.length]:this[c]},pushStack:function(c){var u=d.merge(this.constructor(),c);return u.prevObject=this,u},each:function(c){return d.each(this,c)},map:function(c){return this.pushStack(d.map(this,function(u,p){return c.call(u,p,u)}))},slice:function(){return this.pushStack(n.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(d.grep(this,function(c,u){return(u+1)%2}))},odd:function(){return this.pushStack(d.grep(this,function(c,u){return u%2}))},eq:function(c){var u=this.length,p=+c+(c<0?u:0);return this.pushStack(p>=0&&p0&&u-1 in c}function H(c,u){return c.nodeName&&c.nodeName.toLowerCase()===u.toLowerCase()}var Oe=t.pop,Ee=t.sort,ge=t.splice,ie="[\\x20\\t\\r\\n\\f]",ke=new RegExp("^"+ie+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ie+"+$","g");d.contains=function(c,u){var p=u&&u.parentNode;return c===p||!!(p&&p.nodeType===1&&(c.contains?c.contains(p):c.compareDocumentPosition&&c.compareDocumentPosition(p)&16))};var Ze=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function Be(c,u){return u?c==="\0"?"\uFFFD":c.slice(0,-1)+"\\"+c.charCodeAt(c.length-1).toString(16)+" ":"\\"+c}d.escapeSelector=function(c){return(c+"").replace(Ze,Be)};var te=X,ye=o;(function(){var c,u,p,g,S,Q=ye,v,R,_,z,B,ee=d.expando,W=0,oe=0,Ve=Fl(),st=Fl(),Ie=Fl(),Jt=Fl(),qt=function(T,E){return T===E&&(S=!0),0},rn="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nn="(?:\\\\[\\da-fA-F]{1,6}"+ie+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",et="\\["+ie+"*("+nn+")(?:"+ie+"*([*^$|!~]?=)"+ie+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+nn+"))|)"+ie+"*\\]",As=":("+nn+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+et+")*)|.*)\\)|)",ct=new RegExp(ie+"+","g"),Yt=new RegExp("^"+ie+"*,"+ie+"*"),ua=new RegExp("^"+ie+"*([>+~]|"+ie+")"+ie+"*"),au=new RegExp(ie+"|>"),sn=new RegExp(As),Oa=new RegExp("^"+nn+"$"),on={ID:new RegExp("^#("+nn+")"),CLASS:new RegExp("^\\.("+nn+")"),TAG:new RegExp("^("+nn+"|[*])"),ATTR:new RegExp("^"+et),PSEUDO:new RegExp("^"+As),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ie+"*(even|odd|(([+-]|)(\\d*)n|)"+ie+"*(?:([+-]|)"+ie+"*(\\d+)|))"+ie+"*\\)|)","i"),bool:new RegExp("^(?:"+rn+")$","i"),needsContext:new RegExp("^"+ie+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ie+"*((?:-\\d)?\\d*)"+ie+"*\\)|)(?=[^-]|$)","i")},Gn=/^(?:input|select|textarea|button)$/i,Fn=/^h\d$/i,cr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,lu=/[+~]/,wn=new RegExp("\\\\[\\da-fA-F]{1,6}"+ie+"?|\\\\([^\\r\\n\\f])","g"),$n=function(T,E){var D="0x"+T.slice(1)-65536;return E||(D<0?String.fromCharCode(D+65536):String.fromCharCode(D>>10|55296,D&1023|56320))},lw=function(){Hn()},cw=Kl(function(T){return T.disabled===!0&&H(T,"fieldset")},{dir:"parentNode",next:"legend"});function fw(){try{return v.activeElement}catch(T){}}try{Q.apply(t=n.call(te.childNodes),te.childNodes),t[te.childNodes.length].nodeType}catch(T){Q={apply:function(E,D){ye.apply(E,n.call(D))},call:function(E){ye.apply(E,n.call(arguments,1))}}}function bt(T,E,D,I){var J,ue,be,Te,Se,He,Ue,De=E&&E.ownerDocument,Ke=E?E.nodeType:9;if(D=D||[],typeof T!="string"||!T||Ke!==1&&Ke!==9&&Ke!==11)return D;if(!I&&(Hn(E),E=E||v,_)){if(Ke!==11&&(Se=cr.exec(T)))if(J=Se[1]){if(Ke===9)if(be=E.getElementById(J)){if(be.id===J)return Q.call(D,be),D}else return D;else if(De&&(be=De.getElementById(J))&&bt.contains(E,be)&&be.id===J)return Q.call(D,be),D}else{if(Se[2])return Q.apply(D,E.getElementsByTagName(T)),D;if((J=Se[3])&&E.getElementsByClassName)return Q.apply(D,E.getElementsByClassName(J)),D}if(!Jt[T+" "]&&(!z||!z.test(T))){if(Ue=T,De=E,Ke===1&&(au.test(T)||ua.test(T))){for(De=lu.test(T)&&cu(E.parentNode)||E,(De!=E||!b.scope)&&((Te=E.getAttribute("id"))?Te=d.escapeSelector(Te):E.setAttribute("id",Te=ee)),He=da(T),ue=He.length;ue--;)He[ue]=(Te?"#"+Te:":scope")+" "+Hl(He[ue]);Ue=He.join(",")}try{return Q.apply(D,De.querySelectorAll(Ue)),D}catch(Ye){Jt(T,!0)}finally{Te===ee&&E.removeAttribute("id")}}}return dg(T.replace(ke,"$1"),E,D,I)}function Fl(){var T=[];function E(D,I){return T.push(D+" ")>u.cacheLength&&delete E[T.shift()],E[D+" "]=I}return E}function Ar(T){return T[ee]=!0,T}function wo(T){var E=v.createElement("fieldset");try{return!!T(E)}catch(D){return!1}finally{E.parentNode&&E.parentNode.removeChild(E),E=null}}function hw(T){return function(E){return H(E,"input")&&E.type===T}}function uw(T){return function(E){return(H(E,"input")||H(E,"button"))&&E.type===T}}function ug(T){return function(E){return"form"in E?E.parentNode&&E.disabled===!1?"label"in E?"label"in E.parentNode?E.parentNode.disabled===T:E.disabled===T:E.isDisabled===T||E.isDisabled!==!T&&cw(E)===T:E.disabled===T:"label"in E?E.disabled===T:!1}}function Ys(T){return Ar(function(E){return E=+E,Ar(function(D,I){for(var J,ue=T([],D.length,E),be=ue.length;be--;)D[J=ue[be]]&&(D[J]=!(I[J]=D[J]))})})}function cu(T){return T&&typeof T.getElementsByTagName!="undefined"&&T}function Hn(T){var E,D=T?T.ownerDocument||T:te;return D==v||D.nodeType!==9||!D.documentElement||(v=D,R=v.documentElement,_=!d.isXMLDoc(v),B=R.matches||R.webkitMatchesSelector||R.msMatchesSelector,R.msMatchesSelector&&te!=v&&(E=v.defaultView)&&E.top!==E&&E.addEventListener("unload",lw),b.getById=wo(function(I){return R.appendChild(I).id=d.expando,!v.getElementsByName||!v.getElementsByName(d.expando).length}),b.disconnectedMatch=wo(function(I){return B.call(I,"*")}),b.scope=wo(function(){return v.querySelectorAll(":scope")}),b.cssHas=wo(function(){try{return v.querySelector(":has(*,:jqfake)"),!1}catch(I){return!0}}),b.getById?(u.filter.ID=function(I){var J=I.replace(wn,$n);return function(ue){return ue.getAttribute("id")===J}},u.find.ID=function(I,J){if(typeof J.getElementById!="undefined"&&_){var ue=J.getElementById(I);return ue?[ue]:[]}}):(u.filter.ID=function(I){var J=I.replace(wn,$n);return function(ue){var be=typeof ue.getAttributeNode!="undefined"&&ue.getAttributeNode("id");return be&&be.value===J}},u.find.ID=function(I,J){if(typeof J.getElementById!="undefined"&&_){var ue,be,Te,Se=J.getElementById(I);if(Se){if(ue=Se.getAttributeNode("id"),ue&&ue.value===I)return[Se];for(Te=J.getElementsByName(I),be=0;Se=Te[be++];)if(ue=Se.getAttributeNode("id"),ue&&ue.value===I)return[Se]}return[]}}),u.find.TAG=function(I,J){return typeof J.getElementsByTagName!="undefined"?J.getElementsByTagName(I):J.querySelectorAll(I)},u.find.CLASS=function(I,J){if(typeof J.getElementsByClassName!="undefined"&&_)return J.getElementsByClassName(I)},z=[],wo(function(I){var J;R.appendChild(I).innerHTML="",I.querySelectorAll("[selected]").length||z.push("\\["+ie+"*(?:value|"+rn+")"),I.querySelectorAll("[id~="+ee+"-]").length||z.push("~="),I.querySelectorAll("a#"+ee+"+*").length||z.push(".#.+[+~]"),I.querySelectorAll(":checked").length||z.push(":checked"),J=v.createElement("input"),J.setAttribute("type","hidden"),I.appendChild(J).setAttribute("name","D"),R.appendChild(I).disabled=!0,I.querySelectorAll(":disabled").length!==2&&z.push(":enabled",":disabled"),J=v.createElement("input"),J.setAttribute("name",""),I.appendChild(J),I.querySelectorAll("[name='']").length||z.push("\\["+ie+"*name"+ie+"*="+ie+`*(?:''|"")`)}),b.cssHas||z.push(":has"),z=z.length&&new RegExp(z.join("|")),qt=function(I,J){if(I===J)return S=!0,0;var ue=!I.compareDocumentPosition-!J.compareDocumentPosition;return ue||(ue=(I.ownerDocument||I)==(J.ownerDocument||J)?I.compareDocumentPosition(J):1,ue&1||!b.sortDetached&&J.compareDocumentPosition(I)===ue?I===v||I.ownerDocument==te&&bt.contains(te,I)?-1:J===v||J.ownerDocument==te&&bt.contains(te,J)?1:g?a.call(g,I)-a.call(g,J):0:ue&4?-1:1)}),v}bt.matches=function(T,E){return bt(T,null,null,E)},bt.matchesSelector=function(T,E){if(Hn(T),_&&!Jt[E+" "]&&(!z||!z.test(E)))try{var D=B.call(T,E);if(D||b.disconnectedMatch||T.document&&T.document.nodeType!==11)return D}catch(I){Jt(E,!0)}return bt(E,v,null,[T]).length>0},bt.contains=function(T,E){return(T.ownerDocument||T)!=v&&Hn(T),d.contains(T,E)},bt.attr=function(T,E){(T.ownerDocument||T)!=v&&Hn(T);var D=u.attrHandle[E.toLowerCase()],I=D&&h.call(u.attrHandle,E.toLowerCase())?D(T,E,!_):void 0;return I!==void 0?I:T.getAttribute(E)},bt.error=function(T){throw new Error("Syntax error, unrecognized expression: "+T)},d.uniqueSort=function(T){var E,D=[],I=0,J=0;if(S=!b.sortStable,g=!b.sortStable&&n.call(T,0),Ee.call(T,qt),S){for(;E=T[J++];)E===T[J]&&(I=D.push(J));for(;I--;)ge.call(T,D[I],1)}return g=null,T},d.fn.uniqueSort=function(){return this.pushStack(d.uniqueSort(n.apply(this)))},u=d.expr={cacheLength:50,createPseudo:Ar,match:on,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(T){return T[1]=T[1].replace(wn,$n),T[3]=(T[3]||T[4]||T[5]||"").replace(wn,$n),T[2]==="~="&&(T[3]=" "+T[3]+" "),T.slice(0,4)},CHILD:function(T){return T[1]=T[1].toLowerCase(),T[1].slice(0,3)==="nth"?(T[3]||bt.error(T[0]),T[4]=+(T[4]?T[5]+(T[6]||1):2*(T[3]==="even"||T[3]==="odd")),T[5]=+(T[7]+T[8]||T[3]==="odd")):T[3]&&bt.error(T[0]),T},PSEUDO:function(T){var E,D=!T[6]&&T[2];return on.CHILD.test(T[0])?null:(T[3]?T[2]=T[4]||T[5]||"":D&&sn.test(D)&&(E=da(D,!0))&&(E=D.indexOf(")",D.length-E)-D.length)&&(T[0]=T[0].slice(0,E),T[2]=D.slice(0,E)),T.slice(0,3))}},filter:{TAG:function(T){var E=T.replace(wn,$n).toLowerCase();return T==="*"?function(){return!0}:function(D){return H(D,E)}},CLASS:function(T){var E=Ve[T+" "];return E||(E=new RegExp("(^|"+ie+")"+T+"("+ie+"|$)"))&&Ve(T,function(D){return E.test(typeof D.className=="string"&&D.className||typeof D.getAttribute!="undefined"&&D.getAttribute("class")||"")})},ATTR:function(T,E,D){return function(I){var J=bt.attr(I,T);return J==null?E==="!=":E?(J+="",E==="="?J===D:E==="!="?J!==D:E==="^="?D&&J.indexOf(D)===0:E==="*="?D&&J.indexOf(D)>-1:E==="$="?D&&J.slice(-D.length)===D:E==="~="?(" "+J.replace(ct," ")+" ").indexOf(D)>-1:E==="|="?J===D||J.slice(0,D.length+1)===D+"-":!1):!0}},CHILD:function(T,E,D,I,J){var ue=T.slice(0,3)!=="nth",be=T.slice(-4)!=="last",Te=E==="of-type";return I===1&&J===0?function(Se){return!!Se.parentNode}:function(Se,He,Ue){var De,Ke,Ye,$t,Ui,oi=ue!==be?"nextSibling":"previousSibling",fr=Se.parentNode,an=Te&&Se.nodeName.toLowerCase(),$o=!Ue&&!Te,Si=!1;if(fr){if(ue){for(;oi;){for(Ye=Se;Ye=Ye[oi];)if(Te?H(Ye,an):Ye.nodeType===1)return!1;Ui=oi=T==="only"&&!Ui&&"nextSibling"}return!0}if(Ui=[be?fr.firstChild:fr.lastChild],be&&$o){for(Ke=fr[ee]||(fr[ee]={}),De=Ke[T]||[],$t=De[0]===W&&De[1],Si=$t&&De[2],Ye=$t&&fr.childNodes[$t];Ye=++$t&&Ye&&Ye[oi]||(Si=$t=0)||Ui.pop();)if(Ye.nodeType===1&&++Si&&Ye===Se){Ke[T]=[W,$t,Si];break}}else if($o&&(Ke=Se[ee]||(Se[ee]={}),De=Ke[T]||[],$t=De[0]===W&&De[1],Si=$t),Si===!1)for(;(Ye=++$t&&Ye&&Ye[oi]||(Si=$t=0)||Ui.pop())&&!((Te?H(Ye,an):Ye.nodeType===1)&&++Si&&($o&&(Ke=Ye[ee]||(Ye[ee]={}),Ke[T]=[W,Si]),Ye===Se)););return Si-=J,Si===I||Si%I===0&&Si/I>=0}}},PSEUDO:function(T,E){var D,I=u.pseudos[T]||u.setFilters[T.toLowerCase()]||bt.error("unsupported pseudo: "+T);return I[ee]?I(E):I.length>1?(D=[T,T,"",E],u.setFilters.hasOwnProperty(T.toLowerCase())?Ar(function(J,ue){for(var be,Te=I(J,E),Se=Te.length;Se--;)be=a.call(J,Te[Se]),J[be]=!(ue[be]=Te[Se])}):function(J){return I(J,0,D)}):I}},pseudos:{not:Ar(function(T){var E=[],D=[],I=Ou(T.replace(ke,"$1"));return I[ee]?Ar(function(J,ue,be,Te){for(var Se,He=I(J,null,Te,[]),Ue=J.length;Ue--;)(Se=He[Ue])&&(J[Ue]=!(ue[Ue]=Se))}):function(J,ue,be){return E[0]=J,I(E,null,be,D),E[0]=null,!D.pop()}}),has:Ar(function(T){return function(E){return bt(T,E).length>0}}),contains:Ar(function(T){return T=T.replace(wn,$n),function(E){return(E.textContent||d.text(E)).indexOf(T)>-1}}),lang:Ar(function(T){return Oa.test(T||"")||bt.error("unsupported lang: "+T),T=T.replace(wn,$n).toLowerCase(),function(E){var D;do if(D=_?E.lang:E.getAttribute("xml:lang")||E.getAttribute("lang"))return D=D.toLowerCase(),D===T||D.indexOf(T+"-")===0;while((E=E.parentNode)&&E.nodeType===1);return!1}}),target:function(T){var E=i.location&&i.location.hash;return E&&E.slice(1)===T.id},root:function(T){return T===R},focus:function(T){return T===fw()&&v.hasFocus()&&!!(T.type||T.href||~T.tabIndex)},enabled:ug(!1),disabled:ug(!0),checked:function(T){return H(T,"input")&&!!T.checked||H(T,"option")&&!!T.selected},selected:function(T){return T.parentNode&&T.parentNode.selectedIndex,T.selected===!0},empty:function(T){for(T=T.firstChild;T;T=T.nextSibling)if(T.nodeType<6)return!1;return!0},parent:function(T){return!u.pseudos.empty(T)},header:function(T){return Fn.test(T.nodeName)},input:function(T){return Gn.test(T.nodeName)},button:function(T){return H(T,"input")&&T.type==="button"||H(T,"button")},text:function(T){var E;return H(T,"input")&&T.type==="text"&&((E=T.getAttribute("type"))==null||E.toLowerCase()==="text")},first:Ys(function(){return[0]}),last:Ys(function(T,E){return[E-1]}),eq:Ys(function(T,E,D){return[D<0?D+E:D]}),even:Ys(function(T,E){for(var D=0;DE?I=E:I=D;--I>=0;)T.push(I);return T}),gt:Ys(function(T,E,D){for(var I=D<0?D+E:D;++I1?function(E,D,I){for(var J=T.length;J--;)if(!T[J](E,D,I))return!1;return!0}:T[0]}function Ow(T,E,D){for(var I=0,J=E.length;I-1&&(be[Ue]=!(Te[Ue]=Ke))}}else Ye=Jl(Ye===Te?Ye.splice(oi,Ye.length):Ye),J?J(null,Te,Ye,He):Q.apply(Te,Ye)})}function uu(T){for(var E,D,I,J=T.length,ue=u.relative[T[0].type],be=ue||u.relative[" "],Te=ue?1:0,Se=Kl(function(De){return De===E},be,!0),He=Kl(function(De){return a.call(E,De)>-1},be,!0),Ue=[function(De,Ke,Ye){var $t=!ue&&(Ye||Ke!=p)||((E=Ke).nodeType?Se(De,Ke,Ye):He(De,Ke,Ye));return E=null,$t}];Te1&&fu(Ue),Te>1&&Hl(T.slice(0,Te-1).concat({value:T[Te-2].type===" "?"*":""})).replace(ke,"$1"),D,Te0,I=T.length>0,J=function(ue,be,Te,Se,He){var Ue,De,Ke,Ye=0,$t="0",Ui=ue&&[],oi=[],fr=p,an=ue||I&&u.find.TAG("*",He),$o=W+=fr==null?1:Math.random()||.1,Si=an.length;for(He&&(p=be==v||be||He);$t!==Si&&(Ue=an[$t])!=null;$t++){if(I&&Ue){for(De=0,!be&&Ue.ownerDocument!=v&&(Hn(Ue),Te=!_);Ke=T[De++];)if(Ke(Ue,be||v,Te)){Q.call(Se,Ue);break}He&&(W=$o)}D&&((Ue=!Ke&&Ue)&&Ye--,ue&&Ui.push(Ue))}if(Ye+=$t,D&&$t!==Ye){for(De=0;Ke=E[De++];)Ke(Ui,oi,be,Te);if(ue){if(Ye>0)for(;$t--;)Ui[$t]||oi[$t]||(oi[$t]=Oe.call(Se));oi=Jl(oi)}Q.apply(Se,oi),He&&!ue&&oi.length>0&&Ye+E.length>1&&d.uniqueSort(Se)}return He&&(W=$o,p=fr),Ui};return D?Ar(J):J}function Ou(T,E){var D,I=[],J=[],ue=Ie[T+" "];if(!ue){for(E||(E=da(T)),D=E.length;D--;)ue=uu(E[D]),ue[ee]?I.push(ue):J.push(ue);ue=Ie(T,dw(J,I)),ue.selector=T}return ue}function dg(T,E,D,I){var J,ue,be,Te,Se,He=typeof T=="function"&&T,Ue=!I&&da(T=He.selector||T);if(D=D||[],Ue.length===1){if(ue=Ue[0]=Ue[0].slice(0),ue.length>2&&(be=ue[0]).type==="ID"&&E.nodeType===9&&_&&u.relative[ue[1].type]){if(E=(u.find.ID(be.matches[0].replace(wn,$n),E)||[])[0],E)He&&(E=E.parentNode);else return D;T=T.slice(ue.shift().value.length)}for(J=on.needsContext.test(T)?0:ue.length;J--&&(be=ue[J],!u.relative[Te=be.type]);)if((Se=u.find[Te])&&(I=Se(be.matches[0].replace(wn,$n),lu.test(ue[0].type)&&cu(E.parentNode)||E))){if(ue.splice(J,1),T=I.length&&Hl(ue),!T)return Q.apply(D,I),D;break}}return(He||Ou(T,Ue))(I,E,!_,D,!E||lu.test(T)&&cu(E.parentNode)||E),D}b.sortStable=ee.split("").sort(qt).join("")===ee,Hn(),b.sortDetached=wo(function(T){return T.compareDocumentPosition(v.createElement("fieldset"))&1}),d.find=bt,d.expr[":"]=d.expr.pseudos,d.unique=d.uniqueSort,bt.compile=Ou,bt.select=dg,bt.setDocument=Hn,bt.tokenize=da,bt.escape=d.escapeSelector,bt.getText=d.text,bt.isXML=d.isXMLDoc,bt.selectors=d.expr,bt.support=d.support,bt.uniqueSort=d.uniqueSort})();var ce=function(c,u,p){for(var g=[],S=p!==void 0;(c=c[u])&&c.nodeType!==9;)if(c.nodeType===1){if(S&&d(c).is(p))break;g.push(c)}return g},Me=function(c,u){for(var p=[];c;c=c.nextSibling)c.nodeType===1&&c!==u&&p.push(c);return p},je=d.expr.match.needsContext,We=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function dt(c,u,p){return y(u)?d.grep(c,function(g,S){return!!u.call(g,S,g)!==p}):u.nodeType?d.grep(c,function(g){return g===u!==p}):typeof u!="string"?d.grep(c,function(g){return a.call(u,g)>-1!==p}):d.filter(u,c,p)}d.filter=function(c,u,p){var g=u[0];return p&&(c=":not("+c+")"),u.length===1&&g.nodeType===1?d.find.matchesSelector(g,c)?[g]:[]:d.find.matches(c,d.grep(u,function(S){return S.nodeType===1}))},d.fn.extend({find:function(c){var u,p,g=this.length,S=this;if(typeof c!="string")return this.pushStack(d(c).filter(function(){for(u=0;u1?d.uniqueSort(p):p},filter:function(c){return this.pushStack(dt(this,c||[],!1))},not:function(c){return this.pushStack(dt(this,c||[],!0))},is:function(c){return!!dt(this,typeof c=="string"&&je.test(c)?d(c):c||[],!1).length}});var nt,Ci=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,ft=d.fn.init=function(c,u,p){var g,S;if(!c)return this;if(p=p||nt,typeof c=="string")if(c[0]==="<"&&c[c.length-1]===">"&&c.length>=3?g=[null,c,null]:g=Ci.exec(c),g&&(g[1]||!u))if(g[1]){if(u=u instanceof d?u[0]:u,d.merge(this,d.parseHTML(g[1],u&&u.nodeType?u.ownerDocument||u:X,!0)),We.test(g[1])&&d.isPlainObject(u))for(g in u)y(this[g])?this[g](u[g]):this.attr(g,u[g]);return this}else return S=X.getElementById(g[2]),S&&(this[0]=S,this.length=1),this;else return!u||u.jquery?(u||p).find(c):this.constructor(u).find(c);else{if(c.nodeType)return this[0]=c,this.length=1,this;if(y(c))return p.ready!==void 0?p.ready(c):c(d)}return d.makeArray(c,this)};ft.prototype=d.fn,nt=d(X);var Ai=/^(?:parents|prev(?:Until|All))/,Gr={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({has:function(c){var u=d(c,this),p=u.length;return this.filter(function(){for(var g=0;g-1:p.nodeType===1&&d.find.matchesSelector(p,c))){Q.push(p);break}}return this.pushStack(Q.length>1?d.uniqueSort(Q):Q)},index:function(c){return c?typeof c=="string"?a.call(d(c),this[0]):a.call(this,c.jquery?c[0]:c):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(c,u){return this.pushStack(d.uniqueSort(d.merge(this.get(),d(c,u))))},addBack:function(c){return this.add(c==null?this.prevObject:this.prevObject.filter(c))}});function $r(c,u){for(;(c=c[u])&&c.nodeType!==1;);return c}d.each({parent:function(c){var u=c.parentNode;return u&&u.nodeType!==11?u:null},parents:function(c){return ce(c,"parentNode")},parentsUntil:function(c,u,p){return ce(c,"parentNode",p)},next:function(c){return $r(c,"nextSibling")},prev:function(c){return $r(c,"previousSibling")},nextAll:function(c){return ce(c,"nextSibling")},prevAll:function(c){return ce(c,"previousSibling")},nextUntil:function(c,u,p){return ce(c,"nextSibling",p)},prevUntil:function(c,u,p){return ce(c,"previousSibling",p)},siblings:function(c){return Me((c.parentNode||{}).firstChild,c)},children:function(c){return Me(c.firstChild)},contents:function(c){return c.contentDocument!=null&&r(c.contentDocument)?c.contentDocument:(H(c,"template")&&(c=c.content||c),d.merge([],c.childNodes))}},function(c,u){d.fn[c]=function(p,g){var S=d.map(this,u,p);return c.slice(-5)!=="Until"&&(g=p),g&&typeof g=="string"&&(S=d.filter(g,S)),this.length>1&&(Gr[c]||d.uniqueSort(S),Ai.test(c)&&S.reverse()),this.pushStack(S)}});var Oi=/[^\x20\t\r\n\f]+/g;function xs(c){var u={};return d.each(c.match(Oi)||[],function(p,g){u[g]=!0}),u}d.Callbacks=function(c){c=typeof c=="string"?xs(c):d.extend({},c);var u,p,g,S,Q=[],v=[],R=-1,_=function(){for(S=S||c.once,g=u=!0;v.length;R=-1)for(p=v.shift();++R-1;)Q.splice(W,1),W<=R&&R--}),this},has:function(B){return B?d.inArray(B,Q)>-1:Q.length>0},empty:function(){return Q&&(Q=[]),this},disable:function(){return S=v=[],Q=p="",this},disabled:function(){return!Q},lock:function(){return S=v=[],!p&&!u&&(Q=p=""),this},locked:function(){return!!S},fireWith:function(B,ee){return S||(ee=ee||[],ee=[B,ee.slice?ee.slice():ee],v.push(ee),u||_()),this},fire:function(){return z.fireWith(this,arguments),this},fired:function(){return!!g}};return z};function Pr(c){return c}function xn(c){throw c}function kr(c,u,p,g){var S;try{c&&y(S=c.promise)?S.call(c).done(u).fail(p):c&&y(S=c.then)?S.call(c,u,p):u.apply(void 0,[c].slice(g))}catch(Q){p.apply(void 0,[Q])}}d.extend({Deferred:function(c){var u=[["notify","progress",d.Callbacks("memory"),d.Callbacks("memory"),2],["resolve","done",d.Callbacks("once memory"),d.Callbacks("once memory"),0,"resolved"],["reject","fail",d.Callbacks("once memory"),d.Callbacks("once memory"),1,"rejected"]],p="pending",g={state:function(){return p},always:function(){return S.done(arguments).fail(arguments),this},catch:function(Q){return g.then(null,Q)},pipe:function(){var Q=arguments;return d.Deferred(function(v){d.each(u,function(R,_){var z=y(Q[_[4]])&&Q[_[4]];S[_[1]](function(){var B=z&&z.apply(this,arguments);B&&y(B.promise)?B.promise().progress(v.notify).done(v.resolve).fail(v.reject):v[_[0]+"With"](this,z?[B]:arguments)})}),Q=null}).promise()},then:function(Q,v,R){var _=0;function z(B,ee,W,oe){return function(){var Ve=this,st=arguments,Ie=function(){var qt,rn;if(!(B<_)){if(qt=W.apply(Ve,st),qt===ee.promise())throw new TypeError("Thenable self-resolution");rn=qt&&(typeof qt=="object"||typeof qt=="function")&&qt.then,y(rn)?oe?rn.call(qt,z(_,ee,Pr,oe),z(_,ee,xn,oe)):(_++,rn.call(qt,z(_,ee,Pr,oe),z(_,ee,xn,oe),z(_,ee,Pr,ee.notifyWith))):(W!==Pr&&(Ve=void 0,st=[qt]),(oe||ee.resolveWith)(Ve,st))}},Jt=oe?Ie:function(){try{Ie()}catch(qt){d.Deferred.exceptionHook&&d.Deferred.exceptionHook(qt,Jt.error),B+1>=_&&(W!==xn&&(Ve=void 0,st=[qt]),ee.rejectWith(Ve,st))}};B?Jt():(d.Deferred.getErrorHook?Jt.error=d.Deferred.getErrorHook():d.Deferred.getStackHook&&(Jt.error=d.Deferred.getStackHook()),i.setTimeout(Jt))}}return d.Deferred(function(B){u[0][3].add(z(0,B,y(R)?R:Pr,B.notifyWith)),u[1][3].add(z(0,B,y(Q)?Q:Pr)),u[2][3].add(z(0,B,y(v)?v:xn))}).promise()},promise:function(Q){return Q!=null?d.extend(Q,g):g}},S={};return d.each(u,function(Q,v){var R=v[2],_=v[5];g[v[1]]=R.add,_&&R.add(function(){p=_},u[3-Q][2].disable,u[3-Q][3].disable,u[0][2].lock,u[0][3].lock),R.add(v[3].fire),S[v[0]]=function(){return S[v[0]+"With"](this===S?void 0:this,arguments),this},S[v[0]+"With"]=R.fireWith}),g.promise(S),c&&c.call(S,S),S},when:function(c){var u=arguments.length,p=u,g=Array(p),S=n.call(arguments),Q=d.Deferred(),v=function(R){return function(_){g[R]=this,S[R]=arguments.length>1?n.call(arguments):_,--u||Q.resolveWith(g,S)}};if(u<=1&&(kr(c,Q.done(v(p)).resolve,Q.reject,!u),Q.state()==="pending"||y(S[p]&&S[p].then)))return Q.then();for(;p--;)kr(S[p],v(p),Q.reject);return Q.promise()}});var Vn=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;d.Deferred.exceptionHook=function(c,u){i.console&&i.console.warn&&c&&Vn.test(c.name)&&i.console.warn("jQuery.Deferred exception: "+c.message,c.stack,u)},d.readyException=function(c){i.setTimeout(function(){throw c})};var Ni=d.Deferred();d.fn.ready=function(c){return Ni.then(c).catch(function(u){d.readyException(u)}),this},d.extend({isReady:!1,readyWait:1,ready:function(c){(c===!0?--d.readyWait:d.isReady)||(d.isReady=!0,!(c!==!0&&--d.readyWait>0)&&Ni.resolveWith(X,[d]))}}),d.ready.then=Ni.then;function Ft(){X.removeEventListener("DOMContentLoaded",Ft),i.removeEventListener("load",Ft),d.ready()}X.readyState==="complete"||X.readyState!=="loading"&&!X.documentElement.doScroll?i.setTimeout(d.ready):(X.addEventListener("DOMContentLoaded",Ft),i.addEventListener("load",Ft));var di=function(c,u,p,g,S,Q,v){var R=0,_=c.length,z=p==null;if(q(p)==="object"){S=!0;for(R in p)di(c,u,R,p[R],!0,Q,v)}else if(g!==void 0&&(S=!0,y(g)||(v=!0),z&&(v?(u.call(c,g),u=null):(z=u,u=function(B,ee,W){return z.call(d(B),W)})),u))for(;R<_;R++)u(c[R],p,v?g:g.call(c[R],R,u(c[R],p)));return S?c:z?u.call(c):_?u(c[0],p):Q},Tr=/^-ms-/,Xr=/-([a-z])/g;function Fr(c,u){return u.toUpperCase()}function Ht(c){return c.replace(Tr,"ms-").replace(Xr,Fr)}var nr=function(c){return c.nodeType===1||c.nodeType===9||!+c.nodeType};function Hr(){this.expando=d.expando+Hr.uid++}Hr.uid=1,Hr.prototype={cache:function(c){var u=c[this.expando];return u||(u={},nr(c)&&(c.nodeType?c[this.expando]=u:Object.defineProperty(c,this.expando,{value:u,configurable:!0}))),u},set:function(c,u,p){var g,S=this.cache(c);if(typeof u=="string")S[Ht(u)]=p;else for(g in u)S[Ht(g)]=u[g];return S},get:function(c,u){return u===void 0?this.cache(c):c[this.expando]&&c[this.expando][Ht(u)]},access:function(c,u,p){return u===void 0||u&&typeof u=="string"&&p===void 0?this.get(c,u):(this.set(c,u,p),p!==void 0?p:u)},remove:function(c,u){var p,g=c[this.expando];if(g!==void 0){if(u!==void 0)for(Array.isArray(u)?u=u.map(Ht):(u=Ht(u),u=u in g?[u]:u.match(Oi)||[]),p=u.length;p--;)delete g[u[p]];(u===void 0||d.isEmptyObject(g))&&(c.nodeType?c[this.expando]=void 0:delete c[this.expando])}},hasData:function(c){var u=c[this.expando];return u!==void 0&&!d.isEmptyObject(u)}};var we=new Hr,Xt=new Hr,_r=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,pi=/[A-Z]/g;function Dn(c){return c==="true"?!0:c==="false"?!1:c==="null"?null:c===+c+""?+c:_r.test(c)?JSON.parse(c):c}function Wn(c,u,p){var g;if(p===void 0&&c.nodeType===1)if(g="data-"+u.replace(pi,"-$&").toLowerCase(),p=c.getAttribute(g),typeof p=="string"){try{p=Dn(p)}catch(S){}Xt.set(c,u,p)}else p=void 0;return p}d.extend({hasData:function(c){return Xt.hasData(c)||we.hasData(c)},data:function(c,u,p){return Xt.access(c,u,p)},removeData:function(c,u){Xt.remove(c,u)},_data:function(c,u,p){return we.access(c,u,p)},_removeData:function(c,u){we.remove(c,u)}}),d.fn.extend({data:function(c,u){var p,g,S,Q=this[0],v=Q&&Q.attributes;if(c===void 0){if(this.length&&(S=Xt.get(Q),Q.nodeType===1&&!we.get(Q,"hasDataAttrs"))){for(p=v.length;p--;)v[p]&&(g=v[p].name,g.indexOf("data-")===0&&(g=Ht(g.slice(5)),Wn(Q,g,S[g])));we.set(Q,"hasDataAttrs",!0)}return S}return typeof c=="object"?this.each(function(){Xt.set(this,c)}):di(this,function(R){var _;if(Q&&R===void 0)return _=Xt.get(Q,c),_!==void 0||(_=Wn(Q,c),_!==void 0)?_:void 0;this.each(function(){Xt.set(this,c,R)})},null,u,arguments.length>1,null,!0)},removeData:function(c){return this.each(function(){Xt.remove(this,c)})}}),d.extend({queue:function(c,u,p){var g;if(c)return u=(u||"fx")+"queue",g=we.get(c,u),p&&(!g||Array.isArray(p)?g=we.access(c,u,d.makeArray(p)):g.push(p)),g||[]},dequeue:function(c,u){u=u||"fx";var p=d.queue(c,u),g=p.length,S=p.shift(),Q=d._queueHooks(c,u),v=function(){d.dequeue(c,u)};S==="inprogress"&&(S=p.shift(),g--),S&&(u==="fx"&&p.unshift("inprogress"),delete Q.stop,S.call(c,v,Q)),!g&&Q&&Q.empty.fire()},_queueHooks:function(c,u){var p=u+"queueHooks";return we.get(c,p)||we.access(c,p,{empty:d.Callbacks("once memory").add(function(){we.remove(c,[u+"queue",p])})})}}),d.fn.extend({queue:function(c,u){var p=2;return typeof c!="string"&&(u=c,c="fx",p--),arguments.length\x20\t\r\n\f]*)/i,Jr=/^$|^module$|\/(?:java|ecma)script/i;(function(){var c=X.createDocumentFragment(),u=c.appendChild(X.createElement("div")),p=X.createElement("input");p.setAttribute("type","radio"),p.setAttribute("checked","checked"),p.setAttribute("name","t"),u.appendChild(p),b.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,u.innerHTML="",b.noCloneChecked=!!u.cloneNode(!0).lastChild.defaultValue,u.innerHTML="",b.option=!!u.lastChild})();var Kt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Kt.tbody=Kt.tfoot=Kt.colgroup=Kt.caption=Kt.thead,Kt.th=Kt.td,b.option||(Kt.optgroup=Kt.option=[1,""]);function Bt(c,u){var p;return typeof c.getElementsByTagName!="undefined"?p=c.getElementsByTagName(u||"*"):typeof c.querySelectorAll!="undefined"?p=c.querySelectorAll(u||"*"):p=[],u===void 0||u&&H(c,u)?d.merge([c],p):p}function kt(c,u){for(var p=0,g=c.length;p-1){S&&S.push(Q);continue}if(z=Yi(Q),v=Bt(ee.appendChild(Q),"script"),z&&kt(v),p)for(B=0;Q=v[B++];)Jr.test(Q.type||"")&&p.push(Q)}return ee}var vs=/^([^.]*)(?:\.(.+)|)/;function or(){return!0}function Rr(){return!1}function In(c,u,p,g,S,Q){var v,R;if(typeof u=="object"){typeof p!="string"&&(g=g||p,p=void 0);for(R in u)In(c,R,p,g,u[R],Q);return c}if(g==null&&S==null?(S=p,g=p=void 0):S==null&&(typeof p=="string"?(S=g,g=void 0):(S=g,g=p,p=void 0)),S===!1)S=Rr;else if(!S)return c;return Q===1&&(v=S,S=function(_){return d().off(_),v.apply(this,arguments)},S.guid=v.guid||(v.guid=d.guid++)),c.each(function(){d.event.add(this,u,S,g,p)})}d.event={global:{},add:function(c,u,p,g,S){var Q,v,R,_,z,B,ee,W,oe,Ve,st,Ie=we.get(c);if(nr(c))for(p.handler&&(Q=p,p=Q.handler,S=Q.selector),S&&d.find.matchesSelector(gi,S),p.guid||(p.guid=d.guid++),(_=Ie.events)||(_=Ie.events=Object.create(null)),(v=Ie.handle)||(v=Ie.handle=function(Jt){return typeof d!="undefined"&&d.event.triggered!==Jt.type?d.event.dispatch.apply(c,arguments):void 0}),u=(u||"").match(Oi)||[""],z=u.length;z--;)R=vs.exec(u[z])||[],oe=st=R[1],Ve=(R[2]||"").split(".").sort(),oe&&(ee=d.event.special[oe]||{},oe=(S?ee.delegateType:ee.bindType)||oe,ee=d.event.special[oe]||{},B=d.extend({type:oe,origType:st,data:g,handler:p,guid:p.guid,selector:S,needsContext:S&&d.expr.match.needsContext.test(S),namespace:Ve.join(".")},Q),(W=_[oe])||(W=_[oe]=[],W.delegateCount=0,(!ee.setup||ee.setup.call(c,g,Ve,v)===!1)&&c.addEventListener&&c.addEventListener(oe,v)),ee.add&&(ee.add.call(c,B),B.handler.guid||(B.handler.guid=p.guid)),S?W.splice(W.delegateCount++,0,B):W.push(B),d.event.global[oe]=!0)},remove:function(c,u,p,g,S){var Q,v,R,_,z,B,ee,W,oe,Ve,st,Ie=we.hasData(c)&&we.get(c);if(!(!Ie||!(_=Ie.events))){for(u=(u||"").match(Oi)||[""],z=u.length;z--;){if(R=vs.exec(u[z])||[],oe=st=R[1],Ve=(R[2]||"").split(".").sort(),!oe){for(oe in _)d.event.remove(c,oe+u[z],p,g,!0);continue}for(ee=d.event.special[oe]||{},oe=(g?ee.delegateType:ee.bindType)||oe,W=_[oe]||[],R=R[2]&&new RegExp("(^|\\.)"+Ve.join("\\.(?:.*\\.|)")+"(\\.|$)"),v=Q=W.length;Q--;)B=W[Q],(S||st===B.origType)&&(!p||p.guid===B.guid)&&(!R||R.test(B.namespace))&&(!g||g===B.selector||g==="**"&&B.selector)&&(W.splice(Q,1),B.selector&&W.delegateCount--,ee.remove&&ee.remove.call(c,B));v&&!W.length&&((!ee.teardown||ee.teardown.call(c,Ve,Ie.handle)===!1)&&d.removeEvent(c,oe,Ie.handle),delete _[oe])}d.isEmptyObject(_)&&we.remove(c,"handle events")}},dispatch:function(c){var u,p,g,S,Q,v,R=new Array(arguments.length),_=d.event.fix(c),z=(we.get(this,"events")||Object.create(null))[_.type]||[],B=d.event.special[_.type]||{};for(R[0]=_,u=1;u=1)){for(;z!==this;z=z.parentNode||this)if(z.nodeType===1&&!(c.type==="click"&&z.disabled===!0)){for(Q=[],v={},p=0;p<_;p++)g=u[p],S=g.selector+" ",v[S]===void 0&&(v[S]=g.needsContext?d(S,this).index(z)>-1:d.find(S,this,null,[z]).length),v[S]&&Q.push(g);Q.length&&R.push({elem:z,handlers:Q})}}return z=this,_\s*$/g;function ws(c,u){return H(c,"table")&&H(u.nodeType!==11?u:u.firstChild,"tr")&&d(c).children("tbody")[0]||c}function $s(c){return c.type=(c.getAttribute("type")!==null)+"/"+c.type,c}function xo(c){return(c.type||"").slice(0,5)==="true/"?c.type=c.type.slice(5):c.removeAttribute("type"),c}function Zi(c,u){var p,g,S,Q,v,R,_;if(u.nodeType===1){if(we.hasData(c)&&(Q=we.get(c),_=Q.events,_)){we.remove(u,"handle events");for(S in _)for(p=0,g=_[S].length;p1&&typeof oe=="string"&&!b.checkClone&&ar.test(oe))return c.each(function(st){var Ie=c.eq(st);Ve&&(u[0]=oe.call(this,st,Ie.html())),Cr(Ie,u,p,g)});if(ee&&(S=Qo(u,c[0].ownerDocument,!1,c,g),Q=S.firstChild,S.childNodes.length===1&&(S=Q),Q||g)){for(v=d.map(Bt(S,"script"),$s),R=v.length;B0&&kt(v,!_&&Bt(c,"script")),R},cleanData:function(c){for(var u,p,g,S=d.event.special,Q=0;(p=c[Q])!==void 0;Q++)if(nr(p)){if(u=p[we.expando]){if(u.events)for(g in u.events)S[g]?d.event.remove(p,g):d.removeEvent(p,g,u.handle);p[we.expando]=void 0}p[Xt.expando]&&(p[Xt.expando]=void 0)}}}),d.fn.extend({detach:function(c){return Ps(this,c,!0)},remove:function(c){return Ps(this,c)},text:function(c){return di(this,function(u){return u===void 0?d.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=u)})},null,c,arguments.length)},append:function(){return Cr(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=ws(this,c);u.appendChild(c)}})},prepend:function(){return Cr(this,arguments,function(c){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=ws(this,c);u.insertBefore(c,u.firstChild)}})},before:function(){return Cr(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this)})},after:function(){return Cr(this,arguments,function(c){this.parentNode&&this.parentNode.insertBefore(c,this.nextSibling)})},empty:function(){for(var c,u=0;(c=this[u])!=null;u++)c.nodeType===1&&(d.cleanData(Bt(c,!1)),c.textContent="");return this},clone:function(c,u){return c=c==null?!1:c,u=u==null?c:u,this.map(function(){return d.clone(this,c,u)})},html:function(c){return di(this,function(u){var p=this[0]||{},g=0,S=this.length;if(u===void 0&&p.nodeType===1)return p.innerHTML;if(typeof u=="string"&&!Ei.test(u)&&!Kt[(So.exec(u)||["",""])[1].toLowerCase()]){u=d.htmlPrefilter(u);try{for(;g=0&&(_+=Math.max(0,Math.ceil(c["offset"+u[0].toUpperCase()+u.slice(1)]-Q-_-R-.5))||0),_+z}function Nl(c,u,p){var g=Pe(c),S=!b.boxSizingReliable()||p,Q=S&&d.css(c,"boxSizing",!1,g)==="border-box",v=Q,R=xe(c,u,g),_="offset"+u[0].toUpperCase()+u.slice(1);if(Bn.test(R)){if(!p)return R;R="auto"}return(!b.boxSizingReliable()&&Q||!b.reliableTrDimensions()&&H(c,"tr")||R==="auto"||!parseFloat(R)&&d.css(c,"display",!1,g)==="inline")&&c.getClientRects().length&&(Q=d.css(c,"boxSizing",!1,g)==="border-box",v=_ in c,v&&(R=c[_])),R=parseFloat(R)||0,R+_s(c,u,p||(Q?"border":"content"),v,g,R)+"px"}d.extend({cssHooks:{opacity:{get:function(c,u){if(u){var p=xe(c,"opacity");return p===""?"1":p}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!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,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(c,u,p,g){if(!(!c||c.nodeType===3||c.nodeType===8||!c.style)){var S,Q,v,R=Ht(u),_=ks.test(u),z=c.style;if(_||(u=lr(R)),v=d.cssHooks[u]||d.cssHooks[R],p!==void 0){if(Q=typeof p,Q==="string"&&(S=sr.exec(p))&&S[1]&&(p=jn(c,u,S),Q="number"),p==null||p!==p)return;Q==="number"&&!_&&(p+=S&&S[3]||(d.cssNumber[R]?"":"px")),!b.clearCloneStyle&&p===""&&u.indexOf("background")===0&&(z[u]="inherit"),(!v||!("set"in v)||(p=v.set(c,p,g))!==void 0)&&(_?z.setProperty(u,p):z[u]=p)}else return v&&"get"in v&&(S=v.get(c,!1,g))!==void 0?S:z[u]}},css:function(c,u,p,g){var S,Q,v,R=Ht(u),_=ks.test(u);return _||(u=lr(R)),v=d.cssHooks[u]||d.cssHooks[R],v&&"get"in v&&(S=v.get(c,!0,p)),S===void 0&&(S=xe(c,u,g)),S==="normal"&&u in Ts&&(S=Ts[u]),p===""||p?(Q=parseFloat(S),p===!0||isFinite(Q)?Q||0:S):S}}),d.each(["height","width"],function(c,u){d.cssHooks[u]={get:function(p,g,S){if(g)return tn.test(d.css(p,"display"))&&(!p.getClientRects().length||!p.getBoundingClientRect().width)?A(p,_t,function(){return Nl(p,u,S)}):Nl(p,u,S)},set:function(p,g,S){var Q,v=Pe(p),R=!b.scrollboxSize()&&v.position==="absolute",_=R||S,z=_&&d.css(p,"boxSizing",!1,v)==="border-box",B=S?_s(p,u,S,z,v):0;return z&&R&&(B-=Math.ceil(p["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(v[u])-_s(p,u,"border",!1,v)-.5)),B&&(Q=sr.exec(g))&&(Q[3]||"px")!=="px"&&(p.style[u]=g,g=d.css(p,u)),Xs(p,g,B)}}}),d.cssHooks.marginLeft=pt(b.reliableMarginLeft,function(c,u){if(u)return(parseFloat(xe(c,"marginLeft"))||c.getBoundingClientRect().left-A(c,{marginLeft:0},function(){return c.getBoundingClientRect().left}))+"px"}),d.each({margin:"",padding:"",border:"Width"},function(c,u){d.cssHooks[c+u]={expand:function(p){for(var g=0,S={},Q=typeof p=="string"?p.split(" "):[p];g<4;g++)S[c+mi[g]+u]=Q[g]||Q[g-2]||Q[0];return S}},c!=="margin"&&(d.cssHooks[c+u].set=Xs)}),d.fn.extend({css:function(c,u){return di(this,function(p,g,S){var Q,v,R={},_=0;if(Array.isArray(g)){for(Q=Pe(p),v=g.length;_1)}});function ni(c,u,p,g,S){return new ni.prototype.init(c,u,p,g,S)}d.Tween=ni,ni.prototype={constructor:ni,init:function(c,u,p,g,S,Q){this.elem=c,this.prop=p,this.easing=S||d.easing._default,this.options=u,this.start=this.now=this.cur(),this.end=g,this.unit=Q||(d.cssNumber[p]?"":"px")},cur:function(){var c=ni.propHooks[this.prop];return c&&c.get?c.get(this):ni.propHooks._default.get(this)},run:function(c){var u,p=ni.propHooks[this.prop];return this.options.duration?this.pos=u=d.easing[this.easing](c,this.options.duration*c,0,1,this.options.duration):this.pos=u=c,this.now=(this.end-this.start)*u+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),p&&p.set?p.set(this):ni.propHooks._default.set(this),this}},ni.prototype.init.prototype=ni.prototype,ni.propHooks={_default:{get:function(c){var u;return c.elem.nodeType!==1||c.elem[c.prop]!=null&&c.elem.style[c.prop]==null?c.elem[c.prop]:(u=d.css(c.elem,c.prop,""),!u||u==="auto"?0:u)},set:function(c){d.fx.step[c.prop]?d.fx.step[c.prop](c):c.elem.nodeType===1&&(d.cssHooks[c.prop]||c.elem.style[lr(c.prop)]!=null)?d.style(c.elem,c.prop,c.now+c.unit):c.elem[c.prop]=c.now}}},ni.propHooks.scrollTop=ni.propHooks.scrollLeft={set:function(c){c.elem.nodeType&&c.elem.parentNode&&(c.elem[c.prop]=c.now)}},d.easing={linear:function(c){return c},swing:function(c){return .5-Math.cos(c*Math.PI)/2},_default:"swing"},d.fx=ni.prototype.init,d.fx.step={};var w,C,k=/^(?:toggle|show|hide)$/,U=/queueHooks$/;function M(){C&&(X.hidden===!1&&i.requestAnimationFrame?i.requestAnimationFrame(M):i.setTimeout(M,d.fx.interval),d.fx.tick())}function Z(){return i.setTimeout(function(){w=void 0}),w=Date.now()}function K(c,u){var p,g=0,S={height:c};for(u=u?1:0;g<4;g+=2-u)p=mi[g],S["margin"+p]=S["padding"+p]=c;return u&&(S.opacity=S.width=c),S}function re(c,u,p){for(var g,S=(se.tweeners[u]||[]).concat(se.tweeners["*"]),Q=0,v=S.length;Q1)},removeAttr:function(c){return this.each(function(){d.removeAttr(this,c)})}}),d.extend({attr:function(c,u,p){var g,S,Q=c.nodeType;if(!(Q===3||Q===8||Q===2)){if(typeof c.getAttribute=="undefined")return d.prop(c,u,p);if((Q!==1||!d.isXMLDoc(c))&&(S=d.attrHooks[u.toLowerCase()]||(d.expr.match.bool.test(u)?$e:void 0)),p!==void 0){if(p===null){d.removeAttr(c,u);return}return S&&"set"in S&&(g=S.set(c,p,u))!==void 0?g:(c.setAttribute(u,p+""),p)}return S&&"get"in S&&(g=S.get(c,u))!==null?g:(g=d.find.attr(c,u),g==null?void 0:g)}},attrHooks:{type:{set:function(c,u){if(!b.radioValue&&u==="radio"&&H(c,"input")){var p=c.value;return c.setAttribute("type",u),p&&(c.value=p),u}}}},removeAttr:function(c,u){var p,g=0,S=u&&u.match(Oi);if(S&&c.nodeType===1)for(;p=S[g++];)c.removeAttribute(p)}}),$e={set:function(c,u,p){return u===!1?d.removeAttr(c,p):c.setAttribute(p,p),p}},d.each(d.expr.match.bool.source.match(/\w+/g),function(c,u){var p=qe[u]||d.find.attr;qe[u]=function(g,S,Q){var v,R,_=S.toLowerCase();return Q||(R=qe[_],qe[_]=v,v=p(g,S,Q)!=null?_:null,qe[_]=R),v}});var ht=/^(?:input|select|textarea|button)$/i,Ot=/^(?:a|area)$/i;d.fn.extend({prop:function(c,u){return di(this,d.prop,c,u,arguments.length>1)},removeProp:function(c){return this.each(function(){delete this[d.propFix[c]||c]})}}),d.extend({prop:function(c,u,p){var g,S,Q=c.nodeType;if(!(Q===3||Q===8||Q===2))return(Q!==1||!d.isXMLDoc(c))&&(u=d.propFix[u]||u,S=d.propHooks[u]),p!==void 0?S&&"set"in S&&(g=S.set(c,p,u))!==void 0?g:c[u]=p:S&&"get"in S&&(g=S.get(c,u))!==null?g:c[u]},propHooks:{tabIndex:{get:function(c){var u=d.find.attr(c,"tabindex");return u?parseInt(u,10):ht.test(c.nodeName)||Ot.test(c.nodeName)&&c.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),b.optSelected||(d.propHooks.selected={get:function(c){var u=c.parentNode;return u&&u.parentNode&&u.parentNode.selectedIndex,null},set:function(c){var u=c.parentNode;u&&(u.selectedIndex,u.parentNode&&u.parentNode.selectedIndex)}}),d.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){d.propFix[this.toLowerCase()]=this});function yt(c){var u=c.match(Oi)||[];return u.join(" ")}function gt(c){return c.getAttribute&&c.getAttribute("class")||""}function si(c){return Array.isArray(c)?c:typeof c=="string"?c.match(Oi)||[]:[]}d.fn.extend({addClass:function(c){var u,p,g,S,Q,v;return y(c)?this.each(function(R){d(this).addClass(c.call(this,R,gt(this)))}):(u=si(c),u.length?this.each(function(){if(g=gt(this),p=this.nodeType===1&&" "+yt(g)+" ",p){for(Q=0;Q-1;)p=p.replace(" "+S+" "," ");v=yt(p),g!==v&&this.setAttribute("class",v)}}):this):this.attr("class","")},toggleClass:function(c,u){var p,g,S,Q,v=typeof c,R=v==="string"||Array.isArray(c);return y(c)?this.each(function(_){d(this).toggleClass(c.call(this,_,gt(this),u),u)}):typeof u=="boolean"&&R?u?this.addClass(c):this.removeClass(c):(p=si(c),this.each(function(){if(R)for(Q=d(this),S=0;S-1)return!0;return!1}});var Rs=/\r/g;d.fn.extend({val:function(c){var u,p,g,S=this[0];return arguments.length?(g=y(c),this.each(function(Q){var v;this.nodeType===1&&(g?v=c.call(this,Q,d(this).val()):v=c,v==null?v="":typeof v=="number"?v+="":Array.isArray(v)&&(v=d.map(v,function(R){return R==null?"":R+""})),u=d.valHooks[this.type]||d.valHooks[this.nodeName.toLowerCase()],(!u||!("set"in u)||u.set(this,v,"value")===void 0)&&(this.value=v))})):S?(u=d.valHooks[S.type]||d.valHooks[S.nodeName.toLowerCase()],u&&"get"in u&&(p=u.get(S,"value"))!==void 0?p:(p=S.value,typeof p=="string"?p.replace(Rs,""):p==null?"":p)):void 0}}),d.extend({valHooks:{option:{get:function(c){var u=d.find.attr(c,"value");return u!=null?u:yt(d.text(c))}},select:{get:function(c){var u,p,g,S=c.options,Q=c.selectedIndex,v=c.type==="select-one",R=v?null:[],_=v?Q+1:S.length;for(Q<0?g=_:g=v?Q:0;g<_;g++)if(p=S[g],(p.selected||g===Q)&&!p.disabled&&(!p.parentNode.disabled||!H(p.parentNode,"optgroup"))){if(u=d(p).val(),v)return u;R.push(u)}return R},set:function(c,u){for(var p,g,S=c.options,Q=d.makeArray(u),v=S.length;v--;)g=S[v],(g.selected=d.inArray(d.valHooks.option.get(g),Q)>-1)&&(p=!0);return p||(c.selectedIndex=-1),Q}}}}),d.each(["radio","checkbox"],function(){d.valHooks[this]={set:function(c,u){if(Array.isArray(u))return c.checked=d.inArray(d(c).val(),u)>-1}},b.checkOn||(d.valHooks[this].get=function(c){return c.getAttribute("value")===null?"on":c.value})});var vn=i.location,Bl={guid:Date.now()},Cs=/\?/;d.parseXML=function(c){var u,p;if(!c||typeof c!="string")return null;try{u=new i.DOMParser().parseFromString(c,"text/xml")}catch(g){}return p=u&&u.getElementsByTagName("parsererror")[0],(!u||p)&&d.error("Invalid XML: "+(p?d.map(p.childNodes,function(g){return g.textContent}).join(` `):c)),u};var eu=/^(?:focusinfocus|focusoutblur)$/,Gl=function(c){c.stopPropagation()};d.extend(d.event,{trigger:function(c,u,p,g){var S,Q,v,R,_,z,B,ee,W=[p||X],oe=h.call(c,"type")?c.type:c,Ve=h.call(c,"namespace")?c.namespace.split("."):[];if(Q=ee=v=p=p||X,!(p.nodeType===3||p.nodeType===8)&&!eu.test(oe+d.event.triggered)&&(oe.indexOf(".")>-1&&(Ve=oe.split("."),oe=Ve.shift(),Ve.sort()),_=oe.indexOf(":")<0&&"on"+oe,c=c[d.expando]?c:new d.Event(oe,typeof c=="object"&&c),c.isTrigger=g?2:3,c.namespace=Ve.join("."),c.rnamespace=c.namespace?new RegExp("(^|\\.)"+Ve.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=void 0,c.target||(c.target=p),u=u==null?[c]:d.makeArray(u,[c]),B=d.event.special[oe]||{},!(!g&&B.trigger&&B.trigger.apply(p,u)===!1))){if(!g&&!B.noBubble&&!P(p)){for(R=B.delegateType||oe,eu.test(R+oe)||(Q=Q.parentNode);Q;Q=Q.parentNode)W.push(Q),v=Q;v===(p.ownerDocument||X)&&W.push(v.defaultView||v.parentWindow||i)}for(S=0;(Q=W[S++])&&!c.isPropagationStopped();)ee=Q,c.type=S>1?R:B.bindType||oe,z=(we.get(Q,"events")||Object.create(null))[c.type]&&we.get(Q,"handle"),z&&z.apply(Q,u),z=_&&Q[_],z&&z.apply&&nr(Q)&&(c.result=z.apply(Q,u),c.result===!1&&c.preventDefault());return c.type=oe,!g&&!c.isDefaultPrevented()&&(!B._default||B._default.apply(W.pop(),u)===!1)&&nr(p)&&_&&y(p[oe])&&!P(p)&&(v=p[_],v&&(p[_]=null),d.event.triggered=oe,c.isPropagationStopped()&&ee.addEventListener(oe,Gl),p[oe](),c.isPropagationStopped()&&ee.removeEventListener(oe,Gl),d.event.triggered=void 0,v&&(p[_]=v)),c.result}},simulate:function(c,u,p){var g=d.extend(new d.Event,p,{type:c,isSimulated:!0});d.event.trigger(g,null,u)}}),d.fn.extend({trigger:function(c,u){return this.each(function(){d.event.trigger(c,u,this)})},triggerHandler:function(c,u){var p=this[0];if(p)return d.event.trigger(c,u,p,!0)}});var tu=/\[\]$/,fa=/\r?\n/g,N1=/^(?:submit|button|image|reset|file)$/i,B1=/^(?:input|select|textarea|keygen)/i;function iu(c,u,p,g){var S;if(Array.isArray(u))d.each(u,function(Q,v){p||tu.test(c)?g(c,v):iu(c+"["+(typeof v=="object"&&v!=null?Q:"")+"]",v,p,g)});else if(!p&&q(u)==="object")for(S in u)iu(c+"["+S+"]",u[S],p,g);else g(c,u)}d.param=function(c,u){var p,g=[],S=function(Q,v){var R=y(v)?v():v;g[g.length]=encodeURIComponent(Q)+"="+encodeURIComponent(R==null?"":R)};if(c==null)return"";if(Array.isArray(c)||c.jquery&&!d.isPlainObject(c))d.each(c,function(){S(this.name,this.value)});else for(p in c)iu(p,c[p],u,S);return g.join("&")},d.fn.extend({serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var c=d.prop(this,"elements");return c?d.makeArray(c):this}).filter(function(){var c=this.type;return this.name&&!d(this).is(":disabled")&&B1.test(this.nodeName)&&!N1.test(c)&&(this.checked||!Wt.test(c))}).map(function(c,u){var p=d(this).val();return p==null?null:Array.isArray(p)?d.map(p,function(g){return{name:u.name,value:g.replace(fa,`\r `)}}):{name:u.name,value:p.replace(fa,`\r `)}}).get()}});var G1=/%20/g,F1=/#.*$/,H1=/([?&])_=[^&]*/,K1=/^(.*?):[ \t]*([^\r\n]*)$/mg,J1=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ew=/^(?:GET|HEAD)$/,tw=/^\/\//,ag={},ru={},lg="*/".concat("*"),nu=X.createElement("a");nu.href=vn.href;function cg(c){return function(u,p){typeof u!="string"&&(p=u,u="*");var g,S=0,Q=u.toLowerCase().match(Oi)||[];if(y(p))for(;g=Q[S++];)g[0]==="+"?(g=g.slice(1)||"*",(c[g]=c[g]||[]).unshift(p)):(c[g]=c[g]||[]).push(p)}}function fg(c,u,p,g){var S={},Q=c===ru;function v(R){var _;return S[R]=!0,d.each(c[R]||[],function(z,B){var ee=B(u,p,g);if(typeof ee=="string"&&!Q&&!S[ee])return u.dataTypes.unshift(ee),v(ee),!1;if(Q)return!(_=ee)}),_}return v(u.dataTypes[0])||!S["*"]&&v("*")}function su(c,u){var p,g,S=d.ajaxSettings.flatOptions||{};for(p in u)u[p]!==void 0&&((S[p]?c:g||(g={}))[p]=u[p]);return g&&d.extend(!0,c,g),c}function iw(c,u,p){for(var g,S,Q,v,R=c.contents,_=c.dataTypes;_[0]==="*";)_.shift(),g===void 0&&(g=c.mimeType||u.getResponseHeader("Content-Type"));if(g){for(S in R)if(R[S]&&R[S].test(g)){_.unshift(S);break}}if(_[0]in p)Q=_[0];else{for(S in p){if(!_[0]||c.converters[S+" "+_[0]]){Q=S;break}v||(v=S)}Q=Q||v}if(Q)return Q!==_[0]&&_.unshift(Q),p[Q]}function rw(c,u,p,g){var S,Q,v,R,_,z={},B=c.dataTypes.slice();if(B[1])for(v in c.converters)z[v.toLowerCase()]=c.converters[v];for(Q=B.shift();Q;)if(c.responseFields[Q]&&(p[c.responseFields[Q]]=u),!_&&g&&c.dataFilter&&(u=c.dataFilter(u,c.dataType)),_=Q,Q=B.shift(),Q){if(Q==="*")Q=_;else if(_!=="*"&&_!==Q){if(v=z[_+" "+Q]||z["* "+Q],!v){for(S in z)if(R=S.split(" "),R[1]===Q&&(v=z[_+" "+R[0]]||z["* "+R[0]],v)){v===!0?v=z[S]:z[S]!==!0&&(Q=R[0],B.unshift(R[1]));break}}if(v!==!0)if(v&&c.throws)u=v(u);else try{u=v(u)}catch(ee){return{state:"parsererror",error:v?ee:"No conversion from "+_+" to "+Q}}}}return{state:"success",data:u}}d.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vn.href,type:"GET",isLocal:J1.test(vn.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":lg,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":d.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(c,u){return u?su(su(c,d.ajaxSettings),u):su(d.ajaxSettings,c)},ajaxPrefilter:cg(ag),ajaxTransport:cg(ru),ajax:function(c,u){typeof c=="object"&&(u=c,c=void 0),u=u||{};var p,g,S,Q,v,R,_,z,B,ee,W=d.ajaxSetup({},u),oe=W.context||W,Ve=W.context&&(oe.nodeType||oe.jquery)?d(oe):d.event,st=d.Deferred(),Ie=d.Callbacks("once memory"),Jt=W.statusCode||{},qt={},rn={},nn="canceled",et={readyState:0,getResponseHeader:function(ct){var Yt;if(_){if(!Q)for(Q={};Yt=K1.exec(S);)Q[Yt[1].toLowerCase()+" "]=(Q[Yt[1].toLowerCase()+" "]||[]).concat(Yt[2]);Yt=Q[ct.toLowerCase()+" "]}return Yt==null?null:Yt.join(", ")},getAllResponseHeaders:function(){return _?S:null},setRequestHeader:function(ct,Yt){return _==null&&(ct=rn[ct.toLowerCase()]=rn[ct.toLowerCase()]||ct,qt[ct]=Yt),this},overrideMimeType:function(ct){return _==null&&(W.mimeType=ct),this},statusCode:function(ct){var Yt;if(ct)if(_)et.always(ct[et.status]);else for(Yt in ct)Jt[Yt]=[Jt[Yt],ct[Yt]];return this},abort:function(ct){var Yt=ct||nn;return p&&p.abort(Yt),As(0,Yt),this}};if(st.promise(et),W.url=((c||W.url||vn.href)+"").replace(tw,vn.protocol+"//"),W.type=u.method||u.type||W.method||W.type,W.dataTypes=(W.dataType||"*").toLowerCase().match(Oi)||[""],W.crossDomain==null){R=X.createElement("a");try{R.href=W.url,R.href=R.href,W.crossDomain=nu.protocol+"//"+nu.host!=R.protocol+"//"+R.host}catch(ct){W.crossDomain=!0}}if(W.data&&W.processData&&typeof W.data!="string"&&(W.data=d.param(W.data,W.traditional)),fg(ag,W,u,et),_)return et;z=d.event&&W.global,z&&d.active++===0&&d.event.trigger("ajaxStart"),W.type=W.type.toUpperCase(),W.hasContent=!ew.test(W.type),g=W.url.replace(F1,""),W.hasContent?W.data&&W.processData&&(W.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(W.data=W.data.replace(G1,"+")):(ee=W.url.slice(g.length),W.data&&(W.processData||typeof W.data=="string")&&(g+=(Cs.test(g)?"&":"?")+W.data,delete W.data),W.cache===!1&&(g=g.replace(H1,"$1"),ee=(Cs.test(g)?"&":"?")+"_="+Bl.guid+++ee),W.url=g+ee),W.ifModified&&(d.lastModified[g]&&et.setRequestHeader("If-Modified-Since",d.lastModified[g]),d.etag[g]&&et.setRequestHeader("If-None-Match",d.etag[g])),(W.data&&W.hasContent&&W.contentType!==!1||u.contentType)&&et.setRequestHeader("Content-Type",W.contentType),et.setRequestHeader("Accept",W.dataTypes[0]&&W.accepts[W.dataTypes[0]]?W.accepts[W.dataTypes[0]]+(W.dataTypes[0]!=="*"?", "+lg+"; q=0.01":""):W.accepts["*"]);for(B in W.headers)et.setRequestHeader(B,W.headers[B]);if(W.beforeSend&&(W.beforeSend.call(oe,et,W)===!1||_))return et.abort();if(nn="abort",Ie.add(W.complete),et.done(W.success),et.fail(W.error),p=fg(ru,W,u,et),!p)As(-1,"No Transport");else{if(et.readyState=1,z&&Ve.trigger("ajaxSend",[et,W]),_)return et;W.async&&W.timeout>0&&(v=i.setTimeout(function(){et.abort("timeout")},W.timeout));try{_=!1,p.send(qt,As)}catch(ct){if(_)throw ct;As(-1,ct)}}function As(ct,Yt,ua,au){var sn,Oa,on,Gn,Fn,cr=Yt;_||(_=!0,v&&i.clearTimeout(v),p=void 0,S=au||"",et.readyState=ct>0?4:0,sn=ct>=200&&ct<300||ct===304,ua&&(Gn=iw(W,et,ua)),!sn&&d.inArray("script",W.dataTypes)>-1&&d.inArray("json",W.dataTypes)<0&&(W.converters["text script"]=function(){}),Gn=rw(W,Gn,et,sn),sn?(W.ifModified&&(Fn=et.getResponseHeader("Last-Modified"),Fn&&(d.lastModified[g]=Fn),Fn=et.getResponseHeader("etag"),Fn&&(d.etag[g]=Fn)),ct===204||W.type==="HEAD"?cr="nocontent":ct===304?cr="notmodified":(cr=Gn.state,Oa=Gn.data,on=Gn.error,sn=!on)):(on=cr,(ct||!cr)&&(cr="error",ct<0&&(ct=0))),et.status=ct,et.statusText=(Yt||cr)+"",sn?st.resolveWith(oe,[Oa,cr,et]):st.rejectWith(oe,[et,cr,on]),et.statusCode(Jt),Jt=void 0,z&&Ve.trigger(sn?"ajaxSuccess":"ajaxError",[et,W,sn?Oa:on]),Ie.fireWith(oe,[et,cr]),z&&(Ve.trigger("ajaxComplete",[et,W]),--d.active||d.event.trigger("ajaxStop")))}return et},getJSON:function(c,u,p){return d.get(c,u,p,"json")},getScript:function(c,u){return d.get(c,void 0,u,"script")}}),d.each(["get","post"],function(c,u){d[u]=function(p,g,S,Q){return y(g)&&(Q=Q||S,S=g,g=void 0),d.ajax(d.extend({url:p,type:u,dataType:Q,data:g,success:S},d.isPlainObject(p)&&p))}}),d.ajaxPrefilter(function(c){var u;for(u in c.headers)u.toLowerCase()==="content-type"&&(c.contentType=c.headers[u]||"")}),d._evalUrl=function(c,u,p){return d.ajax({url:c,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(g){d.globalEval(g,u,p)}})},d.fn.extend({wrapAll:function(c){var u;return this[0]&&(y(c)&&(c=c.call(this[0])),u=d(c,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&u.insertBefore(this[0]),u.map(function(){for(var p=this;p.firstElementChild;)p=p.firstElementChild;return p}).append(this)),this},wrapInner:function(c){return y(c)?this.each(function(u){d(this).wrapInner(c.call(this,u))}):this.each(function(){var u=d(this),p=u.contents();p.length?p.wrapAll(c):u.append(c)})},wrap:function(c){var u=y(c);return this.each(function(p){d(this).wrapAll(u?c.call(this,p):c)})},unwrap:function(c){return this.parent(c).not("body").each(function(){d(this).replaceWith(this.childNodes)}),this}}),d.expr.pseudos.hidden=function(c){return!d.expr.pseudos.visible(c)},d.expr.pseudos.visible=function(c){return!!(c.offsetWidth||c.offsetHeight||c.getClientRects().length)},d.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(c){}};var nw={0:200,1223:204},ha=d.ajaxSettings.xhr();b.cors=!!ha&&"withCredentials"in ha,b.ajax=ha=!!ha,d.ajaxTransport(function(c){var u,p;if(b.cors||ha&&!c.crossDomain)return{send:function(g,S){var Q,v=c.xhr();if(v.open(c.type,c.url,c.async,c.username,c.password),c.xhrFields)for(Q in c.xhrFields)v[Q]=c.xhrFields[Q];c.mimeType&&v.overrideMimeType&&v.overrideMimeType(c.mimeType),!c.crossDomain&&!g["X-Requested-With"]&&(g["X-Requested-With"]="XMLHttpRequest");for(Q in g)v.setRequestHeader(Q,g[Q]);u=function(R){return function(){u&&(u=p=v.onload=v.onerror=v.onabort=v.ontimeout=v.onreadystatechange=null,R==="abort"?v.abort():R==="error"?typeof v.status!="number"?S(0,"error"):S(v.status,v.statusText):S(nw[v.status]||v.status,v.statusText,(v.responseType||"text")!=="text"||typeof v.responseText!="string"?{binary:v.response}:{text:v.responseText},v.getAllResponseHeaders()))}},v.onload=u(),p=v.onerror=v.ontimeout=u("error"),v.onabort!==void 0?v.onabort=p:v.onreadystatechange=function(){v.readyState===4&&i.setTimeout(function(){u&&p()})},u=u("abort");try{v.send(c.hasContent&&c.data||null)}catch(R){if(u)throw R}},abort:function(){u&&u()}}}),d.ajaxPrefilter(function(c){c.crossDomain&&(c.contents.script=!1)}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(c){return d.globalEval(c),c}}}),d.ajaxPrefilter("script",function(c){c.cache===void 0&&(c.cache=!1),c.crossDomain&&(c.type="GET")}),d.ajaxTransport("script",function(c){if(c.crossDomain||c.scriptAttrs){var u,p;return{send:function(g,S){u=d("