From c17ca5fbb0fa586651e924f1eef013f4e4567093 Mon Sep 17 00:00:00 2001 From: sehugg Date: Wed, 2 Sep 2026 13:00:01 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20sehugg/8?= =?UTF-8?q?bitworkshop@4f7617346ba2c0c7bdc6e81e80e821a06f0db3d5=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/ui.css | 7 +- gen/{basic-4BIRAQ3E.js => basic-7UYJ5DHM.js} | 4 +- ...-4BIRAQ3E.js.map => basic-7UYJ5DHM.js.map} | 0 gen/{chunk-VOI5MHR3.js => chunk-7S7IJ5G7.js} | 106 +++++++------- gen/chunk-7S7IJ5G7.js.map | 7 + gen/{chunk-6UQAGDOD.js => chunk-H4446SY7.js} | 8 +- ...-6UQAGDOD.js.map => chunk-H4446SY7.js.map} | 6 +- gen/{chunk-F6NBEMS2.js => chunk-SJEDTBYQ.js} | 4 +- ...-F6NBEMS2.js.map => chunk-SJEDTBYQ.js.map} | 0 gen/chunk-VOI5MHR3.js.map | 7 - gen/common/searchtypes.js.map | 2 +- gen/{devel-3P3HQ7JL.js => devel-GISBJ47I.js} | 4 +- ...-3P3HQ7JL.js.map => devel-GISBJ47I.js.map} | 0 gen/embedui.js | 2 +- gen/ide/errorreport.js | 41 ++++++ gen/ide/errorreport.js.map | 1 + gen/ide/keys.js | 5 +- gen/ide/keys.js.map | 2 +- gen/ide/search/debuggerhit.js | 76 ++++++++++ gen/ide/search/debuggerhit.js.map | 1 + gen/ide/search/searchview.js | 31 ++++- gen/ide/search/searchview.js.map | 2 +- gen/ide/search/symbolindex.js | 1 + gen/ide/search/symbolindex.js.map | 2 +- gen/ide/shortcutbar.js | 2 +- gen/ide/shortcutbar.js.map | 2 +- gen/ide/ui.js | 58 ++++---- gen/ide/ui.js.map | 2 +- gen/src/common/searchtypes.js.map | 2 +- gen/src/ide/errorreport.js | 41 ++++++ gen/src/ide/errorreport.js.map | 1 + gen/src/ide/keys.js | 5 +- gen/src/ide/keys.js.map | 2 +- gen/src/ide/search/debuggerhit.js | 76 ++++++++++ gen/src/ide/search/debuggerhit.js.map | 1 + gen/src/ide/search/searchview.js | 31 ++++- gen/src/ide/search/searchview.js.map | 2 +- gen/src/ide/search/symbolindex.js | 1 + gen/src/ide/search/symbolindex.js.map | 2 +- gen/src/ide/shortcutbar.js | 2 +- gen/src/ide/shortcutbar.js.map | 2 +- gen/src/ide/ui.js | 58 ++++---- gen/src/ide/ui.js.map | 2 +- gen/test/tsconfig.tsbuildinfo | 2 +- gen/test/unit/testkeys.js | 5 + gen/test/unit/testkeys.js.map | 2 +- gen/test/unit/testsearchdebuggerhit.js | 130 ++++++++++++++++++ gen/test/unit/testsearchdebuggerhit.js.map | 1 + gen/tsconfig.tsbuildinfo | 2 +- gen/ui.js | 2 +- ...erilog-MBHBXAJL.js => verilog-YO7TRYS6.js} | 4 +- ...BHBXAJL.js.map => verilog-YO7TRYS6.js.map} | 0 package.json | 3 +- src/common/searchtypes.ts | 3 +- src/ide/errorreport.ts | 37 +++++ src/ide/keys.ts | 5 +- src/ide/search/debuggerhit.ts | 78 +++++++++++ src/ide/search/searchview.ts | 29 +++- src/ide/search/symbolindex.ts | 1 + src/ide/shortcutbar.ts | 2 +- src/ide/ui.ts | 50 +++---- 61 files changed, 776 insertions(+), 191 deletions(-) rename gen/{basic-4BIRAQ3E.js => basic-7UYJ5DHM.js} (99%) rename gen/{basic-4BIRAQ3E.js.map => basic-7UYJ5DHM.js.map} (100%) rename gen/{chunk-VOI5MHR3.js => chunk-7S7IJ5G7.js} (73%) create mode 100644 gen/chunk-7S7IJ5G7.js.map rename gen/{chunk-6UQAGDOD.js => chunk-H4446SY7.js} (91%) rename gen/{chunk-6UQAGDOD.js.map => chunk-H4446SY7.js.map} (72%) rename gen/{chunk-F6NBEMS2.js => chunk-SJEDTBYQ.js} (96%) rename gen/{chunk-F6NBEMS2.js.map => chunk-SJEDTBYQ.js.map} (100%) delete mode 100644 gen/chunk-VOI5MHR3.js.map rename gen/{devel-3P3HQ7JL.js => devel-GISBJ47I.js} (93%) rename gen/{devel-3P3HQ7JL.js.map => devel-GISBJ47I.js.map} (100%) create mode 100644 gen/ide/errorreport.js create mode 100644 gen/ide/errorreport.js.map create mode 100644 gen/ide/search/debuggerhit.js create mode 100644 gen/ide/search/debuggerhit.js.map create mode 100644 gen/src/ide/errorreport.js create mode 100644 gen/src/ide/errorreport.js.map create mode 100644 gen/src/ide/search/debuggerhit.js create mode 100644 gen/src/ide/search/debuggerhit.js.map create mode 100644 gen/test/unit/testsearchdebuggerhit.js create mode 100644 gen/test/unit/testsearchdebuggerhit.js.map rename gen/{verilog-MBHBXAJL.js => verilog-YO7TRYS6.js} (99%) rename gen/{verilog-MBHBXAJL.js.map => verilog-YO7TRYS6.js.map} (100%) create mode 100644 src/ide/errorreport.ts create mode 100644 src/ide/search/debuggerhit.ts diff --git a/css/ui.css b/css/ui.css index 71563d17..e68ebf0d 100644 --- a/css/ui.css +++ b/css/ui.css @@ -85,8 +85,9 @@ bottom:0; left:0; right:0; - height:2.15em; + height:2.2em; line-height:2em; + font-size:0.9em; background-color:#999; color:#111; display:flex; @@ -95,6 +96,7 @@ z-index:10; overflow:hidden; white-space:nowrap; + border-top:1px solid #666; } #shortcuts_bar .shortcuts_zone { flex:1 1 auto; @@ -109,12 +111,11 @@ margin-right:1.25em; } #shortcuts_bar kbd { - background-color:#333; + background-color:#666; color:#fff; border-radius:3px; padding:0.1em 0.4em; font-family:inherit; - font-size:0.9em; } #shortcuts_bar .clickable { cursor:pointer; diff --git a/gen/basic-4BIRAQ3E.js b/gen/basic-7UYJ5DHM.js similarity index 99% rename from gen/basic-4BIRAQ3E.js rename to gen/basic-7UYJ5DHM.js index 7f353edb..4967da5c 100644 --- a/gen/basic-4BIRAQ3E.js +++ b/gen/basic-7UYJ5DHM.js @@ -1,4 +1,4 @@ -import{b as S}from"./chunk-3FIVEUG2.js";import{t as E}from"./chunk-VOI5MHR3.js";import"./chunk-6UQAGDOD.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-F6NBEMS2.js";import"./chunk-CZ7OSHSE.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(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)}},I=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=I),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 S}from"./chunk-3FIVEUG2.js";import{u as E}from"./chunk-7S7IJ5G7.js";import"./chunk-H4446SY7.js";import"./chunk-LNOKARBD.js";import"./chunk-A7SWO6EA.js";import"./chunk-SJEDTBYQ.js";import"./chunk-CZ7OSHSE.js";import{B as c,K as f,T as d,U as v,a as g}from"./chunk-TYDI7JZQ.js";import"./chunk-KT7KMEQC.js";function k(u){return u.value!=null}function y(u){return u.name!=null}function O(u){return u.op!=null&&u.left!=null&&u.right!=null}function N(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)}},I=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=I),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={}),k(t))return JSON.stringify(t.value);if(y(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(O(t)){var n=this.expr2js(t.left,r),s=this.expr2js(t.right,r);return`this.${t.op}(${n}, ${s})`}else if(N(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 S}from"./chunk-3FIVEUG2.js";import{t as E}from"./chunk-VOI5MHR3.js"; `),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,(!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 L}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()}hasCustomStepOver(){return!0}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&&t{(function(i){if(typeof Cg=="object"&&typeof tf!="undefined")tf.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 f=typeof bo=="function"&&bo;if(!O&&f)return f(h,!0);if(l)return l(h,!0);var u=new Error("Cannot find module '"+h+"'");throw u.code="MODULE_NOT_FOUND",u}var p=s[h]={exports:{}};n[h][0].call(p.exports,function(m){var S=n[h][1][m];return a(S||m)},p,p.exports,r,n,s,o)}return s[h].exports}for(var l=typeof bo=="function"&&bo,c=0;c=43)}}).catch(function(){return!1})}function D(g){return typeof C=="boolean"?f.resolve(C):z(g).then(function(Q){return C=Q,C})}function Oe(g){var Q=R[g.name],x={};x.promise=new f(function(X,T){x.resolve=X,x.reject=T}),Q.deferredOperations.push(x),Q.dbReady?Q.dbReady=Q.dbReady.then(function(){return x.promise}):Q.dbReady=x.promise}function se(g){var Q=R[g.name],x=Q.deferredOperations.pop();if(x)return x.resolve(),x.promise}function ee(g,Q){var x=R[g.name],X=x.deferredOperations.pop();if(X)return X.reject(Q),X.promise}function he(g,Q){return new f(function(x,X){if(R[g.name]=R[g.name]||Zt(),g.db)if(Q)Oe(g),g.db.close();else return x(g.db);var T=[g.name];Q&&T.push(g.version);var y=c.open.apply(c,T);Q&&(y.onupgradeneeded=function(E){var V=y.result;try{V.createObjectStore(g.storeName),E.oldVersion<=1&&V.createObjectStore(w)}catch(j){if(j.name==="ConstraintError")console.warn('The database "'+g.name+'" has been upgraded from version '+E.oldVersion+" to version "+E.newVersion+', but the storage "'+g.storeName+'" already exists.');else throw j}}),y.onerror=function(E){E.preventDefault(),X(y.error)},y.onsuccess=function(){var E=y.result;E.onversionchange=function(V){V.target.close()},x(E),se(g)}})}function ge(g){return he(g,!1)}function we(g){return he(g,!0)}function Y(g,Q){if(!g.db)return!0;var x=!g.db.objectStoreNames.contains(g.storeName),X=g.versiong.db.version;if(X&&(g.version!==Q&&console.warn('The database "'+g.name+`" can't be downgraded from version `+g.db.version+" to version "+g.version+"."),g.version=g.db.version),T||x){if(x){var y=g.db.version+1;y>g.version&&(g.version=y)}return!0}return!1}function re(g){return new f(function(Q,x){var X=new FileReader;X.onerror=x,X.onloadend=function(T){var y=btoa(T.target.result||"");Q({__local_forage_encoded_blob:!0,data:y,type:g.type})},X.readAsBinaryString(g)})}function N(g){var Q=Z(atob(g.data));return O([Q],{type:g.type})}function be(g){return g&&g.__local_forage_encoded_blob}function ye(g){var Q=this,x=Q._initReady().then(function(){var X=R[Q._dbInfo.name];if(X&&X.dbReady)return X.dbReady});return p(x,g,g),x}function He(g){Oe(g);for(var Q=R[g.name],x=Q.forages,X=0;X0&&(!g.db||y.name==="InvalidStateError"||y.name==="NotFoundError"))return f.resolve().then(function(){if(!g.db||y.name==="NotFoundError"&&!g.db.objectStoreNames.contains(g.storeName)&&g.version<=g.db.version)return g.db&&(g.version=g.db.version+1),we(g)}).then(function(){return He(g).then(function(){de(g,Q,x,X-1)})}).catch(x);x(y)}}function Zt(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function ki(g){var Q=this,x={db:null};if(g)for(var X in g)x[X]=g[X];var T=R[x.name];T||(T=Zt(),R[x.name]=T),T.forages.push(Q),Q._initReady||(Q._initReady=Q.ready,Q.ready=ye);var y=[];function E(){return f.resolve()}for(var V=0;V>4,B[T++]=(E&15)<<4|V>>2,B[T++]=(V&3)<<6|j&63;return q}function ts(g){var Q=new Uint8Array(g),x="",X;for(X=0;X>2],x+=Ae[(Q[X]&3)<<4|Q[X+1]>>4],x+=Ae[(Q[X+1]&15)<<2|Q[X+2]>>6],x+=Ae[Q[X+2]&63];return Q.length%3===2?x=x.substring(0,x.length-1)+"=":Q.length%3===1&&(x=x.substring(0,x.length-2)+"=="),x}function el(g,Q){var x="";if(g&&(x=hn.call(g)),g&&(x==="[object ArrayBuffer]"||g.buffer&&hn.call(g.buffer)==="[object ArrayBuffer]")){var X,T=Kt;g instanceof ArrayBuffer?(X=g,T+=on):(X=g.buffer,x==="[object Int8Array]"?T+=oo:x==="[object Uint8Array]"?T+=Xi:x==="[object Uint8ClampedArray]"?T+=Ti:x==="[object Int16Array]"?T+=Fi:x==="[object Uint16Array]"?T+=an:x==="[object Int32Array]"?T+=Jn:x==="[object Uint32Array]"?T+=ln:x==="[object Float32Array]"?T+=es:x==="[object Float64Array]"?T+=lr:Q(new Error("Failed to get type for BinaryArray"))),Q(T+ts(X))}else if(x==="[object Blob]"){var y=new FileReader;y.onload=function(){var E=sn+g.type+"~"+ts(this.result);Q(Kt+Kn+E)},y.readAsArrayBuffer(g)}else try{Q(JSON.stringify(g))}catch(E){console.error("Couldn't convert value into a JSON string: ",g),Q(null,E)}}function lo(g){if(g.substring(0,Hn)!==Kt)return JSON.parse(g);var Q=g.substring(cn),x=g.substring(Hn,cn),X;if(x===Kn&&so.test(Q)){var T=Q.match(so);X=T[1],Q=Q.substring(T[0].length)}var y=ao(Q);switch(x){case on:return y;case Kn:return O([y],{type:X});case oo:return new Int8Array(y);case Xi:return new Uint8Array(y);case Ti:return new Uint8ClampedArray(y);case Fi:return new Int16Array(y);case an:return new Uint16Array(y);case Jn:return new Int32Array(y);case ln:return new Uint32Array(y);case es:return new Float32Array(y);case lr:return new Float64Array(y);default:throw new Error("Unkown type: "+x)}}var Xr={serialize:el,deserialize:lo,stringToBuffer:ao,bufferToString:ts};function cr(g,Q,x,X){g.executeSql("CREATE TABLE IF NOT EXISTS "+Q.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],x,X)}function hi(g){var Q=this,x={db:null};if(g)for(var X in g)x[X]=typeof g[X]!="string"?g[X].toString():g[X];var T=new f(function(y,E){try{x.db=openDatabase(x.name,String(x.version),x.description,x.size)}catch(V){return E(V)}x.db.transaction(function(V){cr(V,x,function(){Q._dbInfo=x,y()},function(j,q){E(q)})},E)});return x.serializer=Xr,T}function Oi(g,Q,x,X,T,y){g.executeSql(x,X,T,function(E,V){V.code===V.SYNTAX_ERR?E.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[Q.storeName],function(j,q){q.rows.length?y(j,V):cr(j,Q,function(){j.executeSql(x,X,T,y)},y)},y):y(E,V)},y)}function tl(g,Q){var x=this;g=m(g);var X=new f(function(T,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT * FROM "+E.storeName+" WHERE key = ? LIMIT 1",[g],function(j,q){var B=q.rows.length?q.rows.item(0).value:null;B&&(B=E.serializer.deserialize(B)),T(B)},function(j,q){y(q)})})}).catch(y)});return u(X,Q),X}function il(g,Q){var x=this,X=new f(function(T,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT * FROM "+E.storeName,[],function(j,q){for(var B=q.rows,oe=B.length,xe=0;xe0){E(is.apply(T,[g,j,x,X-1]));return}V(xe)}})})}).catch(V)});return u(y,x),y}function rl(g,Q,x){return is.apply(this,[g,Q,x,1])}function rs(g,Q){var x=this;g=m(g);var X=new f(function(T,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"DELETE FROM "+E.storeName+" WHERE key = ?",[g],function(){T()},function(j,q){y(q)})})}).catch(y)});return u(X,Q),X}function ns(g){var Q=this,x=new f(function(X,T){Q.ready().then(function(){var y=Q._dbInfo;y.db.transaction(function(E){Oi(E,y,"DELETE FROM "+y.storeName,[],function(){X()},function(V,j){T(j)})})}).catch(T)});return u(x,g),x}function fi(g){var Q=this,x=new f(function(X,T){Q.ready().then(function(){var y=Q._dbInfo;y.db.transaction(function(E){Oi(E,y,"SELECT COUNT(key) as c FROM "+y.storeName,[],function(V,j){var q=j.rows.item(0).c;X(q)},function(V,j){T(j)})})}).catch(T)});return u(x,g),x}function Tr(g,Q){var x=this,X=new f(function(T,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT key FROM "+E.storeName+" WHERE id = ? LIMIT 1",[g+1],function(j,q){var B=q.rows.length?q.rows.item(0).key:null;T(B)},function(j,q){y(q)})})}).catch(y)});return u(X,Q),X}function co(g){var Q=this,x=new f(function(X,T){Q.ready().then(function(){var y=Q._dbInfo;y.db.transaction(function(E){Oi(E,y,"SELECT key FROM "+y.storeName,[],function(V,j){for(var q=[],B=0;B '__WebKitDatabaseInfoTable__'",[],function(T,y){for(var E=[],V=0;V0}function On(g){var Q=this,x={};if(g)for(var X in g)x[X]=g[X];return x.keyPrefix=fo(g,Q._defaultConfig),EO()?(Q._dbInfo=x,x.serializer=Xr,f.resolve()):f.reject()}function zO(g){var Q=this,x=Q.ready().then(function(){for(var X=Q._dbInfo.keyPrefix,T=localStorage.length-1;T>=0;T--){var y=localStorage.key(T);y.indexOf(X)===0&&localStorage.removeItem(y)}});return u(x,g),x}function YO(g,Q){var x=this;g=m(g);var X=x.ready().then(function(){var T=x._dbInfo,y=localStorage.getItem(T.keyPrefix+g);return y&&(y=T.serializer.deserialize(y)),y});return u(X,Q),X}function Be(g,Q){var x=this,X=x.ready().then(function(){for(var T=x._dbInfo,y=T.keyPrefix,E=y.length,V=localStorage.length,j=1,q=0;q=0;E--){var V=localStorage.key(E);V.indexOf(y)===0&&localStorage.removeItem(V)}}):T=f.reject("Invalid arguments"),u(T,Q),T}var LO={_driver:"localStorageWrapper",_initStorage:On,_support:Oo(),iterate:Be,getItem:YO,setItem:ol,removeItem:po,clear:zO,length:sl,key:_r,keys:MO,dropInstance:al},WO=function(Q,x){return Q===x||typeof Q=="number"&&typeof x=="number"&&isNaN(Q)&&isNaN(x)},VO=function(Q,x){for(var X=Q.length,T=0;T{"use strict";function x$(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),n=1;n1?t-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:qa;if(S$&&S$(i,null),!tn(e))return i;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let s=t(n);s!==n&&(CA(e)||(e[r]=s),n=s)}i[n]=!0}return i}function VA(i){for(let e=0;e/g),GA=wt(/\${[\w\W]*/g),NA=wt(/^data-[\-\w.\u00B7-\uFFFF]+$/),HA=wt(/^aria-[\-\w]+$/),_$=wt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),KA=wt(/^(?:\w+script|data):/i),JA=wt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),eE=wt(/^html$/i),tE=wt(/^[a-z][.\w]*(-[.\w]+)+$/i),R$=wt(/<[/\w!]/g),Z$=wt(/<[/\w]/g),iE=wt(/<\/no(script|embed|frames)/i),rE=wt(/\/>/i),ci={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},nE=function(){return typeof window=="undefined"?null:window},sE=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(r=t.getAttribute(n));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},C$=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},en=function(e,t,r,n){return dt(e,t)&&tn(e[t])?Ce(n.base?Rt(n.base):{},e[t],n.transform):r};function E$(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nE(),e=M=>E$(M);if(e.version="3.4.13",e.removed=[],!i||!i.document||i.document.nodeType!==ci.document||!i.Element)return e.isSupported=!1,e;let t=i.document,r=t,n=r.currentScript;i.DocumentFragment;let s=i.HTMLTemplateElement,o=i.Node,a=i.Element,l=i.NodeFilter,c=i.NamedNodeMap;c===void 0&&(i.NamedNodeMap||i.MozNamedAttrMap),i.HTMLFormElement;let h=i.DOMParser,O=i.trustedTypes,f=a.prototype,u=ji(f,"cloneNode"),p=ji(f,"remove"),m=ji(f,"nextSibling"),S=ji(f,"childNodes"),w=ji(f,"parentNode"),C=ji(f,"shadowRoot"),R=ji(f,"attributes"),A=o&&o.prototype?ji(o.prototype,"nodeType"):null,k=o&&o.prototype?ji(o.prototype,"nodeName"):null,P=o&&o.prototype?ji(o.prototype,"ownerDocument"):null;if(typeof s=="function"){let M=t.createElement("template");M.content&&M.content.ownerDocument&&(t=M.content.ownerDocument)}let Z,z="",D,Oe=!1,se=0,ee=function(){if(se>0)throw Bn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},he=function(b){ee(),se++;try{return Z.createHTML(b)}finally{se--}},ge=function(b){ee(),se++;try{return Z.createScriptURL(b)}finally{se--}},we=function(){return Oe||(D=sE(O,n),Oe=!0),D},Y=t,re=Y.implementation,N=Y.createNodeIterator,be=Y.createDocumentFragment,ye=Y.getElementsByTagName,He=r.importNode,de=C$();e.isSupported=typeof U$=="function"&&typeof w=="function"&&re&&re.createHTMLDocument!==void 0;let Zt=FA,ki=BA,Ii=GA,kr=NA,Nn=HA,CO=KA,Ka=JA,UO=tE,Ja=_$,qe=null,ro=Ce({},[...P$,...eg,...tg,...ig,...k$]),De=null,no=Ce({},[...X$,...rg,...T$,...vO]),Ae=Object.seal(Ks(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),sn=null,so=null,Kt=Object.seal(Ks(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Hn=!0,on=!0,Kn=!1,oo=!0,Xi=!1,Ti=!0,Fi=!1,Jn=!1,an=null,ln=null,es=!1,lr=!1,cn=!1,hn=!1,ao=!0,ts=!1,el="user-content-",lo=!0,Xr=!1,cr={},hi=null,Oi=Ce({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),tl=null,il=Ce({},["audio","video","img","source","image","track"]),is=null,rl=Ce({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),rs="http://www.w3.org/1998/Math/MathML",ns="http://www.w3.org/2000/svg",fi="http://www.w3.org/1999/xhtml",Tr=fi,co=!1,ho=null,AO=Ce({},[rs,ns,fi],Jm),nl=vt(["mi","mo","mn","ms","mtext"]),Oo=Ce({},nl),fo=vt(["annotation-xml"]),uo=Ce({},fo),EO=Ce({},["title","style","font","a","script"]),On=null,zO=["application/xhtml+xml","text/html"],YO="text/html",Be=null,_r=null,MO=t.createElement("form"),sl=function(b){return b instanceof RegExp||b instanceof Function},po=function(){let b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(_r&&_r===b)return;(!b||typeof b!="object")&&(b={}),b=Rt(b),On=zO.indexOf(b.PARSER_MEDIA_TYPE)===-1?YO:b.PARSER_MEDIA_TYPE,Be=On==="application/xhtml+xml"?Jm:qa,qe=en(b,"ALLOWED_TAGS",ro,{transform:Be}),De=en(b,"ALLOWED_ATTR",no,{transform:Be}),ho=en(b,"ALLOWED_NAMESPACES",AO,{transform:Jm}),is=en(b,"ADD_URI_SAFE_ATTR",rl,{transform:Be,base:rl}),tl=en(b,"ADD_DATA_URI_TAGS",il,{transform:Be,base:il}),hi=en(b,"FORBID_CONTENTS",Oi,{transform:Be}),sn=en(b,"FORBID_TAGS",Rt({}),{transform:Be}),so=en(b,"FORBID_ATTR",Rt({}),{transform:Be}),cr=dt(b,"USE_PROFILES")?b.USE_PROFILES&&typeof b.USE_PROFILES=="object"?Rt(b.USE_PROFILES):b.USE_PROFILES:!1,Hn=b.ALLOW_ARIA_ATTR!==!1,on=b.ALLOW_DATA_ATTR!==!1,Kn=b.ALLOW_UNKNOWN_PROTOCOLS||!1,oo=b.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xi=b.SAFE_FOR_TEMPLATES||!1,Ti=b.SAFE_FOR_XML!==!1,Fi=b.WHOLE_DOCUMENT||!1,lr=b.RETURN_DOM||!1,cn=b.RETURN_DOM_FRAGMENT||!1,hn=b.RETURN_TRUSTED_TYPE||!1,es=b.FORCE_BODY||!1,ao=b.SANITIZE_DOM!==!1,ts=b.SANITIZE_NAMED_PROPS||!1,lo=b.KEEP_CONTENT!==!1,Xr=b.IN_PLACE||!1,Ja=qA(b.ALLOWED_URI_REGEXP)?b.ALLOWED_URI_REGEXP:_$,Tr=typeof b.NAMESPACE=="string"?b.NAMESPACE:fi,Oo=dt(b,"MATHML_TEXT_INTEGRATION_POINTS")&&b.MATHML_TEXT_INTEGRATION_POINTS&&typeof b.MATHML_TEXT_INTEGRATION_POINTS=="object"?Rt(b.MATHML_TEXT_INTEGRATION_POINTS):Ce({},nl),uo=dt(b,"HTML_INTEGRATION_POINTS")&&b.HTML_INTEGRATION_POINTS&&typeof b.HTML_INTEGRATION_POINTS=="object"?Rt(b.HTML_INTEGRATION_POINTS):Ce({},fo);let _=dt(b,"CUSTOM_ELEMENT_HANDLING")&&b.CUSTOM_ELEMENT_HANDLING&&typeof b.CUSTOM_ELEMENT_HANDLING=="object"?Rt(b.CUSTOM_ELEMENT_HANDLING):Ks(null);if(Ae=Ks(null),dt(_,"tagNameCheck")&&sl(_.tagNameCheck)&&(Ae.tagNameCheck=_.tagNameCheck),dt(_,"attributeNameCheck")&&sl(_.attributeNameCheck)&&(Ae.attributeNameCheck=_.attributeNameCheck),dt(_,"allowCustomizedBuiltInElements")&&typeof _.allowCustomizedBuiltInElements=="boolean"&&(Ae.allowCustomizedBuiltInElements=_.allowCustomizedBuiltInElements),wt(Ae),Xi&&(on=!1),cn&&(lr=!0),cr&&(qe=Ce({},k$),De=Ks(null),cr.html===!0&&(Ce(qe,P$),Ce(De,X$)),cr.svg===!0&&(Ce(qe,eg),Ce(De,rg),Ce(De,vO)),cr.svgFilters===!0&&(Ce(qe,tg),Ce(De,rg),Ce(De,vO)),cr.mathMl===!0&&(Ce(qe,ig),Ce(De,T$),Ce(De,vO))),Kt.tagCheck=null,Kt.attributeCheck=null,dt(b,"ADD_TAGS")&&(typeof b.ADD_TAGS=="function"?Kt.tagCheck=b.ADD_TAGS:tn(b.ADD_TAGS)&&(qe===ro&&(qe=Rt(qe)),Ce(qe,b.ADD_TAGS,Be))),dt(b,"ADD_ATTR")&&(typeof b.ADD_ATTR=="function"?Kt.attributeCheck=b.ADD_ATTR:tn(b.ADD_ATTR)&&(De===no&&(De=Rt(De)),Ce(De,b.ADD_ATTR,Be))),dt(b,"ADD_URI_SAFE_ATTR")&&tn(b.ADD_URI_SAFE_ATTR)&&Ce(is,b.ADD_URI_SAFE_ATTR,Be),dt(b,"FORBID_CONTENTS")&&tn(b.FORBID_CONTENTS)&&(hi===Oi&&(hi=Rt(hi)),Ce(hi,b.FORBID_CONTENTS,Be)),dt(b,"ADD_FORBID_CONTENTS")&&tn(b.ADD_FORBID_CONTENTS)&&(hi===Oi&&(hi=Rt(hi)),Ce(hi,b.ADD_FORBID_CONTENTS,Be)),lo&&(qe["#text"]=!0),Fi&&Ce(qe,["html","head","body"]),qe.table&&(Ce(qe,["tbody"]),delete sn.tbody),b.TRUSTED_TYPES_POLICY){if(typeof b.TRUSTED_TYPES_POLICY.createHTML!="function")throw Bn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof b.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Bn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let L=Z;Z=b.TRUSTED_TYPES_POLICY;try{z=he("")}catch(ne){throw Z=L,ne}}else b.TRUSTED_TYPES_POLICY===null?(Z=void 0,z=""):(Z===void 0&&(Z=we()),Z&&typeof z=="string"&&(z=he("")));vt&&vt(b),_r=b},ol=Ce({},[...eg,...tg,...DA]),al=Ce({},[...ig,...IA]),LO=function(b,_,L){return _.namespaceURI===fi?b==="svg":_.namespaceURI===rs?b==="svg"&&(L==="annotation-xml"||Oo[L]):!!ol[b]},WO=function(b,_,L){return _.namespaceURI===fi?b==="math":_.namespaceURI===ns?b==="math"&&uo[L]:!!al[b]},VO=function(b,_,L){return _.namespaceURI===ns&&!uo[L]||_.namespaceURI===rs&&!Oo[L]?!1:!al[b]&&(EO[b]||!ol[b])},ll=function(b){let _=w(b);(!_||!_.tagName)&&(_={namespaceURI:Tr,tagName:"template"});let L=qa(b.tagName),ne=qa(_.tagName);return ho[b.namespaceURI]?b.namespaceURI===ns?LO(L,_,ne):b.namespaceURI===rs?WO(L,_,ne):b.namespaceURI===fi?VO(L,_,ne):!!(On==="application/xhtml+xml"&&ho[b.namespaceURI]):!1},qt=function(b){Hs(e.removed,{element:b});try{w(b).removeChild(b)}catch(_){if(p(b),!w(b))throw Bn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},fn=function(b){Bi(b);let _=S(b);if(_){let ne=[];Ns(_,fe=>{Hs(ne,fe)}),Ns(ne,fe=>{try{p(fe)}catch(me){}})}let L=R(b);if(L)for(let ne=L.length-1;ne>=0;--ne){let fe=L[ne],me=fe&&fe.name;if(typeof me=="string")try{b.removeAttribute(me)}catch(ze){}}},Dt=function(b,_){try{Hs(e.removed,{attribute:_.getAttributeNode(b),from:_})}catch(L){Hs(e.removed,{attribute:null,from:_})}if(_.removeAttribute(b),b==="is")if(lr||cn)try{qt(_)}catch(L){}else try{_.setAttribute(b,"")}catch(L){}},jO=function(b){let _=R(b);if(_)for(let L=_.length-1;L>=0;--L){let ne=_[L],fe=ne&&ne.name;if(!(typeof fe!="string"||De[Be(fe)]))try{b.removeAttribute(fe)}catch(me){}}},Bi=function(b){let _=[b];for(;_.length>0;){let L=_.pop();(A?A(L):L.nodeType)===ci.element&&jO(L);let fe=S(L);if(fe)for(let me=fe.length-1;me>=0;--me)_.push(fe[me])}},mo=function(b){if(!Ti)return;let _=[b];for(;_.length>0;){let L=_.pop(),ne=A?A(L):L.nodeType;if(ne===ci.processingInstruction||ne===ci.comment&&ut(Z$,L.data)){try{p(L)}catch(me){}continue}if(ne===ci.element){let me=L,ze=Be(k?k(L):L.nodeName);try{me.hasAttribute&&me.hasAttribute("patchsrc")&&me.removeAttribute("patchsrc"),me.hasAttribute&&me.hasAttribute("for")&&ze!=="label"&&ze!=="output"&&me.removeAttribute("for")}catch(Ge){}}let fe=S(L);if(fe)for(let me=fe.length-1;me>=0;--me)_.push(fe[me])}},cl=function(b){let _=null,L=null;if(es)b=""+b;else{let me=v$(b,/^[\r\n\t ]+/);L=me&&me[0]}On==="application/xhtml+xml"&&Tr===fi&&(b=''+b+"");let ne=Z?he(b):b;if(Tr===fi)try{_=new h().parseFromString(ne,On)}catch(me){}if(!_||!_.documentElement){_=re.createDocument(Tr,"template",null);try{_.documentElement.innerHTML=co?z:ne}catch(me){}}let fe=_.body||_.documentElement;return b&&L&&fe.insertBefore(t.createTextNode(L),fe.childNodes[0]||null),Tr===fi?ye.call(_,Fi?"html":"body")[0]:Fi?_.documentElement:fe},hl=function(b){let _=P?P(b):b.ownerDocument;return N.call(_||b,b,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Rr=function(b){return b=Va(b,Zt," "),b=Va(b,ki," "),b=Va(b,Ii," "),b},go=function(b){var _;b.normalize();let L=P?P(b):b.ownerDocument,ne=N.call(L||b,b,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),fe=ne.nextNode();for(;fe;)fe.data=Rr(fe.data),fe=ne.nextNode();let me=(_=b.querySelectorAll)===null||_===void 0?void 0:_.call(b,"template");me&&Ns(me,ze=>{g(ze.content)&&go(ze.content)})},ss=function(b){let _=k?k(b):null;return typeof _!="string"||Be(_)!=="form"?!1:typeof b.nodeName!="string"||typeof b.textContent!="string"||typeof b.removeChild!="function"||b.attributes!==R(b)||typeof b.removeAttribute!="function"||typeof b.setAttribute!="function"||typeof b.namespaceURI!="string"||typeof b.insertBefore!="function"||typeof b.hasChildNodes!="function"||b.nodeType!==A(b)||b.childNodes!==S(b)},g=function(b){if(!A||typeof b!="object"||b===null)return!1;try{return A(b)===ci.documentFragment}catch(_){return!1}},Q=function(b){if(!A||typeof b!="object"||b===null)return!1;try{return typeof A(b)=="number"}catch(_){return!1}};function x(M,b,_){M.length!==0&&Ns(M,L=>{L.call(e,b,_,_r)})}let X=function(b,_){return!!(Ti&&b.hasChildNodes()&&!Q(b.firstElementChild)&&ut(R$,b.textContent)&&ut(R$,b.innerHTML)||Ti&&b.namespaceURI===fi&&_==="style"&&Q(b.firstElementChild)||b.nodeType===ci.processingInstruction||Ti&&b.nodeType===ci.comment&&ut(Z$,b.data))},T=function(b,_,L){if(!sn[_]&&q(_)&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,_)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(_)))return!1;if(lo&&!hi[_]){let ne=w(b),fe=S(b);if(fe&&ne){let me=fe.length;for(let ze=me-1;ze>=0;--ze){let Ge=b===L?u(fe[ze],!0):fe[ze];ne.insertBefore(Ge,m(b))}}}return qt(b),!0},y=function(b,_,L,ne){return b.length===0?_:_===L||_===ne?Rt(_):_},E=function(b,_){if(x(de.beforeSanitizeElements,b,null),b!==_&&w(b)===null)return Xr&&Bi(b),!0;if(ss(b))return qt(b),!0;let L=Be(k?k(b):b.nodeName);if(qe=y(de.uponSanitizeElement,qe,ro,an),x(de.uponSanitizeElement,b,{tagName:L,allowedTags:qe}),b!==_&&w(b)===null)return Xr&&Bi(b),!0;if(X(b,L))return qt(b),!0;if(sn[L]||!(Kt.tagCheck instanceof Function&&Kt.tagCheck(L))&&!qe[L]){let fe=T(b,L,_);return fe===!1&&x(de.afterSanitizeElements,b,null),fe}if((A?A(b):b.nodeType)===ci.element&&!ll(b)||(L==="noscript"||L==="noembed"||L==="noframes")&&ut(iE,b.innerHTML))return qt(b),!0;if(Xi&&b.nodeType===ci.text){let fe=Rr(b.textContent);b.textContent!==fe&&(Hs(e.removed,{element:b.cloneNode()}),b.textContent=fe)}return x(de.afterSanitizeElements,b,null),!1},V=function(b,_,L){if(so[_]||Ti&&_==="patchsrc"||Ti&&_==="for"&&b!=="label"&&b!=="output"||ao&&(_==="id"||_==="name")&&(L in t||L in MO))return!1;let ne=De[_]||Kt.attributeCheck instanceof Function&&Kt.attributeCheck(_,b);if(!(on&&ut(kr,_))){if(!(Hn&&ut(Nn,_))){if(ne){if(!is[_]){if(!ut(Ja,Va(L,Ka,""))){if(!((_==="src"||_==="xlink:href"||_==="href")&&b!=="script"&&w$(L,"data:")===0&&tl[b])){if(!(Kn&&!ut(CO,Va(L,Ka,"")))){if(L)return!1}}}}}else if(!(q(b)&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,b)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(b))&&(Ae.attributeNameCheck instanceof RegExp&&ut(Ae.attributeNameCheck,_)||Ae.attributeNameCheck instanceof Function&&Ae.attributeNameCheck(_,b))||_==="is"&&Ae.allowCustomizedBuiltInElements&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,L)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(L))))return!1}}return!0},j=Ce({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),q=function(b){return!j[qa(b)]&&ut(UO,b)},B=function(b,_,L,ne){if(Z&&typeof O=="object"&&typeof O.getAttributeType=="function"&&!L)switch(O.getAttributeType(b,_)){case"TrustedHTML":return he(ne);case"TrustedScriptURL":return ge(ne)}return ne},oe=function(b,_,L,ne){try{L?b.setAttributeNS(L,_,ne):b.setAttribute(_,ne),ss(b)?qt(b):Q$(e.removed)}catch(fe){Dt(_,b)}},xe=function(b){x(de.beforeSanitizeAttributes,b,null);let _=b.attributes;if(!_||ss(b))return;De=y(de.uponSanitizeAttribute,De,no,ln);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:De,forceKeepAttr:void 0},ne=_.length,fe=Be(b.nodeName);for(;ne--;){let me=_[ne],ze=me.name,Ge=me.namespaceURI,yt=me.value,mt=Be(ze),qO=yt,Ct=ze==="value"?qO:YA(qO);if(L.attrName=mt,L.attrValue=Ct,L.keepAttr=!0,L.forceKeepAttr=void 0,x(de.uponSanitizeAttribute,b,L),Ct=L.attrValue,ts&&(mt==="id"||mt==="name")&&w$(Ct,el)!==0&&(Dt(ze,b),Ct=el+Ct),Ti&&ut(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Ct)){Dt(ze,b);continue}if(mt==="attributename"&&v$(Ct,"href")){Dt(ze,b);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(ze,b);continue}if(!oo&&ut(rE,Ct)){Dt(ze,b);continue}if(Xi&&(Ct=Rr(Ct)),!V(fe,mt,Ct)){Dt(ze,b);continue}Ct=B(fe,mt,Ge,Ct),Ct!==qO&&oe(b,ze,Ge,Ct)}}x(de.afterSanitizeAttributes,b,null)},Xe=function(b){let _=null,L=hl(b);for(x(de.beforeSanitizeShadowDOM,b,null);_=L.nextNode();)if(x(de.uponSanitizeShadowNode,_,null),E(_,b),xe(_),g(_.content)&&Xe(_.content),(A?A(_):_.nodeType)===ci.element){let fe=C(_);g(fe)&&(Ue(fe),Xe(fe))}x(de.afterSanitizeShadowDOM,b,null)},Ue=function(b){let _=[{node:b,shadow:null}];for(;_.length>0;){let L=_.pop();if(L.shadow){Xe(L.shadow);continue}let ne=L.node,me=(A?A(ne):ne.nodeType)===ci.element,ze=S(ne);if(ze)for(let Ge=ze.length-1;Ge>=0;--Ge)_.push({node:ze[Ge],shadow:null});if(me){let Ge=k?k(ne):null;if(typeof Ge=="string"&&Be(Ge)==="template"){let yt=ne.content;g(yt)&&_.push({node:yt,shadow:null})}}if(me){let Ge=C(ne);g(Ge)&&_.push({node:null,shadow:Ge},{node:Ge,shadow:null})}}};return e.sanitize=function(M){let b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=null,L=null,ne=null,fe=null;if(co=!M,co&&(M=""),typeof M!="string"&&!Q(M)&&(M=jA(M),typeof M!="string"))throw Bn("dirty is not a string, aborting");if(!e.isSupported)return M;Jn?(qe=an,De=ln):po(b),(de.uponSanitizeElement.length>0||de.uponSanitizeAttribute.length>0)&&(qe=Rt(qe)),de.uponSanitizeAttribute.length>0&&(De=Rt(De)),e.removed=[];let me=Xr&&typeof M!="string"&&Q(M);if(me){mo(M);let yt=k?k(M):M.nodeName;if(typeof yt=="string"){let mt=Be(yt);if(!qe[mt]||sn[mt])throw fn(M),Bn("root node is forbidden and cannot be sanitized in-place")}if(ss(M))throw fn(M),Bn("root node is clobbered and cannot be sanitized in-place");try{Ue(M)}catch(mt){throw fn(M),mt}}else if(Q(M))_=cl(""),L=_.ownerDocument.importNode(M,!0),L.nodeType===ci.element&&L.nodeName==="BODY"||L.nodeName==="HTML"?_=L:_.appendChild(L),Ue(L);else{if(!lr&&!Xi&&!Fi&&M.indexOf("<")===-1)return Z&&hn?he(M):M;if(_=cl(M),!_)return lr?null:hn?z:""}_&&es&&qt(_.firstChild);let ze=me?M:_;try{let yt=hl(ze);for(;ne=yt.nextNode();)E(ne,ze),xe(ne),g(ne.content)&&Xe(ne.content)}catch(yt){throw me&&(fn(M),Ns(e.removed,mt=>{mt.element&&Bi(mt.element)})),yt}if(me)return Ns(e.removed,yt=>{yt.element&&Bi(yt.element)}),Xi&&go(M),M;if(lr){if(Xi&&go(_),cn)for(fe=be.call(_.ownerDocument);_.firstChild;)fe.appendChild(_.firstChild);else fe=_;return(De.shadowroot||De.shadowrootmode)&&(fe=He.call(r,fe,!0)),fe}let Ge=Fi?_.outerHTML:_.innerHTML;return Fi&&qe["!doctype"]&&_.ownerDocument&&_.ownerDocument.doctype&&_.ownerDocument.doctype.name&&ut(eE,_.ownerDocument.doctype.name)&&(Ge=" -`+Ge),Xi&&(Ge=Rr(Ge)),Z&&hn?he(Ge):Ge},e.setConfig=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};po(M),Jn=!0,an=qe,ln=De},e.clearConfig=function(){_r=null,Jn=!1,an=null,ln=null,Z=D,z=""},e.isValidAttribute=function(M,b,_){_r||po({});let L=Be(M),ne=Be(b);return V(L,ne,_)},e.addHook=function(M,b){typeof b=="function"&&dt(de,M)&&Hs(de[M],b)},e.removeHook=function(M,b){if(dt(de,M)){if(b!==void 0){let _=EA(de[M],b);return _===-1?void 0:zA(de[M],_,1)[0]}return Q$(de[M])}},e.removeHooks=function(M){dt(de,M)&&(de[M]=[])},e.removeAllHooks=function(){de=C$()},e}var oE=E$();z$.exports=oE});var fg=DO(rf());var Le=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],Ie=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],wo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],vP=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Eg(i){let e=i&&Hi(i);return e&&e.includeDirs&&e.includeDirs.length?vP:[]}var Ug=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],wP=[/^[!]src\s+"(.+?)"/gmi],yP=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],$P=[/^\s*(import)\s*"(.+?)"/gmi],PP=[/^\s*%%\s*#include\s+"(.+?)"/gm],Ag={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},yo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:Le,linkPatterns:Ie},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...Le,...wP],linkPatterns:Ie},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:Le,linkPatterns:Ie},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",wasmModule:"nesasm",version:"3.1",includePatterns:Le,linkPatterns:Ie},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",wasmModule:"merlin32",version:"1.1.1",includePatterns:[...Le,...Ug],linkPatterns:Ie},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19"},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00"},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:Le,linkPatterns:Ie},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:wo,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...Le,...Ug],linkPatterns:Ie},cmoc:{id:"cmoc",name:"CMOC",kind:"compiler",arch:"6809",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",wasmModule:"cmoc",version:"0.1.67",includePatterns:Le,linkPatterns:Ie},lwasm:{id:"lwasm",name:"LWASM",kind:"assembler",arch:"6809",extensions:[".lwasm"],wasmModule:"lwasm",version:"4.17",includePatterns:Le,linkPatterns:Ie},lwlink:{id:"lwlink",name:"LWLINK",kind:"linker",arch:"6809",extensions:[],wasmModule:"lwlink",version:"4.17"},vasmarm:{id:"vasmarm",name:"vasm (ARM)",kind:"assembler",arch:"arm32",extensions:[".vasm"],editorStyle:"vasm",wasmModule:"vasmarm_std",version:"1.8k",includePatterns:Le,linkPatterns:Ie},armips:{id:"armips",name:"armips",kind:"assembler",arch:"arm32",extensions:[".armips"],editorStyle:"vasm",wasmModule:"armips",version:"0.11.0",includePatterns:Le,linkPatterns:Ie},armtcc:{id:"armtcc",name:"TCC (ARM)",kind:"compiler",arch:"arm32",extensions:[".c",".s"],includeDirs:["/include"],wasiFSZip:"arm32-fs.zip",editorStyle:"text/x-csrc",wasmModule:"arm-tcc",includePatterns:Le,linkPatterns:Ie},armtcclink:{id:"armtcclink",name:"TCC (ARM) link",kind:"linker",arch:"arm32",extensions:[],wasmModule:"arm-tcc"},smlrc:{id:"smlrc",name:"SmallerC",kind:"compiler",arch:"x86",extensions:[".c"],editorStyle:"text/x-csrc",wasmModule:"smlrc",includePatterns:Le,linkPatterns:Ie},yasm:{id:"yasm",name:"YASM",kind:"assembler",arch:"x86",extensions:[".asm"],editorStyle:"gas",wasmModule:"yasm",version:"1.3.0.47.gc9db",includePatterns:Le,linkPatterns:Ie},oscar64:{id:"oscar64",name:"Oscar64",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".cc",".o64"],includeDirs:["/include"],wasiFSZip:"oscar64-fs.zip",editorStyle:"text/x-csrc",helpURL:"https://github.com/drmortalwombat/oscar64/blob/v1.32.266/oscar64.md",wasmModule:"oscar64",version:"1.32.266",includePatterns:Le,linkPatterns:Ie},bataribasic:{id:"bataribasic",name:"batari Basic",kind:"compiler",arch:"6502",extensions:[".bb",".bas"],includeDirs:["/includes"],editorStyle:"bataribasic",helpURL:"help/bataribasic/manual.html",wasiFSZip:"bb-fs.zip",platforms:{default:{}},includePatterns:Le,linkPatterns:Ie},fastbasic:{id:"fastbasic",name:"FastBasic",kind:"compiler",arch:"6502",extensions:[".bas",".fb",".fbi"],editorStyle:"fastbasic",helpURL:"https://github.com/dmsc/fastbasic/blob/v4.4/manual.md",wasmModule:"fastbasic-int",version:"4.4",platforms:{default:{preloadFS:"65-atari8"}},includePatterns:Le,linkPatterns:Ie},cc2600:{id:"cc2600",name:"CC2600",kind:"compiler",arch:"6502",extensions:[".cc2600"],editorStyle:"text/x-csrc",wasmModule:"cc2600",version:"0.4.5",wasiFSZip:"cc2600-fs.zip",includeDirs:["/headers"],includePatterns:Le,linkPatterns:Ie},cc7800:{id:"cc7800",name:"CC7800",kind:"compiler",arch:"6502",extensions:[".cc7800",".c78"],editorStyle:"text/x-csrc",wasmModule:"cc7800",version:"0.2.28",wasiFSZip:"cc7800-fs.zip",includeDirs:["/headers"],includePatterns:Le,linkPatterns:Ie},basic:{id:"basic",name:"BASIC",kind:"interpreter",extensions:[".bas"],editorStyle:"basic"},wiz:{id:"wiz",name:"wiz",kind:"compiler",extensions:[".wiz"],includeDirs:["/common/$platform"],editorStyle:"text/x-wiz",helpURL:"https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",wasmModule:"wiz",version:"0.1.2",platforms:{default:{preloadFS:"wiz"}},includePatterns:yP},ecs:{id:"ecs",name:"ECS",kind:"assembler",arch:"6502",extensions:[".ecs"],editorStyle:"ecs",platforms:{vcs:{preloadFS:"65-atari2600"},nes:{preloadFS:"65-nes"},c64:{preloadFS:"65-c64"}},includePatterns:[...Le,...$P]},inform6:{id:"inform6",name:"Inform 6",kind:"compiler",arch:"zmachine",extensions:[".inf"],editorStyle:"inform6",wasmModule:"inform",version:"6.34",platforms:{default:{preloadFS:"inform"}}},dialog:{id:"dialog",name:"Dialog",kind:"compiler",arch:"zmachine",extensions:[".dg"],editorStyle:"dialog",helpURL:"https://linusakesson.net/dialog/docs/",wasmModule:"dialogc",version:"1c/03-dev",wasiFSZip:"dialog-fs.zip",includeDirs:["/"],includePatterns:PP},verilator:{id:"verilator",name:"Verilator",kind:"hdl",arch:"verilog",extensions:[".v"],editorStyle:"verilog",helpURL:"https://verilator.org/guide/4.205/",wasmModule:"verilator_bin",version:"4.205",includePatterns:wo,linkPatterns:[]},yosys:{id:"yosys",name:"Yosys",kind:"hdl",arch:"verilog",extensions:[],wasmModule:"yosys",includePatterns:wo,linkPatterns:[]},silice:{id:"silice",name:"Silice",kind:"hdl",arch:"verilog",extensions:[".ice"],editorStyle:"verilog",helpURL:"https://github.com/sylefeb/Silice",wasmModule:"silice",version:"0.1",platforms:{default:{preloadFS:"Silice"}},includePatterns:wo,linkPatterns:[]},"llvm-mos":{id:"llvm-mos",name:"LLVM-MOS",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".s",".S",".C"],editorStyle:"text/x-csrc",helpURL:"https://llvm-mos.org/wiki/Welcome",remote:!0,includePatterns:Le,linkPatterns:Ie,server:{version:"latest",platforms:["atari8","c64","nes","pce","vcs"],binpath:"llvm-mos/bin",command:"mos-clang",args:["-Os","-g","-D","__8BITWORKSHOP__","-o","$OUTFILE","$INFILES"]}},remote:{id:"remote",name:"Remote build",kind:"remote",extensions:[],remote:!0}};function Hi(i){return yo[i.replace(/^remote:/,"")]}function zg(i){let e=[];for(let t in yo){let r=yo[t];for(let n of r.extensions)if(n&&i.endsWith(n)){e.push({meta:r,len:n.length});break}}return e.sort((t,r)=>r.len-t.len).map(t=>t.meta)}function kP(i,e){let t=Hi(i);if(t&&t.platforms){if(e){let n=t.platforms[e];if(n&&n.preloadFS)return n.preloadFS;let s=Ni(e);if(s&&s!==e){let o=t.platforms[s];if(o&&o.preloadFS)return o.preloadFS}}let r=t.platforms.default;if(r&&r.preloadFS)return r.preloadFS}}function nf(i){let e=Hi(i);return e&&e.skeleton?e.skeleton:i.replace(/^remote:/,"")}function vl(i,e){let t=i&&Hi(i);return t&&t.includePatterns?t.includePatterns:e&&e.startsWith("verilog")?wo:Le}function wl(i,e){let t=i&&Hi(i);return t&&t.linkPatterns?t.linkPatterns:e&&e.startsWith("verilog")?[]:Ie}function yl(i,e){e=e&&Ni(e);let t=i&&Hi(i),r=t&&t.includeDirs||[];return r=r.map(n=>n.replace("$platform",e)),r}function $l(i,e){var t=kP(i,e);if(t)return t;let r=i&&Hi(i);return r&&r.wasiFSZip?"wasi:"+r.wasiFSZip:void 0}function sf(i,e){let t=[];for(let r of e||[]){let n=r instanceof RegExp?{re:r}:r,s;for(n.re.lastIndex=0;s=n.re.exec(i);){let o=s[n.group!=null?n.group:s.length-1];o&&t.push(n.suffix?o+n.suffix:o)}}return t}function We(i){i?(_i(0),$("#pleaseWaitModal").modal("show")):(_i(1),$("#pleaseWaitModal").modal("hide"))}function _i(i){$("#pleaseWaitProgressBar").css("width",i*100+"%").show()}function Qe(i){We(!1),bootbox.alert({title:' Alert',message:as.sanitize(i)})}function Pt(i){We(!1),bootbox.alert(as.sanitize(i))}function Yg(i){throw Qe(i),new Error(i)}var af=[],Vg=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(i=Vg[r])e=r+1;else return!0;if(e==t)return!1}}function Mg(i){return i>=127462&&i<=127487}var Lg=8205;function jg(i,e,t=!0,r=!0){return(t?qg:TP)(i,e,r)}function qg(i,e,t){if(e==i.length)return e;e&&Dg(i.charCodeAt(e))&&Ig(i.charCodeAt(e-1))&&e--;let r=of(i,e);for(e+=Wg(r);e=0&&Mg(of(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function TP(i,e,t){for(;e>1;){let r=qg(i,e-2,t);if(r=56320&&i<57344}function Ig(i){return i>=55296&&i<56320}function Wg(i){return i<65536?1:2}var $e=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=Os(this,e,t);let n=[];return this.decompose(0,e,n,2),r.length&&r.decompose(0,r.length,n,3),this.decompose(t,this.length,n,1),ls.from(n,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Os(this,e,t);let r=[];return this.decompose(e,t,r,0),ls.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),n=new gn(this),s=new gn(e);for(let o=t,a=t;;){if(n.next(o),s.next(o),o=0,n.lineBreak!=s.lineBreak||n.done!=s.done||n.value!=s.value)return!1;if(a+=n.value.length,n.done||a>=r)return!0}}iter(e=1){return new gn(this,e)}iterRange(e,t=this.length){return new _l(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;r=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Rl(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Jt(e):ls.from(Jt.split(e,[]))}},Jt=class i extends $e{constructor(e,t=_P(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.text[s],a=n+o.length;if((t?r:a)>=e)return new cf(n,a,r,o);n=a+1,r++}}decompose(e,t,r,n){let s=e<=0&&t>=this.length?this:new i(Fg(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let o=r.pop(),a=Tl(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new i(a,o.length+s.length));else{let l=a.length>>1;r.push(new i(a.slice(0,l)),new i(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof i))return super.replace(e,t,r);[e,t]=Os(this,e,t);let n=Tl(this.text,Tl(r.text,Fg(this.text,0,e)),t),s=this.length+r.length-(t-e);return n.length<=32?new i(n,s):ls.from(i.split(n,[]),s)}sliceString(e,t=this.length,r=` -`){[e,t]=Os(this,e,t);let n="";for(let s=0,o=0;s<=t&&oe&&o&&(n+=r),es&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},ls=class i extends $e{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=Os(this,e,t),r.lines=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>c>>6){let h=this.children.slice();return h[n]=l,new i(h,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=` -`){[e,t]=Os(this,e,t);let n="";for(let s=0,o=0;se&&s&&(n+=r),eo&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let u of e)r+=u.lines;if(r<32){let u=[];for(let p of e)p.flatten(u);return new Jt(u,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,h=[];function O(u){let p;if(u.lines>s&&u instanceof i)for(let m of u.children)O(m);else u.lines>o&&(l>o||!l)?(f(),a.push(u)):u instanceof Jt&&l&&(p=h[h.length-1])instanceof Jt&&u.lines+p.lines<=32?(l+=u.lines,c+=u.length+1,h[h.length-1]=new Jt(p.text.concat(u.text),p.length+1+u.length)):(l+u.lines>n&&f(),l+=u.lines,c+=u.length+1,h.push(u))}function f(){l!=0&&(a.push(h.length==1?h[0]:i.from(h,c)),c=-1,l=h.length=0)}for(let u of e)O(u);return f(),a.length==1?a[0]:new i(a,t)}};$e.empty=new Jt([""],0);function _P(i){let e=-1;for(let t of i)e+=t.length+1;return e}function Tl(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s=t&&(l>r&&(a=a.slice(0,r-n)),n0?1:(e instanceof Jt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof Jt?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(n instanceof Jt){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Jt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},_l=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new gn(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Rl=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&($e.prototype[Symbol.iterator]=function(){return this.iter()},gn.prototype[Symbol.iterator]=_l.prototype[Symbol.iterator]=Rl.prototype[Symbol.iterator]=function(){return this});var cf=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function Os(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function it(i,e,t=!0,r=!0){return jg(i,e,t,r)}function RP(i){return i>=56320&&i<57344}function ZP(i){return i>=55296&&i<56320}function Zi(i,e){let t=i.charCodeAt(e);if(!ZP(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return RP(r)?(t-55296<<10)+(r-56320)+65536:t}function El(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Cr(i){return i<65536?1:2}var hf=/\r\n?|\n/,Ot=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(Ot||(Ot={})),Or=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-n);s+=a}else{if(r!=Ot.Simple&&c>=e&&(r==Ot.TrackDel&&ne||r==Ot.TrackBefore&&ne))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r=0&&n<=t&&a>=e)return nt?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},At=class i extends Or{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Of(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return ff(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length0&&Zr(r,t,s.text),s.forward(h),a+=h}let c=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,r){let n=[],s=[],o=0,a=null;function l(h=!1){if(!h&&!n.length)return;of||O<0||f>t)throw new RangeError(`Invalid change range ${O} to ${f} (in doc of length ${t})`);let p=u?typeof u=="string"?$e.of(u.split(r||hf)):u:$e.empty,m=p.length;if(O==f&&m==0)return;Oo&&kt(n,O-o,-1),kt(n,f-O,m),Zr(s,n,p),o=f}}return c(e),l(!a),a}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let n=0;na&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length=0&&t<=0&&t==i[n+1]?i[n]+=e:n>=0&&e==0&&i[n]==0?i[n+1]+=t:r?(i[n]+=e,i[n+1]+=t):i.push(e,t)}function Zr(i,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)a=i.sections[o++],l=i.sections[o++];e(n,c,s,h,O),n=c,s=h}}}function ff(i,e,t,r=!1){let n=[],s=r?[]:null,o=new bn(i),a=new bn(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);kt(n,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let c=0,h=o.len;for(;h;)if(a.ins==-1){let O=Math.min(h,a.len);c+=O,h-=O,a.forward(O)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}var bn=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?$e.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?$e.empty:t[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},dn=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.flags=r,this.goalColumn=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let r,n;return this.empty?r=n=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),r==this.from&&n==this.to?this:new i(r,n,this.flags,this.goalColumn)}extend(e,t=e,r=0){if(e<=this.anchor&&t>=this.anchor)return U.range(e,t,void 0,void 0,r);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return U.range(this.anchor,n,void 0,void 0,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return U.range(e.anchor,e.head)}static create(e,t,r,n){return new i(e,t,r,n)}},U=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>dn.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,n=0;nn.from-s.from),t=e.indexOf(r);for(let n=1;ns.head?i.range(l,a):i.range(a,l))}}return new i(e,t)}};function Jg(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var vf=0,K=class i{constructor(e,t,r,n,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=n,this.id=vf++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:wf),!!e.static,e.enables)}of(e){return new cs([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new cs(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new cs(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}};function wf(i,e){return i==e||i.length==e.length&&i.every((t,r)=>t===e[r])}var cs=class{constructor(e,t,r,n){this.dependencies=e,this.facet=t,this.type=r,this.value=n,this.id=vf++}dynamicSlot(e){var t;let r=this.value,n=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,h=[];for(let O of this.dependencies)O=="doc"?l=!0:O=="selection"?c=!0:(((t=e[O.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[O.id]);return{create(O){return O.values[o]=r(O),1},update(O,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||uf(O,h)){let u=r(O);if(a?!Bg(u,O.values[o],n):!n(u,O.values[o]))return O.values[o]=u,1}return 0},reconfigure:(O,f)=>{let u,p=f.config.address[s];if(p!=null){let m=Ul(f,p);if(this.dependencies.every(S=>S instanceof K?f.facet(S)===O.facet(S):S instanceof ke?f.field(S,!1)==O.field(S,!1):!0)||(a?Bg(u=r(O),m,n):n(u=r(O),m)))return O.values[o]=m,0}else u=r(O);return O.values[o]=u,1}}}get extension(){return this}};function Bg(i,e,t){if(i.length!=e.length)return!1;for(let r=0;ri[l.id]),n=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=i[e.id]>>1;function a(l){let c=[];for(let h=0;hr===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Pl).find(r=>r.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,n)=>{let s=r.values[t],o=this.updateF(s,n);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,n)=>{let s=r.facet(Pl),o=n.facet(Pl),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(r.values[t]=a.create(r),1):n.config.address[this.id]!=null?(r.values[t]=n.field(this),0):(r.values[t]=this.create(r),1)}}}init(e){return[this,Pl.of({field:this,create:e})]}get extension(){return this}},pn={lowest:4,low:3,default:2,high:1,highest:0};function $o(i){return e=>new Zl(e,i)}var pi={highest:$o(pn.highest),high:$o(pn.high),default:$o(pn.default),low:$o(pn.low),lowest:$o(pn.lowest)},Zl=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},bt=class i{of(e){return new ko(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},ko=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Cl=class i{constructor(e,t,r,n,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=n,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,r){let n=[],s=Object.create(null),o=new Map;for(let f of UP(e,t,o))f instanceof ke?n.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of n)a[f.id]=c.length<<1,c.push(u=>f.slot(u));let h=r==null?void 0:r.config.facets;for(let f in s){let u=s[f],p=u[0].facet,m=h&&h[f]||[];if(u.every(S=>S.type==0))if(a[p.id]=l.length<<1|1,wf(m,u))l.push(r.facet(p));else{let S=p.combine(u.map(w=>w.value));l.push(r&&p.compare(S,r.facet(p))?r.facet(p):S)}else{for(let S of u)S.type==0?(a[S.id]=l.length<<1|1,l.push(S.value)):(a[S.id]=c.length<<1,c.push(w=>S.dynamicSlot(w)));a[p.id]=c.length<<1,c.push(S=>CP(S,p,u))}}let O=c.map(f=>f(a));return new i(e,o,O,a,l,s)}};function UP(i,e,t){let r=[[],[],[],[],[]],n=new Map;function s(o,a){let l=n.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof ko&&t.delete(o.compartment)}if(n.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof ko){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof Zl)s(o.inner,o.prec);else if(o instanceof ke)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof cs)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,pn.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(i,pn.default),r.reduce((o,a)=>o.concat(a))}function Po(i,e){if(e&1)return 2;let t=e>>1,r=i.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;i.status[t]=4;let n=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|n}function Ul(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var e0=K.define(),df=K.define({combine:i=>i.some(e=>e),static:!0}),t0=K.define({combine:i=>i.length?i[0]:void 0,static:!0}),i0=K.define(),r0=K.define(),n0=K.define(),s0=K.define({combine:i=>i.length?i[0]:!1}),It=class{constructor(e,t){this.type=e,this.value=t}static define(){return new pf}},pf=class{of(e){return new It(this,e)}},mf=class{constructor(e){this.map=e}of(e){return new ae(this,e)}},ae=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new mf(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let n of e){let s=n.map(t);s&&r.push(s)}return r}};ae.reconfigure=ae.define();ae.appendConfig=ae.define();var Ne=class i{constructor(e,t,r,n,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=n,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&Jg(r,t.newLength),s.some(a=>a.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,r,n,s,o){return new i(e,t,r,n,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};Ne.time=It.define();Ne.userEvent=It.define();Ne.addToHistory=It.define();Ne.remote=It.define();function AP(i,e){let t=[];for(let r=0,n=0;;){let s,o;if(r=i[r]))s=i[r++],o=i[r++];else if(n=0;n--){let s=r[n](i);s instanceof Ne?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Ne?i=s[0]:i=a0(e,hs(s),!1)}return i}function zP(i){let e=i.startState,t=e.facet(n0),r=i;for(let n=t.length-1;n>=0;n--){let s=t[n](i);s&&Object.keys(s).length&&(r=o0(r,gf(e,s,i.changes.newLength),!0))}return r==i?i:Ne.create(e,i.changes,i.selection,r.effects,r.annotations,r.scrollIntoView)}var YP=[];function hs(i){return i==null?YP:Array.isArray(i)?i:[i]}var Me=(function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i})(Me||(Me={})),MP=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,bf;try{bf=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(i){}function LP(i){if(bf)return bf.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||MP.test(t)))return!0}return!1}function WP(i){return e=>{if(!/\S/.test(e))return Me.Space;if(LP(e))return Me.Word;for(let t=0;t-1)return Me.Word;return Me.Other}}var ve=class i{constructor(e,t,r,n,s,o){this.config=e,this.doc=t,this.selection=r,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;an.set(c,l)),t=null),n.set(a.value.compartment,a.value.extension)):a.is(ae.reconfigure)?(t=null,r=a.value):a.is(ae.appendConfig)&&(t=null,r=hs(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Cl.resolve(r,n,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(df)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:U.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),n=this.changes(r.changes),s=[r.range],o=hs(r.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return i.create({doc:e.doc,selection:U.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=Cl.resolve(e.extensions||[],new Map),r=e.doc instanceof $e?e.doc:$e.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||hf)),n=e.selection?e.selection instanceof U?e.selection:U.single(e.selection.anchor,e.selection.head):U.single(0);return Jg(n,r.length),t.staticFacet(df)||(n=n.asSingle()),new i(t,r,n,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||` -`}get readOnly(){return this.facet(s0)}phrase(e,...t){for(let r of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let n=[];for(let s of this.facet(e0))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return WP(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=it(t,o,!1);if(s(t.slice(l,o))!=Me.Word)break;o=l}for(;ai.length?i[0]:4});ve.lineSeparator=t0;ve.readOnly=s0;ve.phrases=K.define({compare(i,e){let t=Object.keys(i),r=Object.keys(e);return t.length==r.length&&t.every(n=>i[n]==e[n])}});ve.languageData=e0;ve.changeFilter=i0;ve.transactionFilter=r0;ve.transactionExtender=n0;bt.reconfigure=ae.define();function ei(i,e,t={}){let r={};for(let n of i)for(let s of Object.keys(n)){let o=n[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}var di=class{eq(e){return this==e}range(e,t=e){return Xo.create(e,t,this)}};di.prototype.startSide=di.prototype.endSide=0;di.prototype.point=!1;di.prototype.mapMode=Ot.TrackDel;function yf(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var Xo=class i{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new i(e,t,r)}};function xf(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var Sf=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,n=0){let s=r?this.to:this.from;for(let o=n,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,n){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);su||f==u&&c.startSide>0&&c.endSide<=0)continue;(u-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,u-f)),r.push(c),n.push(f-o),s.push(u-o))}return{mapped:r.length?new i(n,s,r,a):null,pos:o}}},pe=class i{constructor(e,t,r,n){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=n}static create(e,t,r,n){return new i(e,t,r,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:n=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(xf)),this.isEmpty)return t.length?i.of(t):this;let a=new Al(this,null,-1).goto(0),l=0,c=[],h=new Ri;for(;a.value||l=0){let O=t[l++];h.addInner(O.from,O.to,O.value)||c.push(O)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||sa.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return To.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return To.from(e).goto(t)}static compare(e,t,r,n,s=-1){let o=e.filter(O=>O.maxPoint>0||!O.isEmpty&&O.maxPoint>=s),a=t.filter(O=>O.maxPoint>0||!O.isEmpty&&O.maxPoint>=s),l=Gg(o,a,r),c=new mn(o,l,s),h=new mn(a,l,s);r.iterGaps((O,f,u)=>Ng(c,O,h,f,u,n)),r.empty&&r.length==0&&Ng(c,0,h,0,0,n)}static eq(e,t,r=0,n){n==null&&(n=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Gg(s,o),l=new mn(s,a,0).goto(r),c=new mn(o,a,0).goto(r);for(;;){if(l.to!=c.to||!Qf(l.active,c.active)||l.point&&(!c.point||!yf(l.point,c.point)))return!1;if(l.to>n)return!0;l.next(),c.next()}}static spans(e,t,r,n,s=-1){let o=new mn(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let h=o.activeForPoint(o.to),O=o.pointFroma&&(n.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new Ri;for(let n of e instanceof Xo?[e]:t?VP(e):e)r.add(n.from,n.to,n.value);return r.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let n=e[r];n!=i.empty;n=n.nextLayer)t=new i(n.chunkPos,n.chunk,t,Math.max(n.maxPoint,t.maxPoint));return t}};pe.empty=new pe([],[],null,-1);function VP(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(xf);e=r}return i}pe.empty.nextLayer=pe.empty;var Ri=class i{finishChunk(e){this.chunks.push(new Sf(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,r)}addInner(e,t,r){let n=e-this.lastTo||r.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner(pe.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=pe.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Gg(i,e,t){let r=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&n.push(new Al(o,t,r,s));return n.length==1?n[0]:new i(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)lf(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)lf(this.heap,r);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),lf(this.heap,0)}}};function lf(i,e){for(let t=i[e];;){let r=(e<<1)+1;if(r>=i.length)break;let n=i[r];if(r+1=0&&(n=i[r+1],r++),t.compare(n)<0)break;i[r]=t,i[e]=n,e=r}}var mn=class{constructor(e,t,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=To.from(e,t,r)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){kl(this.active,e),kl(this.activeTo,e),kl(this.activeRank,e),this.minActive=Hg(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:n,rank:s}=this.cursor;for(;t0;)t++;Xl(this.active,t,r),Xl(this.activeTo,t,n),Xl(this.activeRank,t,s),e&&Xl(e,t,this.cursor.from),this.minActive=Hg(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),r&&kl(r,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&r[n]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}};function Ng(i,e,t,r,n,s){i.goto(e),t.goto(r);let o=r+n,a=r,l=r-e,c=!!s.boundChange;for(let h=!1;;){let O=i.to+l-t.to,f=O||i.endSide-t.endSide,u=f<0?i.to+l:t.to,p=Math.min(u,o);if(i.point||t.point?(i.point&&t.point&&yf(i.point,t.point)&&Qf(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(a,p,i.point,t.point),h=!1):(h&&s.boundChange(a),p>a&&!Qf(i.active,t.active)&&s.compareRange(a,p,i.active,t.active),c&&po)break;a=u,f<=0&&i.next(),f>=0&&t.next()}}function Qf(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;r--)i[r+1]=i[r];i[e]=t}function Hg(i,e){let t=-1,r=1e9;for(let n=0;n=e)return n;if(n==i.length)break;s+=i.charCodeAt(n)==9?t-s%t:1,n=it(i,n)}return r===!0?-1:i.length}var l0=typeof Symbol=="undefined"?"__\u037C":Symbol.for("\u037C"),$f=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),c0=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},mi=class{constructor(e,t){this.rules=[];let{finish:r}=t||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let h=[],O=/^@(\w+)\b/.exec(o[0]),f=O&&O[1]=="keyframes";if(O&&a==null)return l.push(o[0]+";");for(let u in a){let p=a[u];if(/&/.test(u))s(u.split(/,\s*/).map(m=>o.map(S=>m.replace(/&/,S))).reduce((m,S)=>m.concat(S)),p,l);else if(p&&typeof p=="object"){if(!O)throw new RangeError("The value of a property ("+u+") should be a primitive value.");s(n(u),p,h,f)}else p!=null&&h.push(u.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(h.length||f)&&l.push((r&&!O&&!c?o.map(r):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(n(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=c0[l0]||1;return c0[l0]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let n=e[$f],s=r&&r.nonce;n?s&&n.setNonce(s):n=new Pf(e,s),n.mount(Array.isArray(t)?t:[t],e)}},h0=new Map,Pf=class{constructor(e,t){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=h0.get(r);if(s)return e[$f]=s;this.sheet=new n.CSSStyleSheet,h0.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[$f]=this}mount(e,t){let r=this.sheet,n=0,s=0;for(let o=0;o-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},jP=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),qP=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(ot=0;ot<10;ot++)fr[48+ot]=fr[96+ot]=String(ot);var ot;for(ot=1;ot<=24;ot++)fr[ot+111]="F"+ot;var ot;for(ot=65;ot<=90;ot++)fr[ot]=String.fromCharCode(ot+32),fs[ot]=String.fromCharCode(ot);var ot;for(Yl in fr)fs.hasOwnProperty(Yl)||(fs[Yl]=fr[Yl]);var Yl;function O0(i){var e=jP&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||qP&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?fs:fr)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function rt(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=t[r];typeof n=="string"?i.setAttribute(r,n):n!=null&&(i[r]=n)}e++}for(;e2),J={mac:p0||/Mac/.test(zt.platform),windows:/Win/.test(zt.platform),linux:/Linux|X11/.test(zt.platform),ie:gc,ie_version:H0?Ef.documentMode||6:Yf?+Yf[1]:zf?+zf[1]:0,gecko:u0,gecko_version:u0?+(/Firefox\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,chrome:!!kf,chrome_version:kf?+kf[1]:0,ios:p0,android:/Android\b/.test(zt.userAgent),webkit:d0,webkit_version:d0?+(/\bAppleWebKit\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,safari:Mf,safari_version:Mf?+(/\bVersion\/(\d+(\.\d+)?)/.exec(zt.userAgent)||[0,0])[1]:0,tabSize:Ef.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function _u(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var Jl=Object.create(null);function Ru(i,e,t){if(i==e)return!0;i||(i=Jl),e||(e=Jl);let r=Object.keys(i),n=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(n.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function DP(i,e){for(let t=i.attributes.length-1;t>=0;t--){let r=i.attributes[t].name;e[r]==null&&i.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?i.style.cssText=r:i.getAttribute(t)!=r&&i.setAttribute(t,r)}}function m0(i,e,t){let r=!1;if(e)for(let n in e)t&&n in t||(r=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(r=!0,n=="style"?i.style.cssText=t[n]:i.setAttribute(n,t[n]));return r}function IP(i){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new vn(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,n;if(e.isBlockGap)r=-5e8,n=4e8;else{let{start:s,end:o}=K0(e,t);r=(s?t?-3e8:-1:5e8)-1,n=(o?t?2e8:1:-6e8)+1}return new vn(e,r,n,t,e.widget||null,!0)}static line(e){return new jo(e)}static set(e,t=!1){return pe.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};I.none=pe.empty;var Vo=class i extends I{constructor(e){let{start:t,end:r}=K0(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?_u(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Jl}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&Ru(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Vo.prototype.point=!1;var jo=class i extends I{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Ru(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};jo.prototype.mapMode=Ot.TrackBefore;jo.prototype.point=!0;var vn=class i extends I{constructor(e,t,r,n,s,o){super(t,r,s,e),this.block=n,this.isReplace=o,this.mapMode=n?t<=0?Ot.TrackBefore:Ot.TrackAfter:Ot.TrackDel}get type(){return this.startSide!=this.endSide?xt.WidgetRange:this.startSide<=0?xt.WidgetBefore:xt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&FP(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};vn.prototype.point=!0;function K0(i,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=i;return t==null&&(t=i.inclusive),r==null&&(r=i.inclusive),{start:t!=null?t:e,end:r!=null?r:e}}function FP(i,e){return i==e||!!(i&&e&&i.compare(e))}function bs(i,e,t,r=0){let n=t.length-1;n>=0&&t[n]+r>=i?t[n]=Math.max(t[n],e):t.push(i,e)}var ec=class i extends di{constructor(e,t,r){super(),this.tagName=e,this.attributes=t,this.rank=r}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&Ru(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||Jl,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return pe.of(e,t)}};ec.prototype.startSide=ec.prototype.endSide=-1;function qo(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function Lf(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function Co(i,e){if(!e.anchorNode)return!1;try{return Lf(i,e.anchorNode)}catch(t){return!1}}function Bl(i){return i.nodeType==3?Do(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Uo(i,e,t,r){return t?g0(i,e,t,r,-1)||g0(i,e,t,r,1):!1}function Er(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function tc(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function g0(i,e,t,r,n){for(;;){if(i==t&&e==r)return!0;if(e==(n<0?0:pr(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Er(i)+(n<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(n<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=n<0?pr(i):0}else return!1}}function pr(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function ic(i,e){let{left:t,right:r}=i;if(t==r)return i;let n=e?t:r;return{left:n,right:n,top:i.top,bottom:i.bottom}}function BP(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function J0(i,e){let t=e.width/i.offsetWidth,r=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-i.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function GP(i,e,t,r,n,s,o,a){let l=i.ownerDocument,c=l.defaultView||window;for(let h=i,O=!1;h&&!O;)if(h.nodeType==1){let f,u=h==l.body,p=1,m=1;if(u)f=BP(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(O=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let C=h.getBoundingClientRect();({scaleX:p,scaleY:m}=J0(h,C)),f={left:C.left,right:C.left+h.clientWidth*p,top:C.top,bottom:C.top+h.clientHeight*m}}let S=0,w=0;if(n=="nearest")e.top0&&e.bottom>f.bottom+w&&(w=e.bottom-f.bottom+o)):e.bottom>f.bottom-o&&(w=e.bottom-f.bottom+o,t<0&&e.top-w0&&e.right>f.right+S&&(S=e.right-f.right+s)):e.right>f.right-s&&(S=e.right-f.right+s,t<0&&e.leftf.bottom||e.leftf.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function eb(i,e=!0){let t=i.ownerDocument,r=null,n=null;for(let s=i.parentNode;s&&!(s==t.body||(!e||r)&&n);)if(s.nodeType==1)!n&&s.scrollHeight>s.clientHeight&&(n=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:n}}var Wf=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?pr(t):0),r,Math.min(e.focusOffset,r?pr(r):0))}set(e,t,r,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=n}};function tb(i){let e=[];for(let t=i;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}function ib(i,e=!0){for(let{node:t,left:r,top:n}of i)e&&t.scrollTop!=n&&(t.scrollTop=n),t.scrollLeft!=r&&(t.scrollLeft=r)}var xn=null;J.safari&&J.safari_version>=26&&(xn=!1);function rb(i){if(i.setActive)return i.setActive();if(xn)return i.focus(xn);let e=tb(i);i.focus(xn==null?{get preventScroll(){return xn={preventScroll:!0},!0}}:void 0),xn||(xn=!1,ib(e))}var b0;function Do(i,e,t=e){let r=b0||(b0=document.createRange());return r.setEnd(i,t),r.setStart(i,e),r}function xs(i,e,t,r){let n={key:e,code:e,keyCode:t,which:t,cancelable:!0};r&&({altKey:n.altKey,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,metaKey:n.metaKey}=r);let s=new KeyboardEvent("keydown",n);s.synthetic=!0,i.dispatchEvent(s);let o=new KeyboardEvent("keyup",n);return o.synthetic=!0,i.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function NP(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function HP(i,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,pr(t));;)if(r){if(t.nodeType!=1)return!1;let n=t.childNodes[r-1];n.contentEditable=="false"?r--:(t=n,r=pr(t))}else{if(t==i)return!0;r=Er(t),t=t.parentNode}}function nb(i){return i instanceof Window?i.pageYOffset>Math.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function sb(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=pr(t)}else if(t.parentNode&&!tc(t))r=Er(t),t=t.parentNode;else return null}}function ob(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&r=t){if(a.level==r)return o;(s<0||(n!=0?n<0?a.fromt:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function cb(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;m-=3)if(Ki[m+1]==-u){let S=Ki[m+2],w=S&2?n:S&4?S&1?s:n:0;w&&(Ve[O]=Ve[Ki[m]]=w),a=m;break}}else{if(Ki.length==189)break;Ki[a++]=O,Ki[a++]=f,Ki[a++]=l}else if((p=Ve[O])==2||p==1){let m=p==n;l=m?0:1;for(let S=a-3;S>=0;S-=3){let w=Ki[S+2];if(w&2)break;if(m)Ki[S+2]|=2;else{if(w&4)break;Ki[S+2]|=4}}}}}function r1(i,e,t,r){for(let n=0,s=r;n<=t.length;n++){let o=n?t[n-1].to:i,a=nl;)p==S&&(p=t[--m].from,S=m?t[m-1].to:i),Ve[--p]=u;l=h}else s=c,l++}}}function jf(i,e,t,r,n,s,o){let a=r%2?2:1;if(r%2==n%2)for(let l=e,c=0;ll&&o.push(new xi(l,m.from,u));let S=m.direction==wn!=!(u%2);qf(i,S?r+1:r,n,m.inner,m.from,m.to,o),l=m.to}p=m.to}else{if(p==t||(h?Ve[p]!=a:Ve[p]==a))break;p++}f?jf(i,l,p,r+1,n,f,o):le;){let h=!0,O=!1;if(!c||l>s[c-1].to){let m=Ve[l-1];m!=a&&(h=!1,O=m==16)}let f=!h&&a==1?[]:null,u=h?r:r+1,p=l;e:for(;;)if(c&&p==s[c-1].to){if(O)break e;let m=s[--c];if(!h)for(let S=m.from,w=c;;){if(S==e)break e;if(w&&s[w-1].to==S)S=s[--w].from;else{if(Ve[S-1]==a)break e;break}}if(f)f.push(m);else{m.toVe.length;)Ve[Ve.length]=256;let r=[],n=e==wn?0:1;return qf(i,n,n,t,0,i.length,r),r}function hb(i){return[new xi(0,i,0)]}var Ob="";function s1(i,e,t,r,n){var s;let o=r.head-i.from,a=xi.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(n,t);if(o==c){let f=a+=n?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!n,t),c=l.side(n,t)}let h=it(i.text,o,l.forward(n,t));(hl.to)&&(h=c),Ob=i.text.slice(Math.min(o,h),Math.max(o,h));let O=a==(n?e.length-1:0)?null:e[a+(n?1:-1)];return O&&h==c&&O.level+(n?0:1)i.some(e=>e)}),xb=K.define({combine:i=>i.some(e=>e)}),Sb=K.define(),Ao=class i{constructor(e,t,r,n,s,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=n,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(U.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Ml=ae.define({map:(i,e)=>i.map(e)}),Qb=ae.define();function ti(i,e,t){let r=i.facet(pb);r.length?r[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var ur=K.define({combine:i=>i.length?i[0]:!0}),a1=0,ds=K.define({combine(i){return i.filter((e,t)=>{for(let r=0;r{let l=[];return o&&l.push(bc.of(c=>{let h=c.plugin(a);return h?o(h):I.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return i.define((r,n)=>new e(r,n),t)}},Eo=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(r){if(ti(t.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(n){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){ti(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(r){ti(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},vb=K.define(),Au=K.define(),bc=K.define(),wb=K.define(),Eu=K.define(),Bo=K.define(),yb=K.define();function x0(i,e){let t=i.state.facet(yb);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(i):s),n=[];return pe.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,h=o-e.from,O=n;for(let f=a.length-1;f>=0;f--,l--){let u=a[f].spec.bidiIsolate,p;if(u==null&&(u=o1(e.text,c,h)),l>0&&O.length&&(p=O[O.length-1]).to==c&&p.direction==u)p.to=h,O=p.inner;else{let m={from:c,to:h,direction:u,inner:[]};O.push(m),O=m.inner}}}}),n}var $b=K.define();function zu(i){let e=0,t=0,r=0,n=0;for(let s of i.state.facet($b)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(n=Math.max(n,o.bottom)))}return{left:e,right:t,top:r,bottom:n}}var _o=K.define(),Ui=class i{constructor(e,t,r,n){this.fromA=e,this.toA=t,this.fromB=r,this.toB=n}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,r=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>r.toA)){if(n.toAn.push(new Ui(s,o,a,l))),this.changedRanges=n}static create(e,t,r){return new i(e,t,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},l1=[],Ke=class{constructor(e,t,r=0){this.dom=e,this.length=t,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return l1}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&DP(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let r=t;for(let n of this.children){if(n==e)return r;r+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,r){return null}domPosFor(e,t){let r=Er(this.dom),n=this.length?e>0:t>0;return new Ji(this.parent.dom,r+(n?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Qs)return e;return null}static get(e){return e.cmTile}},Ss=class extends Ke{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,r=null,n,s=(e==null?void 0:e.node)==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,n=r?r.nextSibling:t.firstChild,s&&n!=a.dom&&(s.written=!0),a.dom.parentNode==t)for(;n&&n!=a.dom;)n=S0(n);else t.insertBefore(a.dom,n);r=a.dom}for(n=r?r.nextSibling:t.firstChild,s&&n&&(s.written=!0);n;)n=S0(n);this.length=o}};function S0(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Qs=class extends Ss{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=Ke.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],r=this,n=0,s=0;;)if(n==r.children.length){if(!t.length)return;r=r.parent,r.breakAfter&&s++,n=t.pop()}else{let o=r.children[n++];if(o instanceof dr)t.push(n),r=o,n=0;else{let a=s+o.length,l=e(o,s);if(l!==void 0)return l;s=a+o.breakAfter}}}resolveBlock(e,t){let r,n=-1,s,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(r=void 0)}(le||e==l&&(t>1?a.length:a.covers(-1)))&&(!s||!a.isWidget()&&s.isWidget())&&(s=a,o=e-l)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&t<0||!s?{tile:r,offset:n}:{tile:s,offset:o}}},dr=class i extends Ss{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let r=new i(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}},vs=class i extends Ss{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let n=new i(t||document.createElement("div"),e);return(!t||!r)&&(n.flags|=4),n}get domAttrs(){return this.attrs}resolveInline(e,t,r){let n=null,s=-1,o=null,a=-1;function l(h,O){for(let f=0,u=0;f=O&&(p.isComposite()?l(p,O-u):(!o||o.isHidden&&(t>0&&!(o.flags&32)||r&&h1(o,p)))&&(m>O||p.flags&32&&t<=1)?(o=p,a=O-u):(u=-1)&&(n=p,s=O-u)),u=m}}l(this,e);let c=(t<0?n:o)||n||o;return c?{tile:c,offset:c==n?s:a}:null}coordsIn(e,t,r){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t,r):c1(this)}domIn(e,t){let r=this.resolveInline(e,t);if(r){let{tile:n,offset:s}=r;if(this.dom.contains(n.dom))return n.isText()?new Ji(n.dom,Math.min(n.dom.nodeValue.length,s)):n.domPosFor(s,n.flags&16?1:n.flags&32?-1:t);let o=r.tile.parent,a=!1;for(let l of o.children){if(a)return new Ji(l.dom,0);l==r.tile&&(a=!0)}}return new Ji(this.dom,0)}};function c1(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=Bl(e);return t[t.length-1]||null}function h1(i,e){let t=i.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.topn&&(e=n);let s=e,o=e,a=0;e==0&&t<0||e==n&&t>=0?J.chrome||J.gecko||(e?(s--,a=1):o=0)?0:l.length-1];return J.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(l,h=>h.width)||c),r==null?c:ic(c,(a?a>0:t<0)==r)}static of(e,t){let r=new i(t||document.createTextNode(e),e);return t||(r.flags|=2),r}},yn=class i extends Ke{constructor(e,t,r,n){super(e,t,n),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,r){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;if(r)return ic(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?s.length-1:0;o=s[l],!(e>0?l==0:l==s.length-1||o.top0==r)}},If=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,r){let{tile:n,index:s,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(n.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==n.children.length){if(!e&&!a.length)break;r&&r.leave(n),o=!!n.breakAfter,{tile:n,index:s}=a.pop(),s++}else{let l=n.children[s],c=l.breakAfter;(t>0?l.length<=e:l.length=0;a--){let l=t.marks[a],c=n.lastChild;if(c instanceof Ft&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Xf(l.dom)),n=c;else{if(this.cache.reused.get(l)){let O=Ke.get(l.dom);O&&O.setDOM(Xf(l.dom))}let h=Ft.of(l.mark,l.dom);n.append(h),n=h}this.cache.reused.set(l,2)}let s=Ke.get(e.text);s&&this.cache.reused.set(s,2);let o=new Sn(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,n.append(o)}addInlineWidget(e,t,r){let n=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);n||this.flushBuffer();let s=this.ensureMarks(t,r);!n&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,r){this.flushBuffer(),this.ensureMarks(t,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var r;e||(e=Pb);let n=vs.start(e,t||((r=this.cache.find(vs))===null||r===void 0?void 0:r.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=n)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var r;let n=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],a;if(t>0&&(a=n.lastChild)&&a instanceof Ft&&a.mark.eq(o))n=a,t--;else{let l=Ft.of(o,(r=this.cache.find(Ft,c=>c.mark.eq(o)))===null||r===void 0?void 0:r.dom);n.append(l),n=l,t=0}}return n}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!Q0(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(J.ios&&Q0(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Tf,0,32)||new yn(Tf.toDOM(),0,Tf,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,r=new Ff(e.from,e.to,e.value,t),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-r.rank||this.wrappers[n-1].to-r.to)<0;)n--;this.wrappers.splice(n,0,r)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let r of this.wrappers){let n=t.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),r=this.cache.find(ws,void 0,1);return r&&(r.flags=t),r||new ws(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Gf=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=n;let a=this.textOff=Math.min(e,n.length);return s?null:n.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,t);return this.textOff=t,r}},nc=[yn,vs,Sn,Ft,ws,dr,Qs];for(let i=0;i[]),this.index=nc.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,r=this.buckets[t];r.length<6?r.push(e):r[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,r=2){let n=e.bucket,s=this.buckets[n],o=this.index[n];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let r=t&&this.getCompositionContext(t.text);for(let n=0,s=0,o=0;;){let a=on){let c=l-n;this.preserve(c,!o,!a),n=l,s+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Ft&&n.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?n.length&&(n.length=s=0):o instanceof Ft&&(n.shift(),s=Math.min(s,n.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let r=null,n=this.builder,s=-1,o=pe.spans(this.decorations,e,t,{point:(a,l,c,h,O,f)=>{if(c instanceof vn){if(this.disallowBlockEffectsFor[f]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,O>h.length)n.continueWidget(l-a);else{let u=c.widget||(c.block?zr.block:zr.inline),p=O1(c),m=this.cache.findWidget(u,l-a,p)||yn.of(u,this.view,l-a,p);c.block?(c.startSide>0&&n.addLineStartIfNotCovered(r),n.addBlockWidget(m)):(n.ensureLine(r),n.addInlineWidget(m,h,O))}r=null}else r=f1(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,h)=>{for(let O=a;O-1&&(this.openWidget=o>s),this.openWidget||n.addLineStartIfNotCovered(r),this.openMarks=o}forward(e,t,r=1){t-e<=10?this.old.advance(t-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let t=[],r=null;for(let n=e.parentNode;;n=n.parentNode){let s=Ke.get(n);if(n==this.view.contentDOM)break;s instanceof Ft?t.push(s):s!=null&&s.isLine()?r=s:s instanceof dr||(n.nodeName=="DIV"&&!r&&n!=this.view.contentDOM?r=new vs(n,Pb):r||t.push(Ft.of(new Vo({tagName:n.nodeName.toLowerCase(),attributes:IP(n)}),n)))}return{line:r,marks:t}}};function Q0(i,e){let t=r=>{for(let n of r.children)if((e?n.isText():n.length)||t(n))return!0;return!1};return t(i)}function O1(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var Pb={class:"cm-line"};function f1(i,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(i||(i={class:"cm-line"}),t&&_u(t,i),r&&(i.class+=" "+r)),i}function u1(i){let e=[];for(let t=i.parents.length;t>1;t--){let r=t==i.parents.length?i.tile:i.parents[t].tile;r instanceof Ft&&e.push(r.mark)}return e}function Xf(i){let e=Ke.get(i);return e&&e.setDOM(i.cloneNode()),i}var zr=class extends at{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};zr.inline=new zr("span");zr.block=new zr("div");var Tf=new class extends at{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},sc=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=I.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Qs(e,e.contentDOM),this.updateInner([new Ui(0,0,0,e.state.doc.length)],null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:h,toA:O})=>Othis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?n=this.domChanged.newSel.head:!Q1(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let s=n>-1?p1(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:O}=this.hasComposition;r=new Ui(h,O,e.changes.mapPos(h,-1),e.changes.mapPos(O,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(J.ie||J.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=b1(o,this.decorations,e.changes);l.length&&(r=Ui.extendWithRanges(r,l));let c=x1(a,this.blockWrappers,e.changes);return c.length&&(r=Ui.extendWithRanges(r,c)),s&&!r.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(t||e.length){let o=this.tile,a=new Hf(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&Ke.get(t.text)&&a.cache.reused.set(Ke.get(t.text),2),this.tile=a.run(e,t),Kf(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=J.chrome||J.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Co(r,this.view.observer.selectionRange)&&!(n&&r.contains(n));if(!(s||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,h;if(l.empty?h=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(h=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),J.gecko&&l.empty&&!this.hasComposition&&d1(c)){let f=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(f,c.node.childNodes[c.offset]||null)),c=h=new Ji(f,0),a=!0}let O=this.view.observer.selectionRange;(a||!O.focusNode||(!Uo(c.node,c.offset,O.anchorNode,O.anchorOffset)||!Uo(h.node,h.offset,O.focusNode,O.focusOffset))&&!this.suppressWidgetCursorChange(O,l))&&(this.view.observer.ignore(()=>{J.android&&J.chrome&&r.contains(O.focusNode)&&S1(O.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let f=qo(this.view.root);if(f)if(l.empty){if(J.gecko){let u=m1(c.node,c.offset);if(u&&u!=3){let p=(u==1?sb:ob)(c.node,c.offset);p&&(c=new Ji(p.node,p.offset))}}f.collapse(c.node,c.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(c.node,c.offset);try{f.extend(h.node,h.offset)}catch(u){}}else{let u=document.createRange();l.anchor>l.head&&([c,h]=[h,c]),u.setEnd(h.node,h.offset),u.setStart(c.node,c.offset),f.removeAllRanges(),f.addRange(u)}o&&this.view.root.activeElement==r&&(r.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(c,h)),this.impreciseAnchor=c.precise?null:new Ji(O.anchorNode,O.anchorOffset),this.impreciseHead=h.precise?null:new Ji(O.focusNode,O.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Uo(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=qo(e.root),{anchorNode:n,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);r.collapse(h.node,h.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let O=e.observer.selectionRange;e.docView.posFromDOM(O.anchorNode,O.anchorOffset)!=t.from&&r.collapse(n,s)}posFromDOM(e,t){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let n=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[t];else{let o=pr(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==r.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return n;for(;s&&!Ke.get(s);)s=s.nextSibling;if(!s)return n+r.length;for(let o=0,a=n;;o++){let l=r.children[o];if(l.dom==s)return a;a+=l.length+l.breakAfter}}else return r.isText()?e==r.dom?n+t:n+(t?r.length:0):n}domAtPos(e,t){let{tile:r,offset:n}=this.tile.resolveBlock(e,t);return r.isWidget()?r.domPosFor(n,t):r.domIn(n,t)}inlineDOMNearPos(e,t){let r,n=-1,s=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,h)=>{if(c.isWidget()){if(c.flags&32&&h>=e)return!0;c.flags&16&&(s=!0)}else{let O=h+c.length;if(h<=e&&(r=c,n=e-h,s=O=e&&!o&&(o=c,a=e-h,l=h>e),h>e&&o)return!0}}),!r&&!o?this.domAtPos(e,t):(s&&o?r=null:l&&r&&(o=null),r&&t<0||!o?r.domIn(n,t):o.domIn(a,t))}coordsAt(e,t,r){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof zo?null:n.coordsInWidget(s,t,!0):n.coordsIn(s,t,r)}lineAt(e,t){let{tile:r}=this.tile.resolveBlock(e,t);return r.isLine()?r:null}coordsForChar(e){let{tile:t,offset:r}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function n(s,o){if(s.isComposite())for(let a of s.children){if(a.length>=o){let l=n(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==Ye.LTR,c=0,h=(O,f,u)=>{for(let p=0;pn);p++){let m=O.children[p],S=f+m.length,w=m.dom.getBoundingClientRect(),{height:C}=w;if(u&&!p&&(c+=w.top-u.top),m instanceof dr)S>r&&h(m,f,w);else if(f>=r&&(c>0&&t.push(-c),t.push(C+c),c=0,o)){let R=m.dom.lastChild,A=R?Bl(R):[];if(A.length){let k=A[A.length-1],P=l?k.right-w.left:w.right-k.left;P>a&&(a=P,this.minWidth=s,this.minWidthFrom=f,this.minWidthTo=S)}}u&&p==O.children.length-1&&(c+=u.bottom-w.bottom),f=S+m.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?Ye.RTL:Ye.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let h=Bl(c.dom);if(h.length!=1)return;a+=h[0].width,l=h[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),r,n,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Bl(t.firstChild)[0];r=t.getBoundingClientRect().height,n=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,t.remove()}),{lineHeight:r,charWidth:n,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,n=0;;n++){let s=n==t.viewports.length?null:t.viewports[n],o=s?s.from-1:this.view.state.doc.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(I.replace({widget:new zo(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return I.set(e)}updateDeco(){let e=1,t=this.view.state.facet(bc).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,n=this.view.state.facet(Eu).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(n.length&&(this.dynamicDecorationMap[e++]=r,t.push(pe.join(n))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Sb))try{if(c(this.view,e.range,e))return!0}catch(h){ti(this.view.state,h,"scroll handler")}let{range:t}=e,r=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),n;if(!r)return;!t.empty&&(n=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,n.left),top:Math.min(r.top,n.top),right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)});let s=zu(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(GP(this.view.scrollDOM,o,t.head1&&(r.top>window.visualViewport.offsetTop+window.visualViewport.height||r.bottomr.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Kf(this.tile)}};function Kf(i,e){let t=e==null?void 0:e.get(i);if(t!=1){t==null&&i.destroy();for(let r of i.children)Kf(r,e)}}function d1(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function kb(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let r=sb(t.focusNode,t.focusOffset),n=ob(t.focusNode,t.focusOffset),s=r||n;if(n&&r&&n.node!=r.node){let a=Ke.get(n.node);if(!a||a.isText()&&a.text!=n.node.nodeValue)s=n;else if(i.docView.lastCompositionAfterCursor){let l=Ke.get(r.node);!l||l.isText()&&l.text!=r.node.nodeValue||(s=n)}}if(i.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function p1(i,e,t){let r=kb(i,t);if(!r)return null;let{node:n,from:s,to:o}=r,a=n.nodeValue;if(/[\n\r]/.test(a)||i.state.doc.sliceString(r.from,r.to)!=a)return null;let l=e.invertedDesc;return{range:new Ui(l.mapPos(s),l.mapPos(o),s,o),text:n}}function m1(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(t=!0)}),t}var zo=class extends at{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function v1(i,e,t=1){let r=i.charCategorizer(e),n=i.doc.lineAt(e),s=e-n.from;if(n.length==0)return U.cursor(e);s==0?t=1:s==n.length&&(t=-1);let o=s,a=s;t<0?o=it(n.text,s,!1):a=it(n.text,s);let l=r(n.text.slice(o,a));for(;o>0;){let c=it(n.text,o,!1);if(r(n.text.slice(c,o))!=l)break;o=c}for(;ai.defaultLineHeight*1.5){let a=i.viewState.heightOracle.textHeight,l=Math.floor((n-t.top-(i.defaultLineHeight-a)*.5)/a);s+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+zl(o,s,i.state.tabSize)}function eu(i,e,t){let r=i.lineBlockAt(e);if(Array.isArray(r.type)){let n;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!n||s.type==xt.Text&&(n.type!=s.type||(t<0?s.frome)))&&(n=s)}}return n||r}return r}function y1(i,e,t,r){let n=eu(i,e.head,e.assoc||-1),s=!r||n.type!=xt.Text||!(i.lineWrapping||n.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),a=i.textDirectionAt(n.from),l=i.posAtCoords({x:t==(a==Ye.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return U.cursor(l,t?-1:1)}return U.cursor(t?n.to:n.from,t?-1:1)}function v0(i,e,t,r){let n=i.state.doc.lineAt(e.head),s=i.bidiSpans(n),o=i.textDirectionAt(n.from);for(let a=e,l=null;;){let c=s1(n,s,o,a,t),h=Ob;if(!c){if(n.number==(t?i.state.doc.lines:1))return a;h=` -`,n=i.state.doc.line(n.number+(t?1:-1)),s=i.bidiSpans(n),c=i.visualLineSide(n,!t)}if(l){if(!l(h))return a}else{if(!r)return c;l=r(h)}a=c}}function $1(i,e,t){let r=i.state.charCategorizer(e),n=r(t);return s=>{let o=r(s);return n==Me.Space&&(n=o),n==o}}function P1(i,e,t,r){let n=e.head,s=t?1:-1;if(n==(t?i.state.doc.length:0))return U.cursor(n,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(n,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),h=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let p=i.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(n-p.from))),a=(s<0?p.top:p.bottom)+h}let O=l.left+o,f=i.viewState.heightOracle.textHeight>>1,u=r!=null?r:f;for(let p=0;;p+=f){let m=a+(u+p)*s,S=tu(i,{x:O,y:m},!1,s);if(t?m>l.bottom:ma:C{if(e>s&&en(i)),t.from,e.head>t.from?-1:1);return r==t.from?t:U.cursor(r,ri.viewState.docHeight)return new bi(i.state.doc.length,-1);if(c=i.elementAtHeight(l),r==null)break;if(c.type==xt.Text){if(r<0?c.toi.viewport.to)break;let f=i.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(f&&(r<0?f.top<=l+s:f.bottom>=l+s))break}let O=i.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+O:c.top-O}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==xt.Text){let O=w1(i,n,c,o,a);return new bi(O,O==c.from?1:-1)}}if(c.type!=xt.Text)return l<(c.top+c.bottom)/2?new bi(c.from,1):new bi(c.to,-1);let h=i.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=i.docView.lineAt(c.from,-2)),new iu(i,o,a,i.textDirectionAt(c.from)).scanTile(h,c.from)}var iu=class{constructor(e,t,r,n){this.view=e,this.x=t,this.y=r,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+n.from>1;t:if(o.has(m)){for(let C=1;C=s&&(R-=p),!o.has(R)){m=R;break t}}break e}o.add(m);let S=t(m),w=0;if(S)for(let C=0;C1))if(R.bottomthis.y)(!c||c.top>R.top)&&(c=R),w=-1;else{let A=R.left>this.x?this.x-R.left:R.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,t,!0)}let u=(a?this.dirAt(e[h],1):this.baseDir)==Ye.LTR;return{i:h,after:this.x>(f.left+f.right)/2==u}}scanText(e,t){let r=[];for(let s=0;s{let o=r[s]-t,a=r[s+1]-t;return Do(e.dom,o,a).getClientRects()});return n.after?new bi(r[n.i+1],-1):new bi(r[n.i],1)}scanTile(e,t){if(!e.length)return new bi(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Do(l.dom,0,l.length)).getClientRects()}),s=e.children[n.i],o=r[n.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):n.after?new bi(r[n.i+1],-1):new bi(o,1)}},us="\uFFFF",ru=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ve.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=us}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let n=e;;){this.findPointBefore(r,n);let s=this.text.length;this.readNode(n);let o=Ke.get(n),a=n.nextSibling;if(a==t){o!=null&&o.breakAfter&&!a&&r!=this.view.contentDOM&&this.lineBreak();break}let l=Ke.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:tc(n))||tc(a)&&(n.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!X1(a,t)&&this.lineBreak(),n=a}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=n.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){let t=Ke.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let n=r.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(k1(e,r.node,r.offset)?t:0))}};function k1(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Tb(e.docView.tile,t,r,0))){let l=s||o?[]:_1(e),c=new ru(l,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=R1(l,this.bounds.from)}else{let l=e.observer.selectionRange,c=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!Lf(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Lf(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),O=e.viewport;if((J.ios||J.chrome)&&c!=h&&Math.min(c,h)<=a.main.from&&Math.max(c,h)>=a.main.to&&(O.from>0||O.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(U.range(h,c));else if(e.lineWrapping&&h==c&&!(a.main.empty&&a.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let f=e.coordsAtPos(c,-1),u=0;f&&(u=e.inputState.lastTouchY<=f.bottom?-1:1),this.newSel=U.create([U.cursor(c,u)])}else this.newSel=U.single(h,c)}}};function Tb(i,e,t,r){if(i.isComposite()){let n=-1,s=-1,o=-1,a=-1;for(let l=0,c=r,h=r;lt)return Tb(O,e,t,c);if(f>=e&&n==-1&&(n=l,s=c),c>t&&O.dom.parentNode==i.dom){o=l,a=h;break}h=f,c=f+O.breakAfter}return{from:s,to:a<0?r+i.length:a,startDOM:(n?i.children[n-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:o=0?i.children[o].dom:null}}else return i.isText()?{from:r,to:r+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function _b(i,e){let t,{newSel:r}=e,{state:n}=i,s=n.selection.main,o=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,c=s.from,h=null;(o===8||J.android&&e.text.length=a&&s.to<=l&&(e.typeOver||O!=e.text)&&O.slice(0,s.from-a)==e.text.slice(0,s.from-a)&&O.slice(s.to-a)==e.text.slice(f=e.text.length-(O.length-(s.to-a)))?t={from:s.from,to:s.to,insert:$e.of(e.text.slice(s.from-a,f).split(us))}:(u=Rb(O,e.text,c-a,h))&&(J.chrome&&o==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==us+us&&u.toB--,t={from:a+u.from,to:a+u.toA,insert:$e.of(e.text.slice(u.from,u.toB).split(us))})}else r&&(!i.hasFocus&&n.facet(ur)||ac(r,s))&&(r=null);if(!t&&!r)return!1;if((J.mac||J.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=U.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:$e.of([t.insert.toString().replace("."," ")])}):n.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:n.toText(i.inputState.insertingText)}:J.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` - `&&i.lineWrapping&&(r&&(r=U.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:$e.of([" "])}),t)return Yu(i,t,r,o);if(r&&!ac(r,s)){let a=!1,l="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(a=!0),l=i.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=Xb(n.facet(Bo).map(c=>c(i)),r))),i.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Yu(i,e,t,r=-1){if(J.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(J.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&xs(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||r==8&&e.insert.lengthn.head)&&xs(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&xs(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=T1(i,e,t));return i.state.facet(mb).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function T1(i,e,t){let r,n=i.state,s=n.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let l=e.fromO(i)),c,l);e.from==h&&(o=h)}if(o>-1)r={changes:e,selection:U.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let l=s.frome.to?n.sliceDoc(e.to,s.to):"";r=n.replaceSelection(i.state.toText(l+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let l=n.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(n.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=i.state.sliceDoc(e.from,e.to),O,f=t&&kb(i,t.main.head);if(f){let p=e.insert.length-(e.to-e.from);O={from:f.from,to:f.to-p}}else O=i.state.doc.lineAt(s.head);let u=s.to-e.to;r=n.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:l,range:c||p.map(l)};let m=p.to-u,S=m-h.length;if(i.state.sliceDoc(S,m)!=h||m>=O.from&&S<=O.to)return{range:p};let w=n.changes({from:S,to:m,insert:e.insert}),C=p.to-s.to;return{changes:w,range:c?U.range(Math.max(0,c.anchor+C),Math.max(0,c.head+C)):p.map(w)}})}else r={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,a+=".compose",i.inputState.compositionFirstChange&&(a+=".start",i.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:a,scrollIntoView:!0})}function Rb(i,e,t,r){let n=Math.min(i.length,e.length),s=0;for(;s0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function _1(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new oc(t,r)),(n!=t||s!=r)&&e.push(new oc(n,s))),e}function R1(i,e){if(i.length==0)return null;let t=i[0].pos,r=i.length==2?i[1].pos:t;return t>-1&&r>-1?U.single(t+e,r+e):null}function ac(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var su=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,J.safari&&e.contentDOM.addEventListener("input",()=>null),J.gecko&&I1(e.contentDOM.ownerDocument)}handleEvent(e){!M1(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,t);for(let n of r.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=C1(e),r=this.handlers,n=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(n.removeEventListener(s,this.handleEvent),a=null),a||n.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&n.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Cb.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),J.android&&J.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(J.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Zb.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||U1.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&J.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&Z1(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:J.safari&&!J.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Z1(i){return i.visualViewport?i.visualViewport.height*i.visualViewport.scale/i.document.documentElement.clientHeight<.85:!1}function w0(i,e){return(t,r)=>{try{return e.call(i,r,t)}catch(n){ti(t.state,n)}}}function C1(i){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of i){let n=r.spec,s=n&&n.plugin.domEventHandlers,o=n&&n.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push(w0(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(w0(r.value,l))}}for(let r in Ai)t(r).handlers.push(Ai[r]);for(let r in Yt)t(r).observers.push(Yt[r]);return e}var Zb=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],U1="dthko",Cb=[16,17,18,20,91,92,224,225],Ll=6;function Wl(i){return Math.max(0,i)*.7+8}function A1(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var ou=class{constructor(e,t,r,n){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=eb(e.contentDOM),this.atoms=e.state.facet(Bo).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ve.allowMultipleSelections)&&E1(e,t),this.dragging=Y1(e,t)&&Eb(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&A1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,r=0,n=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=zu(this.view);e.clientX-l.left<=n+Ll?t=-Wl(n-e.clientX):e.clientX+l.right>=o-Ll&&(t=Wl(e.clientX-o)),e.clientY-l.top<=s+Ll?r=-Wl(s-e.clientY):e.clientY+l.bottom>=a-Ll&&(r=Wl(e.clientY-a)),this.setScrollSpeed(t,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,r=Xb(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function E1(i,e){let t=i.state.facet(fb);return t.length?t[0](e):J.mac?e.metaKey:e.ctrlKey}function z1(i,e){let t=i.state.facet(ub);return t.length?t[0](e):J.mac?!e.altKey:!e.ctrlKey}function Y1(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let r=qo(i.root);if(!r||r.rangeCount==0)return!0;let n=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function M1(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=Ke.get(t))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}var Ai=Object.create(null),Yt=Object.create(null),Ub=J.ie&&J.ie_version<15||J.ios&&J.webkit_version<604;function L1(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),Ab(i,t.value)},50)}function xc(i,e,t){for(let r of i.facet(e))t=r(t,i);return t}function Ab(i,e){e=xc(i.state,Cu,e);let{state:t}=i,r,n=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(au!=null&&t.selection.ranges.every(l=>l.empty)&&au==s.toString()){let l=-1;r=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==l)return{range:c};l=h.from;let O=t.toText((o?s.line(n++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:O},range:U.cursor(c.from+O.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(n++);return{changes:{from:l.from,to:l.to,insert:c.text},range:U.cursor(l.from+c.length)}}):r=t.replaceSelection(s);i.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Yt.scroll=i=>{let e=i.inputState;e.lastScrollTop=i.scrollDOM.scrollTop,e.lastScrollLeft=i.scrollDOM.scrollLeft,J.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Yt.wheel=Yt.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};Ai.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);Yt.touchstart=(i,e)=>{let t=i.inputState,r=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),r&&(t.lastTouchX=r.clientX,t.lastTouchY=r.clientY),t.setSelectionOrigin("select.pointer")};Yt.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};Yt.touchend=(i,e)=>{i.inputState.touchActive=!1};Ai.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of i.state.facet(db))if(t=r(i,e),t)break;if(!t&&e.button==0&&(t=V1(i,e)),t){let r=!i.hasFocus;i.inputState.startMouseSelection(new ou(i,e,t,r)),r&&i.observer.ignore(()=>{rb(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let n=i.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function y0(i,e,t,r){if(r==1)return U.cursor(e,t);if(r==2)return v1(i.state,e,t);{let n=i.docView.lineAt(e,t),s=i.state.doc.lineAt(n?n.posAtEnd:e),o=n?n.posAtStart:s.from,a=n?n.posAtEnd:s.to;return aDate.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(P0+1)%3:1}function V1(i,e){let t=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=Eb(e),n=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),n=n.map(s.changes))},get(s,o,a){let l=i.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,h=y0(i,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let O=y0(i,t.pos,t.assoc,r),f=Math.min(O.from,h.from),u=Math.max(O.to,h.to);h=f1&&(c=j1(n,l.pos))?c:a?n.addRange(h):U.create([h])}}}function j1(i,e){for(let t=0;t=e)return U.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}Ai.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let n=i.docView.tile.nearest(e.target);if(n&&n.isWidget()){let s=n.posAtStart,o=s+n.length;(s>=t.to||o<=t.from)&&(t=U.undirectionalRange(s,o))}}let{inputState:r}=i;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",xc(i.state,Uu,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Ai.dragend=i=>(i.inputState.draggedContent=null,!1);function X0(i,e,t,r){if(t=xc(i.state,Cu,t),!t)return;let n=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=r&&s&&z1(i,e)?{from:s.from,to:s.to}:null,a={from:n,insert:t},l=i.state.changes(o?[o,a]:a);i.focus(),i.dispatch({changes:l,selection:{anchor:l.mapPos(n,-1),head:l.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}Ai.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),n=0,s=()=>{++n==t.length&&X0(i,e,r.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return X0(i,e,r,!0),!0}return!1};Ai.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=Ub?null:e.clipboardData;return t?(Ab(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(L1(i),!1)};function q1(i,e){let t=i.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),i.focus()},50)}function D1(i){let e=[],t=[],r=!1;for(let n of i.selection.ranges)n.empty||(e.push(i.sliceDoc(n.from,n.to)),t.push(n));if(!e.length){let n=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>n&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),n=o.number}r=!0}return{text:xc(i,Uu,e.join(i.lineBreak)),ranges:t,linewise:r}}var au=null;Ai.copy=Ai.cut=(i,e)=>{if(!Co(i.contentDOM,i.observer.selectionRange))return!1;let{text:t,ranges:r,linewise:n}=D1(i.state);if(!t&&!n)return!1;au=n?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Ub?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(q1(i,t),!1)};var zb=It.define();function Yb(i,e){let t=[];for(let r of i.facet(gb)){let n=r(i,e);n&&t.push(n)}return t.length?i.update({effects:t,annotations:zb.of(!0)}):null}function Mb(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=Yb(i.state,e);t?i.dispatch(t):i.update([])}},10)}Yt.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),Mb(i)};Yt.blur=i=>{i.observer.clearSelectionRange(),Mb(i)};Yt.compositionstart=Yt.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};Yt.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,J.chrome&&J.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};Yt.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};Ai.beforeinput=(i,e)=>{var t,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=i.posAtDOM(a.startContainer,a.startOffset),c=i.posAtDOM(a.endContainer,a.endOffset);return Yu(i,{from:l,to:c,insert:i.state.toText(s)},null),!0}}let n;if(J.chrome&&J.android&&(n=Zb.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return J.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),J.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>Yt.compositionend(i,e),20),!1};var T0=new Set;function I1(i){T0.has(i)||(T0.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var _0=["pre-wrap","normal","pre-line","break-spaces"],ys=!1;function R0(){ys=!1}var lu=class{constructor(e){this.lineWrapping=e,this.doc=$e.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return _0.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=n,this.lineLength=s,l){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Gl&&(ys=!0),this.height=e)}replace(e,t,r){return i.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,n){let s=this,o=r.doc;for(let a=n.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:h,toB:O}=n[a],f=s.lineAt(l,Fe.ByPosNoHeight,r.setDoc(t),0,0),u=f.to>=c?f:s.lineAt(c,Fe.ByPosNoHeight,r,0,0);for(O+=u.to-c,c=u.to;a>0&&f.from<=n[a-1].toA;)l=n[a-1].fromA,h=n[a-1].fromB,a--,ls*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,n-=a.size}else if(s>n*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(n=s&&o(this.lineAt(0,Fe.ByPos,r,n,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more&&this.setMeasuredHeight(n),this.outdated=!1,this}toString(){return`block(${this.length})`}},gi=class i extends cc{constructor(e,t,r){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,t){return new Ci(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,r){let n=r[0];return r.length==1&&(n instanceof i||n instanceof Ar&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Ar?n=new i(n.length,this.height,this.spaceAbove):n.height=this.height,this.outdated||(n.outdated=!1),n):ii.of(r)}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more?this.setMeasuredHeight(n):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Ar=class i extends ii{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,s=n-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:n,perLine:o,perChar:a}}blockAt(e,t,r,n){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,n);if(t.lineWrapping){let c=n+(e0){let s=r[r.length-1];s instanceof i?r[r.length-1]=new i(s.length+n):r.push(null,new i(n-1))}if(e>0){let s=r[0];s instanceof i?r[0]=new i(e+s.length):r.unshift(new i(e-1),null)}return ii.of(r)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,r=!1,n){let s=t+this.length;if(n&&n.from<=t+this.length&&n.more){let o=[],a=Math.max(t,n.from),l=-1;for(n.from>t&&o.push(new i(n.from-t-1).updateHeight(e,t));a<=s&&n.more;){let h=e.doc.lineAt(a).length;o.length&&o.push(null);let O=n.heights[n.index++],f=0;O<0&&(f=-O,O=n.heights[n.index++]),l==-1?l=O:Math.abs(O-l)>=Gl&&(l=-2);let u=new gi(h,O,f);u.outdated=!1,o.push(u),a+=h+1}a<=s&&o.push(null,new i(s-a).updateHeight(e,a));let c=ii.of(o);return(l<0||Math.abs(c.height-this.height)>=Gl||Math.abs(l-this.heightMetrics(e,t).perLine)>=Gl)&&(ys=!0),lc(this,c)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},hu=class extends ii{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,n){let s=r+this.left.height;return ea))return c;let h=t==Fe.ByPosNoHeight?Fe.ByPosNoHeight:Fe.ByPos;return l?c.join(this.right.lineAt(a,h,r,o,a)):this.left.lineAt(a,h,r,n,s).join(c)}forEachLine(e,t,r,n,s,o){let a=n+this.left.height,l=s+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,Fe.ByPos,r,n,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&Z0(s,o-1),t=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,n=r+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?ii.of(this.break?[e,null,t]:[e,t]):(this.left=lc(this.left,e),this.right=lc(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,r=!1,n){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return n&&n.from<=t+s.length&&n.more?l=s=s.updateHeight(e,t,r,n):s.updateHeight(e,t,r),n&&n.from<=a+o.length&&n.more?l=o=o.updateHeight(e,a,r,n):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Z0(i,e){let t,r;i[e]==null&&(t=i[e-1])instanceof Ar&&(r=i[e+1])instanceof Ar&&i.splice(e-1,3,new Ar(t.length+1+r.length))}var B1=5,Ou=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let r=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof gi?n.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new gi(r-this.pos,-1,0)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e=B1)&&this.addLineDeco(n,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new gi(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new Ar(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof gi)return e;let t=new gi(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let n=this.ensureLine();n.length+=r,n.collapsed+=r,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof gi)&&!this.isCovered?this.nodes.push(new gi(0,-1,0)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&O.overflow!="visible"){let f=h.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==i.parentNode?n.innerHeight:l,f.bottom)}c=O.position=="absolute"||O.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function H1(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left0&&e.top0}function K1(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Mo=class{constructor(e,t,r,n){this.from=e,this.to=t,this.size=r,this.displaySize=n}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;rtypeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new lu(r),this.stateDeco=U0(t),this.heightMap=ii.empty().applyChanges(this.stateDeco,$e.empty,this.heightOracle.setDoc(t.doc),[new Ui(0,0,0,t.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=I.set(this.lineGaps.map(n=>n.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let n=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>n>=s&&n<=o)){let{from:s,to:o}=this.lineBlockAt(n);e.push(new ps(s,o))}}return this.viewports=e.sort((r,n)=>r.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?C0:new du(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ro(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=U0(this.state);let n=e.changedRanges,s=Ui.extendWithRanges(n,G1(r,this.stateDeco,e?e.changes:At.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);R0(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||ys)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(xb)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,r=window.getComputedStyle(t),n=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?Ye.RTL:Ye.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,h=0;if(a.width&&a.height){let{scaleX:k,scaleY:P}=J0(t,a);(k>.005&&Math.abs(this.scaleX-k)>.005||P>.005&&Math.abs(this.scaleY-P)>.005)&&(this.scaleX=k,this.scaleY=P,c|=16,o=l=!0)}let O=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=O||this.paddingBottom!=f)&&(this.paddingTop=O,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let u=eb(this.view.contentDOM,!1).y;u!=this.scrollParent&&(this.scrollParent=u,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=nb(this.scrollParent||e.win);let m=(this.printing?K1:N1)(t,this.paddingTop),S=m.top-this.pixelViewport.top,w=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let C=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(C!=this.inView&&(this.inView=C,C&&(l=!0)),!this.inView&&!this.scrollTarget&&!H1(e.dom))return 0;let R=a.width;if((this.contentDOMWidth!=R||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let k=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(k)&&(o=!0),o||n.lineWrapping&&Math.abs(R-this.contentDOMWidth)>n.charWidth){let{lineHeight:P,charWidth:Z,textHeight:z}=e.docView.measureTextSize();o=P>0&&n.refresh(s,P,Z,z,Math.max(5,R/Z),k),o&&(e.docView.minWidth=0,c|=16)}S>0&&w>0?h=Math.max(S,w):S<0&&w<0&&(h=Math.min(S,w)),R0();for(let P of this.viewports){let Z=P.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(P);this.heightMap=(o?ii.empty().applyChanges(this.stateDeco,$e.empty,this.heightOracle,[new Ui(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new cu(P.from,Z))}ys&&(c|=2)}let A=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return A&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||A)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new ps(n.lineAt(o-r*1e3,Fe.ByHeight,s,0,0).from,n.lineAt(a+(1-r)*1e3,Fe.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(cl.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),O=n.lineAt(c,Fe.ByPos,s,0,0),f;t.y=="center"?f=(O.top+O.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c=a+Math.max(10,Math.min(r,250)))&&n>o-2*1e3&&s>1,o=n<<1;if(this.defaultTextDirection!=Ye.LTR&&!r)return[];let a=[],l=(h,O,f,u)=>{if(O-hh&&ww.from>=f.from&&w.to<=f.to&&Math.abs(w.from-h)w.fromC));if(!S){if(OR.from<=O&&R.to>=O)){let R=t.moveToLineBoundary(U.cursor(O),!1,!0).head;R>h&&(O=R)}let w=this.gapSize(f,h,O,u),C=r||w<2e6?w:2e6;S=new Mo(h,O,w,C)}a.push(S)},c=h=>{if(h.length2e6)for(let P of e)P.from>=h.from&&P.fromh.from&&l(h.from,u,h,O),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];pe.spans(t,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let n=0;if(r.length!=this.visibleRanges.length)n=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ro(this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ro(this.heightMap.lineAt(this.scaler.fromDOM(e),Fe.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ro(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},ps=class{constructor(e,t){this.from=e,this.to=t}};function J1(i,e,t){let r=[],n=i,s=0;return pe.spans(t,i,e,{span(){},point(o,a){o>n&&(r.push({from:n,to:o}),s+=o-n),n=a}},20),n=1)return e[e.length-1].to;let r=Math.floor(i*t);for(let n=0;;n++){let{from:s,to:o}=e[n],a=o-s;if(r<=a)return s+r;r-=a}}function jl(i,e){let t=0;for(let{from:r,to:n}of i.ranges){if(e<=n){t+=e-r;break}t+=n-r}return t/i.total}function ek(i,e){for(let t of i)if(e(t))return t}var C0={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function U0(i){let e=i.facet(bc).filter(r=>typeof r!="function"),t=i.facet(Eu).filter(r=>typeof r!="function");return t.length&&e.push(pe.join(t)),e}var du=class i{constructor(e,t,r){let n=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,Fe.ByPos,e,0,0).top,h=t.lineAt(l,Fe.ByPos,e,0,0).bottom;return n+=h-c,{from:a,to:l,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(t.height-n);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,n=0;;t++){let s=tt.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}};function Ro(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),r=e.toDOM(i.bottom);return new Ci(i.from,i.length,t,r-t,Array.isArray(i._content)?i._content.map(n=>Ro(n,e)):i._content)}var ql=K.define({combine:i=>i.join(" ")}),pu=K.define({combine:i=>i.indexOf(!0)>-1}),mu=mi.newName(),Lb=mi.newName(),Wb=mi.newName(),Vb={"&light":"."+Lb,"&dark":"."+Wb};function gu(i,e,t){return new mi(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,n=>{if(n=="&")return i;if(!t||!t[n])throw new RangeError(`Unsupported selector: ${n}`);return t[n]}):i+" "+r}})}var tk=gu("."+mu,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Vb),ik={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Rf=J.ie&&J.ie_version<=11,bu=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Wf,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(J.ie&&J.ie_version<=11||J.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&J.android&&e.constructor.EDIT_CONTEXT!==!1&&!(J.chrome&&J.chrome_version<126)&&(this.editContext=new xu(e),e.state.facet(ur)&&(e.contentDOM.editContext=this.editContext.editContext)),Rf&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,r)=>t!=e[r]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,n=this.selectionRange;if(r.state.facet(ur)?r.root.activeElement!=this.dom:!Co(this.dom,n))return;let s=n.anchorNode&&r.docView.tile.nearest(n.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(J.ie&&J.ie_version<=11||J.android&&J.chrome)&&!r.state.selection.main.empty&&n.focusNode&&Uo(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=qo(e.root);if(!t)return!1;let r=J.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&rk(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let n=Co(this.dom,r);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&xs(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,n=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(n=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:n}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),n=this.selectionChanged&&Co(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new nu(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,n=_b(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!ac(this.view.state.selection,t.newSel.main))&&this.view.update([]),n}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let r=A0(t,e.previousSibling||e.target.previousSibling,-1),n=A0(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:n?t.posBefore(n):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(ur)!=e.state.facet(ur)&&(e.view.contentDOM.editContext=e.state.facet(ur)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function A0(i,e,t){for(;e;){let r=Ke.get(e);if(r&&r.parent==i)return r;let n=e.parentNode;e=n!=i.dom?n:t>0?e.nextSibling:e.previousSibling}return null}function E0(i,e){let t=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor,1);return Uo(o.node,o.offset,n,s)&&([t,r,n,s]=[n,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}}function rk(i,e){if(e.getComposedRanges){let n=e.getComposedRanges(i.root)[0];if(n)return E0(i,n)}let t=null;function r(n){n.preventDefault(),n.stopImmediatePropagation(),t=n.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",r,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",r,!0),t?E0(i,t):null}var xu=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let n=e.state.selection.main,{anchor:s,head:o}=n,a=this.toEditorPos(r.updateRangeStart),l=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>r.text.length;a==this.from&&sthis.to&&(l=s);let h=Rb(e.state.sliceDoc(a,l),r.text,(c?n.from:n.to)-a,c?"end":null);if(!h){let f=U.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));ac(f,n)||e.dispatch({selection:f,userEvent:"select"});return}let O={from:h.from+a,to:h.toA+a,insert:$e.of(r.text.slice(h.from,h.toB).split(` -`))};if((J.mac||J.android)&&O.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(O={from:a,to:l,insert:$e.of([r.text.replace("."," ")])}),this.pendingContextChange=O,!e.state.readOnly){let f=this.to-this.from+(O.to-O.from+O.insert.length);Yu(e,O,U.single(this.toEditorPos(r.selectionStart,f),this.toEditorPos(r.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),O.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let n=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o{let n=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let n=qo(r.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let h=c.length-(o-s);if(n&&o>=n.to)if(n.from==s&&n.to==o&&n.insert.eq(c)){n=this.pendingContextChange=null,t+=h,this.to+=h;return}else n=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),n&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(r,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},W=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(n=>n.forEach(s=>r(s,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=e.root||NP(e.parent)||document,this.viewState=new hc(this,e.state||ve.create(e)),e.scrollTo&&e.scrollTo.is(Ml)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ds).map(n=>new Eo(n));for(let n of this.plugins)n.update(this);this.observer=new bu(this),this.inputState=new su(this),this.inputState.ensureHandlers(this.plugins),this.docView=new sc(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof Ne?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,r=!1,n,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(zb))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=Yb(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(ve.phrases)!=this.state.facet(ve.phrases))return this.setState(s);n=rc.create(this,s,e),n.flags|=a;let O=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(O&&(O=O.map(f.changes)),f.scrollIntoView){let{main:u}=f.state.selection,{x:p,y:m}=this.state.facet(i.cursorScrollMargin);O=new Ao(u.empty?u:U.cursor(u.head,u.head>u.anchor?-1:1),"nearest","nearest",m,p)}for(let u of f.effects)u.is(Ml)&&(O=u.value.clip(this.state))}this.viewState.update(n,O),this.bidiCache=Oc.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(_o)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(ql)!=n.state.facet(ql)&&(this.viewState.mustMeasureContent=!0),(t||r||O||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!n.empty)for(let f of this.state.facet(Df))try{f(n)}catch(u){ti(this.state,u,"update listener")}(l||h)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),h&&!_b(this,h)&&c.force&&xs(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new hc(this,e),this.plugins=e.facet(ds).map(r=>new Eo(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new sc(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(ds),r=e.state.facet(ds);if(t!=r){let n=[];for(let s of r){let o=t.indexOf(s);if(o<0)n.push(new Eo(s));else{let a=this.plugins[o];a.mustUpdate=e,n.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.viewState.scrollParent,n=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(nb(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(n);s=u.from,o=u.top}this.updateState=1;let l=this.viewState.measure();if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(u=>{try{return u.read(this)}catch(p){return ti(this.state,p),z0}}),O=rc.create(this,this.state,[]),f=!1;O.flags|=l,t?t.flags|=l:t=O,this.updateState=2,O.empty||(this.updatePlugins(O),this.inputState.update(O),this.updateAttrs(),f=this.docView.update(O),f&&this.docViewUpdate());for(let u=0;u1||p<-1)&&!(J.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){n=n+p,r?s<0?r.scrollTop=r.scrollHeight:r.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(Df))a(t)}get themeClasses(){return mu+" "+(this.state.facet(pu)?Wb:Lb)+" "+this.state.facet(ql)}updateAttrs(){let e=Y0(this,vb,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(ur)?"true":"false",class:"cm-content",style:`${J.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Y0(this,Au,t);let r=this.observer.ignore(()=>{let n=m0(this.contentDOM,this.contentAttrs,t),s=m0(this.dom,this.editorAttrs,e);return n||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let n of r.effects)if(n.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(_o);let e=this.state.facet(i.cspNonce);mi.mount(this.root,this.styleModules.concat(tk).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tr.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,r){return _f(this,e,v0(this,e,t,r))}moveByGroup(e,t){return _f(this,e,v0(this,e,t,r=>$1(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),n=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return U.cursor(s.side(t,n)+e.from,s.forward(!t,n)?1:-1)}moveToLineBoundary(e,t,r=!0){return y1(this,e,t,r)}moveVertically(e,t,r){return _f(this,e,P1(this,e,t,r))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let r=tu(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),tu(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[xi.find(n,e-r.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==Ye.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(bb)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>nk)return hb(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||cb(s.isolates,r=x0(this,e))))return s.order;r||(r=x0(this,e));let n=n1(e.text,t,r);return this.bidiCache.push(new Oc(e.from,e.to,t,r,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||J.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{rb(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var r,n,s,o;return Ml.of(new Ao(typeof e=="number"?U.cursor(e):e,(r=t.y)!==null&&r!==void 0?r:"nearest",(n=t.x)!==null&&n!==void 0?n:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return Ml.of(new Ao(U.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return je.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return je.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=mi.newName(),n=[ql.of(r),_o.of(gu(`.${r}`,e))];return t&&t.dark&&n.push(pu.of(!0)),n}static baseTheme(e){return pi.lowest(_o.of(gu("."+mu,e,Vb)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),n=r&&Ke.get(r)||Ke.get(e);return((t=n==null?void 0:n.root)===null||t===void 0?void 0:t.view)||null}};W.styleModule=_o;W.inputHandler=mb;W.clipboardInputFilter=Cu;W.clipboardOutputFilter=Uu;W.scrollHandler=Sb;W.focusChangeEffect=gb;W.perLineTextDirection=bb;W.exceptionSink=pb;W.updateListener=Df;W.editable=ur;W.mouseSelectionStyle=db;W.dragMovesSelection=ub;W.clickAddsSelectionRange=fb;W.decorations=bc;W.blockWrappers=wb;W.outerDecorations=Eu;W.atomicRanges=Bo;W.bidiIsolatedRanges=yb;W.cursorScrollMargin=K.define({combine:i=>{let e=5,t=5;for(let r of i)typeof r=="number"?e=t=r:{x:e,y:t}=r;return{x:e,y:t}}});W.scrollMargins=$b;W.darkTheme=pu;W.cspNonce=K.define({combine:i=>i.length?i[0]:""});W.contentAttributes=Au;W.editorAttributes=vb;W.lineWrapping=W.contentAttributes.of({class:"cm-lineWrapping"});W.announce=ae.define();var nk=4096,z0={},Oc=class i{constructor(e,t,r,n,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=n,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],n=e.length?e[e.length-1].dir:Ye.LTR;for(let s=Math.max(0,e.length-10);s=0;n--){let s=r[n],o=typeof s=="function"?s(i):s;o&&_u(o,t)}return t}var sk=J.mac?"mac":J.windows?"win":J.linux?"linux":"key";function ok(i,e){let t=i.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");let n,s,o,a;for(let l=0;lr.concat(n),[]))),t}function qb(i,e,t){return Db(jb(i.state),e,i,t)}var Ur=null,lk=4e3;function ck(i,e=sk){let t=Object.create(null),r=Object.create(null),n=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,h)=>{var O,f;let u=t[o]||(t[o]=Object.create(null)),p=a.split(/ (?!$)/).map(w=>ok(w,e));for(let w=1;w{let A=Ur={view:R,prefix:C,scope:o};return setTimeout(()=>{Ur==A&&(Ur=null)},lk),!0}]})}let m=p.join(" ");n(m,!1);let S=u[m]||(u[m]={preventDefault:!1,stopPropagation:!1,run:((f=(O=u._any)===null||O===void 0?void 0:O.run)===null||f===void 0?void 0:f.slice())||[]});l&&S.run.push(l),c&&(S.preventDefault=!0),h&&(S.stopPropagation=!0)};for(let o of i){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:O}=o;for(let f in h)h[f].run.push(u=>O(u,Su))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var Su=null;function Db(i,e,t,r){Su=e;let n=O0(e),s=Zi(n,0),o=Cr(s)==n.length&&n!=" ",a="",l=!1,c=!1,h=!1;Ur&&Ur.view==t&&Ur.scope==r&&(a=Ur.prefix+" ",Cb.indexOf(e.keyCode)<0&&(c=!0,Ur=null));let O=new Set,f=S=>{if(S){for(let w of S.run)if(!O.has(w)&&(O.add(w),w(t)))return S.stopPropagation&&(h=!0),!0;S.preventDefault&&(S.stopPropagation&&(h=!0),c=!0)}return!1},u=i[r],p,m;return u&&(f(u[a+Dl(n,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(J.windows&&e.ctrlKey&&e.altKey)&&!(J.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=fr[e.keyCode])&&p!=n?(f(u[a+Dl(p,e,!0)])||e.shiftKey&&(m=fs[e.keyCode])!=n&&m!=p&&f(u[a+Dl(m,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(u[a+Dl(n,e,!0)])&&(l=!0),!l&&f(u._any)&&(l=!0)),c&&(l=!0),l&&h&&e.stopPropagation(),Su=null,l}var Qn=class i{constructor(e,t,r,n,s){this.className=e,this.left=t,this.top=r,this.width=n,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,r){if(r.empty){let n=e.coordsAtPos(r.head,r.assoc||1);if(!n)return[];let s=Ib(e);return[new i(t,n.left-s.left,n.top-s.top,null,n.bottom-n.top)]}else return hk(e,t,r)}};function Ib(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==Ye.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function L0(i,e,t,r){let n=i.coordsAtPos(e,t*2);if(!n)return r;let s=i.dom.getBoundingClientRect(),o=(n.top+n.bottom)/2,a=i.posAtCoords({x:s.left+1,y:o}),l=i.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function hk(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let r=Math.max(t.from,i.viewport.from),n=Math.min(t.to,i.viewport.to),s=i.textDirection==Ye.LTR,o=i.contentDOM,a=o.getBoundingClientRect(),l=Ib(i),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),O=a.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=a.right-(h?parseInt(h.paddingRight):0),u=eu(i,r,1),p=eu(i,n,-1),m=u.type==xt.Text?u:null,S=p.type==xt.Text?p:null;if(m&&(i.lineWrapping||u.widgetLineBreaks)&&(m=L0(i,r,1,m)),S&&(i.lineWrapping||p.widgetLineBreaks)&&(S=L0(i,n,-1,S)),m&&S&&m.from==S.from&&m.to==S.to)return C(R(t.from,t.to,m));{let k=m?R(t.from,null,m):A(u,!1),P=S?R(null,t.to,S):A(p,!0),Z=[];return(m||u).to<(S||p).from-(m&&S?1:0)||u.widgetLineBreaks>1&&k.bottom+i.defaultLineHeight/2ee&&ge.from=Y)break;ye>we&&se(Math.max(be,we),k==null&&be<=ee,Math.min(ye,Y),P==null&&ye>=he,N.dir)}if(we=re.to+1,we>=Y)break}return Oe.length==0&&se(ee,k==null,he,P==null,i.textDirection),{top:z,bottom:D,horizontal:Oe}}function A(k,P){let Z=a.top+(P?k.top:k.bottom);return{top:Z,bottom:Z,horizontal:[]}}}function Ok(i,e){return i.constructor==e.constructor&&i.eq(e)}var Qu=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Nl)!=e.state.facet(Nl)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(Nl);for(;t!Ok(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let n of e)n.update&&t&&n.constructor&&this.drawn[r].constructor&&n.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(n.draw(),t);for(;t;){let n=t.nextSibling;t.remove(),t=n}this.drawn=e,J.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Nl=K.define();function Fb(i){return[je.define(e=>new Qu(e,i)),Nl.of(i)]}var $s=K.define({combine(i){return ei(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Sc(i={}){return[$s.of(i),fk,uk,pk,xb.of(!0)]}function Bb(i){return i.startState.facet($s)!=i.state.facet($s)}var fk=Fb({above:!0,markers(i){let{state:e}=i,t=e.facet($s),r=[];for(let n of e.selection.ranges){let s=n==e.selection.main;if(n.empty||t.drawRangeCursor&&!(s&&J.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=n.empty?n:U.cursor(n.head,n.assoc);for(let l of Qn.forRange(i,o,a))r.push(l)}}return r},update(i,e){i.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Bb(i);return t&&W0(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){W0(e.state,i)},class:"cm-cursorLayer"});function W0(i,e){e.style.animationDuration=i.facet($s).cursorBlinkRate+"ms"}var uk=Fb({above:!1,markers(i){let e=[],{main:t,ranges:r}=i.state.selection;for(let n of r)if(!n.empty)for(let s of Qn.forRange(i,"cm-selectionBackground",n))e.push(s);if(J.ios&&!t.empty&&i.state.facet($s).iosSelectionHandles){for(let n of Qn.forRange(i,"cm-selectionHandle cm-selectionHandle-start",U.cursor(t.from,1)))e.push(n);for(let n of Qn.forRange(i,"cm-selectionHandle cm-selectionHandle-end",U.cursor(t.to,1)))e.push(n)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||Bb(i)},class:"cm-selectionLayer"}),dk=J.gecko&&J.gecko_version==153?"#ffffff01":"transparent",pk=pi.highest(W.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${dk} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Gb=ae.define({map(i,e){return i==null?null:e.mapPos(i)}}),Zo=ke.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,r)=>r.is(Gb)?r.value:t,i)}}),mk=je.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Zo);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Zo)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Zo),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let r=i.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-r.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Zo)!=i&&this.view.dispatch({effects:Gb.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Nb(){return[Zo,mk]}function V0(i,e,t,r,n){e.lastIndex=0;for(let s=i.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)n(o+a.index,a)}function gk(i,e){let t=i.visibleRanges;if(t.length==1&&t[0].from==i.viewport.from&&t[0].to==i.viewport.to)return t;let r=[];for(let{from:n,to:s}of t)n=Math.max(i.state.doc.lineAt(n).from,n-e),s=Math.min(i.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=n?r[r.length-1].to=s:r.push({from:n,to:s});return r}var Io=class{constructor(e){let{regexp:t,decoration:r,decorate:n,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,n)this.addMatch=(a,l,c,h)=>n(h,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,h)=>{let O=r(a,l,c);O&&h(c,c+a[0].length,O)};else if(r)this.addMatch=(a,l,c,h)=>h(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new Ri,r=t.add.bind(t);for(let{from:n,to:s}of gk(e,this.maxLength))V0(e.state.doc,this.regexp,n,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(r=Math.min(a,r),n=Math.max(l,n))}),e.viewportMoved||n-r>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,t.map(e.changes),r,n):t}updateRange(e,t,r,n){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,n);if(a>=o){let l=e.state.doc.lineAt(o),c=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){h=o;break}for(;af.push(w.range(m,S));if(l==c)for(this.regexp.lastIndex=h-l.from;(u=this.regexp.exec(l.text))&&u.indexthis.addMatch(S,e,m,p));t=t.update({filterFrom:h,filterTo:O,filter:(m,S)=>mO,add:f})}}return t}},vu=/x/.unicode!=null?"gu":"g",bk=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,vu),xk={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Zf=null;function Sk(){var i;if(Zf==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Zf=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return Zf||!1}var Hl=K.define({combine(i){let e=ei(i,{render:null,specialChars:bk,addSpecialChars:null});return(e.replaceTabs=!Sk())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,vu)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,vu)),e}});function Hb(i={}){return[Hl.of(i),Qk()]}var j0=null;function Qk(){return j0||(j0=je.fromClass(class{constructor(i){this.view=i,this.decorations=I.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Hl)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new Io({regexp:i.specialChars,decoration:(e,t,r)=>{let{doc:n}=t.state,s=Zi(e[0],0);if(s==9){let o=n.lineAt(r),a=t.state.tabSize,l=Et(o.text,a,r-o.from);return I.replace({widget:new yu((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=I.replace({widget:new wu(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Hl);i.startState.facet(Hl)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var vk="\u2022";function wk(i){return i>=32?vk:i==10?"\u2424":String.fromCharCode(9216+i)}var wu=class extends at{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=wk(this.code),r=e.state.phrase("Control character")+" "+(xk[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,r,t);if(n)return n;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},yu=class extends at{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Qc(){return $k}var yk=I.line({class:"cm-activeLine"}),$k=je.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let r of i.state.selection.ranges){let n=i.lineBlockAt(r.head);n.from>e&&(t.push(yk.range(n.from)),e=n.from)}return I.set(t)}},{decorations:i=>i.decorations});var $u=2e3;function Pk(i,e,t){let r=Math.min(e.line,t.line),n=Math.max(e.line,t.line),s=[];if(e.off>$u||t.off>$u||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=n;l++){let c=i.doc.line(l);c.length<=a&&s.push(U.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=n;l++){let c=i.doc.line(l),h=zl(c.text,o,i.tabSize,!0);if(h<0)s.push(U.cursor(c.to));else{let O=zl(c.text,a,i.tabSize);s.push(U.range(c.from+h,c.from+O))}}}return s}function kk(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function q0(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),r=i.state.doc.lineAt(t),n=t-r.from,s=n>$u?-1:n==r.length?kk(i,e.clientX):Et(r.text,i.state.tabSize,t-r.from);return{line:r.number,col:s,off:n}}function Xk(i,e){let t=q0(i,e),r=i.state.selection;return t?{update(n){if(n.docChanged){let s=n.changes.mapPos(n.startState.doc.line(t.line).from),o=n.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(n.changes)}},get(n,s,o){let a=q0(i,n);if(!a)return r;let l=Pk(i.state,t,a);return l.length?o?U.create(l.concat(r.ranges)):U.create(l):r}}:null}function vc(i){let e=(i==null?void 0:i.eventFilter)||(t=>t.altKey&&t.button==0);return W.mouseSelectionStyle.of((t,r)=>e(r)?Xk(t,r):null)}var Tk={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},_k={style:"cursor: crosshair"};function wc(i={}){let[e,t]=Tk[i.key||"Alt"],r=je.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||t(n))},keyup(n){(n.keyCode==e||!t(n))&&this.set(!1)},mousemove(n){this.set(t(n))}}});return[r,W.contentAttributes.of(n=>{var s;return!((s=n.plugin(r))===null||s===void 0)&&s.isDown?_k:null})]}var Il="-10000px",fc=class{constructor(e,t,r,n){this.facet=t,this.createTooltipView=r,this.removeTooltipView=n,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let n=e.state.facet(this.facet),s=n.filter(l=>l);if(n===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;lt[c]=l),t.length=a.length),this.input=n,this.tooltips=s,this.tooltipViews=o,!0}};function Rk(i){let e=i.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var Cf=K.define({combine:i=>{var e,t,r;return{position:J.ios?"absolute":((e=i.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(n=>n.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=i.find(n=>n.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||Rk}}}),D0=new WeakMap,Kb=je.fromClass(class{constructor(i){this.view=i,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(Cf);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new fc(i,Mu,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),i.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i,this.above);e&&this.observeIntersection();let t=e||i.geometryChanged,r=i.state.facet(Cf);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i,e){let t=i.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),i.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",t.dom.appendChild(n)}return t.dom.style.position=this.position,t.dom.style.top=Il,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var i,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(i=r.destroy)===null||i===void 0||i.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(J.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(i=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),n=zu(this.view);return{visible:{left:r.left+n.left,top:r.top+n.top,right:r.right-n.right,bottom:r.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(Cf).tooltipSpace(this.view),scaleX:i,scaleY:e,makeAbsolute:t}}writeMeasure(i){var e;if(i.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:r,scaleX:n,scaleY:s}=i,o=[];for(let a=0;a=Math.min(t.bottom,r.bottom)||O.rightMath.min(t.right,r.right)+.1)){h.style.top=Il;continue}let u=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,p=u?7:0,m=f.right-f.left,S=(e=D0.get(c))!==null&&e!==void 0?e:f.bottom-f.top,w=c.offset||Ck,C=this.view.textDirection==Ye.LTR,R=f.width>r.right-r.left?C?r.left:r.right-f.width:C?Math.max(r.left,Math.min(O.left-(u?14:0)+w.x,r.right-m)):Math.min(Math.max(r.left,O.left-m+(u?14:0)-w.x),r.right-m),A=this.above[a];!l.strictSide&&(A?O.top-S-p-w.yr.bottom)&&A==r.bottom-O.bottom>O.top-r.top&&(A=this.above[a]=!A);let k=(A?O.top-r.top:r.bottom-O.bottom)-p;if(kR&&z.topP&&(P=A?z.top-S-2-p:z.bottom+p+2);if(this.position=="absolute"?(h.style.top=(P-i.parent.top)/s+"px",I0(h,(R-i.parent.left)/n)):(h.style.top=P/s+"px",I0(h,R/n)),u){let z=O.left+(C?w.x:-w.x)-(R+14-7);u.style.left=z/n+"px"}c.overlap!==!0&&o.push({left:R,top:P,right:Z,bottom:P+S}),h.classList.toggle("cm-tooltip-above",A),h.classList.toggle("cm-tooltip-below",!A),c.positioned&&c.positioned(i.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let i of this.manager.tooltipViews)i.dom.style.top=Il}},{eventObservers:{scroll(){this.maybeMeasure()}}});function I0(i,e){let t=parseInt(i.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(i.style.left=e+"px")}var Zk=W.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Ck={x:0,y:0},Mu=K.define({enables:[Kb,Zk]}),uc=K.define({combine:i=>i.reduce((e,t)=>e.concat(t),[])}),dc=class i{static create(e){return new i(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new fc(e,uc,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let n=r[e];if(n!==void 0){if(t===void 0)t=n;else if(t!==n)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},Uk=Mu.compute([uc],i=>{let e=i.facet(uc);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:dc.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),Ak=K.define(),Pu=class{constructor(e,t,r,n,s,o){this.view=e,this.source=t,this.field=r,this.locked=n,this.setHover=s,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(e){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(c=>c.from<=n&&c.to>=n),l=a&&a.dir==Ye.RTL?-1:1;s=t.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];n&&this.locked.set(l,n),e.dispatch({effects:this.setHover.of(l)})}};if(s&&"then"in s){let a=this.pending={pos:t};s.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>ti(e.state,l,"hover tooltip"))}else o(s)}get tooltip(){let e=this.view.plugin(Kb),t=e?e.manager.tooltips.findIndex(r=>r.create==dc.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:s}=this;if(n.length&&!this.locked.has(n)&&s&&!Ek(s.dom,e)||this.pending){let{pos:o}=n[0]||this.pending,a=(r=(t=n[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!zk(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length&&!this.locked.has(t)){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t);let{active:n}=this;n.length&&!this.locked.has(n)&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},Fl=4;function Ek(i,e){let{left:t,right:r,top:n,bottom:s}=i.getBoundingClientRect(),o;if(o=i.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();n=Math.min(a.top,n),s=Math.max(a.bottom,s)}return e.clientX>=t-Fl&&e.clientX<=r+Fl&&e.clientY>=n-Fl&&e.clientY<=s+Fl}function zk(i,e,t,r,n,s){let o=i.scrollDOM.getBoundingClientRect(),a=i.documentTop+i.documentPadding.top+i.contentHeight;if(o.left>r||o.rightn||Math.min(o.bottom,a)=e&&l<=t}function Jb(i,e={}){let t=ae.define(),r=new WeakMap,n=ke.define({create(){return[]},update(o,a){let l=r.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(c=>!e.hideOn(a,c)))),a.docChanged&&o.length){let c=[];for(let h of o){let O=a.changes.mapPos(h.pos,-1,Ot.TrackDel);if(O!=null){let f=Object.assign(Object.create(null),h);f.pos=O,f.end!=null&&(f.end=a.changes.mapPos(f.end)),c.push(f)}}o=c}for(let c of a.effects)c.is(t)&&(o=c.value,l=void 0),(c.is(Yk)&&!c.value||c.value==n)&&(o=[]);return o.length&&l&&r.set(o,l),o},provide:o=>uc.from(o)}),s=je.define(o=>new Pu(o,i,n,r,t,e.hoverTime||300));return{active:n,extension:[n,s,Ak.of(s),Uk]}}var Yk=ae.define();var F0=K.define({combine(i){let e,t;for(let r of i)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Lu(i,e){let t=i.plugin(ex),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}var ex=je.fromClass(class{constructor(i){this.input=i.state.facet(Fo),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(i));let e=i.state.facet(F0);this.top=new ms(i,!0,e.topContainer),this.bottom=new ms(i,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(i){let e=i.state.facet(F0);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new ms(i.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new ms(i.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=i.state.facet(Fo);if(t!=this.input){let r=t.filter(l=>l),n=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),h;c<0?(h=l(i.view),a.push(h)):(h=this.panels[c],h.update&&h.update(i)),n.push(h),(h.top?s:o).push(h)}this.specs=r,this.panels=n,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(i)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:i=>W.scrollMargins.of(e=>{let t=e.plugin(i);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),ms=class{constructor(e,t,r){this.view=e,this.top=t,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=B0(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=B0(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function B0(i){let e=i.nextSibling;return i.remove(),e}var Fo=K.define({enables:ex});function tx(i,e){let t,r=new Promise(o=>t=o),n=o=>Mk(o,e,t);i.state.field(Uf,!1)?i.dispatch({effects:ix.of(n)}):i.dispatch({effects:ae.appendConfig.of(Uf.init(()=>[n]))});let s=rx.of(n);return{close:s,result:r.then(o=>((i.win.queueMicrotask||(l=>i.win.setTimeout(l,10)))(()=>{i.state.field(Uf).indexOf(n)>-1&&i.dispatch({effects:s})}),o))}}var Uf=ke.define({create(){return[]},update(i,e){for(let t of e.effects)t.is(ix)?i=[t.value].concat(i):t.is(rx)&&(i=i.filter(r=>r!=t.value));return i},provide:i=>Fo.computeN([i],e=>e.field(i))}),ix=ae.define(),rx=ae.define();function Mk(i,e,t){let r=e.content?e.content(i,()=>o(null)):null;if(!r){if(r=rt("form"),e.input){let a=rt("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),r.appendChild(rt("label",(e.label||"")+": ",a))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(rt("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let n=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let a=0;a{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let s=rt("div",r,rt("button",{onclick:()=>o(null),"aria-label":i.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(a){s.contains(s.ownerDocument.activeElement)&&i.focus(),t(a)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=r.querySelector(e.focus):a=r.querySelector("input")||r.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}var nt=class extends di{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};nt.prototype.elementClass="";nt.prototype.toDOM=void 0;nt.prototype.mapMode=Ot.TrackBefore;nt.prototype.startSide=nt.prototype.endSide=-1;nt.prototype.point=!0;var Kl=K.define(),Lk=K.define(),Wk={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>pe.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Lo=K.define();function Yr(i){return[nx(),Lo.of(st(st({},Wk),i))]}var ku=K.define({combine:i=>i.some(e=>e)});function nx(i){let e=[Vk];return i&&i.fixed===!1&&e.push(ku.of(!0)),e}var Vk=je.fromClass(class{constructor(i){this.view=i,this.domAfter=null,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(Lo).map(e=>new pc(i,e)),this.fixed=!i.state.facet(ku);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}if(i.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(ku)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=pe.iter(this.view.state.facet(Kl),this.view.viewport.from),r=[],n=this.gutters.map(s=>new Tu(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==xt.Text&&o){Xu(t,r,a.from);for(let l of n)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of n)l.widget(this.view,a)}else if(s.type==xt.Text){Xu(t,r,s.from);for(let o of n)o.line(this.view,s,r)}else if(s.widget)for(let o of n)o.widget(this.view,s);for(let s of n)s.finish();i&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(i){let e=i.startState.facet(Lo),t=i.state.facet(Lo),r=i.docChanged||i.heightChanged||i.viewportChanged||!pe.eq(i.startState.facet(Kl),i.state.facet(Kl),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let n of this.gutters)n.update(i)&&(r=!0);else{r=!0;let n=[];for(let s of t){let o=e.indexOf(s);o<0?n.push(new pc(this.view,s)):(this.gutters[o].update(i),n.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),n.indexOf(s)<0&&s.destroy();for(let s of n)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=n}return r}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:i=>W.scrollMargins.of(e=>{let t=e.plugin(i);if(!t||t.gutters.length==0||!t.fixed)return null;let r=t.dom.offsetWidth*e.scaleX,n=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Ye.LTR?{left:r,right:n}:{right:r,left:n}})});function G0(i){return Array.isArray(i)?i:[i]}function Xu(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var Tu=class{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=pe.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:n}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==n.elements.length){let a=new mc(e,o,s,r);n.elements.push(a),n.dom.appendChild(a.dom)}else n.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let n=[];Xu(this.cursor,n,t.from),r.length&&(n=n.concat(r));let s=this.gutter.config.lineMarker(e,t,n);s&&n.unshift(s);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,n)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t),n=r?[r]:null;for(let s of e.state.facet(Lk)){let o=s(e,t.widget,t);o&&(n||(n=[])).push(o)}n&&this.addElement(e,t,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},pc=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in t.domEventHandlers)this.dom.addEventListener(r,n=>{let s=n.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=n.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,n)&&n.preventDefault()});this.markers=G0(t.markers(e)),t.initialSpacer&&(this.spacer=new mc(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=G0(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let r=e.view.viewport;return!pe.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},mc=class{constructor(e,t,r,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,n)}update(e,t,r,n){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),jk(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,t){let r="cm-gutterElement",n=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=ss(a,l,c)||o(a,l,c):o}return r}})}}),Wo=class extends nt{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Af(i,e){return i.state.facet(gs).formatNumber(e,i.state)}var Ik=Lo.compute([gs],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(qk)},lineMarker(e,t,r){return r.some(n=>n.toDOM)?null:new Wo(Af(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let n of e.state.facet(Dk)){let s=n(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(gs)!=e.state.facet(gs),initialSpacer(e){return new Wo(Af(e,N0(e.state.doc.lines)))},updateSpacer(e,t){let r=Af(t.view,N0(t.view.state.doc.lines));return r==e.number?e:new Wo(r)},domEventHandlers:i.facet(gs).domEventHandlers,side:"before"}));function yc(i={}){return[gs.of(i),nx(),Ik]}function N0(i){let e=9;for(;e{let e=[],t=-1;for(let r of i.selection.ranges){let n=i.doc.lineAt(r.head).from;n>t&&(t=n,e.push(Fk.range(n)))}return pe.of(e)});function sx(){return Bk}function ox(i){return je.define(e=>({decorations:i.createDeco(e),update(t){this.decorations=i.updateDeco(t,this.decorations)}}),{decorations:e=>e.decorations})}var Gk=I.mark({class:"cm-highlightTab"}),Nk=I.mark({class:"cm-highlightSpace"}),Hk=ox(new Io({regexp:/\t| /g,decoration:i=>i[0]==" "?Gk:Nk,boundary:/\S/}));function ax(){return Hk}var Kk=ox(new Io({regexp:/\s+$/g,decoration:I.mark({class:"cm-trailingSpace"})}));function lx(){return Kk}var Jk=0,Gt=class{constructor(e,t){this.from=e,this.to=t}},ue=class{constructor(e={}){this.id=Jk++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Je.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};ue.closedBy=new ue({deserialize:i=>i.split(" ")});ue.openedBy=new ue({deserialize:i=>i.split(" ")});ue.group=new ue({deserialize:i=>i.split(" ")});ue.isolate=new ue({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});ue.contextHash=new ue({perNode:!0});ue.lookAhead=new ue({perNode:!0});ue.mounted=new ue({perNode:!0});var Mr=class{constructor(e,t,r,n=!1){this.tree=e,this.overlay=t,this.parser=r,this.bracketed=n}static get(e){return e&&e.props&&e.props[ue.mounted.id]}},eX=Object.create(null),Je=class i{constructor(e,t,r,n=0){this.name=e,this.props=t,this.id=r,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):eX,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new i(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(n)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(ue.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let n of r.split(" "))t[n]=e[r];return r=>{for(let n=r.prop(ue.group),s=-1;s<(n?n.length:0);s++){let o=t[s<0?r.name:n[s]];if(o)return o}}}};Je.none=new Je("",Object.create(null),0,8);var mr=class i{constructor(e){this.types=e;for(let t=0;t0;for(let l=this.cursor(o|Re.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=n&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Hu(Je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,n)=>new i(this.type,t,r,n,this.propValues),e.makeTree||((t,r,n)=>new i(Je.none,t,r,n)))}static build(e){return iX(e)}};Se.empty=new Se(Je.none,[],[],0);var Wu=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},Lr=class i{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Je.none}toString(){let e=[];for(let t=0;t0));l=o[l+3]);return a}slice(e,t,r){let n=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a=e&&te;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function Go(i,e,t,r){for(var n;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?a.length:-1;e!=c;e+=t){let h=a[e],O=l[e]+o.from,f;if(!(!(s&Re.EnterBracketed&&h instanceof Se&&(f=Mr.get(h))&&!f.overlay&&f.bracketed&&r>=O&&r<=O+h.length)&&!mx(n,r,O,O+h.length))){if(h instanceof Lr){if(s&Re.ExcludeBuffers)continue;let u=h.findChild(0,h.buffer.length,t,r-O,n);if(u>-1)return new $n(new ju(o,h,e,O),null,u)}else if(s&Re.IncludeAnonymous||!h.type.isAnonymous||Nu(h)){let u;if(!(s&Re.IgnoreMounts)&&(u=Mr.get(h))&&!u.overlay)return new i(u.tree,O,e,o);let p=new i(h,O,e,o);return s&Re.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?h.children.length-1:0,t,r,n,s)}}}if(s&Re.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,r=0){let n;if(!(r&Re.IgnoreOverlays)&&(n=Mr.get(this._tree))&&n.overlay){let s=e-this.from,o=r&Re.EnterBracketed&&n.bracketed;for(let{from:a,to:l}of n.overlay)if((t>0||o?a<=s:a=s:l>s))return new i(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function hx(i,e,t,r){let n=i.cursor(),s=[];if(!n.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=n.type.is(t),!n.nextSibling())return s}for(;;){if(r!=null&&n.type.is(r))return s;if(n.type.is(e)&&s.push(n.node),!n.nextSibling())return r==null?s:[]}}function Vu(i,e,t=e.length-1){for(let r=i;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var ju=class{constructor(e,t,r,n){this.parent=e,this.buffer=t,this.index=r,this.start=n}},$n=class i extends kc{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,r=0){if(r&Re.ExcludeBuffers)return null;let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,n=this.index+4,s=r.buffer[this.index+3];if(s>n){let o=r.buffer[this.index+1];e.push(r.slice(n,s,o)),t.push(0)}return new Se(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function gx(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let a=new Nt(o.tree,o.overlay[0].from+s.from,-1,s);(n||(n=[r])).push(Go(a,e,t,!1))}}return n?gx(n):r}var Ps=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~Re.EnterBracketed,e instanceof Nt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=r+n.buffer[e+1],this.to=r+n.buffer[e+2],!0}yield(e){return e?e instanceof Nt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:n}=this.buffer,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&Re.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Re.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Re.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let n=r<0?0:this.stack[r]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(n)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&Re.IncludeAnonymous||a instanceof Lr||!a.type.isAnonymous||Nu(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;t=o,r=s+1;break e}n=this.stack[--s]}for(let n=r;n=0;s--){if(s<0)return Vu(this._tree,e,n);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}};function Nu(i){return i.children.some(e=>e instanceof Lr||!e.type.isAnonymous||Nu(e))}function iX(i){var e;let{buffer:t,nodeSet:r,maxBufferLength:n=1024,reused:s=[],minRepeatType:o=r.types.length}=i,a=Array.isArray(t)?new Wu(t,t.length):t,l=r.types,c=0,h=0;function O(k,P,Z,z,D,Oe){let{id:se,start:ee,end:he,size:ge}=a,we=h,Y=c;if(ge<0)if(a.next(),ge==-1){let He=s[se];Z.push(He),z.push(ee-k);return}else if(ge==-3){c=se;return}else if(ge==-4){h=se;return}else throw new RangeError(`Unrecognized record size: ${ge}`);let re=l[se],N,be,ye=ee-k;if(he-ee<=n&&(be=S(a.pos-P,D))){let He=new Uint16Array(be.size-be.skip),de=a.pos-be.size,Zt=He.length;for(;a.pos>de;)Zt=w(be.start,He,Zt);N=new Lr(He,he-be.start,r),ye=be.start-k}else{let He=a.pos-ge;a.next();let de=[],Zt=[],ki=se>=o?se:-1,Ii=0,kr=he;for(;a.pos>He;)ki>=0&&a.id==ki&&a.size>=0?(a.end<=kr-n&&(p(de,Zt,ee,Ii,a.end,kr,ki,we,Y),Ii=de.length,kr=a.end),a.next()):Oe>2500?f(ee,He,de,Zt):O(ee,He,de,Zt,ki,Oe+1);if(ki>=0&&Ii>0&&Ii-1&&Ii>0){let Nn=u(re,Y);N=Hu(re,de,Zt,0,de.length,0,he-ee,Nn,Nn)}else N=m(re,de,Zt,he-ee,we-he,Y)}Z.push(N),z.push(ye)}function f(k,P,Z,z){let D=[],Oe=0,se=-1;for(;a.pos>P;){let{id:ee,start:he,end:ge,size:we}=a;if(we>4)a.next();else{if(se>-1&&he=0;ge-=3)ee[we++]=D[ge],ee[we++]=D[ge+1]-he,ee[we++]=D[ge+2]-he,ee[we++]=we;Z.push(new Lr(ee,D[2]-he,r)),z.push(he-k)}}function u(k,P){return(Z,z,D)=>{let Oe=0,se=Z.length-1,ee,he;if(se>=0&&(ee=Z[se])instanceof Se){if(!se&&ee.type==k&&ee.length==D)return ee;(he=ee.prop(ue.lookAhead))&&(Oe=z[se]+ee.length+he)}return m(k,Z,z,D,Oe,P)}}function p(k,P,Z,z,D,Oe,se,ee,he){let ge=[],we=[];for(;k.length>z;)ge.push(k.pop()),we.push(P.pop()+Z-D);k.push(m(r.types[se],ge,we,Oe-D,ee-Oe,he)),P.push(D-Z)}function m(k,P,Z,z,D,Oe,se){if(Oe){let ee=[ue.contextHash,Oe];se=se?[ee].concat(se):[ee]}if(D>25){let ee=[ue.lookAhead,D];se=se?[ee].concat(se):[ee]}return new Se(k,P,Z,z,se)}function S(k,P){let Z=a.fork(),z=0,D=0,Oe=0,se=Z.end-n,ee={size:0,start:0,skip:0};e:for(let he=Z.pos-k;Z.pos>he;){let ge=Z.size;if(Z.id==P&&ge>=0){ee.size=z,ee.start=D,ee.skip=Oe,Oe+=4,z+=4,Z.next();continue}let we=Z.pos-ge;if(ge<0||we=o?4:0,re=Z.start;for(Z.next();Z.pos>we;){if(Z.size<0)if(Z.size==-3||Z.size==-4)Y+=4;else break e;else Z.id>=o&&(Y+=4);Z.next()}D=re,z+=ge,Oe+=Y}return(P<0||z==k)&&(ee.size=z,ee.start=D,ee.skip=Oe),ee.size>4?ee:void 0}function w(k,P,Z){let{id:z,start:D,end:Oe,size:se}=a;if(a.next(),se>=0&&z4){let he=a.pos-(se-4);for(;a.pos>he;)Z=w(k,P,Z)}P[--Z]=ee,P[--Z]=Oe-k,P[--Z]=D-k,P[--Z]=z}else se==-3?c=z:se==-4&&(h=z);return Z}let C=[],R=[];for(;a.pos>0;)O(i.start||0,i.bufferStart||0,C,R,-1,0);let A=(e=i.length)!==null&&e!==void 0?e:C.length?R[0]+C[0].length:0;return new Se(l[i.topID],C.reverse(),R.reverse(),A)}var Ox=new WeakMap;function Pc(i,e){if(!i.isAnonymous||e instanceof Lr||e.type!=i)return 1;let t=Ox.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=i||!(r instanceof Se)){t=1;break}t+=Pc(i,r)}Ox.set(e,t)}return t}function Hu(i,e,t,r,n,s,o,a,l){let c=0;for(let p=r;p=h)break;P+=Z}if(R==A+1){if(P>h){let Z=p[A];u(Z.children,Z.positions,0,Z.children.length,m[A]+C);continue}O.push(p[A])}else{let Z=m[R-1]+p[R-1].length-k;O.push(Hu(i,p,m,A,R,k,Z,null,l))}f.push(k+C-s)}}return u(e,t,r,n,0),(a||l)(O,f,o)}var ks=class{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){e instanceof $n?this.setBuffer(e.context.buffer,e.index,t):e instanceof Nt&&this.map.set(e.tree,t)}get(e){return e instanceof $n?this.getBuffer(e.context.buffer,e.index):e instanceof Nt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},gr=class i{constructor(e,t,r,n,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=n,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let n=[new i(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&n.push(s);return n}static applyChanges(e,t,r=128){if(!t.length)return e;let n=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let h=a=r)for(;o&&o.from=f.from||O<=f.to||c){let u=Math.max(f.from,l)-c,p=Math.min(f.to,O)-c;f=u>=p?null:new i(u,p,f.tree,f.offset+c,a>0,!!h)}if(f&&n.push(f),o.to>O)break;o=snew Gt(n.from,n.to)):[new Gt(0,0)]:[new Gt(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let n=this.startParse(e,t,r);for(;;){let s=n.advance();if(s)return s}}},Du=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function _c(i){return(e,t,r,n)=>new Bu(e,i,t,r,n)}var Xc=class{constructor(e,t,r,n,s,o){this.parser=e,this.parse=t,this.overlay=r,this.bracketed=n,this.target=s,this.from=o}};function fx(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Iu=class{constructor(e,t,r,n,s,o,a,l){this.parser=e,this.predicate=t,this.mounts=r,this.index=n,this.start=s,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}},Fu=new ue({perNode:!0}),Bu=class{constructor(e,t,r,n,s){this.nest=t,this.input=r,this.fragments=n,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let r=this.baseParse.advance();if(!r)return null;if(this.baseParse=null,this.baseTree=r,this.startInner(),this.stoppedAt!=null)for(let n of this.inner)n.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let r=this.baseTree;return this.stoppedAt!=null&&(r=new Se(r.type,r.children,r.positions,r.length,r.propValues.concat([[Fu,this.stoppedAt]]))),r}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[ue.mounted.id]=new Mr(t,e.overlay,e.parser,e.bracketed),e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)a=!1;else if(e.hasNode(n)){if(t){let c=t.mounts.find(h=>h.frag.from<=n.from&&h.frag.to>=n.to&&h.mount.overlay);if(c)for(let h of c.mount.overlay){let O=h.from+c.pos,f=h.to+c.pos;O>=n.from&&f<=n.to&&!t.ranges.some(u=>u.fromO)&&t.ranges.push({from:O,to:f})}}a=!1}else if(r&&(o=rX(r.ranges,n.from,n.to)))a=o!=2;else if(!n.type.isAnonymous&&(s=this.nest(n,this.input))&&(n.fromnew Gt(O.from-n.from,O.to-n.from)):null,!!s.bracketed,n.tree,h.length?h[0].from:n.from)),s.overlay?h.length&&(r={ranges:h,depth:0,prev:r}):a=!1}}else if(t&&(l=t.predicate(n))&&(l===!0&&(l=new Gt(n.from,n.to)),l.from=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&n.firstChild())t&&t.depth++,r&&r.depth++;else for(;!n.nextSibling();){if(!n.parent())break e;if(t&&!--t.depth){let c=dx(this.ranges,t.ranges);c.length&&(fx(c),this.inner.splice(t.index,0,new Xc(t.parser,t.parser.startParse(this.input,px(t.mounts,c),c),t.ranges.map(h=>new Gt(h.from-t.start,h.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}r&&!--r.depth&&(r=r.prev)}}}};function rX(i,e,t){for(let r of i){if(r.from>=t)break;if(r.to>e)return r.from<=e&&r.to>=t?2:1}return 0}function ux(i,e,t,r,n,s){if(e=e&&t.enter(r,1,Re.IgnoreOverlays|Re.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof Se)t=t.children[0];else break}return!1}},Gu=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let r=this.curFrag=e[0];this.curTo=(t=r.tree.prop(Fu))!==null&&t!==void 0?t:r.to,this.inner=new Tc(r.tree,-r.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Fu))!==null&&e!==void 0?e:t.to,this.inner=new Tc(t.tree,-t.offset)}}findMounts(e,t){var r;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(r=s.tree)===null||r===void 0?void 0:r.prop(ue.mounted);if(o&&o.parser==t)for(let a=this.fragI;a=s.to)break;l.tree==this.curFrag.tree&&n.push({frag:l,pos:s.from-l.offset,mount:o})}}}return n}};function dx(i,e){let t=null,r=e;for(let n=1,s=0;n=a)break;l.to<=o||(t||(r=t=e.slice()),l.froma&&t.splice(s+1,0,new Gt(a,l.to))):l.to>a?t[s--]=new Gt(a,l.to):t.splice(s--,1))}}return r}function sX(i,e,t,r){let n=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let h=n==i.length?1e9:o?i[n].to:i[n].from,O=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let f=Math.max(l,t),u=Math.min(h,O,r);fnew Gt(f.from+r,f.to+r)),O=sX(e,h,l,c);for(let f=0,u=l;;f++){let p=f==O.length,m=p?c:O[f].from;if(m>u&&t.push(new gr(u,m,n.tree,-o,s.from>=u||s.openStart,s.to<=m||s.openEnd)),p)break;u=O[f].to}}else t.push(new gr(l,c,n.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var oX=0,ri=class i{constructor(e,t,r,n){this.name=e,this.set=t,this.base=r,this.modified=n,this.id=oX++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let r=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let n=new i(r,[],null,[]);if(n.set.push(n),t)for(let s of t.set)n.set.push(s);return n}static defineModifier(e){let t=new Uc(e);return r=>r.modified.indexOf(t)>-1?r:Uc.get(r.base||r,r.modified.concat(t).sort((n,s)=>n.id-s.id))}},aX=0,Uc=class i{constructor(e){this.name=e,this.instances=[],this.id=aX++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&lX(t,a.modified));if(r)return r;let n=[],s=new ri(e.name,n,e,t);for(let a of t)a.instances.push(s);let o=cX(t);for(let a of e.set)if(!a.modified.length)for(let l of o)n.push(i.get(a,l));return s}};function lX(i,e){return i.length==e.length&&i.every((t,r)=>t==e[r])}function cX(i){let e=[[]];for(let t=0;tr.length-t.length)}function St(i){let e=Object.create(null);for(let t in i){let r=i[t];Array.isArray(r)||(r=[r]);for(let n of t.split(" "))if(n){let s=[],o=2,a=n;for(let O=0;;){if(a=="..."&&O>0&&O+3==n.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+n);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),O+=f[0].length,O==n.length)break;let u=n[O++];if(O==n.length&&u=="!"){o=0;break}if(u!="/")throw new RangeError("Invalid path: "+n);a=n.slice(O)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+n);let h=new kn(r,o,l>0?s.slice(0,l):null);e[c]=h.sort(e[c])}}return Sx.add(e)}var Sx=new ue({combine(i,e){let t,r,n;for(;i||e;){if(!i||e&&i.depth>=e.depth?(n=e,e=e.next):(n=i,i=i.next),t&&t.mode==n.mode&&!n.context&&!t.context)continue;let s=new kn(n.tags,n.mode,n.context);t?t.next=s:r=s,t=s}return r}}),kn=class{constructor(e,t,r,n){this.tags=e,this.mode=t,this.context=r,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function hX(i,e){let t=null;for(let r of i){let n=r.style(e);n&&(t=t?t+" "+n:n)}return t}function Qx(i,e,t,r=0,n=i.length){let s=new Ju(r,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),r,n,"",s.highlighters),s.flush(n)}var Ju=class{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,r,n,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(u=>!u.scope||u.scope(o)));let c=n,h=id(e)||kn.empty,O=hX(s,h.tags);if(O&&(c&&(c+=" "),c+=O,h.mode==1&&(n+=(n?" ":"")+O)),this.startSpan(Math.max(t,a),c),h.opaque)return;let f=e.tree&&e.tree.prop(ue.mounted);if(f&&f.overlay){let u=e.node.enter(f.overlay[0].from+a,1),p=this.highlighters.filter(S=>!S.scope||S.scope(f.tree.type)),m=e.firstChild();for(let S=0,w=a;;S++){let C=S=R||!e.nextSibling())););if(!C||R>r)break;w=C.to+a,w>t&&(this.highlightRange(u.cursor(),Math.max(t,C.from+a),Math.min(r,w),"",p),this.startSpan(Math.min(r,w),c))}m&&e.parent()}else if(e.firstChild()){f&&(n="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,n,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}};function id(i){let e=i.type.prop(Sx);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var H=ri.define,Rc=H(),Wr=H(),bx=H(Wr),xx=H(Wr),Vr=H(),Zc=H(Vr),Ku=H(Vr),ir=H(),Pn=H(ir),er=H(),tr=H(),ed=H(),No=H(ed),Cc=H(),d={comment:Rc,lineComment:H(Rc),blockComment:H(Rc),docComment:H(Rc),name:Wr,variableName:H(Wr),typeName:bx,tagName:H(bx),propertyName:xx,attributeName:H(xx),className:H(Wr),labelName:H(Wr),namespace:H(Wr),macroName:H(Wr),literal:Vr,string:Zc,docString:H(Zc),character:H(Zc),attributeValue:H(Zc),number:Ku,integer:H(Ku),float:H(Ku),bool:H(Vr),regexp:H(Vr),escape:H(Vr),color:H(Vr),url:H(Vr),keyword:er,self:H(er),null:H(er),atom:H(er),unit:H(er),modifier:H(er),operatorKeyword:H(er),controlKeyword:H(er),definitionKeyword:H(er),moduleKeyword:H(er),operator:tr,derefOperator:H(tr),arithmeticOperator:H(tr),logicOperator:H(tr),bitwiseOperator:H(tr),compareOperator:H(tr),updateOperator:H(tr),definitionOperator:H(tr),typeOperator:H(tr),controlOperator:H(tr),punctuation:ed,separator:H(ed),bracket:No,angleBracket:H(No),squareBracket:H(No),paren:H(No),brace:H(No),content:ir,heading:Pn,heading1:H(Pn),heading2:H(Pn),heading3:H(Pn),heading4:H(Pn),heading5:H(Pn),heading6:H(Pn),contentSeparator:H(ir),list:H(ir),quote:H(ir),emphasis:H(ir),strong:H(ir),link:H(ir),monospace:H(ir),strikethrough:H(ir),inserted:H(),deleted:H(),changed:H(),invalid:H(),meta:Cc,documentMeta:H(Cc),annotation:H(Cc),processingInstruction:H(Cc),definition:ri.defineModifier("definition"),constant:ri.defineModifier("constant"),function:ri.defineModifier("function"),standard:ri.defineModifier("standard"),local:ri.defineModifier("local"),special:ri.defineModifier("special")};for(let i in d){let e=d[i];e instanceof ri&&(e.name=i)}var K5=td([{tag:d.link,class:"tok-link"},{tag:d.heading,class:"tok-heading"},{tag:d.emphasis,class:"tok-emphasis"},{tag:d.strong,class:"tok-strong"},{tag:d.keyword,class:"tok-keyword"},{tag:d.atom,class:"tok-atom"},{tag:d.bool,class:"tok-bool"},{tag:d.url,class:"tok-url"},{tag:d.labelName,class:"tok-labelName"},{tag:d.inserted,class:"tok-inserted"},{tag:d.deleted,class:"tok-deleted"},{tag:d.literal,class:"tok-literal"},{tag:d.string,class:"tok-string"},{tag:d.number,class:"tok-number"},{tag:[d.regexp,d.escape,d.special(d.string)],class:"tok-string2"},{tag:d.variableName,class:"tok-variableName"},{tag:d.local(d.variableName),class:"tok-variableName tok-local"},{tag:d.definition(d.variableName),class:"tok-variableName tok-definition"},{tag:d.special(d.variableName),class:"tok-variableName2"},{tag:d.definition(d.propertyName),class:"tok-propertyName tok-definition"},{tag:d.typeName,class:"tok-typeName"},{tag:d.namespace,class:"tok-namespace"},{tag:d.className,class:"tok-className"},{tag:d.macroName,class:"tok-macroName"},{tag:d.propertyName,class:"tok-propertyName"},{tag:d.operator,class:"tok-operator"},{tag:d.comment,class:"tok-comment"},{tag:d.meta,class:"tok-meta"},{tag:d.invalid,class:"tok-invalid"},{tag:d.punctuation,class:"tok-punctuation"}]);var rd,xr=new ue;function Xs(i){return K.define({combine:i?e=>e.concat(i):void 0})}var Yc=new ue,Xt=class{constructor(e,t,r=[],n=""){this.data=e,this.name=n,ve.prototype.hasOwnProperty("tree")||Object.defineProperty(ve.prototype,"tree",{get(){return _e(this)}}),this.parser=t,this.extension=[rr.of(this),ve.languageData.of((s,o,a)=>{let l=vx(s,o,a),c=l.type.prop(xr);if(!c)return[];let h=s.facet(c),O=l.type.prop(Yc);if(O){let f=l.resolve(o-l.from,a);for(let u of O)if(u.test(f,s)){let p=s.facet(u.facet);return u.type=="replace"?p:p.concat(h)}}return h})].concat(r)}isActiveAt(e,t,r=-1){return vx(e,t,r).type.prop(xr)==this.data}findRegions(e){let t=e.facet(rr);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],n=(s,o)=>{if(s.prop(xr)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(ue.mounted);if(a){if(a.tree.prop(xr)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(n(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function _e(i){let e=i.field(Xt.state,!1);return e?e.tree:Se.empty}var ad=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}},Ho=null,Xn=class i{constructor(e,t,r=[],n,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=n,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new i(e,t,[],Se.empty,0,r,[],null)}startParse(){return this.parser.startParse(new ad(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Se.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(gr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ho;Ho=this;try{return e()}finally{Ho=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=wx(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:n,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,h,O,f)=>l.push({fromA:c,toA:h,fromB:O,toB:f})),r=gr.applyChanges(r,l),n=Se.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),O=e.mapPos(c.to,-1);he.from&&(this.fragments=wx(this.fragments,n,s),this.skipped.splice(r--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends br{createParse(t,r,n){let s=n[0].from,o=n[n.length-1].to;return{parsedPos:s,advance(){let l=Ho;if(l){for(let c of n)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new Se(Je.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ho}};function wx(i,e,t){return gr.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Jo=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=Xn.create(e.facet(rr).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new i(r)}};Xt.state=ke.define({create:Jo.init,update(i,e){for(let t of e.effects)if(t.is(Xt.setState))return t.value;return e.startState.facet(rr)!=e.state.facet(rr)?Jo.init(e.state):i.apply(e)}});var Zx=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(Zx=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var nd=typeof navigator!="undefined"&&(!((rd=navigator.scheduling)===null||rd===void 0)&&rd.isInputPending)?()=>navigator.scheduling.isInputPending():null,OX=je.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Xt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Xt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Zx(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,l=s.context.work(()=>nd&&nd()||Date.now()>o,n+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Xt.setState.of(new Jo(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>ti(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),rr=K.define({combine(i){return i.length?i[0]:null},enables:i=>[Xt.state,OX,W.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),Ee=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},ea=class i{constructor(e,t,r,n,s,o=void 0){this.name=e,this.alias=t,this.extensions=r,this.filename=n,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:r}=e;if(!t){if(!r)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(r)}return new i(e.name,(e.alias||[]).concat(e.name).map(n=>n.toLowerCase()),e.extensions||[],e.filename,t,r)}static matchFilename(e,t){for(let n of e)if(n.filename&&n.filename.test(t))return n;let r=/\.([^.]+)$/.exec(t);if(r){for(let n of e)if(n.extensions.indexOf(r[1])>-1)return n}return null}static matchLanguageName(e,t,r=!0){t=t.toLowerCase();for(let n of e)if(n.alias.some(s=>s==t))return n;if(r)for(let n of e)for(let s of n.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return n}return null}},md=K.define(),Si=K.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function jr(i){let e=i.facet(Si);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Ts(i,e){let t="",r=i.tabSize,n=i.facet(Si)[0];if(n==" "){for(;e>=r;)t+=" ",e-=r;n=" "}for(let s=0;s=e?fX(i,t,e):null}var Tn=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=jr(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:s}=this.options;return n!=null&&n>=r.from&&n<=r.to?s&&n==e?{text:"",from:e}:(t<0?n-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Et(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:n}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(n);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Qi=new ue;function fX(i,e,t){let r=e.resolveStack(t),n=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(n!=r.node){let s=[];for(let o=n;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return Cx(r,i,t)}function Cx(i,e,t){for(let r=i;r;r=r.next){let n=dX(r.node);if(n)return n(ld.create(e,t,r))}return 0}function uX(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function dX(i){let e=i.type.prop(Qi);if(e)return e;let t=i.firstChild,r;if(t&&(r=t.type.prop(ue.closedBy))){let n=i.lastChild,s=n&&r.indexOf(n.name)>-1;return o=>Ux(o,!0,1,void 0,s&&!uX(o)?n.from:void 0)}return i.parent==null?pX:null}function pX(){return 0}var ld=class i extends Tn{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new i(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(mX(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return Cx(this.context.next,this.base,this.pos)}};function mX(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function gX(i){let e=i.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let n=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=n==null||n<=s.from?s.to:Math.min(s.to,n);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function Lc({closing:i,align:e=!0,units:t=1}){return r=>Ux(r,e,t,i)}function Ux(i,e,t,r,n){let s=i.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||n==i.pos+o,l=e?gX(i):null;return l?a?i.column(l.from):i.column(l.to):i.baseIndent+(a?0:i.unit*t)}var Wc=i=>i.baseIndent;function nr({except:i,units:e=1}={}){return t=>{let r=i&&i.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}var bX=200;function Ax(){return ve.transactionFilter.of(i=>{if(!i.docChanged||!i.isUserEvent("input.type")&&!i.isUserEvent("input.complete"))return i;let e=i.startState.languageDataAt("indentOnInput",i.startState.selection.main.head);if(!e.length)return i;let t=i.newDoc,{head:r}=i.newSelection.main,n=t.lineAt(r);if(r>n.from+bX)return i;let s=t.sliceString(n.from,r);if(!e.some(c=>c.test(s)))return i;let{state:o}=i,a=-1,l=[];for(let{head:c}of o.selection.ranges){let h=o.doc.lineAt(c);if(h.from==a)continue;a=h.from;let O=Mc(o,h.from);if(O==null)continue;let f=/^\s*/.exec(h.text)[0],u=Ts(o,O);f!=u&&l.push({from:h.from,to:h.from+f.length,insert:u})}return l.length?[i,{changes:l,sequential:!0}]:i})}var gd=K.define(),Tt=new ue;function vi(i){let e=i.firstChild,t=i.lastChild;return e&&e.tot)continue;if(s&&a.from=e&&c.to>t&&(s=c)}}return s}function SX(i){let e=i.lastChild;return e&&e.to==i.to&&e.type.isError}function yx(i,e,t){for(let r of i.facet(gd)){let n=r(i,e,t);if(n)return n}return xX(i,e,t)}function Ex(i,e){let t=e.mapPos(i.from,1),r=e.mapPos(i.to,-1);return t>=r?void 0:{from:t,to:r}}var zx=ae.define({map:Ex}),bd=ae.define({map:Ex});var Ac=ke.define({create(){return I.none},update(i,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((r,n)=>i=$x(i,r,n)),i=i.map(e.changes);let t=[];for(let r of e.effects)r.is(zx)&&!QX(i,r.value.from,r.value.to)?t.push(r.value):r.is(bd)&&(i=i.update({filter:(n,s)=>r.value.from!=n||r.value.to!=s,filterFrom:r.value.from,filterTo:r.value.to}));if(t.length){let{preparePlaceholder:r}=e.state.facet(xd),n=t.map(s=>(r?I.replace({widget:new hd(r(e.state,s))}):Px).range(s.from,s.to));i=i.update({add:n})}return e.selection&&(i=$x(i,e.selection.main.head)),i},provide:i=>W.decorations.from(i),toJSON(i,e){let t=[];return i.between(0,e.doc.length,(r,n)=>{t.push(r,n)}),t},fromJSON(i){if(!Array.isArray(i)||i.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{ne&&(r=!0)}),r?i.update({filterFrom:e,filterTo:t,filter:(n,s)=>n>=t||s<=e}):i}function cd(i,e,t){var r;let n=null;return(r=i.field(Ac,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!n||n.from>s)&&(n={from:s,to:o})}),n}function QX(i,e,t){let r=!1;return i.between(e,e,(n,s)=>{n==e&&s==t&&(r=!0)}),r}var vX={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},xd=K.define({combine(i){return ei(i,vX)}});function wX(i){let e=[Ac,$X];return i&&e.push(xd.of(i)),e}function Yx(i,e){let{state:t}=i,r=t.facet(xd),n=o=>{let a=i.lineBlockAt(i.posAtDOM(o.target)),l=cd(i.state,a.from,a.to);l&&i.dispatch({effects:bd.of(l)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(i,n,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=n,s}var Px=I.replace({widget:new class extends at{toDOM(i){return Yx(i,null)}}}),hd=class extends at{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Yx(e,this.value)}},yX={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},Ko=class extends nt{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function Mx(i={}){let e=st(st({},yX),i),t=new Ko(e,!0),r=new Ko(e,!1),n=je.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(rr)!=o.state.facet(rr)||o.startState.field(Ac,!1)!=o.state.field(Ac,!1)||_e(o.startState)!=_e(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new Ri;for(let l of o.viewportLineBlocks){let c=cd(o.state,l.from,l.to)?r:yx(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[n,Yr({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(n))===null||a===void 0?void 0:a.markers)||pe.empty},initialSpacer(){return new Ko(e,!1)},domEventHandlers:Ol(st({},s),{click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=cd(o.state,a.from,a.to);if(c)return o.dispatch({effects:bd.of(c)}),!0;let h=yx(o.state,a.from,a.to);return h?(o.dispatch({effects:zx.of(h)}),!0):!1}})}),wX()]}var $X=W.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),qr=class i{constructor(e,t){this.specs=e;let r;function n(a){let l=mi.newName();return(r||(r=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?n(t.all):void 0,o=t.scope;this.scope=o instanceof Xt?a=>a.prop(xr)==o.data:o?a=>a==o:void 0,this.style=td(e.map(a=>({tag:a.tag,class:a.class||n(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new mi(r):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},Od=K.define(),Lx=K.define({combine(i){return i.length?[i[0]]:null}});function sd(i){let e=i.facet(Od);return e.length?e:i.facet(Lx)}function Vc(i,e){let t=[PX],r;return i instanceof qr&&(i.module&&t.push(W.styleModule.of(i.module)),r=i.themeType),e!=null&&e.fallback?t.push(Lx.of(i)):r?t.push(Od.computeN([W.darkTheme],n=>n.facet(W.darkTheme)==(r=="dark")?[i]:[])):t.push(Od.of(i)),t}var fd=class{constructor(e){this.markCache=Object.create(null),this.tree=_e(e.state),this.decorations=this.buildDeco(e,sd(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=_e(e.state),r=sd(e.state),n=r!=sd(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||n)&&(this.tree=t,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return I.none;let r=new Ri;for(let{from:n,to:s}of e.visibleRanges)Qx(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=I.mark({class:l})))},n,s);return r.finish()}},PX=pi.high(je.fromClass(fd,{decorations:i=>i.decorations})),oz=qr.define([{tag:d.meta,color:"#404740"},{tag:d.link,textDecoration:"underline"},{tag:d.heading,textDecoration:"underline",fontWeight:"bold"},{tag:d.emphasis,fontStyle:"italic"},{tag:d.strong,fontWeight:"bold"},{tag:d.strikethrough,textDecoration:"line-through"},{tag:d.keyword,color:"#708"},{tag:[d.atom,d.bool,d.url,d.contentSeparator,d.labelName],color:"#219"},{tag:[d.literal,d.inserted],color:"#164"},{tag:[d.string,d.deleted],color:"#a11"},{tag:[d.regexp,d.escape,d.special(d.string)],color:"#e40"},{tag:d.definition(d.variableName),color:"#00f"},{tag:d.local(d.variableName),color:"#30a"},{tag:[d.typeName,d.namespace],color:"#085"},{tag:d.className,color:"#167"},{tag:[d.special(d.variableName),d.macroName],color:"#256"},{tag:d.definition(d.propertyName),color:"#00c"},{tag:d.comment,color:"#940"},{tag:d.invalid,color:"#f00"}]),kX=W.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Wx=1e4,Vx="()[]{}",jx=K.define({combine(i){return ei(i,{afterCursor:!0,brackets:Vx,maxScanDistance:Wx,renderMatch:_X})}}),XX=I.mark({class:"cm-matchingBracket"}),TX=I.mark({class:"cm-nonmatchingBracket"});function _X(i){let e=[],t=i.matched?XX:TX;return e.push(t.range(i.start.from,i.start.to)),i.end&&e.push(t.range(i.end.from,i.end.to)),e}function kx(i){let e=[],t=i.facet(jx);for(let r of i.selection.ranges){if(!r.empty)continue;let n=Ei(i,r.head,-1,t)||r.head>0&&Ei(i,r.head-1,1,t)||t.afterCursor&&(Ei(i,r.head,1,t)||r.headi.decorations}),ZX=[RX,kX];function qx(i={}){return[jx.of(i),ZX]}var Sd=new ue;function ud(i,e,t){let r=i.prop(e<0?ue.openedBy:ue.closedBy);if(r)return r;if(i.name.length==1){let n=t.indexOf(i.name);if(n>-1&&n%2==(e<0?1:0))return[t[n+e]]}return null}function dd(i){let e=i.type.prop(Sd);return e?e(i.node):i}function Ei(i,e,t,r={}){let n=r.maxScanDistance||Wx,s=r.brackets||Vx,o=_e(i),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=ud(l.type,t,s);if(c&&l.from0?e>=h.from&&eh.from&&e<=h.to))return CX(i,e,t,l,h,c,s)}}return UX(i,e,t,o,a.type,n,s)}function CX(i,e,t,r,n,s,o){let a=r.parent,l={from:n.from,to:n.to},c=0,h=a==null?void 0:a.cursor();if(h&&(t<0?h.childBefore(r.from):h.childAfter(r.to)))do if(t<0?h.to<=r.from:h.from>=r.to){if(c==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},h=i.doc.iterRange(e,t>0?i.doc.length:0),O=0;for(let f=0;!h.next().done&&f<=s;){let u=h.value;t<0&&(f+=u.length);let p=e+f*t;for(let m=t>0?0:u.length-1,S=t>0?u.length:-1;m!=S;m+=t){let w=o.indexOf(u[m]);if(!(w<0||r.resolveInner(p+m,1).type!=n))if(w%2==0==t>0)O++;else{if(O==1)return{start:c,end:{from:p+m,to:p+m+1},matched:w>>1==l>>1};O--}}t>0&&(f+=u.length)}return h.done?{start:c,matched:!1}:null}function Xx(i,e,t,r=0,n=0){e==null&&(e=i.search(/[^\s\u00a0]/),e==-1&&(e=i.length));let s=n;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return n(s)==n(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}}current(){return this.string.slice(this.start,this.pos)}};function AX(i){return{name:i.name||"",token:i.token,blankLine:i.blankLine||(()=>{}),startState:i.startState||(()=>!0),copyState:i.copyState||EX,indent:i.indent||(()=>null),languageData:i.languageData||{},tokenTable:i.tokenTable||vd,mergeTokens:i.mergeTokens!==!1}}function EX(i){if(typeof i!="object")return i;let e={};for(let t in i){let r=i[t];e[t]=r instanceof Array?r.slice():r}return e}var Tx=new WeakMap,ft=class i extends Xt{constructor(e){let t=Xs(e.languageData),r=AX(e),n,s=new class extends br{createParse(o,a,l){return new pd(n,o,a,l)}};super(t,s,[],e.name),this.topNode=LX(t,this),n=this,this.streamParser=r,this.stateAfter=new ue({perNode:!0}),this.tokenTable=e.tokenTable?new zc(r.tokenTable):MX}static define(e){return new i(e)}getIndent(e){let t,{overrideIndentation:r}=e.options;r&&(t=Tx.get(e.state),t!=null&&t1e4)return null;for(;s=r&&t+e.length<=n&&e.prop(i.stateAfter);if(s)return{state:i.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let a=e.children[o],l=t+e.positions[o],c=a instanceof Se&&l=e.length)return e;!n&&t==0&&e.type==i.topNode&&(n=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],a=e.children[s],l;if(ot&&Qd(i,s.tree,0-s.offset,t,a),c;if(l&&l.pos<=r&&(c=Dx(i,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:c}}return{state:i.streamParser.startState(n?jr(n):4),tree:Se.empty}}var pd=class{constructor(e,t,r,n){this.lang=e,this.input=t,this.fragments=r,this.ranges=n,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=n[n.length-1].to;let s=Xn.get(),o=n[0].from,{state:a,tree:l}=zX(e,r,o,this.to,s==null?void 0:s.state);this.state=a,this.parsedPos=this.chunkStart=o+l.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(jr(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=Xn.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(t,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +import{a as ef,b as tf,c as kP,d as Xg,e as _g,f as Rg,g as xl,h as hr,j as Sl,k as Ql,l as hs,m as TP}from"./chunk-H4446SY7.js";import{a as PP}from"./chunk-LNOKARBD.js";import{a as bl}from"./chunk-A7SWO6EA.js";import{a as Tg,b as Zg,c as XP}from"./chunk-SJEDTBYQ.js";import{D as KO,K as JO,t as Pg,u as kg}from"./chunk-CZ7OSHSE.js";import{A as Ni,E as ui,F as GO,G as ls,I as cs,J as ml,K as NO,T as HO,V as $g,a as Gi,b as So,ba as gl,d as gt,e as Qo,f as $t,g as $e,h as FO,i as Qg,k as vg,m as fl,n as ul,o as dl,p as pn,q as wg,t as pl,w as yg,x as BO,y as vo,z as Ut}from"./chunk-TYDI7JZQ.js";import{a as st,b as Ol,c as xo,d as Sg,e as IO}from"./chunk-KT7KMEQC.js";var nf=Sg((Cg,rf)=>{(function(i){if(typeof Cg=="object"&&typeof rf!="undefined")rf.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 f=typeof xo=="function"&&xo;if(!O&&f)return f(h,!0);if(l)return l(h,!0);var u=new Error("Cannot find module '"+h+"'");throw u.code="MODULE_NOT_FOUND",u}var p=s[h]={exports:{}};n[h][0].call(p.exports,function(m){var S=n[h][1][m];return a(S||m)},p,p.exports,r,n,s,o)}return s[h].exports}for(var l=typeof xo=="function"&&xo,c=0;c=43)}}).catch(function(){return!1})}function D(g){return typeof C=="boolean"?f.resolve(C):z(g).then(function(v){return C=v,C})}function Oe(g){var v=R[g.name],x={};x.promise=new f(function(T,X){x.resolve=T,x.reject=X}),v.deferredOperations.push(x),v.dbReady?v.dbReady=v.dbReady.then(function(){return x.promise}):v.dbReady=x.promise}function se(g){var v=R[g.name],x=v.deferredOperations.pop();if(x)return x.resolve(),x.promise}function ee(g,v){var x=R[g.name],T=x.deferredOperations.pop();if(T)return T.reject(v),T.promise}function he(g,v){return new f(function(x,T){if(R[g.name]=R[g.name]||Zt(),g.db)if(v)Oe(g),g.db.close();else return x(g.db);var X=[g.name];v&&X.push(g.version);var y=c.open.apply(c,X);v&&(y.onupgradeneeded=function(E){var V=y.result;try{V.createObjectStore(g.storeName),E.oldVersion<=1&&V.createObjectStore(w)}catch(j){if(j.name==="ConstraintError")console.warn('The database "'+g.name+'" has been upgraded from version '+E.oldVersion+" to version "+E.newVersion+', but the storage "'+g.storeName+'" already exists.');else throw j}}),y.onerror=function(E){E.preventDefault(),T(y.error)},y.onsuccess=function(){var E=y.result;E.onversionchange=function(V){V.target.close()},x(E),se(g)}})}function ge(g){return he(g,!1)}function we(g){return he(g,!0)}function Y(g,v){if(!g.db)return!0;var x=!g.db.objectStoreNames.contains(g.storeName),T=g.versiong.db.version;if(T&&(g.version!==v&&console.warn('The database "'+g.name+`" can't be downgraded from version `+g.db.version+" to version "+g.version+"."),g.version=g.db.version),X||x){if(x){var y=g.db.version+1;y>g.version&&(g.version=y)}return!0}return!1}function re(g){return new f(function(v,x){var T=new FileReader;T.onerror=x,T.onloadend=function(X){var y=btoa(X.target.result||"");v({__local_forage_encoded_blob:!0,data:y,type:g.type})},T.readAsBinaryString(g)})}function N(g){var v=Z(atob(g.data));return O([v],{type:g.type})}function be(g){return g&&g.__local_forage_encoded_blob}function ye(g){var v=this,x=v._initReady().then(function(){var T=R[v._dbInfo.name];if(T&&T.dbReady)return T.dbReady});return p(x,g,g),x}function He(g){Oe(g);for(var v=R[g.name],x=v.forages,T=0;T0&&(!g.db||y.name==="InvalidStateError"||y.name==="NotFoundError"))return f.resolve().then(function(){if(!g.db||y.name==="NotFoundError"&&!g.db.objectStoreNames.contains(g.storeName)&&g.version<=g.db.version)return g.db&&(g.version=g.db.version+1),we(g)}).then(function(){return He(g).then(function(){de(g,v,x,T-1)})}).catch(x);x(y)}}function Zt(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ti(g){var v=this,x={db:null};if(g)for(var T in g)x[T]=g[T];var X=R[x.name];X||(X=Zt(),R[x.name]=X),X.forages.push(v),v._initReady||(v._initReady=v.ready,v.ready=ye);var y=[];function E(){return f.resolve()}for(var V=0;V>4,G[X++]=(E&15)<<4|V>>2,G[X++]=(V&3)<<6|j&63;return q}function rs(g){var v=new Uint8Array(g),x="",T;for(T=0;T>2],x+=Ae[(v[T]&3)<<4|v[T+1]>>4],x+=Ae[(v[T+1]&15)<<2|v[T+2]>>6],x+=Ae[v[T+2]&63];return v.length%3===2?x=x.substring(0,x.length-1)+"=":v.length%3===1&&(x=x.substring(0,x.length-2)+"=="),x}function el(g,v){var x="";if(g&&(x=fn.call(g)),g&&(x==="[object ArrayBuffer]"||g.buffer&&fn.call(g.buffer)==="[object ArrayBuffer]")){var T,X=Kt;g instanceof ArrayBuffer?(T=g,X+=ln):(T=g.buffer,x==="[object Int8Array]"?X+=ao:x==="[object Uint8Array]"?X+=Xi:x==="[object Uint8ClampedArray]"?X+=_i:x==="[object Int16Array]"?X+=Fi:x==="[object Uint16Array]"?X+=cn:x==="[object Int32Array]"?X+=ts:x==="[object Uint32Array]"?X+=hn:x==="[object Float32Array]"?X+=is:x==="[object Float64Array]"?X+=lr:v(new Error("Failed to get type for BinaryArray"))),v(X+rs(T))}else if(x==="[object Blob]"){var y=new FileReader;y.onload=function(){var E=an+g.type+"~"+rs(this.result);v(Kt+es+E)},y.readAsArrayBuffer(g)}else try{v(JSON.stringify(g))}catch(E){console.error("Couldn't convert value into a JSON string: ",g),v(null,E)}}function co(g){if(g.substring(0,Jn)!==Kt)return JSON.parse(g);var v=g.substring(On),x=g.substring(Jn,On),T;if(x===es&&oo.test(v)){var X=v.match(oo);T=X[1],v=v.substring(X[0].length)}var y=lo(v);switch(x){case ln:return y;case es:return O([y],{type:T});case ao:return new Int8Array(y);case Xi:return new Uint8Array(y);case _i:return new Uint8ClampedArray(y);case Fi:return new Int16Array(y);case cn:return new Uint16Array(y);case ts:return new Int32Array(y);case hn:return new Uint32Array(y);case is:return new Float32Array(y);case lr:return new Float64Array(y);default:throw new Error("Unkown type: "+x)}}var Tr={serialize:el,deserialize:co,stringToBuffer:lo,bufferToString:rs};function cr(g,v,x,T){g.executeSql("CREATE TABLE IF NOT EXISTS "+v.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],x,T)}function hi(g){var v=this,x={db:null};if(g)for(var T in g)x[T]=typeof g[T]!="string"?g[T].toString():g[T];var X=new f(function(y,E){try{x.db=openDatabase(x.name,String(x.version),x.description,x.size)}catch(V){return E(V)}x.db.transaction(function(V){cr(V,x,function(){v._dbInfo=x,y()},function(j,q){E(q)})},E)});return x.serializer=Tr,X}function Oi(g,v,x,T,X,y){g.executeSql(x,T,X,function(E,V){V.code===V.SYNTAX_ERR?E.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[v.storeName],function(j,q){q.rows.length?y(j,V):cr(j,v,function(){j.executeSql(x,T,X,y)},y)},y):y(E,V)},y)}function tl(g,v){var x=this;g=m(g);var T=new f(function(X,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT * FROM "+E.storeName+" WHERE key = ? LIMIT 1",[g],function(j,q){var G=q.rows.length?q.rows.item(0).value:null;G&&(G=E.serializer.deserialize(G)),X(G)},function(j,q){y(q)})})}).catch(y)});return u(T,v),T}function il(g,v){var x=this,T=new f(function(X,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT * FROM "+E.storeName,[],function(j,q){for(var G=q.rows,oe=G.length,xe=0;xe0){E(ns.apply(X,[g,j,x,T-1]));return}V(xe)}})})}).catch(V)});return u(y,x),y}function rl(g,v,x){return ns.apply(this,[g,v,x,1])}function ss(g,v){var x=this;g=m(g);var T=new f(function(X,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"DELETE FROM "+E.storeName+" WHERE key = ?",[g],function(){X()},function(j,q){y(q)})})}).catch(y)});return u(T,v),T}function os(g){var v=this,x=new f(function(T,X){v.ready().then(function(){var y=v._dbInfo;y.db.transaction(function(E){Oi(E,y,"DELETE FROM "+y.storeName,[],function(){T()},function(V,j){X(j)})})}).catch(X)});return u(x,g),x}function fi(g){var v=this,x=new f(function(T,X){v.ready().then(function(){var y=v._dbInfo;y.db.transaction(function(E){Oi(E,y,"SELECT COUNT(key) as c FROM "+y.storeName,[],function(V,j){var q=j.rows.item(0).c;T(q)},function(V,j){X(j)})})}).catch(X)});return u(x,g),x}function Xr(g,v){var x=this,T=new f(function(X,y){x.ready().then(function(){var E=x._dbInfo;E.db.transaction(function(V){Oi(V,E,"SELECT key FROM "+E.storeName+" WHERE id = ? LIMIT 1",[g+1],function(j,q){var G=q.rows.length?q.rows.item(0).key:null;X(G)},function(j,q){y(q)})})}).catch(y)});return u(T,v),T}function ho(g){var v=this,x=new f(function(T,X){v.ready().then(function(){var y=v._dbInfo;y.db.transaction(function(E){Oi(E,y,"SELECT key FROM "+y.storeName,[],function(V,j){for(var q=[],G=0;G '__WebKitDatabaseInfoTable__'",[],function(X,y){for(var E=[],V=0;V0}function un(g){var v=this,x={};if(g)for(var T in g)x[T]=g[T];return x.keyPrefix=uo(g,v._defaultConfig),zO()?(v._dbInfo=x,x.serializer=Tr,f.resolve()):f.reject()}function YO(g){var v=this,x=v.ready().then(function(){for(var T=v._dbInfo.keyPrefix,X=localStorage.length-1;X>=0;X--){var y=localStorage.key(X);y.indexOf(T)===0&&localStorage.removeItem(y)}});return u(x,g),x}function MO(g,v){var x=this;g=m(g);var T=x.ready().then(function(){var X=x._dbInfo,y=localStorage.getItem(X.keyPrefix+g);return y&&(y=X.serializer.deserialize(y)),y});return u(T,v),T}function Be(g,v){var x=this,T=x.ready().then(function(){for(var X=x._dbInfo,y=X.keyPrefix,E=y.length,V=localStorage.length,j=1,q=0;q=0;E--){var V=localStorage.key(E);V.indexOf(y)===0&&localStorage.removeItem(V)}}):X=f.reject("Invalid arguments"),u(X,v),X}var WO={_driver:"localStorageWrapper",_initStorage:un,_support:fo(),iterate:Be,getItem:MO,setItem:ol,removeItem:mo,clear:YO,length:sl,key:_r,keys:LO,dropInstance:al},VO=function(v,x){return v===x||typeof v=="number"&&typeof x=="number"&&isNaN(v)&&isNaN(x)},jO=function(v,x){for(var T=v.length,X=0;X{"use strict";function $$(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=Array(e);t2?r-2:0),s=2;s1?t-1:0),n=1;n1?t-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:qa;if(P$&&P$(i,null),!nn(e))return i;let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){let s=t(n);s!==n&&(VA(e)||(e[r]=s),n=s)}i[n]=!0}return i}function HA(i){for(let e=0;e/g),nE=wt(/\${[\w\W]*/g),sE=wt(/^data-[\-\w.\u00B7-\uFFFF]+$/),oE=wt(/^aria-[\-\w]+$/),E$=wt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),aE=wt(/^(?:\w+script|data):/i),lE=wt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),cE=wt(/^html$/i),hE=wt(/^[a-z][.\w]*(-[.\w]+)+$/i),z$=wt(/<[/\w!]/g),Y$=wt(/<[/\w]/g),OE=wt(/<\/no(script|embed|frames)/i),fE=wt(/\/>/i),ci={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},uE=function(){return typeof window=="undefined"?null:window},dE=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(r=t.getAttribute(n));let s="dompurify"+(r?"#"+r:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch(o){return console.warn("TrustedTypes policy "+s+" could not be created."),null}},M$=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},rn=function(e,t,r,n){return dt(e,t)&&nn(e[t])?Ce(n.base?Rt(n.base):{},e[t],n.transform):r};function V$(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:uE(),e=M=>V$(M);if(e.version="3.4.13",e.removed=[],!i||!i.document||i.document.nodeType!==ci.document||!i.Element)return e.isSupported=!1,e;let t=i.document,r=t,n=r.currentScript;i.DocumentFragment;let s=i.HTMLTemplateElement,o=i.Node,a=i.Element,l=i.NodeFilter,c=i.NamedNodeMap;c===void 0&&(i.NamedNodeMap||i.MozNamedAttrMap),i.HTMLFormElement;let h=i.DOMParser,O=i.trustedTypes,f=a.prototype,u=qi(f,"cloneNode"),p=qi(f,"remove"),m=qi(f,"nextSibling"),S=qi(f,"childNodes"),w=qi(f,"parentNode"),C=qi(f,"shadowRoot"),R=qi(f,"attributes"),A=o&&o.prototype?qi(o.prototype,"nodeType"):null,k=o&&o.prototype?qi(o.prototype,"nodeName"):null,P=o&&o.prototype?qi(o.prototype,"ownerDocument"):null;if(typeof s=="function"){let M=t.createElement("template");M.content&&M.content.ownerDocument&&(t=M.content.ownerDocument)}let Z,z="",D,Oe=!1,se=0,ee=function(){if(se>0)throw Nn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},he=function(b){ee(),se++;try{return Z.createHTML(b)}finally{se--}},ge=function(b){ee(),se++;try{return Z.createScriptURL(b)}finally{se--}},we=function(){return Oe||(D=dE(O,n),Oe=!0),D},Y=t,re=Y.implementation,N=Y.createNodeIterator,be=Y.createDocumentFragment,ye=Y.getElementsByTagName,He=r.importNode,de=M$();e.isSupported=typeof L$=="function"&&typeof w=="function"&&re&&re.createHTMLDocument!==void 0;let Zt=iE,Ti=rE,Ii=nE,kr=sE,Kn=oE,UO=aE,Ka=lE,AO=hE,Ja=E$,qe=null,no=Ce({},[...Z$,...tg,...ig,...rg,...C$]),De=null,so=Ce({},[...U$,...ng,...A$,...wO]),Ae=Object.seal(Js(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),an=null,oo=null,Kt=Object.seal(Js(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Jn=!0,ln=!0,es=!1,ao=!0,Xi=!1,_i=!0,Fi=!1,ts=!1,cn=null,hn=null,is=!1,lr=!1,On=!1,fn=!1,lo=!0,rs=!1,el="user-content-",co=!0,Tr=!1,cr={},hi=null,Oi=Ce({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),tl=null,il=Ce({},["audio","video","img","source","image","track"]),ns=null,rl=Ce({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ss="http://www.w3.org/1998/Math/MathML",os="http://www.w3.org/2000/svg",fi="http://www.w3.org/1999/xhtml",Xr=fi,ho=!1,Oo=null,EO=Ce({},[ss,os,fi],eg),nl=vt(["mi","mo","mn","ms","mtext"]),fo=Ce({},nl),uo=vt(["annotation-xml"]),po=Ce({},uo),zO=Ce({},["title","style","font","a","script"]),un=null,YO=["application/xhtml+xml","text/html"],MO="text/html",Be=null,_r=null,LO=t.createElement("form"),sl=function(b){return b instanceof RegExp||b instanceof Function},mo=function(){let b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(_r&&_r===b)return;(!b||typeof b!="object")&&(b={}),b=Rt(b),un=YO.indexOf(b.PARSER_MEDIA_TYPE)===-1?MO:b.PARSER_MEDIA_TYPE,Be=un==="application/xhtml+xml"?eg:qa,qe=rn(b,"ALLOWED_TAGS",no,{transform:Be}),De=rn(b,"ALLOWED_ATTR",so,{transform:Be}),Oo=rn(b,"ALLOWED_NAMESPACES",EO,{transform:eg}),ns=rn(b,"ADD_URI_SAFE_ATTR",rl,{transform:Be,base:rl}),tl=rn(b,"ADD_DATA_URI_TAGS",il,{transform:Be,base:il}),hi=rn(b,"FORBID_CONTENTS",Oi,{transform:Be}),an=rn(b,"FORBID_TAGS",Rt({}),{transform:Be}),oo=rn(b,"FORBID_ATTR",Rt({}),{transform:Be}),cr=dt(b,"USE_PROFILES")?b.USE_PROFILES&&typeof b.USE_PROFILES=="object"?Rt(b.USE_PROFILES):b.USE_PROFILES:!1,Jn=b.ALLOW_ARIA_ATTR!==!1,ln=b.ALLOW_DATA_ATTR!==!1,es=b.ALLOW_UNKNOWN_PROTOCOLS||!1,ao=b.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xi=b.SAFE_FOR_TEMPLATES||!1,_i=b.SAFE_FOR_XML!==!1,Fi=b.WHOLE_DOCUMENT||!1,lr=b.RETURN_DOM||!1,On=b.RETURN_DOM_FRAGMENT||!1,fn=b.RETURN_TRUSTED_TYPE||!1,is=b.FORCE_BODY||!1,lo=b.SANITIZE_DOM!==!1,rs=b.SANITIZE_NAMED_PROPS||!1,co=b.KEEP_CONTENT!==!1,Tr=b.IN_PLACE||!1,Ja=JA(b.ALLOWED_URI_REGEXP)?b.ALLOWED_URI_REGEXP:E$,Xr=typeof b.NAMESPACE=="string"?b.NAMESPACE:fi,fo=dt(b,"MATHML_TEXT_INTEGRATION_POINTS")&&b.MATHML_TEXT_INTEGRATION_POINTS&&typeof b.MATHML_TEXT_INTEGRATION_POINTS=="object"?Rt(b.MATHML_TEXT_INTEGRATION_POINTS):Ce({},nl),po=dt(b,"HTML_INTEGRATION_POINTS")&&b.HTML_INTEGRATION_POINTS&&typeof b.HTML_INTEGRATION_POINTS=="object"?Rt(b.HTML_INTEGRATION_POINTS):Ce({},uo);let _=dt(b,"CUSTOM_ELEMENT_HANDLING")&&b.CUSTOM_ELEMENT_HANDLING&&typeof b.CUSTOM_ELEMENT_HANDLING=="object"?Rt(b.CUSTOM_ELEMENT_HANDLING):Js(null);if(Ae=Js(null),dt(_,"tagNameCheck")&&sl(_.tagNameCheck)&&(Ae.tagNameCheck=_.tagNameCheck),dt(_,"attributeNameCheck")&&sl(_.attributeNameCheck)&&(Ae.attributeNameCheck=_.attributeNameCheck),dt(_,"allowCustomizedBuiltInElements")&&typeof _.allowCustomizedBuiltInElements=="boolean"&&(Ae.allowCustomizedBuiltInElements=_.allowCustomizedBuiltInElements),wt(Ae),Xi&&(ln=!1),On&&(lr=!0),cr&&(qe=Ce({},C$),De=Js(null),cr.html===!0&&(Ce(qe,Z$),Ce(De,U$)),cr.svg===!0&&(Ce(qe,tg),Ce(De,ng),Ce(De,wO)),cr.svgFilters===!0&&(Ce(qe,ig),Ce(De,ng),Ce(De,wO)),cr.mathMl===!0&&(Ce(qe,rg),Ce(De,A$),Ce(De,wO))),Kt.tagCheck=null,Kt.attributeCheck=null,dt(b,"ADD_TAGS")&&(typeof b.ADD_TAGS=="function"?Kt.tagCheck=b.ADD_TAGS:nn(b.ADD_TAGS)&&(qe===no&&(qe=Rt(qe)),Ce(qe,b.ADD_TAGS,Be))),dt(b,"ADD_ATTR")&&(typeof b.ADD_ATTR=="function"?Kt.attributeCheck=b.ADD_ATTR:nn(b.ADD_ATTR)&&(De===so&&(De=Rt(De)),Ce(De,b.ADD_ATTR,Be))),dt(b,"ADD_URI_SAFE_ATTR")&&nn(b.ADD_URI_SAFE_ATTR)&&Ce(ns,b.ADD_URI_SAFE_ATTR,Be),dt(b,"FORBID_CONTENTS")&&nn(b.FORBID_CONTENTS)&&(hi===Oi&&(hi=Rt(hi)),Ce(hi,b.FORBID_CONTENTS,Be)),dt(b,"ADD_FORBID_CONTENTS")&&nn(b.ADD_FORBID_CONTENTS)&&(hi===Oi&&(hi=Rt(hi)),Ce(hi,b.ADD_FORBID_CONTENTS,Be)),co&&(qe["#text"]=!0),Fi&&Ce(qe,["html","head","body"]),qe.table&&(Ce(qe,["tbody"]),delete an.tbody),b.TRUSTED_TYPES_POLICY){if(typeof b.TRUSTED_TYPES_POLICY.createHTML!="function")throw Nn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof b.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Nn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let L=Z;Z=b.TRUSTED_TYPES_POLICY;try{z=he("")}catch(ne){throw Z=L,ne}}else b.TRUSTED_TYPES_POLICY===null?(Z=void 0,z=""):(Z===void 0&&(Z=we()),Z&&typeof z=="string"&&(z=he("")));vt&&vt(b),_r=b},ol=Ce({},[...tg,...ig,...eE]),al=Ce({},[...rg,...tE]),WO=function(b,_,L){return _.namespaceURI===fi?b==="svg":_.namespaceURI===ss?b==="svg"&&(L==="annotation-xml"||fo[L]):!!ol[b]},VO=function(b,_,L){return _.namespaceURI===fi?b==="math":_.namespaceURI===os?b==="math"&&po[L]:!!al[b]},jO=function(b,_,L){return _.namespaceURI===os&&!po[L]||_.namespaceURI===ss&&!fo[L]?!1:!al[b]&&(zO[b]||!ol[b])},ll=function(b){let _=w(b);(!_||!_.tagName)&&(_={namespaceURI:Xr,tagName:"template"});let L=qa(b.tagName),ne=qa(_.tagName);return Oo[b.namespaceURI]?b.namespaceURI===os?WO(L,_,ne):b.namespaceURI===ss?VO(L,_,ne):b.namespaceURI===fi?jO(L,_,ne):!!(un==="application/xhtml+xml"&&Oo[b.namespaceURI]):!1},qt=function(b){Ks(e.removed,{element:b});try{w(b).removeChild(b)}catch(_){if(p(b),!w(b))throw Nn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},dn=function(b){Bi(b);let _=S(b);if(_){let ne=[];Hs(_,fe=>{Ks(ne,fe)}),Hs(ne,fe=>{try{p(fe)}catch(me){}})}let L=R(b);if(L)for(let ne=L.length-1;ne>=0;--ne){let fe=L[ne],me=fe&&fe.name;if(typeof me=="string")try{b.removeAttribute(me)}catch(ze){}}},Dt=function(b,_){try{Ks(e.removed,{attribute:_.getAttributeNode(b),from:_})}catch(L){Ks(e.removed,{attribute:null,from:_})}if(_.removeAttribute(b),b==="is")if(lr||On)try{qt(_)}catch(L){}else try{_.setAttribute(b,"")}catch(L){}},qO=function(b){let _=R(b);if(_)for(let L=_.length-1;L>=0;--L){let ne=_[L],fe=ne&&ne.name;if(!(typeof fe!="string"||De[Be(fe)]))try{b.removeAttribute(fe)}catch(me){}}},Bi=function(b){let _=[b];for(;_.length>0;){let L=_.pop();(A?A(L):L.nodeType)===ci.element&&qO(L);let fe=S(L);if(fe)for(let me=fe.length-1;me>=0;--me)_.push(fe[me])}},go=function(b){if(!_i)return;let _=[b];for(;_.length>0;){let L=_.pop(),ne=A?A(L):L.nodeType;if(ne===ci.processingInstruction||ne===ci.comment&&ut(Y$,L.data)){try{p(L)}catch(me){}continue}if(ne===ci.element){let me=L,ze=Be(k?k(L):L.nodeName);try{me.hasAttribute&&me.hasAttribute("patchsrc")&&me.removeAttribute("patchsrc"),me.hasAttribute&&me.hasAttribute("for")&&ze!=="label"&&ze!=="output"&&me.removeAttribute("for")}catch(Ge){}}let fe=S(L);if(fe)for(let me=fe.length-1;me>=0;--me)_.push(fe[me])}},cl=function(b){let _=null,L=null;if(is)b=""+b;else{let me=T$(b,/^[\r\n\t ]+/);L=me&&me[0]}un==="application/xhtml+xml"&&Xr===fi&&(b=''+b+"");let ne=Z?he(b):b;if(Xr===fi)try{_=new h().parseFromString(ne,un)}catch(me){}if(!_||!_.documentElement){_=re.createDocument(Xr,"template",null);try{_.documentElement.innerHTML=ho?z:ne}catch(me){}}let fe=_.body||_.documentElement;return b&&L&&fe.insertBefore(t.createTextNode(L),fe.childNodes[0]||null),Xr===fi?ye.call(_,Fi?"html":"body")[0]:Fi?_.documentElement:fe},hl=function(b){let _=P?P(b):b.ownerDocument;return N.call(_||b,b,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Rr=function(b){return b=Va(b,Zt," "),b=Va(b,Ti," "),b=Va(b,Ii," "),b},bo=function(b){var _;b.normalize();let L=P?P(b):b.ownerDocument,ne=N.call(L||b,b,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),fe=ne.nextNode();for(;fe;)fe.data=Rr(fe.data),fe=ne.nextNode();let me=(_=b.querySelectorAll)===null||_===void 0?void 0:_.call(b,"template");me&&Hs(me,ze=>{g(ze.content)&&bo(ze.content)})},as=function(b){let _=k?k(b):null;return typeof _!="string"||Be(_)!=="form"?!1:typeof b.nodeName!="string"||typeof b.textContent!="string"||typeof b.removeChild!="function"||b.attributes!==R(b)||typeof b.removeAttribute!="function"||typeof b.setAttribute!="function"||typeof b.namespaceURI!="string"||typeof b.insertBefore!="function"||typeof b.hasChildNodes!="function"||b.nodeType!==A(b)||b.childNodes!==S(b)},g=function(b){if(!A||typeof b!="object"||b===null)return!1;try{return A(b)===ci.documentFragment}catch(_){return!1}},v=function(b){if(!A||typeof b!="object"||b===null)return!1;try{return typeof A(b)=="number"}catch(_){return!1}};function x(M,b,_){M.length!==0&&Hs(M,L=>{L.call(e,b,_,_r)})}let T=function(b,_){return!!(_i&&b.hasChildNodes()&&!v(b.firstElementChild)&&ut(z$,b.textContent)&&ut(z$,b.innerHTML)||_i&&b.namespaceURI===fi&&_==="style"&&v(b.firstElementChild)||b.nodeType===ci.processingInstruction||_i&&b.nodeType===ci.comment&&ut(Y$,b.data))},X=function(b,_,L){if(!an[_]&&q(_)&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,_)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(_)))return!1;if(co&&!hi[_]){let ne=w(b),fe=S(b);if(fe&&ne){let me=fe.length;for(let ze=me-1;ze>=0;--ze){let Ge=b===L?u(fe[ze],!0):fe[ze];ne.insertBefore(Ge,m(b))}}}return qt(b),!0},y=function(b,_,L,ne){return b.length===0?_:_===L||_===ne?Rt(_):_},E=function(b,_){if(x(de.beforeSanitizeElements,b,null),b!==_&&w(b)===null)return Tr&&Bi(b),!0;if(as(b))return qt(b),!0;let L=Be(k?k(b):b.nodeName);if(qe=y(de.uponSanitizeElement,qe,no,cn),x(de.uponSanitizeElement,b,{tagName:L,allowedTags:qe}),b!==_&&w(b)===null)return Tr&&Bi(b),!0;if(T(b,L))return qt(b),!0;if(an[L]||!(Kt.tagCheck instanceof Function&&Kt.tagCheck(L))&&!qe[L]){let fe=X(b,L,_);return fe===!1&&x(de.afterSanitizeElements,b,null),fe}if((A?A(b):b.nodeType)===ci.element&&!ll(b)||(L==="noscript"||L==="noembed"||L==="noframes")&&ut(OE,b.innerHTML))return qt(b),!0;if(Xi&&b.nodeType===ci.text){let fe=Rr(b.textContent);b.textContent!==fe&&(Ks(e.removed,{element:b.cloneNode()}),b.textContent=fe)}return x(de.afterSanitizeElements,b,null),!1},V=function(b,_,L){if(oo[_]||_i&&_==="patchsrc"||_i&&_==="for"&&b!=="label"&&b!=="output"||lo&&(_==="id"||_==="name")&&(L in t||L in LO))return!1;let ne=De[_]||Kt.attributeCheck instanceof Function&&Kt.attributeCheck(_,b);if(!(ln&&ut(kr,_))){if(!(Jn&&ut(Kn,_))){if(ne){if(!ns[_]){if(!ut(Ja,Va(L,Ka,""))){if(!((_==="src"||_==="xlink:href"||_==="href")&&b!=="script"&&X$(L,"data:")===0&&tl[b])){if(!(es&&!ut(UO,Va(L,Ka,"")))){if(L)return!1}}}}}else if(!(q(b)&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,b)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(b))&&(Ae.attributeNameCheck instanceof RegExp&&ut(Ae.attributeNameCheck,_)||Ae.attributeNameCheck instanceof Function&&Ae.attributeNameCheck(_,b))||_==="is"&&Ae.allowCustomizedBuiltInElements&&(Ae.tagNameCheck instanceof RegExp&&ut(Ae.tagNameCheck,L)||Ae.tagNameCheck instanceof Function&&Ae.tagNameCheck(L))))return!1}}return!0},j=Ce({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),q=function(b){return!j[qa(b)]&&ut(AO,b)},G=function(b,_,L,ne){if(Z&&typeof O=="object"&&typeof O.getAttributeType=="function"&&!L)switch(O.getAttributeType(b,_)){case"TrustedHTML":return he(ne);case"TrustedScriptURL":return ge(ne)}return ne},oe=function(b,_,L,ne){try{L?b.setAttributeNS(L,_,ne):b.setAttribute(_,ne),as(b)?qt(b):k$(e.removed)}catch(fe){Dt(_,b)}},xe=function(b){x(de.beforeSanitizeAttributes,b,null);let _=b.attributes;if(!_||as(b))return;De=y(de.uponSanitizeAttribute,De,so,hn);let L={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:De,forceKeepAttr:void 0},ne=_.length,fe=Be(b.nodeName);for(;ne--;){let me=_[ne],ze=me.name,Ge=me.namespaceURI,yt=me.value,mt=Be(ze),DO=yt,Ct=ze==="value"?DO:FA(DO);if(L.attrName=mt,L.attrValue=Ct,L.keepAttr=!0,L.forceKeepAttr=void 0,x(de.uponSanitizeAttribute,b,L),Ct=L.attrValue,rs&&(mt==="id"||mt==="name")&&X$(Ct,el)!==0&&(Dt(ze,b),Ct=el+Ct),_i&&ut(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Ct)){Dt(ze,b);continue}if(mt==="attributename"&&T$(Ct,"href")){Dt(ze,b);continue}if(!L.forceKeepAttr){if(!L.keepAttr){Dt(ze,b);continue}if(!ao&&ut(fE,Ct)){Dt(ze,b);continue}if(Xi&&(Ct=Rr(Ct)),!V(fe,mt,Ct)){Dt(ze,b);continue}Ct=G(fe,mt,Ge,Ct),Ct!==DO&&oe(b,ze,Ge,Ct)}}x(de.afterSanitizeAttributes,b,null)},Xe=function(b){let _=null,L=hl(b);for(x(de.beforeSanitizeShadowDOM,b,null);_=L.nextNode();)if(x(de.uponSanitizeShadowNode,_,null),E(_,b),xe(_),g(_.content)&&Xe(_.content),(A?A(_):_.nodeType)===ci.element){let fe=C(_);g(fe)&&(Ue(fe),Xe(fe))}x(de.afterSanitizeShadowDOM,b,null)},Ue=function(b){let _=[{node:b,shadow:null}];for(;_.length>0;){let L=_.pop();if(L.shadow){Xe(L.shadow);continue}let ne=L.node,me=(A?A(ne):ne.nodeType)===ci.element,ze=S(ne);if(ze)for(let Ge=ze.length-1;Ge>=0;--Ge)_.push({node:ze[Ge],shadow:null});if(me){let Ge=k?k(ne):null;if(typeof Ge=="string"&&Be(Ge)==="template"){let yt=ne.content;g(yt)&&_.push({node:yt,shadow:null})}}if(me){let Ge=C(ne);g(Ge)&&_.push({node:null,shadow:Ge},{node:Ge,shadow:null})}}};return e.sanitize=function(M){let b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=null,L=null,ne=null,fe=null;if(ho=!M,ho&&(M=""),typeof M!="string"&&!v(M)&&(M=KA(M),typeof M!="string"))throw Nn("dirty is not a string, aborting");if(!e.isSupported)return M;ts?(qe=cn,De=hn):mo(b),(de.uponSanitizeElement.length>0||de.uponSanitizeAttribute.length>0)&&(qe=Rt(qe)),de.uponSanitizeAttribute.length>0&&(De=Rt(De)),e.removed=[];let me=Tr&&typeof M!="string"&&v(M);if(me){go(M);let yt=k?k(M):M.nodeName;if(typeof yt=="string"){let mt=Be(yt);if(!qe[mt]||an[mt])throw dn(M),Nn("root node is forbidden and cannot be sanitized in-place")}if(as(M))throw dn(M),Nn("root node is clobbered and cannot be sanitized in-place");try{Ue(M)}catch(mt){throw dn(M),mt}}else if(v(M))_=cl(""),L=_.ownerDocument.importNode(M,!0),L.nodeType===ci.element&&L.nodeName==="BODY"||L.nodeName==="HTML"?_=L:_.appendChild(L),Ue(L);else{if(!lr&&!Xi&&!Fi&&M.indexOf("<")===-1)return Z&&fn?he(M):M;if(_=cl(M),!_)return lr?null:fn?z:""}_&&is&&qt(_.firstChild);let ze=me?M:_;try{let yt=hl(ze);for(;ne=yt.nextNode();)E(ne,ze),xe(ne),g(ne.content)&&Xe(ne.content)}catch(yt){throw me&&(dn(M),Hs(e.removed,mt=>{mt.element&&Bi(mt.element)})),yt}if(me)return Hs(e.removed,yt=>{yt.element&&Bi(yt.element)}),Xi&&bo(M),M;if(lr){if(Xi&&bo(_),On)for(fe=be.call(_.ownerDocument);_.firstChild;)fe.appendChild(_.firstChild);else fe=_;return(De.shadowroot||De.shadowrootmode)&&(fe=He.call(r,fe,!0)),fe}let Ge=Fi?_.outerHTML:_.innerHTML;return Fi&&qe["!doctype"]&&_.ownerDocument&&_.ownerDocument.doctype&&_.ownerDocument.doctype.name&&ut(cE,_.ownerDocument.doctype.name)&&(Ge=" +`+Ge),Xi&&(Ge=Rr(Ge)),Z&&fn?he(Ge):Ge},e.setConfig=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};mo(M),ts=!0,cn=qe,hn=De},e.clearConfig=function(){_r=null,ts=!1,cn=null,hn=null,Z=D,z=""},e.isValidAttribute=function(M,b,_){_r||mo({});let L=Be(M),ne=Be(b);return V(L,ne,_)},e.addHook=function(M,b){typeof b=="function"&&dt(de,M)&&Ks(de[M],b)},e.removeHook=function(M,b){if(dt(de,M)){if(b!==void 0){let _=DA(de[M],b);return _===-1?void 0:IA(de[M],_,1)[0]}return k$(de[M])}},e.removeHooks=function(M){dt(de,M)&&(de[M]=[])},e.removeAllHooks=function(){de=M$()},e}var pE=V$();j$.exports=pE});var fg=IO(nf());var Le=[/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi,/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm],Ie=[/^\s*([;]|[/][/])#link\s+"(.+?)"/gm],wo=[/^\s*(`include|[.]include)\s+"(.+?)"/gmi,/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi,{re:/^\s*([.]arch)\s+(\w+)/gmi,suffix:".json"},/\$readmem[bh]\("(.+?)"/gmi],_P=[{re:/^\s*[.#%]?\s*include\s+<(.+?)>/gmi,system:!0}];function Eg(i){let e=i&&Hi(i);return e&&e.includeDirs&&e.includeDirs.length?_P:[]}var Ug=[/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm],RP=[/^[!]src\s+"(.+?)"/gmi],ZP=[{re:/^\s*import\s*"(.+?)";/gmi,suffix:".wiz"},/^\s*embed\s*"(.+?)";/gmi],CP=[/^\s*(import)\s*"(.+?)"/gmi],UP=[/^\s*%%\s*#include\s+"(.+?)"/gm],Ag={apple2:{preloadFS:"65-apple2"},c64:{preloadFS:"65-c64"},vic20:{preloadFS:"65-vic20"},nes:{preloadFS:"65-nes"},atari8:{preloadFS:"65-atari8"},vector:{preloadFS:"65-none"},atari7800:{preloadFS:"65-none"},devel:{preloadFS:"65-none"},vcs:{preloadFS:"65-atari2600"},pce:{preloadFS:"65-pce"},exidy:{preloadFS:"65-none"}},yo={dasm:{id:"dasm",name:"DASM",kind:"assembler",arch:"6502",extensions:[".dasm"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/dasm-assembler/dasm/refs/tags/v2.20.17/docs/dasm.txt",wasmModule:"dasm-wasisdk",version:"2.20.17",includePatterns:Le,linkPatterns:Ie},acme:{id:"acme",name:"ACME",kind:"assembler",arch:"6502",extensions:[".acme"],editorStyle:"6502",helpURL:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt",wasmModule:"acme",version:"0.97.1",includePatterns:[...Le,...RP],linkPatterns:Ie},xa:{id:"xa",name:"XA",kind:"assembler",arch:"6502",extensions:[".xa"],editorStyle:"6502",helpURL:"https://www.floodgap.com/retrotech/xa/",wasmModule:"xa",version:"2.4.1",includePatterns:Le,linkPatterns:Ie},nesasm:{id:"nesasm",name:"NESASM",kind:"assembler",arch:"6502",extensions:[".nesasm"],editorStyle:"6502",wasmModule:"nesasm",version:"3.1",includePatterns:Le,linkPatterns:Ie},merlin32:{id:"merlin32",name:"Merlin 32",kind:"assembler",arch:"6502",extensions:[".lnk"],editorStyle:"6502",wasmModule:"merlin32",version:"1.1.1",includePatterns:[...Le,...Ug],linkPatterns:Ie},cc65:{id:"cc65",name:"cc65",kind:"compiler",arch:"6502",extensions:[".c",".h"],includeDirs:["/include","/asminc"],editorStyle:"text/x-csrc",helpURL:"https://cc65.github.io/doc/cc65.html",wasmModule:"cc65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ca65:{id:"ca65",name:"ca65",kind:"assembler",arch:"6502",extensions:[".s",".ca65",".inc"],includeDirs:["/include","/asminc"],editorStyle:"6502",helpURL:"https://cc65.github.io/doc/ca65.html",wasmModule:"ca65",version:"2.19",platforms:Ag,includePatterns:Le,linkPatterns:Ie},ld65:{id:"ld65",name:"ld65",kind:"linker",arch:"6502",extensions:[],wasmModule:"ld65",version:"2.19"},sdcc:{id:"sdcc",name:"SDCC",kind:"compiler",arch:"z80",extensions:[".c",".h"],includeDirs:["/include"],editorStyle:"text/x-csrc",helpURL:"http://sdcc.sourceforge.net/doc/sdccman.pdf",wasmModule:"sdcc",version:"3.6.5",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasz80:{id:"sdasz80",name:"sdasz80",kind:"assembler",arch:"z80",extensions:[".s"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasz80",version:"02.00",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdasgb:{id:"sdasgb",name:"sdasgb",kind:"assembler",arch:"gbz80",extensions:[".sgb"],includeDirs:["/include"],editorStyle:"z80",wasmModule:"sdasgb",platforms:{default:{preloadFS:"sdcc"}},includePatterns:Le,linkPatterns:Ie},sdldz80:{id:"sdldz80",name:"sdldz80",kind:"linker",arch:"z80",extensions:[],wasmModule:"sdldz80",version:"03.00"},sccz80:{id:"sccz80",name:"sccz80",kind:"compiler",arch:"z80",extensions:[".scc"],platforms:{default:{preloadFS:"sccz80"}},noWorkerBuild:!0},naken:{id:"naken",name:"Naken",kind:"assembler",extensions:[".ns"],noWorkerBuild:!0},zmac:{id:"zmac",name:"zmac",kind:"assembler",arch:"z80",extensions:[".z"],editorStyle:"z80",helpURL:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",wasmModule:"zmac",version:"28jul2018",includePatterns:Le,linkPatterns:Ie},jsasm:{id:"jsasm",name:"JSASM",kind:"assembler",extensions:[".asm"],editorStyle:"z80",includePatterns:wo,linkPatterns:[]},xasm6809:{id:"xasm6809",name:"XASM6809",kind:"assembler",arch:"6809",extensions:[".xasm"],editorStyle:"6809",wasmModule:"xasm6809",includePatterns:[...Le,...Ug],linkPatterns:Ie},cmoc:{id:"cmoc",name:"CMOC",kind:"compiler",arch:"6809",extensions:[".c",".h"],editorStyle:"text/x-csrc",helpURL:"http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html",wasmModule:"cmoc",version:"0.1.67",includePatterns:Le,linkPatterns:Ie},lwasm:{id:"lwasm",name:"LWASM",kind:"assembler",arch:"6809",extensions:[".lwasm"],wasmModule:"lwasm",version:"4.17",includePatterns:Le,linkPatterns:Ie},lwlink:{id:"lwlink",name:"LWLINK",kind:"linker",arch:"6809",extensions:[],wasmModule:"lwlink",version:"4.17"},vasmarm:{id:"vasmarm",name:"vasm (ARM)",kind:"assembler",arch:"arm32",extensions:[".vasm"],editorStyle:"vasm",wasmModule:"vasmarm_std",version:"1.8k",includePatterns:Le,linkPatterns:Ie},armips:{id:"armips",name:"armips",kind:"assembler",arch:"arm32",extensions:[".armips"],editorStyle:"vasm",wasmModule:"armips",version:"0.11.0",includePatterns:Le,linkPatterns:Ie},armtcc:{id:"armtcc",name:"TCC (ARM)",kind:"compiler",arch:"arm32",extensions:[".c",".s"],includeDirs:["/include"],wasiFSZip:"arm32-fs.zip",editorStyle:"text/x-csrc",wasmModule:"arm-tcc",includePatterns:Le,linkPatterns:Ie},armtcclink:{id:"armtcclink",name:"TCC (ARM) link",kind:"linker",arch:"arm32",extensions:[],wasmModule:"arm-tcc"},smlrc:{id:"smlrc",name:"SmallerC",kind:"compiler",arch:"x86",extensions:[".c"],editorStyle:"text/x-csrc",wasmModule:"smlrc",includePatterns:Le,linkPatterns:Ie},yasm:{id:"yasm",name:"YASM",kind:"assembler",arch:"x86",extensions:[".asm"],editorStyle:"gas",wasmModule:"yasm",version:"1.3.0.47.gc9db",includePatterns:Le,linkPatterns:Ie},oscar64:{id:"oscar64",name:"Oscar64",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".cc",".o64"],includeDirs:["/include"],wasiFSZip:"oscar64-fs.zip",editorStyle:"text/x-csrc",helpURL:"https://github.com/drmortalwombat/oscar64/blob/v1.32.266/oscar64.md",wasmModule:"oscar64",version:"1.32.266",includePatterns:Le,linkPatterns:Ie},bataribasic:{id:"bataribasic",name:"batari Basic",kind:"compiler",arch:"6502",extensions:[".bb",".bas"],includeDirs:["/includes"],editorStyle:"bataribasic",helpURL:"help/bataribasic/manual.html",wasiFSZip:"bb-fs.zip",platforms:{default:{}},includePatterns:Le,linkPatterns:Ie},fastbasic:{id:"fastbasic",name:"FastBasic",kind:"compiler",arch:"6502",extensions:[".bas",".fb",".fbi"],editorStyle:"fastbasic",helpURL:"https://github.com/dmsc/fastbasic/blob/v4.4/manual.md",wasmModule:"fastbasic-int",version:"4.4",platforms:{default:{preloadFS:"65-atari8"}},includePatterns:Le,linkPatterns:Ie},cc2600:{id:"cc2600",name:"CC2600",kind:"compiler",arch:"6502",extensions:[".cc2600"],editorStyle:"text/x-csrc",wasmModule:"cc2600",version:"0.4.5",wasiFSZip:"cc2600-fs.zip",includeDirs:["/headers"],includePatterns:Le,linkPatterns:Ie},cc7800:{id:"cc7800",name:"CC7800",kind:"compiler",arch:"6502",extensions:[".cc7800",".c78"],editorStyle:"text/x-csrc",wasmModule:"cc7800",version:"0.2.28",wasiFSZip:"cc7800-fs.zip",includeDirs:["/headers"],includePatterns:Le,linkPatterns:Ie},basic:{id:"basic",name:"BASIC",kind:"interpreter",extensions:[".bas"],editorStyle:"basic"},wiz:{id:"wiz",name:"wiz",kind:"compiler",extensions:[".wiz"],includeDirs:["/common/$platform"],editorStyle:"text/x-wiz",helpURL:"https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",wasmModule:"wiz",version:"0.1.2",platforms:{default:{preloadFS:"wiz"}},includePatterns:ZP},ecs:{id:"ecs",name:"ECS",kind:"assembler",arch:"6502",extensions:[".ecs"],editorStyle:"ecs",platforms:{vcs:{preloadFS:"65-atari2600"},nes:{preloadFS:"65-nes"},c64:{preloadFS:"65-c64"}},includePatterns:[...Le,...CP]},inform6:{id:"inform6",name:"Inform 6",kind:"compiler",arch:"zmachine",extensions:[".inf"],editorStyle:"inform6",wasmModule:"inform",version:"6.34",platforms:{default:{preloadFS:"inform"}}},dialog:{id:"dialog",name:"Dialog",kind:"compiler",arch:"zmachine",extensions:[".dg"],editorStyle:"dialog",helpURL:"https://linusakesson.net/dialog/docs/",wasmModule:"dialogc",version:"1c/03-dev",wasiFSZip:"dialog-fs.zip",includeDirs:["/"],includePatterns:UP},verilator:{id:"verilator",name:"Verilator",kind:"hdl",arch:"verilog",extensions:[".v"],editorStyle:"verilog",helpURL:"https://verilator.org/guide/4.205/",wasmModule:"verilator_bin",version:"4.205",includePatterns:wo,linkPatterns:[]},yosys:{id:"yosys",name:"Yosys",kind:"hdl",arch:"verilog",extensions:[],wasmModule:"yosys",includePatterns:wo,linkPatterns:[]},silice:{id:"silice",name:"Silice",kind:"hdl",arch:"verilog",extensions:[".ice"],editorStyle:"verilog",helpURL:"https://github.com/sylefeb/Silice",wasmModule:"silice",version:"0.1",platforms:{default:{preloadFS:"Silice"}},includePatterns:wo,linkPatterns:[]},"llvm-mos":{id:"llvm-mos",name:"LLVM-MOS",kind:"compiler",arch:"6502",extensions:[".c",".cpp",".s",".S",".C"],editorStyle:"text/x-csrc",helpURL:"https://llvm-mos.org/wiki/Welcome",remote:!0,includePatterns:Le,linkPatterns:Ie,server:{version:"latest",platforms:["atari8","c64","nes","pce","vcs"],binpath:"llvm-mos/bin",command:"mos-clang",args:["-Os","-g","-D","__8BITWORKSHOP__","-o","$OUTFILE","$INFILES"]}},remote:{id:"remote",name:"Remote build",kind:"remote",extensions:[],remote:!0}};function Hi(i){return yo[i.replace(/^remote:/,"")]}function zg(i){let e=[];for(let t in yo){let r=yo[t];for(let n of r.extensions)if(n&&i.endsWith(n)){e.push({meta:r,len:n.length});break}}return e.sort((t,r)=>r.len-t.len).map(t=>t.meta)}function AP(i,e){let t=Hi(i);if(t&&t.platforms){if(e){let n=t.platforms[e];if(n&&n.preloadFS)return n.preloadFS;let s=Ni(e);if(s&&s!==e){let o=t.platforms[s];if(o&&o.preloadFS)return o.preloadFS}}let r=t.platforms.default;if(r&&r.preloadFS)return r.preloadFS}}function sf(i){let e=Hi(i);return e&&e.skeleton?e.skeleton:i.replace(/^remote:/,"")}function vl(i,e){let t=i&&Hi(i);return t&&t.includePatterns?t.includePatterns:e&&e.startsWith("verilog")?wo:Le}function wl(i,e){let t=i&&Hi(i);return t&&t.linkPatterns?t.linkPatterns:e&&e.startsWith("verilog")?[]:Ie}function yl(i,e){e=e&&Ni(e);let t=i&&Hi(i),r=t&&t.includeDirs||[];return r=r.map(n=>n.replace("$platform",e)),r}function $l(i,e){var t=AP(i,e);if(t)return t;let r=i&&Hi(i);return r&&r.wasiFSZip?"wasi:"+r.wasiFSZip:void 0}function of(i,e){let t=[];for(let r of e||[]){let n=r instanceof RegExp?{re:r}:r,s;for(n.re.lastIndex=0;s=n.re.exec(i);){let o=s[n.group!=null?n.group:s.length-1];o&&t.push(n.suffix?o+n.suffix:o)}}return t}var Yg=0,Mg="",Lg=0;function Wg(i,e){try{if(Yg>=10)return;let s=Date.now();if(i===Mg&&s-Lg<1e4)return;Yg++,Mg=i,Lg=s;var t={msg:(i+"").substring(0,300),stack:(e&&e.stack?e.stack+"":"").substring(0,1e3),url:window.location.href},r=Object.keys(t).map(o=>o+"="+encodeURIComponent(t[o])).join("&"),n=new Image;n.src="/err.gif?"+r}catch(s){}}function We(i){i?(Ri(0),$("#pleaseWaitModal").modal("show")):(Ri(1),$("#pleaseWaitModal").modal("hide"))}function Ri(i){$("#pleaseWaitProgressBar").css("width",i*100+"%").show()}function Qe(i){We(!1),bootbox.alert({title:' Alert',message:hs.sanitize(i)})}function Pt(i){We(!1),bootbox.alert(hs.sanitize(i))}function Vg(i){throw Qe(i),new Error(i)}var lf=[],Ig=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(i=Ig[r])e=r+1;else return!0;if(e==t)return!1}}function jg(i){return i>=127462&&i<=127487}var qg=8205;function Fg(i,e,t=!0,r=!0){return(t?Bg:zP)(i,e,r)}function Bg(i,e,t){if(e==i.length)return e;e&&Gg(i.charCodeAt(e))&&Ng(i.charCodeAt(e-1))&&e--;let r=af(i,e);for(e+=Dg(r);e=0&&jg(af(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function zP(i,e,t){for(;e>1;){let r=Bg(i,e-2,t);if(r=56320&&i<57344}function Ng(i){return i>=55296&&i<56320}function Dg(i){return i<65536?1:2}var Pe=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,r){[e,t]=ds(this,e,t);let n=[];return this.decompose(0,e,n,2),r.length&&r.decompose(0,r.length,n,3),this.decompose(t,this.length,n,1),Os.from(n,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=ds(this,e,t);let r=[];return this.decompose(e,t,r,0),Os.from(r,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),r=this.length-this.scanIdentical(e,-1),n=new xn(this),s=new xn(e);for(let o=t,a=t;;){if(n.next(o),s.next(o),o=0,n.lineBreak!=s.lineBreak||n.done!=s.done||n.value!=s.value)return!1;if(a+=n.value.length,n.done||a>=r)return!0}}iter(e=1){return new xn(this,e)}iterRange(e,t=this.length){return new _l(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;r=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Rl(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Jt(e):Os.from(Jt.split(e,[]))}},Jt=class i extends Pe{constructor(e,t=YP(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.text[s],a=n+o.length;if((t?r:a)>=e)return new hf(n,a,r,o);n=a+1,r++}}decompose(e,t,r,n){let s=e<=0&&t>=this.length?this:new i(Hg(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let o=r.pop(),a=Xl(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new i(a,o.length+s.length));else{let l=a.length>>1;r.push(new i(a.slice(0,l)),new i(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof i))return super.replace(e,t,r);[e,t]=ds(this,e,t);let n=Xl(this.text,Xl(r.text,Hg(this.text,0,e)),t),s=this.length+r.length-(t-e);return n.length<=32?new i(n,s):Os.from(i.split(n,[]),s)}sliceString(e,t=this.length,r=` +`){[e,t]=ds(this,e,t);let n="";for(let s=0,o=0;s<=t&&oe&&o&&(n+=r),es&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},Os=class i extends Pe{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=ds(this,e,t),r.lines=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>c>>6){let h=this.children.slice();return h[n]=l,new i(h,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=` +`){[e,t]=ds(this,e,t);let n="";for(let s=0,o=0;se&&s&&(n+=r),eo&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let u of e)r+=u.lines;if(r<32){let u=[];for(let p of e)p.flatten(u);return new Jt(u,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,h=[];function O(u){let p;if(u.lines>s&&u instanceof i)for(let m of u.children)O(m);else u.lines>o&&(l>o||!l)?(f(),a.push(u)):u instanceof Jt&&l&&(p=h[h.length-1])instanceof Jt&&u.lines+p.lines<=32?(l+=u.lines,c+=u.length+1,h[h.length-1]=new Jt(p.text.concat(u.text),p.length+1+u.length)):(l+u.lines>n&&f(),l+=u.lines,c+=u.length+1,h.push(u))}function f(){l!=0&&(a.push(h.length==1?h[0]:i.from(h,c)),c=-1,l=h.length=0)}for(let u of e)O(u);return f(),a.length==1?a[0]:new i(a,t)}};Pe.empty=new Jt([""],0);function YP(i){let e=-1;for(let t of i)e+=t.length+1;return e}function Xl(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s=t&&(l>r&&(a=a.slice(0,r-n)),n0?1:(e instanceof Jt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof Jt?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(n instanceof Jt){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Jt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},_l=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new xn(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Rl=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(Pe.prototype[Symbol.iterator]=function(){return this.iter()},xn.prototype[Symbol.iterator]=_l.prototype[Symbol.iterator]=Rl.prototype[Symbol.iterator]=function(){return this});var hf=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function ds(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function it(i,e,t=!0,r=!0){return Fg(i,e,t,r)}function MP(i){return i>=56320&&i<57344}function LP(i){return i>=55296&&i<56320}function Ci(i,e){let t=i.charCodeAt(e);if(!LP(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return MP(r)?(t-55296<<10)+(r-56320)+65536:t}function El(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Cr(i){return i<65536?1:2}var Of=/\r\n?|\n/,Ot=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(Ot||(Ot={})),Or=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-n);s+=a}else{if(r!=Ot.Simple&&c>=e&&(r==Ot.TrackDel&&ne||r==Ot.TrackBefore&&ne))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r=0&&n<=t&&a>=e)return nt?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},At=class i extends Or{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ff(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return uf(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length0&&Zr(r,t,s.text),s.forward(h),a+=h}let c=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,r){let n=[],s=[],o=0,a=null;function l(h=!1){if(!h&&!n.length)return;of||O<0||f>t)throw new RangeError(`Invalid change range ${O} to ${f} (in doc of length ${t})`);let p=u?typeof u=="string"?Pe.of(u.split(r||Of)):u:Pe.empty,m=p.length;if(O==f&&m==0)return;Oo&&kt(n,O-o,-1),kt(n,f-O,m),Zr(s,n,p),o=f}}return c(e),l(!a),a}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let n=0;na&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length=0&&t<=0&&t==i[n+1]?i[n]+=e:n>=0&&e==0&&i[n]==0?i[n+1]+=t:r?(i[n]+=e,i[n+1]+=t):i.push(e,t)}function Zr(i,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)a=i.sections[o++],l=i.sections[o++];e(n,c,s,h,O),n=c,s=h}}}function uf(i,e,t,r=!1){let n=[],s=r?[]:null,o=new Sn(i),a=new Sn(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);kt(n,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let c=0,h=o.len;for(;h;)if(a.ins==-1){let O=Math.min(h,a.len);c+=O,h-=O,a.forward(O)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}var Sn=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?Pe.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?Pe.empty:t[r].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},mn=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.flags=r,this.goalColumn=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let r,n;return this.empty?r=n=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),r==this.from&&n==this.to?this:new i(r,n,this.flags,this.goalColumn)}extend(e,t=e,r=0){if(e<=this.anchor&&t>=this.anchor)return U.range(e,t,void 0,void 0,r);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return U.range(this.anchor,n,void 0,void 0,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return U.range(e.anchor,e.head)}static create(e,t,r,n){return new i(e,t,r,n)}},U=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>mn.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let r=0,n=0;nn.from-s.from),t=e.indexOf(r);for(let n=1;ns.head?i.range(l,a):i.range(a,l))}}return new i(e,t)}};function rb(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var wf=0,K=class i{constructor(e,t,r,n,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=n,this.id=wf++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:yf),!!e.static,e.enables)}of(e){return new fs([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new fs(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new fs(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}};function yf(i,e){return i==e||i.length==e.length&&i.every((t,r)=>t===e[r])}var fs=class{constructor(e,t,r,n){this.dependencies=e,this.facet=t,this.type=r,this.value=n,this.id=wf++}dynamicSlot(e){var t;let r=this.value,n=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,h=[];for(let O of this.dependencies)O=="doc"?l=!0:O=="selection"?c=!0:(((t=e[O.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[O.id]);return{create(O){return O.values[o]=r(O),1},update(O,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||df(O,h)){let u=r(O);if(a?!Kg(u,O.values[o],n):!n(u,O.values[o]))return O.values[o]=u,1}return 0},reconfigure:(O,f)=>{let u,p=f.config.address[s];if(p!=null){let m=Ul(f,p);if(this.dependencies.every(S=>S instanceof K?f.facet(S)===O.facet(S):S instanceof Te?f.field(S,!1)==O.field(S,!1):!0)||(a?Kg(u=r(O),m,n):n(u=r(O),m)))return O.values[o]=m,0}else u=r(O);return O.values[o]=u,1}}}get extension(){return this}};function Kg(i,e,t){if(i.length!=e.length)return!1;for(let r=0;ri[l.id]),n=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=i[e.id]>>1;function a(l){let c=[];for(let h=0;hr===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Pl).find(r=>r.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,n)=>{let s=r.values[t],o=this.updateF(s,n);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,n)=>{let s=r.facet(Pl),o=n.facet(Pl),a;return(a=s.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(r.values[t]=a.create(r),1):n.config.address[this.id]!=null?(r.values[t]=n.field(this),0):(r.values[t]=this.create(r),1)}}}init(e){return[this,Pl.of({field:this,create:e})]}get extension(){return this}},gn={lowest:4,low:3,default:2,high:1,highest:0};function $o(i){return e=>new Zl(e,i)}var pi={highest:$o(gn.highest),high:$o(gn.high),default:$o(gn.default),low:$o(gn.low),lowest:$o(gn.lowest)},Zl=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},bt=class i{of(e){return new ko(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},ko=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Cl=class i{constructor(e,t,r,n,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=n,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,r){let n=[],s=Object.create(null),o=new Map;for(let f of VP(e,t,o))f instanceof Te?n.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of n)a[f.id]=c.length<<1,c.push(u=>f.slot(u));let h=r==null?void 0:r.config.facets;for(let f in s){let u=s[f],p=u[0].facet,m=h&&h[f]||[];if(u.every(S=>S.type==0))if(a[p.id]=l.length<<1|1,yf(m,u))l.push(r.facet(p));else{let S=p.combine(u.map(w=>w.value));l.push(r&&p.compare(S,r.facet(p))?r.facet(p):S)}else{for(let S of u)S.type==0?(a[S.id]=l.length<<1|1,l.push(S.value)):(a[S.id]=c.length<<1,c.push(w=>S.dynamicSlot(w)));a[p.id]=c.length<<1,c.push(S=>WP(S,p,u))}}let O=c.map(f=>f(a));return new i(e,o,O,a,l,s)}};function VP(i,e,t){let r=[[],[],[],[],[]],n=new Map;function s(o,a){let l=n.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof ko&&t.delete(o.compartment)}if(n.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof ko){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof Zl)s(o.inner,o.prec);else if(o instanceof Te)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof fs)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,gn.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(i,gn.default),r.reduce((o,a)=>o.concat(a))}function Po(i,e){if(e&1)return 2;let t=e>>1,r=i.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;i.status[t]=4;let n=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|n}function Ul(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var nb=K.define(),pf=K.define({combine:i=>i.some(e=>e),static:!0}),sb=K.define({combine:i=>i.length?i[0]:void 0,static:!0}),ob=K.define(),ab=K.define(),lb=K.define(),cb=K.define({combine:i=>i.length?i[0]:!1}),It=class{constructor(e,t){this.type=e,this.value=t}static define(){return new mf}},mf=class{of(e){return new It(this,e)}},gf=class{constructor(e){this.map=e}of(e){return new ae(this,e)}},ae=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new gf(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let n of e){let s=n.map(t);s&&r.push(s)}return r}};ae.reconfigure=ae.define();ae.appendConfig=ae.define();var Ne=class i{constructor(e,t,r,n,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=n,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&rb(r,t.newLength),s.some(a=>a.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,r,n,s,o){return new i(e,t,r,n,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};Ne.time=It.define();Ne.userEvent=It.define();Ne.addToHistory=It.define();Ne.remote=It.define();function jP(i,e){let t=[];for(let r=0,n=0;;){let s,o;if(r=i[r]))s=i[r++],o=i[r++];else if(n=0;n--){let s=r[n](i);s instanceof Ne?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof Ne?i=s[0]:i=Ob(e,us(s),!1)}return i}function DP(i){let e=i.startState,t=e.facet(lb),r=i;for(let n=t.length-1;n>=0;n--){let s=t[n](i);s&&Object.keys(s).length&&(r=hb(r,bf(e,s,i.changes.newLength),!0))}return r==i?i:Ne.create(e,i.changes,i.selection,r.effects,r.annotations,r.scrollIntoView)}var IP=[];function us(i){return i==null?IP:Array.isArray(i)?i:[i]}var Me=(function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i})(Me||(Me={})),FP=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,xf;try{xf=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(i){}function BP(i){if(xf)return xf.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||FP.test(t)))return!0}return!1}function GP(i){return e=>{if(!/\S/.test(e))return Me.Space;if(BP(e))return Me.Word;for(let t=0;t-1)return Me.Word;return Me.Other}}var ve=class i{constructor(e,t,r,n,s,o){this.config=e,this.doc=t,this.selection=r,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;an.set(c,l)),t=null),n.set(a.value.compartment,a.value.extension)):a.is(ae.reconfigure)?(t=null,r=a.value):a.is(ae.appendConfig)&&(t=null,r=us(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Cl.resolve(r,n,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(pf)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:U.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),n=this.changes(r.changes),s=[r.range],o=us(r.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return i.create({doc:e.doc,selection:U.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=Cl.resolve(e.extensions||[],new Map),r=e.doc instanceof Pe?e.doc:Pe.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||Of)),n=e.selection?e.selection instanceof U?e.selection:U.single(e.selection.anchor,e.selection.head):U.single(0);return rb(n,r.length),t.staticFacet(pf)||(n=n.asSingle()),new i(t,r,n,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||` +`}get readOnly(){return this.facet(cb)}phrase(e,...t){for(let r of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let n=[];for(let s of this.facet(nb))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return GP(t.length?t[0]:"")}wordAt(e){let{text:t,from:r,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=it(t,o,!1);if(s(t.slice(l,o))!=Me.Word)break;o=l}for(;ai.length?i[0]:4});ve.lineSeparator=sb;ve.readOnly=cb;ve.phrases=K.define({compare(i,e){let t=Object.keys(i),r=Object.keys(e);return t.length==r.length&&t.every(n=>i[n]==e[n])}});ve.languageData=nb;ve.changeFilter=ob;ve.transactionFilter=ab;ve.transactionExtender=lb;bt.reconfigure=ae.define();function ei(i,e,t={}){let r={};for(let n of i)for(let s of Object.keys(n)){let o=n[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}var di=class{eq(e){return this==e}range(e,t=e){return To.create(e,t,this)}};di.prototype.startSide=di.prototype.endSide=0;di.prototype.point=!1;di.prototype.mapMode=Ot.TrackDel;function $f(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var To=class i{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new i(e,t,r)}};function Sf(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var Qf=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,n=0){let s=r?this.to:this.from;for(let o=n,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,n){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);su||f==u&&c.startSide>0&&c.endSide<=0)continue;(u-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,u-f)),r.push(c),n.push(f-o),s.push(u-o))}return{mapped:r.length?new i(n,s,r,a):null,pos:o}}},pe=class i{constructor(e,t,r,n){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=n}static create(e,t,r,n){return new i(e,t,r,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:r=!1,filterFrom:n=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(Sf)),this.isEmpty)return t.length?i.of(t):this;let a=new Al(this,null,-1).goto(0),l=0,c=[],h=new Zi;for(;a.value||l=0){let O=t[l++];h.addInner(O.from,O.to,O.value)||c.push(O)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||sa.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}iter(e=0){return Xo.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Xo.from(e).goto(t)}static compare(e,t,r,n,s=-1){let o=e.filter(O=>O.maxPoint>0||!O.isEmpty&&O.maxPoint>=s),a=t.filter(O=>O.maxPoint>0||!O.isEmpty&&O.maxPoint>=s),l=Jg(o,a,r),c=new bn(o,l,s),h=new bn(a,l,s);r.iterGaps((O,f,u)=>eb(c,O,h,f,u,n)),r.empty&&r.length==0&&eb(c,0,h,0,0,n)}static eq(e,t,r=0,n){n==null&&(n=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Jg(s,o),l=new bn(s,a,0).goto(r),c=new bn(o,a,0).goto(r);for(;;){if(l.to!=c.to||!vf(l.active,c.active)||l.point&&(!c.point||!$f(l.point,c.point)))return!1;if(l.to>n)return!0;l.next(),c.next()}}static spans(e,t,r,n,s=-1){let o=new bn(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let h=o.activeForPoint(o.to),O=o.pointFroma&&(n.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new Zi;for(let n of e instanceof To?[e]:t?NP(e):e)r.add(n.from,n.to,n.value);return r.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let n=e[r];n!=i.empty;n=n.nextLayer)t=new i(n.chunkPos,n.chunk,t,Math.max(n.maxPoint,t.maxPoint));return t}};pe.empty=new pe([],[],null,-1);function NP(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(Sf);e=r}return i}pe.empty.nextLayer=pe.empty;var Zi=class i{finishChunk(e){this.chunks.push(new Qf(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,r)}addInner(e,t,r){let n=e-this.lastTo||r.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner(pe.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=pe.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Jg(i,e,t){let r=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&n.push(new Al(o,t,r,s));return n.length==1?n[0]:new i(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)cf(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)cf(this.heap,r);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),cf(this.heap,0)}}};function cf(i,e){for(let t=i[e];;){let r=(e<<1)+1;if(r>=i.length)break;let n=i[r];if(r+1=0&&(n=i[r+1],r++),t.compare(n)<0)break;i[r]=t,i[e]=n,e=r}}var bn=class{constructor(e,t,r){this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Xo.from(e,t,r)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){kl(this.active,e),kl(this.activeTo,e),kl(this.activeRank,e),this.minActive=tb(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:n,rank:s}=this.cursor;for(;t0;)t++;Tl(this.active,t,r),Tl(this.activeTo,t,n),Tl(this.activeRank,t,s),e&&Tl(e,t,this.cursor.from),this.minActive=tb(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),r&&kl(r,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&r[n]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}};function eb(i,e,t,r,n,s){i.goto(e),t.goto(r);let o=r+n,a=r,l=r-e,c=!!s.boundChange;for(let h=!1;;){let O=i.to+l-t.to,f=O||i.endSide-t.endSide,u=f<0?i.to+l:t.to,p=Math.min(u,o);if(i.point||t.point?(i.point&&t.point&&$f(i.point,t.point)&&vf(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(a,p,i.point,t.point),h=!1):(h&&s.boundChange(a),p>a&&!vf(i.active,t.active)&&s.compareRange(a,p,i.active,t.active),c&&po)break;a=u,f<=0&&i.next(),f>=0&&t.next()}}function vf(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;r--)i[r+1]=i[r];i[e]=t}function tb(i,e){let t=-1,r=1e9;for(let n=0;n=e)return n;if(n==i.length)break;s+=i.charCodeAt(n)==9?t-s%t:1,n=it(i,n)}return r===!0?-1:i.length}var fb=typeof Symbol=="undefined"?"__\u037C":Symbol.for("\u037C"),Pf=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),ub=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},mi=class{constructor(e,t){this.rules=[];let{finish:r}=t||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let h=[],O=/^@(\w+)\b/.exec(o[0]),f=O&&O[1]=="keyframes";if(O&&a==null)return l.push(o[0]+";");for(let u in a){let p=a[u];if(/&/.test(u))s(u.split(/,\s*/).map(m=>o.map(S=>m.replace(/&/,S))).reduce((m,S)=>m.concat(S)),p,l);else if(p&&typeof p=="object"){if(!O)throw new RangeError("The value of a property ("+u+") should be a primitive value.");s(n(u),p,h,f)}else p!=null&&h.push(u.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(h.length||f)&&l.push((r&&!O&&!c?o.map(r):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(n(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=ub[fb]||1;return ub[fb]=e+1,"\u037C"+e.toString(36)}static mount(e,t,r){let n=e[Pf],s=r&&r.nonce;n?s&&n.setNonce(s):n=new kf(e,s),n.mount(Array.isArray(t)?t:[t],e)}},db=new Map,kf=class{constructor(e,t){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=db.get(r);if(s)return e[Pf]=s;this.sheet=new n.CSSStyleSheet,db.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Pf]=this}mount(e,t){let r=this.sheet,n=0,s=0;for(let o=0;o-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},HP=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),KP=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(ot=0;ot<10;ot++)fr[48+ot]=fr[96+ot]=String(ot);var ot;for(ot=1;ot<=24;ot++)fr[ot+111]="F"+ot;var ot;for(ot=65;ot<=90;ot++)fr[ot]=String.fromCharCode(ot+32),ps[ot]=String.fromCharCode(ot);var ot;for(Yl in fr)ps.hasOwnProperty(Yl)||(ps[Yl]=fr[Yl]);var Yl;function pb(i){var e=HP&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||KP&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?ps:fr)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function rt(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var n=t[r];typeof n=="string"?i.setAttribute(r,n):n!=null&&(i[r]=n)}e++}for(;e2),J={mac:xb||/Mac/.test(zt.platform),windows:/Win/.test(zt.platform),linux:/Linux|X11/.test(zt.platform),ie:gc,ie_version:t0?zf.documentMode||6:Mf?+Mf[1]:Yf?+Yf[1]:0,gecko:gb,gecko_version:gb?+(/Firefox\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,chrome:!!Tf,chrome_version:Tf?+Tf[1]:0,ios:xb,android:/Android\b/.test(zt.userAgent),webkit:bb,webkit_version:bb?+(/\bAppleWebKit\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,safari:Lf,safari_version:Lf?+(/\bVersion\/(\d+(\.\d+)?)/.exec(zt.userAgent)||[0,0])[1]:0,tabSize:zf.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Ru(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var Jl=Object.create(null);function Zu(i,e,t){if(i==e)return!0;i||(i=Jl),e||(e=Jl);let r=Object.keys(i),n=Object.keys(e);if(r.length-(t&&r.indexOf(t)>-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(n.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function JP(i,e){for(let t=i.attributes.length-1;t>=0;t--){let r=i.attributes[t].name;e[r]==null&&i.removeAttribute(r)}for(let t in e){let r=e[t];t=="style"?i.style.cssText=r:i.getAttribute(t)!=r&&i.setAttribute(t,r)}}function Sb(i,e,t){let r=!1;if(e)for(let n in e)t&&n in t||(r=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(r=!0,n=="style"?i.style.cssText=t[n]:i.setAttribute(n,t[n]));return r}function e1(i){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new yn(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,n;if(e.isBlockGap)r=-5e8,n=4e8;else{let{start:s,end:o}=i0(e,t);r=(s?t?-3e8:-1:5e8)-1,n=(o?t?2e8:1:-6e8)+1}return new yn(e,r,n,t,e.widget||null,!0)}static line(e){return new jo(e)}static set(e,t=!1){return pe.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};I.none=pe.empty;var Vo=class i extends I{constructor(e){let{start:t,end:r}=i0(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Ru(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Jl}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&Zu(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Vo.prototype.point=!1;var jo=class i extends I{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Zu(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};jo.prototype.mapMode=Ot.TrackBefore;jo.prototype.point=!0;var yn=class i extends I{constructor(e,t,r,n,s,o){super(t,r,s,e),this.block=n,this.isReplace=o,this.mapMode=n?t<=0?Ot.TrackBefore:Ot.TrackAfter:Ot.TrackDel}get type(){return this.startSide!=this.endSide?xt.WidgetRange:this.startSide<=0?xt.WidgetBefore:xt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&t1(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};yn.prototype.point=!0;function i0(i,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=i;return t==null&&(t=i.inclusive),r==null&&(r=i.inclusive),{start:t!=null?t:e,end:r!=null?r:e}}function t1(i,e){return i==e||!!(i&&e&&i.compare(e))}function Qs(i,e,t,r=0){let n=t.length-1;n>=0&&t[n]+r>=i?t[n]=Math.max(t[n],e):t.push(i,e)}var ec=class i extends di{constructor(e,t,r){super(),this.tagName=e,this.attributes=t,this.rank=r}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&Zu(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||Jl,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return pe.of(e,t)}};ec.prototype.startSide=ec.prototype.endSide=-1;function qo(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function Wf(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function Co(i,e){if(!e.anchorNode)return!1;try{return Wf(i,e.anchorNode)}catch(t){return!1}}function Bl(i){return i.nodeType==3?Do(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Uo(i,e,t,r){return t?Qb(i,e,t,r,-1)||Qb(i,e,t,r,1):!1}function Er(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function tc(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function Qb(i,e,t,r,n){for(;;){if(i==t&&e==r)return!0;if(e==(n<0?0:pr(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Er(i)+(n<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(n<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=n<0?pr(i):0}else return!1}}function pr(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function ic(i,e){let{left:t,right:r}=i;if(t==r)return i;let n=e?t:r;return{left:n,right:n,top:i.top,bottom:i.bottom}}function i1(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function r0(i,e){let t=e.width/i.offsetWidth,r=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-i.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function r1(i,e,t,r,n,s,o,a){let l=i.ownerDocument,c=l.defaultView||window;for(let h=i,O=!1;h&&!O;)if(h.nodeType==1){let f,u=h==l.body,p=1,m=1;if(u)f=i1(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(O=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let C=h.getBoundingClientRect();({scaleX:p,scaleY:m}=r0(h,C)),f={left:C.left,right:C.left+h.clientWidth*p,top:C.top,bottom:C.top+h.clientHeight*m}}let S=0,w=0;if(n=="nearest")e.top0&&e.bottom>f.bottom+w&&(w=e.bottom-f.bottom+o)):e.bottom>f.bottom-o&&(w=e.bottom-f.bottom+o,t<0&&e.top-w0&&e.right>f.right+S&&(S=e.right-f.right+s)):e.right>f.right-s&&(S=e.right-f.right+s,t<0&&e.leftf.bottom||e.leftf.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function n0(i,e=!0){let t=i.ownerDocument,r=null,n=null;for(let s=i.parentNode;s&&!(s==t.body||(!e||r)&&n);)if(s.nodeType==1)!n&&s.scrollHeight>s.clientHeight&&(n=s),e&&!r&&s.scrollWidth>s.clientWidth&&(r=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:r,y:n}}var Vf=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?pr(t):0),r,Math.min(e.focusOffset,r?pr(r):0))}set(e,t,r,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=n}};function s0(i){let e=[];for(let t=i;t;t=t.nodeType==11?t.host:t.parentNode)t.nodeType==1&&e.push({node:t,left:t.scrollLeft,top:t.scrollTop});return e}function o0(i,e=!0){for(let{node:t,left:r,top:n}of i)e&&t.scrollTop!=n&&(t.scrollTop=n),t.scrollLeft!=r&&(t.scrollLeft=r)}var Qn=null;J.safari&&J.safari_version>=26&&(Qn=!1);function a0(i){if(i.setActive)return i.setActive();if(Qn)return i.focus(Qn);let e=s0(i);i.focus(Qn==null?{get preventScroll(){return Qn={preventScroll:!0},!0}}:void 0),Qn||(Qn=!1,o0(e))}var vb;function Do(i,e,t=e){let r=vb||(vb=document.createRange());return r.setEnd(i,t),r.setStart(i,e),r}function vs(i,e,t,r){let n={key:e,code:e,keyCode:t,which:t,cancelable:!0};r&&({altKey:n.altKey,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,metaKey:n.metaKey}=r);let s=new KeyboardEvent("keydown",n);s.synthetic=!0,i.dispatchEvent(s);let o=new KeyboardEvent("keyup",n);return o.synthetic=!0,i.dispatchEvent(o),s.defaultPrevented||o.defaultPrevented}function n1(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function s1(i,e){let t=e.focusNode,r=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=r)return!1;for(r=Math.min(r,pr(t));;)if(r){if(t.nodeType!=1)return!1;let n=t.childNodes[r-1];n.contentEditable=="false"?r--:(t=n,r=pr(t))}else{if(t==i)return!0;r=Er(t),t=t.parentNode}}function l0(i){return i instanceof Window?i.pageYOffset>Math.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function c0(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=pr(t)}else if(t.parentNode&&!tc(t))r=Er(t),t=t.parentNode;else return null}}function h0(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&r=t){if(a.level==r)return o;(s<0||(n!=0?n<0?a.fromt:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function u0(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;m-=3)if(Ki[m+1]==-u){let S=Ki[m+2],w=S&2?n:S&4?S&1?s:n:0;w&&(Ve[O]=Ve[Ki[m]]=w),a=m;break}}else{if(Ki.length==189)break;Ki[a++]=O,Ki[a++]=f,Ki[a++]=l}else if((p=Ve[O])==2||p==1){let m=p==n;l=m?0:1;for(let S=a-3;S>=0;S-=3){let w=Ki[S+2];if(w&2)break;if(m)Ki[S+2]|=2;else{if(w&4)break;Ki[S+2]|=4}}}}}function O1(i,e,t,r){for(let n=0,s=r;n<=t.length;n++){let o=n?t[n-1].to:i,a=nl;)p==S&&(p=t[--m].from,S=m?t[m-1].to:i),Ve[--p]=u;l=h}else s=c,l++}}}function qf(i,e,t,r,n,s,o){let a=r%2?2:1;if(r%2==n%2)for(let l=e,c=0;ll&&o.push(new xi(l,m.from,u));let S=m.direction==$n!=!(u%2);Df(i,S?r+1:r,n,m.inner,m.from,m.to,o),l=m.to}p=m.to}else{if(p==t||(h?Ve[p]!=a:Ve[p]==a))break;p++}f?qf(i,l,p,r+1,n,f,o):le;){let h=!0,O=!1;if(!c||l>s[c-1].to){let m=Ve[l-1];m!=a&&(h=!1,O=m==16)}let f=!h&&a==1?[]:null,u=h?r:r+1,p=l;e:for(;;)if(c&&p==s[c-1].to){if(O)break e;let m=s[--c];if(!h)for(let S=m.from,w=c;;){if(S==e)break e;if(w&&s[w-1].to==S)S=s[--w].from;else{if(Ve[S-1]==a)break e;break}}if(f)f.push(m);else{m.toVe.length;)Ve[Ve.length]=256;let r=[],n=e==$n?0:1;return Df(i,n,n,t,0,i.length,r),r}function d0(i){return[new xi(0,i,0)]}var p0="";function u1(i,e,t,r,n){var s;let o=r.head-i.from,a=xi.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(n,t);if(o==c){let f=a+=n?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!n,t),c=l.side(n,t)}let h=it(i.text,o,l.forward(n,t));(hl.to)&&(h=c),p0=i.text.slice(Math.min(o,h),Math.max(o,h));let O=a==(n?e.length-1:0)?null:e[a+(n?1:-1)];return O&&h==c&&O.level+(n?0:1)i.some(e=>e)}),w0=K.define({combine:i=>i.some(e=>e)}),y0=K.define(),Ao=class i{constructor(e,t,r,n,s,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=n,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(U.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Ml=ae.define({map:(i,e)=>i.map(e)}),$0=ae.define();function ti(i,e,t){let r=i.facet(x0);r.length?r[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var ur=K.define({combine:i=>i.length?i[0]:!0}),p1=0,gs=K.define({combine(i){return i.filter((e,t)=>{for(let r=0;r{let l=[];return o&&l.push(bc.of(c=>{let h=c.plugin(a);return h?o(h):I.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return i.define((r,n)=>new e(r,n),t)}},Eo=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(r){if(ti(t.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(n){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){ti(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(r){ti(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},P0=K.define(),Eu=K.define(),bc=K.define(),k0=K.define(),zu=K.define(),Bo=K.define(),T0=K.define();function wb(i,e){let t=i.state.facet(T0);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(i):s),n=[];return pe.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,h=o-e.from,O=n;for(let f=a.length-1;f>=0;f--,l--){let u=a[f].spec.bidiIsolate,p;if(u==null&&(u=d1(e.text,c,h)),l>0&&O.length&&(p=O[O.length-1]).to==c&&p.direction==u)p.to=h,O=p.inner;else{let m={from:c,to:h,direction:u,inner:[]};O.push(m),O=m.inner}}}}),n}var X0=K.define();function Yu(i){let e=0,t=0,r=0,n=0;for(let s of i.state.facet(X0)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(n=Math.max(n,o.bottom)))}return{left:e,right:t,top:r,bottom:n}}var _o=K.define(),Ai=class i{constructor(e,t,r,n){this.fromA=e,this.toA=t,this.fromB=r,this.toB=n}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,r=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>r.toA)){if(n.toAn.push(new Ai(s,o,a,l))),this.changedRanges=n}static create(e,t,r){return new i(e,t,r)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},m1=[],Ke=class{constructor(e,t,r=0){this.dom=e,this.length=t,this.flags=r,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return m1}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&JP(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let r=t;for(let n of this.children){if(n==e)return r;r+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,r){return null}domPosFor(e,t){let r=Er(this.dom),n=this.length?e>0:t>0;return new Ji(this.parent.dom,r+(n?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof ys)return e;return null}static get(e){return e.cmTile}},ws=class extends Ke{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,r=null,n,s=(e==null?void 0:e.node)==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,n=r?r.nextSibling:t.firstChild,s&&n!=a.dom&&(s.written=!0),a.dom.parentNode==t)for(;n&&n!=a.dom;)n=yb(n);else t.insertBefore(a.dom,n);r=a.dom}for(n=r?r.nextSibling:t.firstChild,s&&n&&(s.written=!0);n;)n=yb(n);this.length=o}};function yb(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var ys=class extends ws{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=Ke.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],r=this,n=0,s=0;;)if(n==r.children.length){if(!t.length)return;r=r.parent,r.breakAfter&&s++,n=t.pop()}else{let o=r.children[n++];if(o instanceof dr)t.push(n),r=o,n=0;else{let a=s+o.length,l=e(o,s);if(l!==void 0)return l;s=a+o.breakAfter}}}resolveBlock(e,t){let r,n=-1,s,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(r=void 0)}(le||e==l&&(t>1?a.length:a.covers(-1)))&&(!s||!a.isWidget()&&s.isWidget())&&(s=a,o=e-l)}}),!r&&!s)throw new Error("No tile at position "+e);return r&&t<0||!s?{tile:r,offset:n}:{tile:s,offset:o}}},dr=class i extends ws{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let r=new i(t||document.createElement(e.tagName),e);return t||(r.flags|=4),r}},$s=class i extends ws{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,r){let n=new i(t||document.createElement("div"),e);return(!t||!r)&&(n.flags|=4),n}get domAttrs(){return this.attrs}resolveInline(e,t,r){let n=null,s=-1,o=null,a=-1;function l(h,O){for(let f=0,u=0;f=O&&(p.isComposite()?l(p,O-u):(!o||o.isHidden&&(t>0&&!(o.flags&32)||r&&b1(o,p)))&&(m>O||p.flags&32&&t<=1)?(o=p,a=O-u):(u=-1)&&(n=p,s=O-u)),u=m}}l(this,e);let c=(t<0?n:o)||n||o;return c?{tile:c,offset:c==n?s:a}:null}coordsIn(e,t,r){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t,r):g1(this)}domIn(e,t){let r=this.resolveInline(e,t);if(r){let{tile:n,offset:s}=r;if(this.dom.contains(n.dom))return n.isText()?new Ji(n.dom,Math.min(n.dom.nodeValue.length,s)):n.domPosFor(s,n.flags&16?1:n.flags&32?-1:t);let o=r.tile.parent,a=!1;for(let l of o.children){if(a)return new Ji(l.dom,0);l==r.tile&&(a=!0)}}return new Ji(this.dom,0)}};function g1(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=Bl(e);return t[t.length-1]||null}function b1(i,e){let t=i.coordsIn(0,1),r=e.coordsIn(0,1);return t&&r&&r.topn&&(e=n);let s=e,o=e,a=0;e==0&&t<0||e==n&&t>=0?J.chrome||J.gecko||(e?(s--,a=1):o=0)?0:l.length-1];return J.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(l,h=>h.width)||c),r==null?c:ic(c,(a?a>0:t<0)==r)}static of(e,t){let r=new i(t||document.createTextNode(e),e);return t||(r.flags|=2),r}},Pn=class i extends Ke{constructor(e,t,r,n){super(e,t,n),this.widget=r}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,r){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;if(r)return ic(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?s.length-1:0;o=s[l],!(e>0?l==0:l==s.length-1||o.top0==r)}},Ff=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,r){let{tile:n,index:s,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(n.isComposite())if(o){if(!e)break;r&&r.break(),e--,o=!1}else if(s==n.children.length){if(!e&&!a.length)break;r&&r.leave(n),o=!!n.breakAfter,{tile:n,index:s}=a.pop(),s++}else{let l=n.children[s],c=l.breakAfter;(t>0?l.length<=e:l.length=0;a--){let l=t.marks[a],c=n.lastChild;if(c instanceof Ft&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Xf(l.dom)),n=c;else{if(this.cache.reused.get(l)){let O=Ke.get(l.dom);O&&O.setDOM(Xf(l.dom))}let h=Ft.of(l.mark,l.dom);n.append(h),n=h}this.cache.reused.set(l,2)}let s=Ke.get(e.text);s&&this.cache.reused.set(s,2);let o=new vn(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,n.append(o)}addInlineWidget(e,t,r){let n=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);n||this.flushBuffer();let s=this.ensureMarks(t,r);!n&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,r){this.flushBuffer(),this.ensureMarks(t,r).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var r;e||(e=_0);let n=$s.start(e,t||((r=this.cache.find($s))===null||r===void 0?void 0:r.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=n)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var r;let n=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],a;if(t>0&&(a=n.lastChild)&&a instanceof Ft&&a.mark.eq(o))n=a,t--;else{let l=Ft.of(o,(r=this.cache.find(Ft,c=>c.mark.eq(o)))===null||r===void 0?void 0:r.dom);n.append(l),n=l,t=0}}return n}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!$b(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(J.ios&&$b(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(_f,0,32)||new Pn(_f.toDOM(),0,_f,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,r=new Bf(e.from,e.to,e.value,t),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-r.rank||this.wrappers[n-1].to-r.to)<0;)n--;this.wrappers.splice(n,0,r)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let r of this.wrappers){let n=t.lastChild;if(r.fromo.wrapper.eq(r.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),r=this.cache.find(Ps,void 0,1);return r&&(r.flags=t),r||new Ps(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Nf=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=n;let a=this.textOff=Math.min(e,n.length);return s?null:n.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),r=this.text.slice(this.textOff,t);return this.textOff=t,r}},nc=[Pn,$s,vn,Ft,Ps,dr,ys];for(let i=0;i[]),this.index=nc.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,r=this.buckets[t];r.length<6?r.push(e):r[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,r=2){let n=e.bucket,s=this.buckets[n],o=this.index[n];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let r=t&&this.getCompositionContext(t.text);for(let n=0,s=0,o=0;;){let a=on){let c=l-n;this.preserve(c,!o,!a),n=l,s+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Ft&&n.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?n.length&&(n.length=s=0):o instanceof Ft&&(n.shift(),s=Math.min(s,n.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let r=null,n=this.builder,s=-1,o=pe.spans(this.decorations,e,t,{point:(a,l,c,h,O,f)=>{if(c instanceof yn){if(this.disallowBlockEffectsFor[f]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,O>h.length)n.continueWidget(l-a);else{let u=c.widget||(c.block?zr.block:zr.inline),p=x1(c),m=this.cache.findWidget(u,l-a,p)||Pn.of(u,this.view,l-a,p);c.block?(c.startSide>0&&n.addLineStartIfNotCovered(r),n.addBlockWidget(m)):(n.ensureLine(r),n.addInlineWidget(m,h,O))}r=null}else r=S1(r,c);l>a&&this.text.skip(l-a)},span:(a,l,c,h)=>{for(let O=a;O-1&&(this.openWidget=o>s),this.openWidget||n.addLineStartIfNotCovered(r),this.openMarks=o}forward(e,t,r=1){t-e<=10?this.old.advance(t-e,r,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,r,this.reuseWalker))}getCompositionContext(e){let t=[],r=null;for(let n=e.parentNode;;n=n.parentNode){let s=Ke.get(n);if(n==this.view.contentDOM)break;s instanceof Ft?t.push(s):s!=null&&s.isLine()?r=s:s instanceof dr||(n.nodeName=="DIV"&&!r&&n!=this.view.contentDOM?r=new $s(n,_0):r||t.push(Ft.of(new Vo({tagName:n.nodeName.toLowerCase(),attributes:e1(n)}),n)))}return{line:r,marks:t}}};function $b(i,e){let t=r=>{for(let n of r.children)if((e?n.isText():n.length)||t(n))return!0;return!1};return t(i)}function x1(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var _0={class:"cm-line"};function S1(i,e){let t=e.spec.attributes,r=e.spec.class;return!t&&!r||(i||(i={class:"cm-line"}),t&&Ru(t,i),r&&(i.class+=" "+r)),i}function Q1(i){let e=[];for(let t=i.parents.length;t>1;t--){let r=t==i.parents.length?i.tile:i.parents[t].tile;r instanceof Ft&&e.push(r.mark)}return e}function Xf(i){let e=Ke.get(i);return e&&e.setDOM(i.cloneNode()),i}var zr=class extends at{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};zr.inline=new zr("span");zr.block=new zr("div");var _f=new class extends at{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},sc=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=I.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new ys(e,e.contentDOM),this.updateInner([new Ai(0,0,0,e.state.doc.length)],null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:h,toA:O})=>Othis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?n=this.domChanged.newSel.head:!X1(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let s=n>-1?w1(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:O}=this.hasComposition;r=new Ai(h,O,e.changes.mapPos(h,-1),e.changes.mapPos(O,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(J.ie||J.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=P1(o,this.decorations,e.changes);l.length&&(r=Ai.extendWithRanges(r,l));let c=k1(a,this.blockWrappers,e.changes);return c.length&&(r=Ai.extendWithRanges(r,c)),s&&!r.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(r=s.range.addToSet(r.slice())),this.tile.flags&2&&r.length==0?!1:(this.updateInner(r,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:r}=this.view;r.ignore(()=>{if(t||e.length){let o=this.tile,a=new Kf(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&Ke.get(t.text)&&a.cache.reused.set(Ke.get(t.text),2),this.tile=a.run(e,t),Jf(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=J.chrome||J.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||r.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Co(r,this.view.observer.selectionRange)&&!(n&&r.contains(n));if(!(s||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,h;if(l.empty?h=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(h=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),J.gecko&&l.empty&&!this.hasComposition&&v1(c)){let f=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(f,c.node.childNodes[c.offset]||null)),c=h=new Ji(f,0),a=!0}let O=this.view.observer.selectionRange;(a||!O.focusNode||(!Uo(c.node,c.offset,O.anchorNode,O.anchorOffset)||!Uo(h.node,h.offset,O.focusNode,O.focusOffset))&&!this.suppressWidgetCursorChange(O,l))&&(this.view.observer.ignore(()=>{J.android&&J.chrome&&r.contains(O.focusNode)&&T1(O.focusNode,r)&&(r.blur(),r.focus({preventScroll:!0}));let f=qo(this.view.root);if(f)if(l.empty){if(J.gecko){let u=y1(c.node,c.offset);if(u&&u!=3){let p=(u==1?c0:h0)(c.node,c.offset);p&&(c=new Ji(p.node,p.offset))}}f.collapse(c.node,c.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(c.node,c.offset);try{f.extend(h.node,h.offset)}catch(u){}}else{let u=document.createRange();l.anchor>l.head&&([c,h]=[h,c]),u.setEnd(h.node,h.offset),u.setStart(c.node,c.offset),f.removeAllRanges(),f.addRange(u)}o&&this.view.root.activeElement==r&&(r.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(c,h)),this.impreciseAnchor=c.precise?null:new Ji(O.anchorNode,O.anchorOffset),this.impreciseHead=h.precise?null:new Ji(O.focusNode,O.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Uo(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=qo(e.root),{anchorNode:n,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);r.collapse(h.node,h.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let O=e.observer.selectionRange;e.docView.posFromDOM(O.anchorNode,O.anchorOffset)!=t.from&&r.collapse(n,s)}posFromDOM(e,t){let r=this.tile.nearest(e);if(!r)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let n=r.posAtStart;if(r.isComposite()){let s;if(e==r.dom)s=r.dom.childNodes[t];else{let o=pr(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==r.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?s=e:s=e.nextSibling}if(s==r.dom.firstChild)return n;for(;s&&!Ke.get(s);)s=s.nextSibling;if(!s)return n+r.length;for(let o=0,a=n;;o++){let l=r.children[o];if(l.dom==s)return a;a+=l.length+l.breakAfter}}else return r.isText()?e==r.dom?n+t:n+(t?r.length:0):n}domAtPos(e,t){let{tile:r,offset:n}=this.tile.resolveBlock(e,t);return r.isWidget()?r.domPosFor(n,t):r.domIn(n,t)}inlineDOMNearPos(e,t){let r,n=-1,s=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,h)=>{if(c.isWidget()){if(c.flags&32&&h>=e)return!0;c.flags&16&&(s=!0)}else{let O=h+c.length;if(h<=e&&(r=c,n=e-h,s=O=e&&!o&&(o=c,a=e-h,l=h>e),h>e&&o)return!0}}),!r&&!o?this.domAtPos(e,t):(s&&o?r=null:l&&r&&(o=null),r&&t<0||!o?r.domIn(n,t):o.domIn(a,t))}coordsAt(e,t,r){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof zo?null:n.coordsInWidget(s,t,!0):n.coordsIn(s,t,r)}lineAt(e,t){let{tile:r}=this.tile.resolveBlock(e,t);return r.isLine()?r:null}coordsForChar(e){let{tile:t,offset:r}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function n(s,o){if(s.isComposite())for(let a of s.children){if(a.length>=o){let l=n(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==Ye.LTR,c=0,h=(O,f,u)=>{for(let p=0;pn);p++){let m=O.children[p],S=f+m.length,w=m.dom.getBoundingClientRect(),{height:C}=w;if(u&&!p&&(c+=w.top-u.top),m instanceof dr)S>r&&h(m,f,w);else if(f>=r&&(c>0&&t.push(-c),t.push(C+c),c=0,o)){let R=m.dom.lastChild,A=R?Bl(R):[];if(A.length){let k=A[A.length-1],P=l?k.right-w.left:w.right-k.left;P>a&&(a=P,this.minWidth=s,this.minWidthFrom=f,this.minWidthTo=S)}}u&&p==O.children.length-1&&(c+=u.bottom-w.bottom),f=S+m.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?Ye.RTL:Ye.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let h=Bl(c.dom);if(h.length!=1)return;a+=h[0].width,l=h[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),r,n,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Bl(t.firstChild)[0];r=t.getBoundingClientRect().height,n=o&&o.width?o.width/27:7,s=o&&o.height?o.height:r,t.remove()}),{lineHeight:r,charWidth:n,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,n=0;;n++){let s=n==t.viewports.length?null:t.viewports[n],o=s?s.from-1:this.view.state.doc.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(I.replace({widget:new zo(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return I.set(e)}updateDeco(){let e=1,t=this.view.state.facet(bc).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,n=this.view.state.facet(zu).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(n.length&&(this.dynamicDecorationMap[e++]=r,t.push(pe.join(n))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(y0))try{if(c(this.view,e.range,e))return!0}catch(h){ti(this.view.state,h,"scroll handler")}let{range:t}=e,r=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),n;if(!r)return;!t.empty&&(n=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,n.left),top:Math.min(r.top,n.top),right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)});let s=Yu(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(r1(this.view.scrollDOM,o,t.head1&&(r.top>window.visualViewport.offsetTop+window.visualViewport.height||r.bottomr.isWidget()||r.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Jf(this.tile)}};function Jf(i,e){let t=e==null?void 0:e.get(i);if(t!=1){t==null&&i.destroy();for(let r of i.children)Jf(r,e)}}function v1(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function R0(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let r=c0(t.focusNode,t.focusOffset),n=h0(t.focusNode,t.focusOffset),s=r||n;if(n&&r&&n.node!=r.node){let a=Ke.get(n.node);if(!a||a.isText()&&a.text!=n.node.nodeValue)s=n;else if(i.docView.lastCompositionAfterCursor){let l=Ke.get(r.node);!l||l.isText()&&l.text!=r.node.nodeValue||(s=n)}}if(i.docView.lastCompositionAfterCursor=s!=r,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function w1(i,e,t){let r=R0(i,t);if(!r)return null;let{node:n,from:s,to:o}=r,a=n.nodeValue;if(/[\n\r]/.test(a)||i.state.doc.sliceString(r.from,r.to)!=a)return null;let l=e.invertedDesc;return{range:new Ai(l.mapPos(s),l.mapPos(o),s,o),text:n}}function y1(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e{re.from&&(t=!0)}),t}var zo=class extends at{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function _1(i,e,t=1){let r=i.charCategorizer(e),n=i.doc.lineAt(e),s=e-n.from;if(n.length==0)return U.cursor(e);s==0?t=1:s==n.length&&(t=-1);let o=s,a=s;t<0?o=it(n.text,s,!1):a=it(n.text,s);let l=r(n.text.slice(o,a));for(;o>0;){let c=it(n.text,o,!1);if(r(n.text.slice(c,o))!=l)break;o=c}for(;ai.defaultLineHeight*1.5){let a=i.viewState.heightOracle.textHeight,l=Math.floor((n-t.top-(i.defaultLineHeight-a)*.5)/a);s+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+zl(o,s,i.state.tabSize)}function tu(i,e,t){let r=i.lineBlockAt(e);if(Array.isArray(r.type)){let n;for(let s of r.type){if(s.from>e)break;if(!(s.toe)return s;(!n||s.type==xt.Text&&(n.type!=s.type||(t<0?s.frome)))&&(n=s)}}return n||r}return r}function Z1(i,e,t,r){let n=tu(i,e.head,e.assoc||-1),s=!r||n.type!=xt.Text||!(i.lineWrapping||n.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),a=i.textDirectionAt(n.from),l=i.posAtCoords({x:t==(a==Ye.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return U.cursor(l,t?-1:1)}return U.cursor(t?n.to:n.from,t?-1:1)}function Pb(i,e,t,r){let n=i.state.doc.lineAt(e.head),s=i.bidiSpans(n),o=i.textDirectionAt(n.from);for(let a=e,l=null;;){let c=u1(n,s,o,a,t),h=p0;if(!c){if(n.number==(t?i.state.doc.lines:1))return a;h=` +`,n=i.state.doc.line(n.number+(t?1:-1)),s=i.bidiSpans(n),c=i.visualLineSide(n,!t)}if(l){if(!l(h))return a}else{if(!r)return c;l=r(h)}a=c}}function C1(i,e,t){let r=i.state.charCategorizer(e),n=r(t);return s=>{let o=r(s);return n==Me.Space&&(n=o),n==o}}function U1(i,e,t,r){let n=e.head,s=t?1:-1;if(n==(t?i.state.doc.length:0))return U.cursor(n,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(n,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),h=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let p=i.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(n-p.from))),a=(s<0?p.top:p.bottom)+h}let O=l.left+o,f=i.viewState.heightOracle.textHeight>>1,u=r!=null?r:f;for(let p=0;;p+=f){let m=a+(u+p)*s,S=iu(i,{x:O,y:m},!1,s);if(t?m>l.bottom:ma:C{if(e>s&&en(i)),t.from,e.head>t.from?-1:1);return r==t.from?t:U.cursor(r,ri.viewState.docHeight)return new bi(i.state.doc.length,-1);if(c=i.elementAtHeight(l),r==null)break;if(c.type==xt.Text){if(r<0?c.toi.viewport.to)break;let f=i.docView.coordsAt(r<0?c.from:c.to,r>0?-1:1);if(f&&(r<0?f.top<=l+s:f.bottom>=l+s))break}let O=i.viewState.heightOracle.textHeight/2;l=r>0?c.bottom+O:c.top-O}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==xt.Text){let O=R1(i,n,c,o,a);return new bi(O,O==c.from?1:-1)}}if(c.type!=xt.Text)return l<(c.top+c.bottom)/2?new bi(c.from,1):new bi(c.to,-1);let h=i.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=i.docView.lineAt(c.from,-2)),new ru(i,o,a,i.textDirectionAt(c.from)).scanTile(h,c.from)}var ru=class{constructor(e,t,r,n){this.view=e,this.x=t,this.y=r,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||r.length&&(r[0].level!=this.baseDir||r[0].to+n.from>1;t:if(o.has(m)){for(let C=1;C=s&&(R-=p),!o.has(R)){m=R;break t}}break e}o.add(m);let S=t(m),w=0;if(S)for(let C=0;C1))if(R.bottomthis.y)(!c||c.top>R.top)&&(c=R),w=-1;else{let A=R.left>this.x?this.x-R.left:R.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,t,!0)}let u=(a?this.dirAt(e[h],1):this.baseDir)==Ye.LTR;return{i:h,after:this.x>(f.left+f.right)/2==u}}scanText(e,t){let r=[];for(let s=0;s{let o=r[s]-t,a=r[s+1]-t;return Do(e.dom,o,a).getClientRects()});return n.after?new bi(r[n.i+1],-1):new bi(r[n.i],1)}scanTile(e,t){if(!e.length)return new bi(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let r=[t];for(let a=0,l=t;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Do(l.dom,0,l.length)).getClientRects()}),s=e.children[n.i],o=r[n.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):n.after?new bi(r[n.i+1],-1):new bi(o,1)}},ms="\uFFFF",nu=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ve.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=ms}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let n=e;;){this.findPointBefore(r,n);let s=this.text.length;this.readNode(n);let o=Ke.get(n),a=n.nextSibling;if(a==t){o!=null&&o.breakAfter&&!a&&r!=this.view.contentDOM&&this.lineBreak();break}let l=Ke.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:tc(n))||tc(a)&&(n.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>s)&&!E1(a,t)&&this.lineBreak(),n=a}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=n.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){let t=Ke.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let n=r.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(A1(e,r.node,r.offset)?t:0))}};function A1(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=C0(e.docView.tile,t,r,0))){let l=s||o?[]:Y1(e),c=new nu(l,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=M1(l,this.bounds.from)}else{let l=e.observer.selectionRange,c=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!Wf(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Wf(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),O=e.viewport;if((J.ios||J.chrome)&&c!=h&&Math.min(c,h)<=a.main.from&&Math.max(c,h)>=a.main.to&&(O.from>0||O.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(U.range(h,c));else if(e.lineWrapping&&h==c&&!(a.main.empty&&a.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let f=e.coordsAtPos(c,-1),u=0;f&&(u=e.inputState.lastTouchY<=f.bottom?-1:1),this.newSel=U.create([U.cursor(c,u)])}else this.newSel=U.single(h,c)}}};function C0(i,e,t,r){if(i.isComposite()){let n=-1,s=-1,o=-1,a=-1;for(let l=0,c=r,h=r;lt)return C0(O,e,t,c);if(f>=e&&n==-1&&(n=l,s=c),c>t&&O.dom.parentNode==i.dom){o=l,a=h;break}h=f,c=f+O.breakAfter}return{from:s,to:a<0?r+i.length:a,startDOM:(n?i.children[n-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:o=0?i.children[o].dom:null}}else return i.isText()?{from:r,to:r+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function U0(i,e){let t,{newSel:r}=e,{state:n}=i,s=n.selection.main,o=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,c=s.from,h=null;(o===8||J.android&&e.text.length=a&&s.to<=l&&(e.typeOver||O!=e.text)&&O.slice(0,s.from-a)==e.text.slice(0,s.from-a)&&O.slice(s.to-a)==e.text.slice(f=e.text.length-(O.length-(s.to-a)))?t={from:s.from,to:s.to,insert:Pe.of(e.text.slice(s.from-a,f).split(ms))}:(u=A0(O,e.text,c-a,h))&&(J.chrome&&o==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==ms+ms&&u.toB--,t={from:a+u.from,to:a+u.toA,insert:Pe.of(e.text.slice(u.from,u.toB).split(ms))})}else r&&(!i.hasFocus&&n.facet(ur)||ac(r,s))&&(r=null);if(!t&&!r)return!1;if((J.mac||J.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=U.single(r.main.anchor-1,r.main.head-1)),t={from:t.from,to:t.to,insert:Pe.of([t.insert.toString().replace("."," ")])}):n.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:n.toText(i.inputState.insertingText)}:J.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&i.lineWrapping&&(r&&(r=U.single(r.main.anchor-1,r.main.head-1)),t={from:s.from,to:s.to,insert:Pe.of([" "])}),t)return Mu(i,t,r,o);if(r&&!ac(r,s)){let a=!1,l="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(a=!0),l=i.inputState.lastSelectionOrigin,l=="select.pointer"&&(r=Z0(n.facet(Bo).map(c=>c(i)),r))),i.dispatch({selection:r,scrollIntoView:a,userEvent:l}),!0}else return!1}function Mu(i,e,t,r=-1){if(J.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(J.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&vs(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||r==8&&e.insert.lengthn.head)&&vs(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&vs(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=z1(i,e,t));return i.state.facet(S0).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function z1(i,e,t){let r,n=i.state,s=n.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let l=e.fromO(i)),c,l);e.from==h&&(o=h)}if(o>-1)r={changes:e,selection:U.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let l=s.frome.to?n.sliceDoc(e.to,s.to):"";r=n.replaceSelection(i.state.toText(l+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let l=n.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(n.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=i.state.sliceDoc(e.from,e.to),O,f=t&&R0(i,t.main.head);if(f){let p=e.insert.length-(e.to-e.from);O={from:f.from,to:f.to-p}}else O=i.state.doc.lineAt(s.head);let u=s.to-e.to;r=n.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:l,range:c||p.map(l)};let m=p.to-u,S=m-h.length;if(i.state.sliceDoc(S,m)!=h||m>=O.from&&S<=O.to)return{range:p};let w=n.changes({from:S,to:m,insert:e.insert}),C=p.to-s.to;return{changes:w,range:c?U.range(Math.max(0,c.anchor+C),Math.max(0,c.head+C)):p.map(w)}})}else r={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,a+=".compose",i.inputState.compositionFirstChange&&(a+=".start",i.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:a,scrollIntoView:!0})}function A0(i,e,t,r){let n=Math.min(i.length,e.length),s=0;for(;s0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function Y1(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new oc(t,r)),(n!=t||s!=r)&&e.push(new oc(n,s))),e}function M1(i,e){if(i.length==0)return null;let t=i[0].pos,r=i.length==2?i[1].pos:t;return t>-1&&r>-1?U.single(t+e,r+e):null}function ac(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var ou=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,J.safari&&e.contentDOM.addEventListener("input",()=>null),J.gecko&&ek(e.contentDOM.ownerDocument)}handleEvent(e){!F1(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,t);for(let n of r.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=W1(e),r=this.handlers,n=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(n.removeEventListener(s,this.handleEvent),a=null),a||n.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&n.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&z0.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),J.android&&J.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(J.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(E0.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||V1.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&J.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&L1(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:J.safari&&!J.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function L1(i){return i.visualViewport?i.visualViewport.height*i.visualViewport.scale/i.document.documentElement.clientHeight<.85:!1}function kb(i,e){return(t,r)=>{try{return e.call(i,r,t)}catch(n){ti(t.state,n)}}}function W1(i){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of i){let n=r.spec,s=n&&n.plugin.domEventHandlers,o=n&&n.plugin.domEventObservers;if(s)for(let a in s){let l=s[a];l&&t(a).handlers.push(kb(r.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(kb(r.value,l))}}for(let r in Ei)t(r).handlers.push(Ei[r]);for(let r in Yt)t(r).observers.push(Yt[r]);return e}var E0=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],V1="dthko",z0=[16,17,18,20,91,92,224,225],Ll=6;function Wl(i){return Math.max(0,i)*.7+8}function j1(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var au=class{constructor(e,t,r,n){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=n0(e.contentDOM),this.atoms=e.state.facet(Bo).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ve.allowMultipleSelections)&&q1(e,t),this.dragging=I1(e,t)&&L0(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&j1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,r=0,n=0,s=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Yu(this.view);e.clientX-l.left<=n+Ll?t=-Wl(n-e.clientX):e.clientX+l.right>=o-Ll&&(t=Wl(e.clientX-o)),e.clientY-l.top<=s+Ll?r=-Wl(s-e.clientY):e.clientY+l.bottom>=a-Ll&&(r=Wl(e.clientY-a)),this.setScrollSpeed(t,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,r=Z0(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!r.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:r,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function q1(i,e){let t=i.state.facet(m0);return t.length?t[0](e):J.mac?e.metaKey:e.ctrlKey}function D1(i,e){let t=i.state.facet(g0);return t.length?t[0](e):J.mac?!e.altKey:!e.ctrlKey}function I1(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let r=qo(i.root);if(!r||r.rangeCount==0)return!0;let n=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function F1(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=Ke.get(t))&&r.isWidget()&&!r.isHidden&&r.widget.ignoreEvent(e))return!1;return!0}var Ei=Object.create(null),Yt=Object.create(null),Y0=J.ie&&J.ie_version<15||J.ios&&J.webkit_version<604;function B1(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),M0(i,t.value)},50)}function xc(i,e,t){for(let r of i.facet(e))t=r(t,i);return t}function M0(i,e){e=xc(i.state,Uu,e);let{state:t}=i,r,n=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(lu!=null&&t.selection.ranges.every(l=>l.empty)&&lu==s.toString()){let l=-1;r=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==l)return{range:c};l=h.from;let O=t.toText((o?s.line(n++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:O},range:U.cursor(c.from+O.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(n++);return{changes:{from:l.from,to:l.to,insert:c.text},range:U.cursor(l.from+c.length)}}):r=t.replaceSelection(s);i.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}Yt.scroll=i=>{let e=i.inputState;e.lastScrollTop=i.scrollDOM.scrollTop,e.lastScrollLeft=i.scrollDOM.scrollLeft,J.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Yt.wheel=Yt.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};Ei.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);Yt.touchstart=(i,e)=>{let t=i.inputState,r=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),r&&(t.lastTouchX=r.clientX,t.lastTouchY=r.clientY),t.setSelectionOrigin("select.pointer")};Yt.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};Yt.touchend=(i,e)=>{i.inputState.touchActive=!1};Ei.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of i.state.facet(b0))if(t=r(i,e),t)break;if(!t&&e.button==0&&(t=N1(i,e)),t){let r=!i.hasFocus;i.inputState.startMouseSelection(new au(i,e,t,r)),r&&i.observer.ignore(()=>{a0(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let n=i.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function Tb(i,e,t,r){if(r==1)return U.cursor(e,t);if(r==2)return _1(i.state,e,t);{let n=i.docView.lineAt(e,t),s=i.state.doc.lineAt(n?n.posAtEnd:e),o=n?n.posAtStart:s.from,a=n?n.posAtEnd:s.to;return aDate.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(_b+1)%3:1}function N1(i,e){let t=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),r=L0(e),n=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),n=n.map(s.changes))},get(s,o,a){let l=i.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,h=Tb(i,l.pos,l.assoc,r);if(t.pos!=l.pos&&!o){let O=Tb(i,t.pos,t.assoc,r),f=Math.min(O.from,h.from),u=Math.max(O.to,h.to);h=f1&&(c=H1(n,l.pos))?c:a?n.addRange(h):U.create([h])}}}function H1(i,e){for(let t=0;t=e)return U.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}Ei.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let n=i.docView.tile.nearest(e.target);if(n&&n.isWidget()){let s=n.posAtStart,o=s+n.length;(s>=t.to||o<=t.from)&&(t=U.undirectionalRange(s,o))}}let{inputState:r}=i;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",xc(i.state,Au,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Ei.dragend=i=>(i.inputState.draggedContent=null,!1);function Zb(i,e,t,r){if(t=xc(i.state,Uu,t),!t)return;let n=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=r&&s&&D1(i,e)?{from:s.from,to:s.to}:null,a={from:n,insert:t},l=i.state.changes(o?[o,a]:a);i.focus(),i.dispatch({changes:l,selection:{anchor:l.mapPos(n,-1),head:l.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}Ei.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),n=0,s=()=>{++n==t.length&&Zb(i,e,r.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return Zb(i,e,r,!0),!0}return!1};Ei.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=Y0?null:e.clipboardData;return t?(M0(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(B1(i),!1)};function K1(i,e){let t=i.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),i.focus()},50)}function J1(i){let e=[],t=[],r=!1;for(let n of i.selection.ranges)n.empty||(e.push(i.sliceDoc(n.from,n.to)),t.push(n));if(!e.length){let n=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>n&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),n=o.number}r=!0}return{text:xc(i,Au,e.join(i.lineBreak)),ranges:t,linewise:r}}var lu=null;Ei.copy=Ei.cut=(i,e)=>{if(!Co(i.contentDOM,i.observer.selectionRange))return!1;let{text:t,ranges:r,linewise:n}=J1(i.state);if(!t&&!n)return!1;lu=n?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Y0?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(K1(i,t),!1)};var W0=It.define();function V0(i,e){let t=[];for(let r of i.facet(Q0)){let n=r(i,e);n&&t.push(n)}return t.length?i.update({effects:t,annotations:W0.of(!0)}):null}function j0(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=V0(i.state,e);t?i.dispatch(t):i.update([])}},10)}Yt.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),j0(i)};Yt.blur=i=>{i.observer.clearSelectionRange(),j0(i)};Yt.compositionstart=Yt.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};Yt.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,J.chrome&&J.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};Yt.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};Ei.beforeinput=(i,e)=>{var t,r;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let a=o[0],l=i.posAtDOM(a.startContainer,a.startOffset),c=i.posAtDOM(a.endContainer,a.endOffset);return Mu(i,{from:l,to:c,insert:i.state.toText(s)},null),!0}}let n;if(J.chrome&&J.android&&(n=E0.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let s=((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return J.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),J.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>Yt.compositionend(i,e),20),!1};var Cb=new Set;function ek(i){Cb.has(i)||(Cb.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var Ub=["pre-wrap","normal","pre-line","break-spaces"],ks=!1;function Ab(){ks=!1}var cu=class{constructor(e){this.lineWrapping=e,this.doc=Pe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Ub.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=n,this.lineLength=s,l){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Gl&&(ks=!0),this.height=e)}replace(e,t,r){return i.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,n){let s=this,o=r.doc;for(let a=n.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:h,toB:O}=n[a],f=s.lineAt(l,Fe.ByPosNoHeight,r.setDoc(t),0,0),u=f.to>=c?f:s.lineAt(c,Fe.ByPosNoHeight,r,0,0);for(O+=u.to-c,c=u.to;a>0&&f.from<=n[a-1].toA;)l=n[a-1].fromA,h=n[a-1].fromB,a--,ls*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,n-=a.size}else if(s>n*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(n=s&&o(this.lineAt(0,Fe.ByPos,r,n,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more&&this.setMeasuredHeight(n),this.outdated=!1,this}toString(){return`block(${this.length})`}},gi=class i extends cc{constructor(e,t,r){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=r}mainBlock(e,t){return new Ui(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,r){let n=r[0];return r.length==1&&(n instanceof i||n instanceof Ar&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Ar?n=new i(n.length,this.height,this.spaceAbove):n.height=this.height,this.outdated||(n.outdated=!1),n):ii.of(r)}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more?this.setMeasuredHeight(n):(r||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Ar=class i extends ii{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,s=n-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:n,perLine:o,perChar:a}}blockAt(e,t,r,n){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,n);if(t.lineWrapping){let c=n+(e0){let s=r[r.length-1];s instanceof i?r[r.length-1]=new i(s.length+n):r.push(null,new i(n-1))}if(e>0){let s=r[0];s instanceof i?r[0]=new i(e+s.length):r.unshift(new i(e-1),null)}return ii.of(r)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,r=!1,n){let s=t+this.length;if(n&&n.from<=t+this.length&&n.more){let o=[],a=Math.max(t,n.from),l=-1;for(n.from>t&&o.push(new i(n.from-t-1).updateHeight(e,t));a<=s&&n.more;){let h=e.doc.lineAt(a).length;o.length&&o.push(null);let O=n.heights[n.index++],f=0;O<0&&(f=-O,O=n.heights[n.index++]),l==-1?l=O:Math.abs(O-l)>=Gl&&(l=-2);let u=new gi(h,O,f);u.outdated=!1,o.push(u),a+=h+1}a<=s&&o.push(null,new i(s-a).updateHeight(e,a));let c=ii.of(o);return(l<0||Math.abs(c.height-this.height)>=Gl||Math.abs(l-this.heightMetrics(e,t).perLine)>=Gl)&&(ks=!0),lc(this,c)}else(r||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},Ou=class extends ii{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,n){let s=r+this.left.height;return ea))return c;let h=t==Fe.ByPosNoHeight?Fe.ByPosNoHeight:Fe.ByPos;return l?c.join(this.right.lineAt(a,h,r,o,a)):this.left.lineAt(a,h,r,n,s).join(c)}forEachLine(e,t,r,n,s,o){let a=n+this.left.height,l=s+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,Fe.ByPos,r,n,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&Eb(s,o-1),t=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,n=r+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?ii.of(this.break?[e,null,t]:[e,t]):(this.left=lc(this.left,e),this.right=lc(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,r=!1,n){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return n&&n.from<=t+s.length&&n.more?l=s=s.updateHeight(e,t,r,n):s.updateHeight(e,t,r),n&&n.from<=a+o.length&&n.more?l=o=o.updateHeight(e,a,r,n):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Eb(i,e){let t,r;i[e]==null&&(t=i[e-1])instanceof Ar&&(r=i[e+1])instanceof Ar&&i.splice(e-1,3,new Ar(t.length+1+r.length))}var ik=5,fu=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let r=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof gi?n.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new gi(r-this.pos,-1,0)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e=ik)&&this.addLineDeco(n,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new gi(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let r=new Ar(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof gi)return e;let t=new gi(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let n=this.ensureLine();n.length+=r,n.collapsed+=r,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof gi)&&!this.isCovered?this.nodes.push(new gi(0,-1,0)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&O.overflow!="visible"){let f=h.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==i.parentNode?n.innerHeight:l,f.bottom)}c=O.position=="absolute"||O.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function sk(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left0&&e.top0}function ok(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Mo=class{constructor(e,t,r,n){this.from=e,this.to=t,this.size=r,this.displaySize=n}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;rtypeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new cu(r),this.stateDeco=Yb(t),this.heightMap=ii.empty().applyChanges(this.stateDeco,Pe.empty,this.heightOracle.setDoc(t.doc),[new Ai(0,0,0,t.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=I.set(this.lineGaps.map(n=>n.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let n=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>n>=s&&n<=o)){let{from:s,to:o}=this.lineBlockAt(n);e.push(new bs(s,o))}}return this.viewports=e.sort((r,n)=>r.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?zb:new pu(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ro(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=Yb(this.state);let n=e.changedRanges,s=Ai.extendWithRanges(n,rk(r,this.stateDeco,e?e.changes:At.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);Ab(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||ks)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(w0)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,r=window.getComputedStyle(t),n=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?Ye.RTL:Ye.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,h=0;if(a.width&&a.height){let{scaleX:k,scaleY:P}=r0(t,a);(k>.005&&Math.abs(this.scaleX-k)>.005||P>.005&&Math.abs(this.scaleY-P)>.005)&&(this.scaleX=k,this.scaleY=P,c|=16,o=l=!0)}let O=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=O||this.paddingBottom!=f)&&(this.paddingTop=O,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let u=n0(this.view.contentDOM,!1).y;u!=this.scrollParent&&(this.scrollParent=u,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=l0(this.scrollParent||e.win);let m=(this.printing?ok:nk)(t,this.paddingTop),S=m.top-this.pixelViewport.top,w=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let C=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(C!=this.inView&&(this.inView=C,C&&(l=!0)),!this.inView&&!this.scrollTarget&&!sk(e.dom))return 0;let R=a.width;if((this.contentDOMWidth!=R||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let k=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(k)&&(o=!0),o||n.lineWrapping&&Math.abs(R-this.contentDOMWidth)>n.charWidth){let{lineHeight:P,charWidth:Z,textHeight:z}=e.docView.measureTextSize();o=P>0&&n.refresh(s,P,Z,z,Math.max(5,R/Z),k),o&&(e.docView.minWidth=0,c|=16)}S>0&&w>0?h=Math.max(S,w):S<0&&w<0&&(h=Math.min(S,w)),Ab();for(let P of this.viewports){let Z=P.from==this.viewport.from?k:e.docView.measureVisibleLineHeights(P);this.heightMap=(o?ii.empty().applyChanges(this.stateDeco,Pe.empty,this.heightOracle,[new Ai(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new hu(P.from,Z))}ks&&(c|=2)}let A=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return A&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||A)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new bs(n.lineAt(o-r*1e3,Fe.ByHeight,s,0,0).from,n.lineAt(a+(1-r)*1e3,Fe.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(cl.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),O=n.lineAt(c,Fe.ByPos,s,0,0),f;t.y=="center"?f=(O.top+O.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c=a+Math.max(10,Math.min(r,250)))&&n>o-2*1e3&&s>1,o=n<<1;if(this.defaultTextDirection!=Ye.LTR&&!r)return[];let a=[],l=(h,O,f,u)=>{if(O-hh&&ww.from>=f.from&&w.to<=f.to&&Math.abs(w.from-h)w.fromC));if(!S){if(OR.from<=O&&R.to>=O)){let R=t.moveToLineBoundary(U.cursor(O),!1,!0).head;R>h&&(O=R)}let w=this.gapSize(f,h,O,u),C=r||w<2e6?w:2e6;S=new Mo(h,O,w,C)}a.push(S)},c=h=>{if(h.length2e6)for(let P of e)P.from>=h.from&&P.fromh.from&&l(h.from,u,h,O),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let r=[];pe.spans(t,this.viewport.from,this.viewport.to,{span(s,o){r.push({from:s,to:o})},point(){}},20);let n=0;if(r.length!=this.visibleRanges.length)n=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ro(this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ro(this.heightMap.lineAt(this.scaler.fromDOM(e),Fe.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ro(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},bs=class{constructor(e,t){this.from=e,this.to=t}};function ak(i,e,t){let r=[],n=i,s=0;return pe.spans(t,i,e,{span(){},point(o,a){o>n&&(r.push({from:n,to:o}),s+=o-n),n=a}},20),n=1)return e[e.length-1].to;let r=Math.floor(i*t);for(let n=0;;n++){let{from:s,to:o}=e[n],a=o-s;if(r<=a)return s+r;r-=a}}function jl(i,e){let t=0;for(let{from:r,to:n}of i.ranges){if(e<=n){t+=e-r;break}t+=n-r}return t/i.total}function lk(i,e){for(let t of i)if(e(t))return t}var zb={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function Yb(i){let e=i.facet(bc).filter(r=>typeof r!="function"),t=i.facet(zu).filter(r=>typeof r!="function");return t.length&&e.push(pe.join(t)),e}var pu=class i{constructor(e,t,r){let n=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,Fe.ByPos,e,0,0).top,h=t.lineAt(l,Fe.ByPos,e,0,0).bottom;return n+=h-c,{from:a,to:l,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(t.height-n);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,n=0;;t++){let s=tt.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}};function Ro(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),r=e.toDOM(i.bottom);return new Ui(i.from,i.length,t,r-t,Array.isArray(i._content)?i._content.map(n=>Ro(n,e)):i._content)}var ql=K.define({combine:i=>i.join(" ")}),mu=K.define({combine:i=>i.indexOf(!0)>-1}),gu=mi.newName(),q0=mi.newName(),D0=mi.newName(),I0={"&light":"."+q0,"&dark":"."+D0};function bu(i,e,t){return new mi(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,n=>{if(n=="&")return i;if(!t||!t[n])throw new RangeError(`Unsupported selector: ${n}`);return t[n]}):i+" "+r}})}var ck=bu("."+gu,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},I0),hk={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Zf=J.ie&&J.ie_version<=11,xu=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Vf,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(J.ie&&J.ie_version<=11||J.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&J.android&&e.constructor.EDIT_CONTEXT!==!1&&!(J.chrome&&J.chrome_version<126)&&(this.editContext=new Su(e),e.state.facet(ur)&&(e.contentDOM.editContext=this.editContext.editContext)),Zf&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,r)=>t!=e[r]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:r}=this,n=this.selectionRange;if(r.state.facet(ur)?r.root.activeElement!=this.dom:!Co(this.dom,n))return;let s=n.anchorNode&&r.docView.tile.nearest(n.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(J.ie&&J.ie_version<=11||J.android&&J.chrome)&&!r.state.selection.main.empty&&n.focusNode&&Uo(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=qo(e.root);if(!t)return!1;let r=J.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Ok(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let n=Co(this.dom,r);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&vs(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,n=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(n=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:n}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),n=this.selectionChanged&&Co(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new su(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,n=U0(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!ac(this.view.state.selection,t.newSel.main))&&this.view.update([]),n}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let r=Mb(t,e.previousSibling||e.target.previousSibling,-1),n=Mb(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:n?t.posBefore(n):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(ur)!=e.state.facet(ur)&&(e.view.contentDOM.editContext=e.state.facet(ur)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function Mb(i,e,t){for(;e;){let r=Ke.get(e);if(r&&r.parent==i)return r;let n=e.parentNode;e=n!=i.dom?n:t>0?e.nextSibling:e.previousSibling}return null}function Lb(i,e){let t=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor,1);return Uo(o.node,o.offset,n,s)&&([t,r,n,s]=[n,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}}function Ok(i,e){if(e.getComposedRanges){let n=e.getComposedRanges(i.root)[0];if(n)return Lb(i,n)}let t=null;function r(n){n.preventDefault(),n.stopImmediatePropagation(),t=n.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",r,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",r,!0),t?Lb(i,t):null}var Su=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=r=>{let n=e.state.selection.main,{anchor:s,head:o}=n,a=this.toEditorPos(r.updateRangeStart),l=this.toEditorPos(r.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:r.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>r.text.length;a==this.from&&sthis.to&&(l=s);let h=A0(e.state.sliceDoc(a,l),r.text,(c?n.from:n.to)-a,c?"end":null);if(!h){let f=U.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd));ac(f,n)||e.dispatch({selection:f,userEvent:"select"});return}let O={from:h.from+a,to:h.toA+a,insert:Pe.of(r.text.slice(h.from,h.toB).split(` +`))};if((J.mac||J.android)&&O.from==o-1&&/^\. ?$/.test(r.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(O={from:a,to:l,insert:Pe.of([r.text.replace("."," ")])}),this.pendingContextChange=O,!e.state.readOnly){let f=this.to-this.from+(O.to-O.from+O.insert.length);Mu(e,O,U.single(this.toEditorPos(r.selectionStart,f),this.toEditorPos(r.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),O.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,r.updateRangeStart-1),Math.min(t.text.length,r.updateRangeStart+1)))&&this.handlers.compositionend(r)},this.handlers.characterboundsupdate=r=>{let n=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o{let n=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(l{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:r}=this.composing;this.composing=null,r&&this.reset(e.state)}};for(let r in this.handlers)t.addEventListener(r,this.handlers[r]);this.measureReq={read:r=>{let n=qo(r.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let h=c.length-(o-s);if(n&&o>=n.to)if(n.from==s&&n.to==o&&n.insert.eq(c)){n=this.pendingContextChange=null,t+=h,this.to+=h;return}else n=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),n&&!r&&this.revertPending(e.state),!r}update(e){let t=this.pendingContextChange,r=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(r.from,r.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(r,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let r=this.composing;return r&&r.drifted?r.editorBase+(e-r.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},W=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:r}=e;this.dispatchTransactions=e.dispatchTransactions||r&&(n=>n.forEach(s=>r(s,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=e.root||n1(e.parent)||document,this.viewState=new hc(this,e.state||ve.create(e)),e.scrollTo&&e.scrollTo.is(Ml)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(gs).map(n=>new Eo(n));for(let n of this.plugins)n.update(this);this.observer=new xu(this),this.inputState=new ou(this),this.inputState.ensureHandlers(this.plugins),this.docView=new sc(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof Ne?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,r=!1,n,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(W0))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=V0(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(ve.phrases)!=this.state.facet(ve.phrases))return this.setState(s);n=rc.create(this,s,e),n.flags|=a;let O=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(O&&(O=O.map(f.changes)),f.scrollIntoView){let{main:u}=f.state.selection,{x:p,y:m}=this.state.facet(i.cursorScrollMargin);O=new Ao(u.empty?u:U.cursor(u.head,u.head>u.anchor?-1:1),"nearest","nearest",m,p)}for(let u of f.effects)u.is(Ml)&&(O=u.value.clip(this.state))}this.viewState.update(n,O),this.bidiCache=Oc.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(_o)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(ql)!=n.state.facet(ql)&&(this.viewState.mustMeasureContent=!0),(t||r||O||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!n.empty)for(let f of this.state.facet(If))try{f(n)}catch(u){ti(this.state,u,"update listener")}(l||h)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),h&&!U0(this,h)&&c.force&&vs(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let r of this.plugins)r.destroy(this);this.viewState=new hc(this,e),this.plugins=e.facet(gs).map(r=>new Eo(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new sc(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(gs),r=e.state.facet(gs);if(t!=r){let n=[];for(let s of r){let o=t.indexOf(s);if(o<0)n.push(new Eo(s));else{let a=this.plugins[o];a.mustUpdate=e,n.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.viewState.scrollParent,n=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(l0(r||this.win))s=-1,o=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(n);s=u.from,o=u.top}this.updateState=1;let l=this.viewState.measure();if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(u=>{try{return u.read(this)}catch(p){return ti(this.state,p),Wb}}),O=rc.create(this,this.state,[]),f=!1;O.flags|=l,t?t.flags|=l:t=O,this.updateState=2,O.empty||(this.updatePlugins(O),this.inputState.update(O),this.updateAttrs(),f=this.docView.update(O),f&&this.docViewUpdate());for(let u=0;u1||p<-1)&&!(J.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(r==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){n=n+p,r?s<0?r.scrollTop=r.scrollHeight:r.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(If))a(t)}get themeClasses(){return gu+" "+(this.state.facet(mu)?D0:q0)+" "+this.state.facet(ql)}updateAttrs(){let e=Vb(this,P0,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(ur)?"true":"false",class:"cm-content",style:`${J.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Vb(this,Eu,t);let r=this.observer.ignore(()=>{let n=Sb(this.contentDOM,this.contentAttrs,t),s=Sb(this.dom,this.editorAttrs,e);return n||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let n of r.effects)if(n.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(_o);let e=this.state.facet(i.cspNonce);mi.mount(this.root,this.styleModules.concat(ck).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tr.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,r){return Rf(this,e,Pb(this,e,t,r))}moveByGroup(e,t){return Rf(this,e,Pb(this,e,t,r=>C1(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),n=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return U.cursor(s.side(t,n)+e.from,s.forward(!t,n)?1:-1)}moveToLineBoundary(e,t,r=!0){return Z1(this,e,t,r)}moveVertically(e,t,r){return Rf(this,e,U1(this,e,t,r))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let r=iu(this,e,t);return r&&r.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),iu(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[xi.find(n,e-r.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==Ye.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(v0)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>fk)return d0(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||u0(s.isolates,r=wb(this,e))))return s.order;r||(r=wb(this,e));let n=f1(e.text,t,r);return this.bidiCache.push(new Oc(e.from,e.to,t,r,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||J.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{a0(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var r,n,s,o;return Ml.of(new Ao(typeof e=="number"?U.cursor(e):e,(r=t.y)!==null&&r!==void 0?r:"nearest",(n=t.x)!==null&&n!==void 0?n:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return Ml.of(new Ao(U.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return je.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return je.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=mi.newName(),n=[ql.of(r),_o.of(bu(`.${r}`,e))];return t&&t.dark&&n.push(mu.of(!0)),n}static baseTheme(e){return pi.lowest(_o.of(bu("."+gu,e,I0)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),n=r&&Ke.get(r)||Ke.get(e);return((t=n==null?void 0:n.root)===null||t===void 0?void 0:t.view)||null}};W.styleModule=_o;W.inputHandler=S0;W.clipboardInputFilter=Uu;W.clipboardOutputFilter=Au;W.scrollHandler=y0;W.focusChangeEffect=Q0;W.perLineTextDirection=v0;W.exceptionSink=x0;W.updateListener=If;W.editable=ur;W.mouseSelectionStyle=b0;W.dragMovesSelection=g0;W.clickAddsSelectionRange=m0;W.decorations=bc;W.blockWrappers=k0;W.outerDecorations=zu;W.atomicRanges=Bo;W.bidiIsolatedRanges=T0;W.cursorScrollMargin=K.define({combine:i=>{let e=5,t=5;for(let r of i)typeof r=="number"?e=t=r:{x:e,y:t}=r;return{x:e,y:t}}});W.scrollMargins=X0;W.darkTheme=mu;W.cspNonce=K.define({combine:i=>i.length?i[0]:""});W.contentAttributes=Eu;W.editorAttributes=P0;W.lineWrapping=W.contentAttributes.of({class:"cm-lineWrapping"});W.announce=ae.define();var fk=4096,Wb={},Oc=class i{constructor(e,t,r,n,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=n,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],n=e.length?e[e.length-1].dir:Ye.LTR;for(let s=Math.max(0,e.length-10);s=0;n--){let s=r[n],o=typeof s=="function"?s(i):s;o&&Ru(o,t)}return t}var uk=J.mac?"mac":J.windows?"win":J.linux?"linux":"key";function dk(i,e){let t=i.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");let n,s,o,a;for(let l=0;lr.concat(n),[]))),t}function B0(i,e,t){return G0(F0(i.state),e,i,t)}var Ur=null,mk=4e3;function gk(i,e=uk){let t=Object.create(null),r=Object.create(null),n=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,h)=>{var O,f;let u=t[o]||(t[o]=Object.create(null)),p=a.split(/ (?!$)/).map(w=>dk(w,e));for(let w=1;w{let A=Ur={view:R,prefix:C,scope:o};return setTimeout(()=>{Ur==A&&(Ur=null)},mk),!0}]})}let m=p.join(" ");n(m,!1);let S=u[m]||(u[m]={preventDefault:!1,stopPropagation:!1,run:((f=(O=u._any)===null||O===void 0?void 0:O.run)===null||f===void 0?void 0:f.slice())||[]});l&&S.run.push(l),c&&(S.preventDefault=!0),h&&(S.stopPropagation=!0)};for(let o of i){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:O}=o;for(let f in h)h[f].run.push(u=>O(u,Qu))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var Qu=null;function G0(i,e,t,r){Qu=e;let n=pb(e),s=Ci(n,0),o=Cr(s)==n.length&&n!=" ",a="",l=!1,c=!1,h=!1;Ur&&Ur.view==t&&Ur.scope==r&&(a=Ur.prefix+" ",z0.indexOf(e.keyCode)<0&&(c=!0,Ur=null));let O=new Set,f=S=>{if(S){for(let w of S.run)if(!O.has(w)&&(O.add(w),w(t)))return S.stopPropagation&&(h=!0),!0;S.preventDefault&&(S.stopPropagation&&(h=!0),c=!0)}return!1},u=i[r],p,m;return u&&(f(u[a+Dl(n,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(J.windows&&e.ctrlKey&&e.altKey)&&!(J.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=fr[e.keyCode])&&p!=n?(f(u[a+Dl(p,e,!0)])||e.shiftKey&&(m=ps[e.keyCode])!=n&&m!=p&&f(u[a+Dl(m,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(u[a+Dl(n,e,!0)])&&(l=!0),!l&&f(u._any)&&(l=!0)),c&&(l=!0),l&&h&&e.stopPropagation(),Qu=null,l}var wn=class i{constructor(e,t,r,n,s){this.className=e,this.left=t,this.top=r,this.width=n,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,r){if(r.empty){let n=e.coordsAtPos(r.head,r.assoc||1);if(!n)return[];let s=N0(e);return[new i(t,n.left-s.left,n.top-s.top,null,n.bottom-n.top)]}else return bk(e,t,r)}};function N0(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==Ye.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function qb(i,e,t,r){let n=i.coordsAtPos(e,t*2);if(!n)return r;let s=i.dom.getBoundingClientRect(),o=(n.top+n.bottom)/2,a=i.posAtCoords({x:s.left+1,y:o}),l=i.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function bk(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let r=Math.max(t.from,i.viewport.from),n=Math.min(t.to,i.viewport.to),s=i.textDirection==Ye.LTR,o=i.contentDOM,a=o.getBoundingClientRect(),l=N0(i),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),O=a.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=a.right-(h?parseInt(h.paddingRight):0),u=tu(i,r,1),p=tu(i,n,-1),m=u.type==xt.Text?u:null,S=p.type==xt.Text?p:null;if(m&&(i.lineWrapping||u.widgetLineBreaks)&&(m=qb(i,r,1,m)),S&&(i.lineWrapping||p.widgetLineBreaks)&&(S=qb(i,n,-1,S)),m&&S&&m.from==S.from&&m.to==S.to)return C(R(t.from,t.to,m));{let k=m?R(t.from,null,m):A(u,!1),P=S?R(null,t.to,S):A(p,!0),Z=[];return(m||u).to<(S||p).from-(m&&S?1:0)||u.widgetLineBreaks>1&&k.bottom+i.defaultLineHeight/2ee&&ge.from=Y)break;ye>we&&se(Math.max(be,we),k==null&&be<=ee,Math.min(ye,Y),P==null&&ye>=he,N.dir)}if(we=re.to+1,we>=Y)break}return Oe.length==0&&se(ee,k==null,he,P==null,i.textDirection),{top:z,bottom:D,horizontal:Oe}}function A(k,P){let Z=a.top+(P?k.top:k.bottom);return{top:Z,bottom:Z,horizontal:[]}}}function xk(i,e){return i.constructor==e.constructor&&i.eq(e)}var vu=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Nl)!=e.state.facet(Nl)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(Nl);for(;t!xk(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let n of e)n.update&&t&&n.constructor&&this.drawn[r].constructor&&n.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(n.draw(),t);for(;t;){let n=t.nextSibling;t.remove(),t=n}this.drawn=e,J.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Nl=K.define();function H0(i){return[je.define(e=>new vu(e,i)),Nl.of(i)]}var Ts=K.define({combine(i){return ei(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Sc(i={}){return[Ts.of(i),Sk,Qk,wk,w0.of(!0)]}function K0(i){return i.startState.facet(Ts)!=i.state.facet(Ts)}var Sk=H0({above:!0,markers(i){let{state:e}=i,t=e.facet(Ts),r=[];for(let n of e.selection.ranges){let s=n==e.selection.main;if(n.empty||t.drawRangeCursor&&!(s&&J.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=n.empty?n:U.cursor(n.head,n.assoc);for(let l of wn.forRange(i,o,a))r.push(l)}}return r},update(i,e){i.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=K0(i);return t&&Db(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){Db(e.state,i)},class:"cm-cursorLayer"});function Db(i,e){e.style.animationDuration=i.facet(Ts).cursorBlinkRate+"ms"}var Qk=H0({above:!1,markers(i){let e=[],{main:t,ranges:r}=i.state.selection;for(let n of r)if(!n.empty)for(let s of wn.forRange(i,"cm-selectionBackground",n))e.push(s);if(J.ios&&!t.empty&&i.state.facet(Ts).iosSelectionHandles){for(let n of wn.forRange(i,"cm-selectionHandle cm-selectionHandle-start",U.cursor(t.from,1)))e.push(n);for(let n of wn.forRange(i,"cm-selectionHandle cm-selectionHandle-end",U.cursor(t.to,1)))e.push(n)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||K0(i)},class:"cm-selectionLayer"}),vk=J.gecko&&J.gecko_version==153?"#ffffff01":"transparent",wk=pi.highest(W.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:`${vk} !important`},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),J0=ae.define({map(i,e){return i==null?null:e.mapPos(i)}}),Zo=Te.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,r)=>r.is(J0)?r.value:t,i)}}),yk=je.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Zo);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Zo)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Zo),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let r=i.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-r.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Zo)!=i&&this.view.dispatch({effects:J0.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function ex(){return[Zo,yk]}function Ib(i,e,t,r,n){e.lastIndex=0;for(let s=i.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)n(o+a.index,a)}function $k(i,e){let t=i.visibleRanges;if(t.length==1&&t[0].from==i.viewport.from&&t[0].to==i.viewport.to)return t;let r=[];for(let{from:n,to:s}of t)n=Math.max(i.state.doc.lineAt(n).from,n-e),s=Math.min(i.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=n?r[r.length-1].to=s:r.push({from:n,to:s});return r}var Io=class{constructor(e){let{regexp:t,decoration:r,decorate:n,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,n)this.addMatch=(a,l,c,h)=>n(h,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,h)=>{let O=r(a,l,c);O&&h(c,c+a[0].length,O)};else if(r)this.addMatch=(a,l,c,h)=>h(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new Zi,r=t.add.bind(t);for(let{from:n,to:s}of $k(e,this.maxLength))Ib(e.state.doc,this.regexp,n,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(r=Math.min(a,r),n=Math.max(l,n))}),e.viewportMoved||n-r>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,t.map(e.changes),r,n):t}updateRange(e,t,r,n){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,n);if(a>=o){let l=e.state.doc.lineAt(o),c=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){h=o;break}for(;af.push(w.range(m,S));if(l==c)for(this.regexp.lastIndex=h-l.from;(u=this.regexp.exec(l.text))&&u.indexthis.addMatch(S,e,m,p));t=t.update({filterFrom:h,filterTo:O,filter:(m,S)=>mO,add:f})}}return t}},wu=/x/.unicode!=null?"gu":"g",Pk=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,wu),kk={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Cf=null;function Tk(){var i;if(Cf==null&&typeof document!="undefined"&&document.body){let e=document.body.style;Cf=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return Cf||!1}var Hl=K.define({combine(i){let e=ei(i,{render:null,specialChars:Pk,addSpecialChars:null});return(e.replaceTabs=!Tk())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,wu)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,wu)),e}});function tx(i={}){return[Hl.of(i),Xk()]}var Fb=null;function Xk(){return Fb||(Fb=je.fromClass(class{constructor(i){this.view=i,this.decorations=I.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(Hl)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new Io({regexp:i.specialChars,decoration:(e,t,r)=>{let{doc:n}=t.state,s=Ci(e[0],0);if(s==9){let o=n.lineAt(r),a=t.state.tabSize,l=Et(o.text,a,r-o.from);return I.replace({widget:new $u((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=I.replace({widget:new yu(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(Hl);i.startState.facet(Hl)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var _k="\u2022";function Rk(i){return i>=32?_k:i==10?"\u2424":String.fromCharCode(9216+i)}var yu=class extends at{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Rk(this.code),r=e.state.phrase("Control character")+" "+(kk[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,r,t);if(n)return n;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},$u=class extends at{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function Qc(){return Ck}var Zk=I.line({class:"cm-activeLine"}),Ck=je.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let r of i.state.selection.ranges){let n=i.lineBlockAt(r.head);n.from>e&&(t.push(Zk.range(n.from)),e=n.from)}return I.set(t)}},{decorations:i=>i.decorations});var Pu=2e3;function Uk(i,e,t){let r=Math.min(e.line,t.line),n=Math.max(e.line,t.line),s=[];if(e.off>Pu||t.off>Pu||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=n;l++){let c=i.doc.line(l);c.length<=a&&s.push(U.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=n;l++){let c=i.doc.line(l),h=zl(c.text,o,i.tabSize,!0);if(h<0)s.push(U.cursor(c.to));else{let O=zl(c.text,a,i.tabSize);s.push(U.range(c.from+h,c.from+O))}}}return s}function Ak(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function Bb(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),r=i.state.doc.lineAt(t),n=t-r.from,s=n>Pu?-1:n==r.length?Ak(i,e.clientX):Et(r.text,i.state.tabSize,t-r.from);return{line:r.number,col:s,off:n}}function Ek(i,e){let t=Bb(i,e),r=i.state.selection;return t?{update(n){if(n.docChanged){let s=n.changes.mapPos(n.startState.doc.line(t.line).from),o=n.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(n.changes)}},get(n,s,o){let a=Bb(i,n);if(!a)return r;let l=Uk(i.state,t,a);return l.length?o?U.create(l.concat(r.ranges)):U.create(l):r}}:null}function vc(i){let e=(i==null?void 0:i.eventFilter)||(t=>t.altKey&&t.button==0);return W.mouseSelectionStyle.of((t,r)=>e(r)?Ek(t,r):null)}var zk={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},Yk={style:"cursor: crosshair"};function wc(i={}){let[e,t]=zk[i.key||"Alt"],r=je.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||t(n))},keyup(n){(n.keyCode==e||!t(n))&&this.set(!1)},mousemove(n){this.set(t(n))}}});return[r,W.contentAttributes.of(n=>{var s;return!((s=n.plugin(r))===null||s===void 0)&&s.isDown?Yk:null})]}var Il="-10000px",fc=class{constructor(e,t,r,n){this.facet=t,this.createTooltipView=r,this.removeTooltipView=n,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let n=e.state.facet(this.facet),s=n.filter(l=>l);if(n===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;lt[c]=l),t.length=a.length),this.input=n,this.tooltips=s,this.tooltipViews=o,!0}};function Mk(i){let e=i.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}var Uf=K.define({combine:i=>{var e,t,r;return{position:J.ios?"absolute":((e=i.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(n=>n.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=i.find(n=>n.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||Mk}}}),Gb=new WeakMap,ix=je.fromClass(class{constructor(i){this.view=i,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(Uf);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new fc(i,Lu,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),i.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i,this.above);e&&this.observeIntersection();let t=e||i.geometryChanged,r=i.state.facet(Uf);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i,e){let t=i.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),i.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",t.dom.appendChild(n)}return t.dom.style.position=this.position,t.dom.style.top=Il,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var i,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(i=r.destroy)===null||i===void 0||i.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:s}=this.manager.tooltipViews[0];if(J.safari){let o=s.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!s.offsetParent&&s.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let s=this.parent.getBoundingClientRect();s.width&&s.height&&(i=s.width/this.parent.offsetWidth,e=s.height/this.parent.offsetHeight)}else({scaleX:i,scaleY:e}=this.view.viewState);let r=this.view.scrollDOM.getBoundingClientRect(),n=Yu(this.view);return{visible:{left:r.left+n.left,top:r.top+n.top,right:r.right-n.right,bottom:r.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((s,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(s.pos):this.view.coordsAtPos(s.pos)}),size:this.manager.tooltipViews.map(({dom:s})=>s.getBoundingClientRect()),space:this.view.state.facet(Uf).tooltipSpace(this.view),scaleX:i,scaleY:e,makeAbsolute:t}}writeMeasure(i){var e;if(i.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:r,scaleX:n,scaleY:s}=i,o=[];for(let a=0;a=Math.min(t.bottom,r.bottom)||O.rightMath.min(t.right,r.right)+.1)){h.style.top=Il;continue}let u=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,p=u?7:0,m=f.right-f.left,S=(e=Gb.get(c))!==null&&e!==void 0?e:f.bottom-f.top,w=c.offset||Wk,C=this.view.textDirection==Ye.LTR,R=f.width>r.right-r.left?C?r.left:r.right-f.width:C?Math.max(r.left,Math.min(O.left-(u?14:0)+w.x,r.right-m)):Math.min(Math.max(r.left,O.left-m+(u?14:0)-w.x),r.right-m),A=this.above[a];!l.strictSide&&(A?O.top-S-p-w.yr.bottom)&&A==r.bottom-O.bottom>O.top-r.top&&(A=this.above[a]=!A);let k=(A?O.top-r.top:r.bottom-O.bottom)-p;if(kR&&z.topP&&(P=A?z.top-S-2-p:z.bottom+p+2);if(this.position=="absolute"?(h.style.top=(P-i.parent.top)/s+"px",Nb(h,(R-i.parent.left)/n)):(h.style.top=P/s+"px",Nb(h,R/n)),u){let z=O.left+(C?w.x:-w.x)-(R+14-7);u.style.left=z/n+"px"}c.overlap!==!0&&o.push({left:R,top:P,right:Z,bottom:P+S}),h.classList.toggle("cm-tooltip-above",A),h.classList.toggle("cm-tooltip-below",!A),c.positioned&&c.positioned(i.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let i of this.manager.tooltipViews)i.dom.style.top=Il}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Nb(i,e){let t=parseInt(i.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(i.style.left=e+"px")}var Lk=W.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Wk={x:0,y:0},Lu=K.define({enables:[ix,Lk]}),uc=K.define({combine:i=>i.reduce((e,t)=>e.concat(t),[])}),dc=class i{static create(e){return new i(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new fc(e,uc,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let n=r[e];if(n!==void 0){if(t===void 0)t=n;else if(t!==n)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},Vk=Lu.compute([uc],i=>{let e=i.facet(uc);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:dc.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),jk=K.define(),ku=class{constructor(e,t,r,n,s,o){this.view=e,this.source=t,this.field=r,this.locked=n,this.setHover=s,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(e){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(n)).find(c=>c.from<=n&&c.to>=n),l=a&&a.dir==Ye.RTL?-1:1;s=t.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];n&&this.locked.set(l,n),e.dispatch({effects:this.setHover.of(l)})}};if(s&&"then"in s){let a=this.pending={pos:t};s.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>ti(e.state,l,"hover tooltip"))}else o(s)}get tooltip(){let e=this.view.plugin(ix),t=e?e.manager.tooltips.findIndex(r=>r.create==dc.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:s}=this;if(n.length&&!this.locked.has(n)&&s&&!qk(s.dom,e)||this.pending){let{pos:o}=n[0]||this.pending,a=(r=(t=n[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!Dk(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length&&!this.locked.has(t)){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t);let{active:n}=this;n.length&&!this.locked.has(n)&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},Fl=4;function qk(i,e){let{left:t,right:r,top:n,bottom:s}=i.getBoundingClientRect(),o;if(o=i.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();n=Math.min(a.top,n),s=Math.max(a.bottom,s)}return e.clientX>=t-Fl&&e.clientX<=r+Fl&&e.clientY>=n-Fl&&e.clientY<=s+Fl}function Dk(i,e,t,r,n,s){let o=i.scrollDOM.getBoundingClientRect(),a=i.documentTop+i.documentPadding.top+i.contentHeight;if(o.left>r||o.rightn||Math.min(o.bottom,a)=e&&l<=t}function rx(i,e={}){let t=ae.define(),r=new WeakMap,n=Te.define({create(){return[]},update(o,a){let l=r.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(c=>!e.hideOn(a,c)))),a.docChanged&&o.length){let c=[];for(let h of o){let O=a.changes.mapPos(h.pos,-1,Ot.TrackDel);if(O!=null){let f=Object.assign(Object.create(null),h);f.pos=O,f.end!=null&&(f.end=a.changes.mapPos(f.end)),c.push(f)}}o=c}for(let c of a.effects)c.is(t)&&(o=c.value,l=void 0),(c.is(Ik)&&!c.value||c.value==n)&&(o=[]);return o.length&&l&&r.set(o,l),o},provide:o=>uc.from(o)}),s=je.define(o=>new ku(o,i,n,r,t,e.hoverTime||300));return{active:n,extension:[n,s,jk.of(s),Vk]}}var Ik=ae.define();var Hb=K.define({combine(i){let e,t;for(let r of i)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Wu(i,e){let t=i.plugin(nx),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}var nx=je.fromClass(class{constructor(i){this.input=i.state.facet(Fo),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(i));let e=i.state.facet(Hb);this.top=new xs(i,!0,e.topContainer),this.bottom=new xs(i,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(i){let e=i.state.facet(Hb);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new xs(i.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new xs(i.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=i.state.facet(Fo);if(t!=this.input){let r=t.filter(l=>l),n=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),h;c<0?(h=l(i.view),a.push(h)):(h=this.panels[c],h.update&&h.update(i)),n.push(h),(h.top?s:o).push(h)}this.specs=r,this.panels=n,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(i)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:i=>W.scrollMargins.of(e=>{let t=e.plugin(i);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),xs=class{constructor(e,t,r){this.view=e,this.top=t,this.container=r,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Kb(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Kb(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function Kb(i){let e=i.nextSibling;return i.remove(),e}var Fo=K.define({enables:nx});function sx(i,e){let t,r=new Promise(o=>t=o),n=o=>Fk(o,e,t);i.state.field(Af,!1)?i.dispatch({effects:ox.of(n)}):i.dispatch({effects:ae.appendConfig.of(Af.init(()=>[n]))});let s=ax.of(n);return{close:s,result:r.then(o=>((i.win.queueMicrotask||(l=>i.win.setTimeout(l,10)))(()=>{i.state.field(Af).indexOf(n)>-1&&i.dispatch({effects:s})}),o))}}var Af=Te.define({create(){return[]},update(i,e){for(let t of e.effects)t.is(ox)?i=[t.value].concat(i):t.is(ax)&&(i=i.filter(r=>r!=t.value));return i},provide:i=>Fo.computeN([i],e=>e.field(i))}),ox=ae.define(),ax=ae.define();function Fk(i,e,t){let r=e.content?e.content(i,()=>o(null)):null;if(!r){if(r=rt("form"),e.input){let a=rt("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),r.appendChild(rt("label",(e.label||"")+": ",a))}else r.appendChild(document.createTextNode(e.label||""));r.appendChild(document.createTextNode(" ")),r.appendChild(rt("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let n=r.nodeName=="FORM"?[r]:r.querySelectorAll("form");for(let a=0;a{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let s=rt("div",r,rt("button",{onclick:()=>o(null),"aria-label":i.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));e.class&&(s.className=e.class),s.classList.add("cm-dialog");function o(a){s.contains(s.ownerDocument.activeElement)&&i.focus(),t(a)}return{dom:s,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=r.querySelector(e.focus):a=r.querySelector("input")||r.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}var nt=class extends di{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};nt.prototype.elementClass="";nt.prototype.toDOM=void 0;nt.prototype.mapMode=Ot.TrackBefore;nt.prototype.startSide=nt.prototype.endSide=-1;nt.prototype.point=!0;var Kl=K.define(),Bk=K.define(),Gk={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>pe.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Lo=K.define();function Yr(i){return[lx(),Lo.of(st(st({},Gk),i))]}var Tu=K.define({combine:i=>i.some(e=>e)});function lx(i){let e=[Nk];return i&&i.fixed===!1&&e.push(Tu.of(!0)),e}var Nk=je.fromClass(class{constructor(i){this.view=i,this.domAfter=null,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(Lo).map(e=>new pc(i,e)),this.fixed=!i.state.facet(Tu);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}if(i.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Tu)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=pe.iter(this.view.state.facet(Kl),this.view.viewport.from),r=[],n=this.gutters.map(s=>new _u(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==xt.Text&&o){Xu(t,r,a.from);for(let l of n)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of n)l.widget(this.view,a)}else if(s.type==xt.Text){Xu(t,r,s.from);for(let o of n)o.line(this.view,s,r)}else if(s.widget)for(let o of n)o.widget(this.view,s);for(let s of n)s.finish();i&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(i){let e=i.startState.facet(Lo),t=i.state.facet(Lo),r=i.docChanged||i.heightChanged||i.viewportChanged||!pe.eq(i.startState.facet(Kl),i.state.facet(Kl),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let n of this.gutters)n.update(i)&&(r=!0);else{r=!0;let n=[];for(let s of t){let o=e.indexOf(s);o<0?n.push(new pc(this.view,s)):(this.gutters[o].update(i),n.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),n.indexOf(s)<0&&s.destroy();for(let s of n)s.config.side=="after"?this.getDOMAfter().appendChild(s.dom):this.dom.appendChild(s.dom);this.gutters=n}return r}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:i=>W.scrollMargins.of(e=>{let t=e.plugin(i);if(!t||t.gutters.length==0||!t.fixed)return null;let r=t.dom.offsetWidth*e.scaleX,n=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Ye.LTR?{left:r,right:n}:{right:r,left:n}})});function Jb(i){return Array.isArray(i)?i:[i]}function Xu(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var _u=class{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=pe.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:n}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==n.elements.length){let a=new mc(e,o,s,r);n.elements.push(a),n.dom.appendChild(a.dom)}else n.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let n=[];Xu(this.cursor,n,t.from),r.length&&(n=n.concat(r));let s=this.gutter.config.lineMarker(e,t,n);s&&n.unshift(s);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,n)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t),n=r?[r]:null;for(let s of e.state.facet(Bk)){let o=s(e,t.widget,t);o&&(n||(n=[])).push(o)}n&&this.addElement(e,t,n)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},pc=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let r in t.domEventHandlers)this.dom.addEventListener(r,n=>{let s=n.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=n.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,n)&&n.preventDefault()});this.markers=Jb(t.markers(e)),t.initialSpacer&&(this.spacer=new mc(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Jb(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let r=e.view.viewport;return!pe.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},mc=class{constructor(e,t,r,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,n)}update(e,t,r,n){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),Hk(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,t){let r="cm-gutterElement",n=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=ss(a,l,c)||o(a,l,c):o}return r}})}}),Wo=class extends nt{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Ef(i,e){return i.state.facet(Ss).formatNumber(e,i.state)}var eT=Lo.compute([Ss],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Kk)},lineMarker(e,t,r){return r.some(n=>n.toDOM)?null:new Wo(Ef(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,r)=>{for(let n of e.state.facet(Jk)){let s=n(e,t,r);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet(Ss)!=e.state.facet(Ss),initialSpacer(e){return new Wo(Ef(e,e0(e.state.doc.lines)))},updateSpacer(e,t){let r=Ef(t.view,e0(t.view.state.doc.lines));return r==e.number?e:new Wo(r)},domEventHandlers:i.facet(Ss).domEventHandlers,side:"before"}));function yc(i={}){return[Ss.of(i),lx(),eT]}function e0(i){let e=9;for(;e{let e=[],t=-1;for(let r of i.selection.ranges){let n=i.doc.lineAt(r.head).from;n>t&&(t=n,e.push(tT.range(n)))}return pe.of(e)});function cx(){return iT}function hx(i){return je.define(e=>({decorations:i.createDeco(e),update(t){this.decorations=i.updateDeco(t,this.decorations)}}),{decorations:e=>e.decorations})}var rT=I.mark({class:"cm-highlightTab"}),nT=I.mark({class:"cm-highlightSpace"}),sT=hx(new Io({regexp:/\t| /g,decoration:i=>i[0]==" "?rT:nT,boundary:/\S/}));function Ox(){return sT}var oT=hx(new Io({regexp:/\s+$/g,decoration:I.mark({class:"cm-trailingSpace"})}));function fx(){return oT}var aT=0,Gt=class{constructor(e,t){this.from=e,this.to=t}},ue=class{constructor(e={}){this.id=aT++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=Je.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};ue.closedBy=new ue({deserialize:i=>i.split(" ")});ue.openedBy=new ue({deserialize:i=>i.split(" ")});ue.group=new ue({deserialize:i=>i.split(" ")});ue.isolate=new ue({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});ue.contextHash=new ue({perNode:!0});ue.lookAhead=new ue({perNode:!0});ue.mounted=new ue({perNode:!0});var Mr=class{constructor(e,t,r,n=!1){this.tree=e,this.overlay=t,this.parser=r,this.bracketed=n}static get(e){return e&&e.props&&e.props[ue.mounted.id]}},lT=Object.create(null),Je=class i{constructor(e,t,r,n=0){this.name=e,this.props=t,this.id=r,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):lT,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new i(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(n)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(ue.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let n of r.split(" "))t[n]=e[r];return r=>{for(let n=r.prop(ue.group),s=-1;s<(n?n.length:0);s++){let o=t[s<0?r.name:n[s]];if(o)return o}}}};Je.none=new Je("",Object.create(null),0,8);var mr=class i{constructor(e){this.types=e;for(let t=0;t0;for(let l=this.cursor(o|Re.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=n&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Ku(Je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,n)=>new i(this.type,t,r,n,this.propValues),e.makeTree||((t,r,n)=>new i(Je.none,t,r,n)))}static build(e){return hT(e)}};Se.empty=new Se(Je.none,[],[],0);var Vu=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},Lr=class i{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Je.none}toString(){let e=[];for(let t=0;t0));l=o[l+3]);return a}slice(e,t,r){let n=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a=e&&te;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function Go(i,e,t,r){for(var n;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?a.length:-1;e!=c;e+=t){let h=a[e],O=l[e]+o.from,f;if(!(!(s&Re.EnterBracketed&&h instanceof Se&&(f=Mr.get(h))&&!f.overlay&&f.bracketed&&r>=O&&r<=O+h.length)&&!Sx(n,r,O,O+h.length))){if(h instanceof Lr){if(s&Re.ExcludeBuffers)continue;let u=h.findChild(0,h.buffer.length,t,r-O,n);if(u>-1)return new kn(new qu(o,h,e,O),null,u)}else if(s&Re.IncludeAnonymous||!h.type.isAnonymous||Hu(h)){let u;if(!(s&Re.IgnoreMounts)&&(u=Mr.get(h))&&!u.overlay)return new i(u.tree,O,e,o);let p=new i(h,O,e,o);return s&Re.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?h.children.length-1:0,t,r,n,s)}}}if(s&Re.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,r=0){let n;if(!(r&Re.IgnoreOverlays)&&(n=Mr.get(this._tree))&&n.overlay){let s=e-this.from,o=r&Re.EnterBracketed&&n.bracketed;for(let{from:a,to:l}of n.overlay)if((t>0||o?a<=s:a=s:l>s))return new i(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function dx(i,e,t,r){let n=i.cursor(),s=[];if(!n.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=n.type.is(t),!n.nextSibling())return s}for(;;){if(r!=null&&n.type.is(r))return s;if(n.type.is(e)&&s.push(n.node),!n.nextSibling())return r==null?s:[]}}function ju(i,e,t=e.length-1){for(let r=i;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var qu=class{constructor(e,t,r,n){this.parent=e,this.buffer=t,this.index=r,this.start=n}},kn=class i extends kc{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,r=0){if(r&Re.ExcludeBuffers)return null;let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,n=this.index+4,s=r.buffer[this.index+3];if(s>n){let o=r.buffer[this.index+1];e.push(r.slice(n,s,o)),t.push(0)}return new Se(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Qx(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let a=new Nt(o.tree,o.overlay[0].from+s.from,-1,s);(n||(n=[r])).push(Go(a,e,t,!1))}}return n?Qx(n):r}var Xs=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~Re.EnterBracketed,e instanceof Nt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=r+n.buffer[e+1],this.to=r+n.buffer[e+2],!0}yield(e){return e?e instanceof Nt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:n}=this.buffer,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&Re.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Re.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Re.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let n=r<0?0:this.stack[r]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(n)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&Re.IncludeAnonymous||a instanceof Lr||!a.type.isAnonymous||Hu(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;t=o,r=s+1;break e}n=this.stack[--s]}for(let n=r;n=0;s--){if(s<0)return ju(this._tree,e,n);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}};function Hu(i){return i.children.some(e=>e instanceof Lr||!e.type.isAnonymous||Hu(e))}function hT(i){var e;let{buffer:t,nodeSet:r,maxBufferLength:n=1024,reused:s=[],minRepeatType:o=r.types.length}=i,a=Array.isArray(t)?new Vu(t,t.length):t,l=r.types,c=0,h=0;function O(k,P,Z,z,D,Oe){let{id:se,start:ee,end:he,size:ge}=a,we=h,Y=c;if(ge<0)if(a.next(),ge==-1){let He=s[se];Z.push(He),z.push(ee-k);return}else if(ge==-3){c=se;return}else if(ge==-4){h=se;return}else throw new RangeError(`Unrecognized record size: ${ge}`);let re=l[se],N,be,ye=ee-k;if(he-ee<=n&&(be=S(a.pos-P,D))){let He=new Uint16Array(be.size-be.skip),de=a.pos-be.size,Zt=He.length;for(;a.pos>de;)Zt=w(be.start,He,Zt);N=new Lr(He,he-be.start,r),ye=be.start-k}else{let He=a.pos-ge;a.next();let de=[],Zt=[],Ti=se>=o?se:-1,Ii=0,kr=he;for(;a.pos>He;)Ti>=0&&a.id==Ti&&a.size>=0?(a.end<=kr-n&&(p(de,Zt,ee,Ii,a.end,kr,Ti,we,Y),Ii=de.length,kr=a.end),a.next()):Oe>2500?f(ee,He,de,Zt):O(ee,He,de,Zt,Ti,Oe+1);if(Ti>=0&&Ii>0&&Ii-1&&Ii>0){let Kn=u(re,Y);N=Ku(re,de,Zt,0,de.length,0,he-ee,Kn,Kn)}else N=m(re,de,Zt,he-ee,we-he,Y)}Z.push(N),z.push(ye)}function f(k,P,Z,z){let D=[],Oe=0,se=-1;for(;a.pos>P;){let{id:ee,start:he,end:ge,size:we}=a;if(we>4)a.next();else{if(se>-1&&he=0;ge-=3)ee[we++]=D[ge],ee[we++]=D[ge+1]-he,ee[we++]=D[ge+2]-he,ee[we++]=we;Z.push(new Lr(ee,D[2]-he,r)),z.push(he-k)}}function u(k,P){return(Z,z,D)=>{let Oe=0,se=Z.length-1,ee,he;if(se>=0&&(ee=Z[se])instanceof Se){if(!se&&ee.type==k&&ee.length==D)return ee;(he=ee.prop(ue.lookAhead))&&(Oe=z[se]+ee.length+he)}return m(k,Z,z,D,Oe,P)}}function p(k,P,Z,z,D,Oe,se,ee,he){let ge=[],we=[];for(;k.length>z;)ge.push(k.pop()),we.push(P.pop()+Z-D);k.push(m(r.types[se],ge,we,Oe-D,ee-Oe,he)),P.push(D-Z)}function m(k,P,Z,z,D,Oe,se){if(Oe){let ee=[ue.contextHash,Oe];se=se?[ee].concat(se):[ee]}if(D>25){let ee=[ue.lookAhead,D];se=se?[ee].concat(se):[ee]}return new Se(k,P,Z,z,se)}function S(k,P){let Z=a.fork(),z=0,D=0,Oe=0,se=Z.end-n,ee={size:0,start:0,skip:0};e:for(let he=Z.pos-k;Z.pos>he;){let ge=Z.size;if(Z.id==P&&ge>=0){ee.size=z,ee.start=D,ee.skip=Oe,Oe+=4,z+=4,Z.next();continue}let we=Z.pos-ge;if(ge<0||we=o?4:0,re=Z.start;for(Z.next();Z.pos>we;){if(Z.size<0)if(Z.size==-3||Z.size==-4)Y+=4;else break e;else Z.id>=o&&(Y+=4);Z.next()}D=re,z+=ge,Oe+=Y}return(P<0||z==k)&&(ee.size=z,ee.start=D,ee.skip=Oe),ee.size>4?ee:void 0}function w(k,P,Z){let{id:z,start:D,end:Oe,size:se}=a;if(a.next(),se>=0&&z4){let he=a.pos-(se-4);for(;a.pos>he;)Z=w(k,P,Z)}P[--Z]=ee,P[--Z]=Oe-k,P[--Z]=D-k,P[--Z]=z}else se==-3?c=z:se==-4&&(h=z);return Z}let C=[],R=[];for(;a.pos>0;)O(i.start||0,i.bufferStart||0,C,R,-1,0);let A=(e=i.length)!==null&&e!==void 0?e:C.length?R[0]+C[0].length:0;return new Se(l[i.topID],C.reverse(),R.reverse(),A)}var px=new WeakMap;function Pc(i,e){if(!i.isAnonymous||e instanceof Lr||e.type!=i)return 1;let t=px.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=i||!(r instanceof Se)){t=1;break}t+=Pc(i,r)}px.set(e,t)}return t}function Ku(i,e,t,r,n,s,o,a,l){let c=0;for(let p=r;p=h)break;P+=Z}if(R==A+1){if(P>h){let Z=p[A];u(Z.children,Z.positions,0,Z.children.length,m[A]+C);continue}O.push(p[A])}else{let Z=m[R-1]+p[R-1].length-k;O.push(Ku(i,p,m,A,R,k,Z,null,l))}f.push(k+C-s)}}return u(e,t,r,n,0),(a||l)(O,f,o)}var _s=class{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){e instanceof kn?this.setBuffer(e.context.buffer,e.index,t):e instanceof Nt&&this.map.set(e.tree,t)}get(e){return e instanceof kn?this.getBuffer(e.context.buffer,e.index):e instanceof Nt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},gr=class i{constructor(e,t,r,n,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=n,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let n=[new i(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&n.push(s);return n}static applyChanges(e,t,r=128){if(!t.length)return e;let n=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let h=a=r)for(;o&&o.from=f.from||O<=f.to||c){let u=Math.max(f.from,l)-c,p=Math.min(f.to,O)-c;f=u>=p?null:new i(u,p,f.tree,f.offset+c,a>0,!!h)}if(f&&n.push(f),o.to>O)break;o=snew Gt(n.from,n.to)):[new Gt(0,0)]:[new Gt(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let n=this.startParse(e,t,r);for(;;){let s=n.advance();if(s)return s}}},Iu=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function _c(i){return(e,t,r,n)=>new Gu(e,i,t,r,n)}var Tc=class{constructor(e,t,r,n,s,o){this.parser=e,this.parse=t,this.overlay=r,this.bracketed=n,this.target=s,this.from=o}};function mx(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Fu=class{constructor(e,t,r,n,s,o,a,l){this.parser=e,this.predicate=t,this.mounts=r,this.index=n,this.start=s,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}},Bu=new ue({perNode:!0}),Gu=class{constructor(e,t,r,n,s){this.nest=t,this.input=r,this.fragments=n,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let r=this.baseParse.advance();if(!r)return null;if(this.baseParse=null,this.baseTree=r,this.startInner(),this.stoppedAt!=null)for(let n of this.inner)n.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let r=this.baseTree;return this.stoppedAt!=null&&(r=new Se(r.type,r.children,r.positions,r.length,r.propValues.concat([[Bu,this.stoppedAt]]))),r}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[ue.mounted.id]=new Mr(t,e.overlay,e.parser,e.bracketed),e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)a=!1;else if(e.hasNode(n)){if(t){let c=t.mounts.find(h=>h.frag.from<=n.from&&h.frag.to>=n.to&&h.mount.overlay);if(c)for(let h of c.mount.overlay){let O=h.from+c.pos,f=h.to+c.pos;O>=n.from&&f<=n.to&&!t.ranges.some(u=>u.fromO)&&t.ranges.push({from:O,to:f})}}a=!1}else if(r&&(o=OT(r.ranges,n.from,n.to)))a=o!=2;else if(!n.type.isAnonymous&&(s=this.nest(n,this.input))&&(n.fromnew Gt(O.from-n.from,O.to-n.from)):null,!!s.bracketed,n.tree,h.length?h[0].from:n.from)),s.overlay?h.length&&(r={ranges:h,depth:0,prev:r}):a=!1}}else if(t&&(l=t.predicate(n))&&(l===!0&&(l=new Gt(n.from,n.to)),l.from=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&n.firstChild())t&&t.depth++,r&&r.depth++;else for(;!n.nextSibling();){if(!n.parent())break e;if(t&&!--t.depth){let c=bx(this.ranges,t.ranges);c.length&&(mx(c),this.inner.splice(t.index,0,new Tc(t.parser,t.parser.startParse(this.input,xx(t.mounts,c),c),t.ranges.map(h=>new Gt(h.from-t.start,h.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}r&&!--r.depth&&(r=r.prev)}}}};function OT(i,e,t){for(let r of i){if(r.from>=t)break;if(r.to>e)return r.from<=e&&r.to>=t?2:1}return 0}function gx(i,e,t,r,n,s){if(e=e&&t.enter(r,1,Re.IgnoreOverlays|Re.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof Se)t=t.children[0];else break}return!1}},Nu=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let r=this.curFrag=e[0];this.curTo=(t=r.tree.prop(Bu))!==null&&t!==void 0?t:r.to,this.inner=new Xc(r.tree,-r.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Bu))!==null&&e!==void 0?e:t.to,this.inner=new Xc(t.tree,-t.offset)}}findMounts(e,t){var r;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(r=s.tree)===null||r===void 0?void 0:r.prop(ue.mounted);if(o&&o.parser==t)for(let a=this.fragI;a=s.to)break;l.tree==this.curFrag.tree&&n.push({frag:l,pos:s.from-l.offset,mount:o})}}}return n}};function bx(i,e){let t=null,r=e;for(let n=1,s=0;n=a)break;l.to<=o||(t||(r=t=e.slice()),l.froma&&t.splice(s+1,0,new Gt(a,l.to))):l.to>a?t[s--]=new Gt(a,l.to):t.splice(s--,1))}}return r}function uT(i,e,t,r){let n=0,s=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let h=n==i.length?1e9:o?i[n].to:i[n].from,O=s==e.length?1e9:a?e[s].to:e[s].from;if(o!=a){let f=Math.max(l,t),u=Math.min(h,O,r);fnew Gt(f.from+r,f.to+r)),O=uT(e,h,l,c);for(let f=0,u=l;;f++){let p=f==O.length,m=p?c:O[f].from;if(m>u&&t.push(new gr(u,m,n.tree,-o,s.from>=u||s.openStart,s.to<=m||s.openEnd)),p)break;u=O[f].to}}else t.push(new gr(l,c,n.tree,-o,s.from>=o||s.openStart,s.to<=a||s.openEnd))}return t}var dT=0,ri=class i{constructor(e,t,r,n){this.name=e,this.set=t,this.base=r,this.modified=n,this.id=dT++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let r=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let n=new i(r,[],null,[]);if(n.set.push(n),t)for(let s of t.set)n.set.push(s);return n}static defineModifier(e){let t=new Uc(e);return r=>r.modified.indexOf(t)>-1?r:Uc.get(r.base||r,r.modified.concat(t).sort((n,s)=>n.id-s.id))}},pT=0,Uc=class i{constructor(e){this.name=e,this.instances=[],this.id=pT++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&mT(t,a.modified));if(r)return r;let n=[],s=new ri(e.name,n,e,t);for(let a of t)a.instances.push(s);let o=gT(t);for(let a of e.set)if(!a.modified.length)for(let l of o)n.push(i.get(a,l));return s}};function mT(i,e){return i.length==e.length&&i.every((t,r)=>t==e[r])}function gT(i){let e=[[]];for(let t=0;tr.length-t.length)}function St(i){let e=Object.create(null);for(let t in i){let r=i[t];Array.isArray(r)||(r=[r]);for(let n of t.split(" "))if(n){let s=[],o=2,a=n;for(let O=0;;){if(a=="..."&&O>0&&O+3==n.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+n);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),O+=f[0].length,O==n.length)break;let u=n[O++];if(O==n.length&&u=="!"){o=0;break}if(u!="/")throw new RangeError("Invalid path: "+n);a=n.slice(O)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+n);let h=new Xn(r,o,l>0?s.slice(0,l):null);e[c]=h.sort(e[c])}}return yx.add(e)}var yx=new ue({combine(i,e){let t,r,n;for(;i||e;){if(!i||e&&i.depth>=e.depth?(n=e,e=e.next):(n=i,i=i.next),t&&t.mode==n.mode&&!n.context&&!t.context)continue;let s=new Xn(n.tags,n.mode,n.context);t?t.next=s:r=s,t=s}return r}}),Xn=class{constructor(e,t,r,n){this.tags=e,this.mode=t,this.context=r,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function bT(i,e){let t=null;for(let r of i){let n=r.style(e);n&&(t=t?t+" "+n:n)}return t}function $x(i,e,t,r=0,n=i.length){let s=new ed(r,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),r,n,"",s.highlighters),s.flush(n)}var ed=class{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,r,n,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(u=>!u.scope||u.scope(o)));let c=n,h=rd(e)||Xn.empty,O=bT(s,h.tags);if(O&&(c&&(c+=" "),c+=O,h.mode==1&&(n+=(n?" ":"")+O)),this.startSpan(Math.max(t,a),c),h.opaque)return;let f=e.tree&&e.tree.prop(ue.mounted);if(f&&f.overlay){let u=e.node.enter(f.overlay[0].from+a,1),p=this.highlighters.filter(S=>!S.scope||S.scope(f.tree.type)),m=e.firstChild();for(let S=0,w=a;;S++){let C=S=R||!e.nextSibling())););if(!C||R>r)break;w=C.to+a,w>t&&(this.highlightRange(u.cursor(),Math.max(t,C.from+a),Math.min(r,w),"",p),this.startSpan(Math.min(r,w),c))}m&&e.parent()}else if(e.firstChild()){f&&(n="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,n,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}};function rd(i){let e=i.type.prop(yx);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var H=ri.define,Rc=H(),Wr=H(),vx=H(Wr),wx=H(Wr),Vr=H(),Zc=H(Vr),Ju=H(Vr),ir=H(),Tn=H(ir),er=H(),tr=H(),td=H(),No=H(td),Cc=H(),d={comment:Rc,lineComment:H(Rc),blockComment:H(Rc),docComment:H(Rc),name:Wr,variableName:H(Wr),typeName:vx,tagName:H(vx),propertyName:wx,attributeName:H(wx),className:H(Wr),labelName:H(Wr),namespace:H(Wr),macroName:H(Wr),literal:Vr,string:Zc,docString:H(Zc),character:H(Zc),attributeValue:H(Zc),number:Ju,integer:H(Ju),float:H(Ju),bool:H(Vr),regexp:H(Vr),escape:H(Vr),color:H(Vr),url:H(Vr),keyword:er,self:H(er),null:H(er),atom:H(er),unit:H(er),modifier:H(er),operatorKeyword:H(er),controlKeyword:H(er),definitionKeyword:H(er),moduleKeyword:H(er),operator:tr,derefOperator:H(tr),arithmeticOperator:H(tr),logicOperator:H(tr),bitwiseOperator:H(tr),compareOperator:H(tr),updateOperator:H(tr),definitionOperator:H(tr),typeOperator:H(tr),controlOperator:H(tr),punctuation:td,separator:H(td),bracket:No,angleBracket:H(No),squareBracket:H(No),paren:H(No),brace:H(No),content:ir,heading:Tn,heading1:H(Tn),heading2:H(Tn),heading3:H(Tn),heading4:H(Tn),heading5:H(Tn),heading6:H(Tn),contentSeparator:H(ir),list:H(ir),quote:H(ir),emphasis:H(ir),strong:H(ir),link:H(ir),monospace:H(ir),strikethrough:H(ir),inserted:H(),deleted:H(),changed:H(),invalid:H(),meta:Cc,documentMeta:H(Cc),annotation:H(Cc),processingInstruction:H(Cc),definition:ri.defineModifier("definition"),constant:ri.defineModifier("constant"),function:ri.defineModifier("function"),standard:ri.defineModifier("standard"),local:ri.defineModifier("local"),special:ri.defineModifier("special")};for(let i in d){let e=d[i];e instanceof ri&&(e.name=i)}var lz=id([{tag:d.link,class:"tok-link"},{tag:d.heading,class:"tok-heading"},{tag:d.emphasis,class:"tok-emphasis"},{tag:d.strong,class:"tok-strong"},{tag:d.keyword,class:"tok-keyword"},{tag:d.atom,class:"tok-atom"},{tag:d.bool,class:"tok-bool"},{tag:d.url,class:"tok-url"},{tag:d.labelName,class:"tok-labelName"},{tag:d.inserted,class:"tok-inserted"},{tag:d.deleted,class:"tok-deleted"},{tag:d.literal,class:"tok-literal"},{tag:d.string,class:"tok-string"},{tag:d.number,class:"tok-number"},{tag:[d.regexp,d.escape,d.special(d.string)],class:"tok-string2"},{tag:d.variableName,class:"tok-variableName"},{tag:d.local(d.variableName),class:"tok-variableName tok-local"},{tag:d.definition(d.variableName),class:"tok-variableName tok-definition"},{tag:d.special(d.variableName),class:"tok-variableName2"},{tag:d.definition(d.propertyName),class:"tok-propertyName tok-definition"},{tag:d.typeName,class:"tok-typeName"},{tag:d.namespace,class:"tok-namespace"},{tag:d.className,class:"tok-className"},{tag:d.macroName,class:"tok-macroName"},{tag:d.propertyName,class:"tok-propertyName"},{tag:d.operator,class:"tok-operator"},{tag:d.comment,class:"tok-comment"},{tag:d.meta,class:"tok-meta"},{tag:d.invalid,class:"tok-invalid"},{tag:d.punctuation,class:"tok-punctuation"}]);var nd,xr=new ue;function Rs(i){return K.define({combine:i?e=>e.concat(i):void 0})}var Yc=new ue,Tt=class{constructor(e,t,r=[],n=""){this.data=e,this.name=n,ve.prototype.hasOwnProperty("tree")||Object.defineProperty(ve.prototype,"tree",{get(){return _e(this)}}),this.parser=t,this.extension=[rr.of(this),ve.languageData.of((s,o,a)=>{let l=Px(s,o,a),c=l.type.prop(xr);if(!c)return[];let h=s.facet(c),O=l.type.prop(Yc);if(O){let f=l.resolve(o-l.from,a);for(let u of O)if(u.test(f,s)){let p=s.facet(u.facet);return u.type=="replace"?p:p.concat(h)}}return h})].concat(r)}isActiveAt(e,t,r=-1){return Px(e,t,r).type.prop(xr)==this.data}findRegions(e){let t=e.facet(rr);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],n=(s,o)=>{if(s.prop(xr)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(ue.mounted);if(a){if(a.tree.prop(xr)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(n(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function _e(i){let e=i.field(Tt.state,!1);return e?e.tree:Se.empty}var ld=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}},Ho=null,_n=class i{constructor(e,t,r=[],n,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=n,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new i(e,t,[],Se.empty,0,r,[],null)}startParse(){return this.parser.startParse(new ld(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Se.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(gr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ho;Ho=this;try{return e()}finally{Ho=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=kx(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:n,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,h,O,f)=>l.push({fromA:c,toA:h,fromB:O,toB:f})),r=gr.applyChanges(r,l),n=Se.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),O=e.mapPos(c.to,-1);he.from&&(this.fragments=kx(this.fragments,n,s),this.skipped.splice(r--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends br{createParse(t,r,n){let s=n[0].from,o=n[n.length-1].to;return{parsedPos:s,advance(){let l=Ho;if(l){for(let c of n)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new Se(Je.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ho}};function kx(i,e,t){return gr.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Jo=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=_n.create(e.facet(rr).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new i(r)}};Tt.state=Te.define({create:Jo.init,update(i,e){for(let t of e.effects)if(t.is(Tt.setState))return t.value;return e.startState.facet(rr)!=e.state.facet(rr)?Jo.init(e.state):i.apply(e)}});var Ex=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(Ex=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var sd=typeof navigator!="undefined"&&(!((nd=navigator.scheduling)===null||nd===void 0)&&nd.isInputPending)?()=>navigator.scheduling.isInputPending():null,xT=je.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Tt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Tt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Ex(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,l=s.context.work(()=>sd&&sd()||Date.now()>o,n+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Tt.setState.of(new Jo(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>ti(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),rr=K.define({combine(i){return i.length?i[0]:null},enables:i=>[Tt.state,xT,W.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),Ee=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},ea=class i{constructor(e,t,r,n,s,o=void 0){this.name=e,this.alias=t,this.extensions=r,this.filename=n,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:r}=e;if(!t){if(!r)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(r)}return new i(e.name,(e.alias||[]).concat(e.name).map(n=>n.toLowerCase()),e.extensions||[],e.filename,t,r)}static matchFilename(e,t){for(let n of e)if(n.filename&&n.filename.test(t))return n;let r=/\.([^.]+)$/.exec(t);if(r){for(let n of e)if(n.extensions.indexOf(r[1])>-1)return n}return null}static matchLanguageName(e,t,r=!0){t=t.toLowerCase();for(let n of e)if(n.alias.some(s=>s==t))return n;if(r)for(let n of e)for(let s of n.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return n}return null}},gd=K.define(),Si=K.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function jr(i){let e=i.facet(Si);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Zs(i,e){let t="",r=i.tabSize,n=i.facet(Si)[0];if(n==" "){for(;e>=r;)t+=" ",e-=r;n=" "}for(let s=0;s=e?ST(i,t,e):null}var Rn=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=jr(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:s}=this.options;return n!=null&&n>=r.from&&n<=r.to?s&&n==e?{text:"",from:e}:(t<0?n-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Et(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:n}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(n);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Qi=new ue;function ST(i,e,t){let r=e.resolveStack(t),n=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(n!=r.node){let s=[];for(let o=n;o&&!(o.fromr.node.to||o.from==r.node.from&&o.type==r.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return zx(r,i,t)}function zx(i,e,t){for(let r=i;r;r=r.next){let n=vT(r.node);if(n)return n(cd.create(e,t,r))}return 0}function QT(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function vT(i){let e=i.type.prop(Qi);if(e)return e;let t=i.firstChild,r;if(t&&(r=t.type.prop(ue.closedBy))){let n=i.lastChild,s=n&&r.indexOf(n.name)>-1;return o=>Yx(o,!0,1,void 0,s&&!QT(o)?n.from:void 0)}return i.parent==null?wT:null}function wT(){return 0}var cd=class i extends Rn{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new i(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(yT(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return zx(this.context.next,this.base,this.pos)}};function yT(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function $T(i){let e=i.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let n=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=n==null||n<=s.from?s.to:Math.min(s.to,n);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function Lc({closing:i,align:e=!0,units:t=1}){return r=>Yx(r,e,t,i)}function Yx(i,e,t,r,n){let s=i.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||n==i.pos+o,l=e?$T(i):null;return l?a?i.column(l.from):i.column(l.to):i.baseIndent+(a?0:i.unit*t)}var Wc=i=>i.baseIndent;function nr({except:i,units:e=1}={}){return t=>{let r=i&&i.test(t.textAfter);return t.baseIndent+(r?0:e*t.unit)}}var PT=200;function Mx(){return ve.transactionFilter.of(i=>{if(!i.docChanged||!i.isUserEvent("input.type")&&!i.isUserEvent("input.complete"))return i;let e=i.startState.languageDataAt("indentOnInput",i.startState.selection.main.head);if(!e.length)return i;let t=i.newDoc,{head:r}=i.newSelection.main,n=t.lineAt(r);if(r>n.from+PT)return i;let s=t.sliceString(n.from,r);if(!e.some(c=>c.test(s)))return i;let{state:o}=i,a=-1,l=[];for(let{head:c}of o.selection.ranges){let h=o.doc.lineAt(c);if(h.from==a)continue;a=h.from;let O=Mc(o,h.from);if(O==null)continue;let f=/^\s*/.exec(h.text)[0],u=Zs(o,O);f!=u&&l.push({from:h.from,to:h.from+f.length,insert:u})}return l.length?[i,{changes:l,sequential:!0}]:i})}var bd=K.define(),Xt=new ue;function vi(i){let e=i.firstChild,t=i.lastChild;return e&&e.tot)continue;if(s&&a.from=e&&c.to>t&&(s=c)}}return s}function TT(i){let e=i.lastChild;return e&&e.to==i.to&&e.type.isError}function Tx(i,e,t){for(let r of i.facet(bd)){let n=r(i,e,t);if(n)return n}return kT(i,e,t)}function Lx(i,e){let t=e.mapPos(i.from,1),r=e.mapPos(i.to,-1);return t>=r?void 0:{from:t,to:r}}var Wx=ae.define({map:Lx}),xd=ae.define({map:Lx});var Ac=Te.define({create(){return I.none},update(i,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((r,n)=>i=Xx(i,r,n)),i=i.map(e.changes);let t=[];for(let r of e.effects)r.is(Wx)&&!XT(i,r.value.from,r.value.to)?t.push(r.value):r.is(xd)&&(i=i.update({filter:(n,s)=>r.value.from!=n||r.value.to!=s,filterFrom:r.value.from,filterTo:r.value.to}));if(t.length){let{preparePlaceholder:r}=e.state.facet(Sd),n=t.map(s=>(r?I.replace({widget:new Od(r(e.state,s))}):_x).range(s.from,s.to));i=i.update({add:n})}return e.selection&&(i=Xx(i,e.selection.main.head)),i},provide:i=>W.decorations.from(i),toJSON(i,e){let t=[];return i.between(0,e.doc.length,(r,n)=>{t.push(r,n)}),t},fromJSON(i){if(!Array.isArray(i)||i.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{ne&&(r=!0)}),r?i.update({filterFrom:e,filterTo:t,filter:(n,s)=>n>=t||s<=e}):i}function hd(i,e,t){var r;let n=null;return(r=i.field(Ac,!1))===null||r===void 0||r.between(e,t,(s,o)=>{(!n||n.from>s)&&(n={from:s,to:o})}),n}function XT(i,e,t){let r=!1;return i.between(e,e,(n,s)=>{n==e&&s==t&&(r=!0)}),r}var _T={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},Sd=K.define({combine(i){return ei(i,_T)}});function RT(i){let e=[Ac,CT];return i&&e.push(Sd.of(i)),e}function Vx(i,e){let{state:t}=i,r=t.facet(Sd),n=o=>{let a=i.lineBlockAt(i.posAtDOM(o.target)),l=hd(i.state,a.from,a.to);l&&i.dispatch({effects:xd.of(l)}),o.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(i,n,e);let s=document.createElement("span");return s.textContent=r.placeholderText,s.setAttribute("aria-label",t.phrase("folded code")),s.title=t.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=n,s}var _x=I.replace({widget:new class extends at{toDOM(i){return Vx(i,null)}}}),Od=class extends at{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Vx(e,this.value)}},ZT={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1},Ko=class extends nt{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function jx(i={}){let e=st(st({},ZT),i),t=new Ko(e,!0),r=new Ko(e,!1),n=je.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(rr)!=o.state.facet(rr)||o.startState.field(Ac,!1)!=o.state.field(Ac,!1)||_e(o.startState)!=_e(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new Zi;for(let l of o.viewportLineBlocks){let c=hd(o.state,l.from,l.to)?r:Tx(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:s}=e;return[n,Yr({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(n))===null||a===void 0?void 0:a.markers)||pe.empty},initialSpacer(){return new Ko(e,!1)},domEventHandlers:Ol(st({},s),{click:(o,a,l)=>{if(s.click&&s.click(o,a,l))return!0;let c=hd(o.state,a.from,a.to);if(c)return o.dispatch({effects:xd.of(c)}),!0;let h=Tx(o.state,a.from,a.to);return h?(o.dispatch({effects:Wx.of(h)}),!0):!1}})}),RT()]}var CT=W.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),qr=class i{constructor(e,t){this.specs=e;let r;function n(a){let l=mi.newName();return(r||(r=Object.create(null)))["."+l]=a,l}let s=typeof t.all=="string"?t.all:t.all?n(t.all):void 0,o=t.scope;this.scope=o instanceof Tt?a=>a.prop(xr)==o.data:o?a=>a==o:void 0,this.style=id(e.map(a=>({tag:a.tag,class:a.class||n(Object.assign({},a,{tag:null}))})),{all:s}).style,this.module=r?new mi(r):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},fd=K.define(),qx=K.define({combine(i){return i.length?[i[0]]:null}});function od(i){let e=i.facet(fd);return e.length?e:i.facet(qx)}function Vc(i,e){let t=[UT],r;return i instanceof qr&&(i.module&&t.push(W.styleModule.of(i.module)),r=i.themeType),e!=null&&e.fallback?t.push(qx.of(i)):r?t.push(fd.computeN([W.darkTheme],n=>n.facet(W.darkTheme)==(r=="dark")?[i]:[])):t.push(fd.of(i)),t}var ud=class{constructor(e){this.markCache=Object.create(null),this.tree=_e(e.state),this.decorations=this.buildDeco(e,od(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=_e(e.state),r=od(e.state),n=r!=od(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||n)&&(this.tree=t,this.decorations=this.buildDeco(e.view,r),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return I.none;let r=new Zi;for(let{from:n,to:s}of e.visibleRanges)$x(this.tree,t,(o,a,l)=>{r.add(o,a,this.markCache[l]||(this.markCache[l]=I.mark({class:l})))},n,s);return r.finish()}},UT=pi.high(je.fromClass(ud,{decorations:i=>i.decorations})),mz=qr.define([{tag:d.meta,color:"#404740"},{tag:d.link,textDecoration:"underline"},{tag:d.heading,textDecoration:"underline",fontWeight:"bold"},{tag:d.emphasis,fontStyle:"italic"},{tag:d.strong,fontWeight:"bold"},{tag:d.strikethrough,textDecoration:"line-through"},{tag:d.keyword,color:"#708"},{tag:[d.atom,d.bool,d.url,d.contentSeparator,d.labelName],color:"#219"},{tag:[d.literal,d.inserted],color:"#164"},{tag:[d.string,d.deleted],color:"#a11"},{tag:[d.regexp,d.escape,d.special(d.string)],color:"#e40"},{tag:d.definition(d.variableName),color:"#00f"},{tag:d.local(d.variableName),color:"#30a"},{tag:[d.typeName,d.namespace],color:"#085"},{tag:d.className,color:"#167"},{tag:[d.special(d.variableName),d.macroName],color:"#256"},{tag:d.definition(d.propertyName),color:"#00c"},{tag:d.comment,color:"#940"},{tag:d.invalid,color:"#f00"}]),AT=W.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Dx=1e4,Ix="()[]{}",Fx=K.define({combine(i){return ei(i,{afterCursor:!0,brackets:Ix,maxScanDistance:Dx,renderMatch:YT})}}),ET=I.mark({class:"cm-matchingBracket"}),zT=I.mark({class:"cm-nonmatchingBracket"});function YT(i){let e=[],t=i.matched?ET:zT;return e.push(t.range(i.start.from,i.start.to)),i.end&&e.push(t.range(i.end.from,i.end.to)),e}function Rx(i){let e=[],t=i.facet(Fx);for(let r of i.selection.ranges){if(!r.empty)continue;let n=zi(i,r.head,-1,t)||r.head>0&&zi(i,r.head-1,1,t)||t.afterCursor&&(zi(i,r.head,1,t)||r.headi.decorations}),LT=[MT,AT];function Bx(i={}){return[Fx.of(i),LT]}var Qd=new ue;function dd(i,e,t){let r=i.prop(e<0?ue.openedBy:ue.closedBy);if(r)return r;if(i.name.length==1){let n=t.indexOf(i.name);if(n>-1&&n%2==(e<0?1:0))return[t[n+e]]}return null}function pd(i){let e=i.type.prop(Qd);return e?e(i.node):i}function zi(i,e,t,r={}){let n=r.maxScanDistance||Dx,s=r.brackets||Ix,o=_e(i),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=dd(l.type,t,s);if(c&&l.from0?e>=h.from&&eh.from&&e<=h.to))return WT(i,e,t,l,h,c,s)}}return VT(i,e,t,o,a.type,n,s)}function WT(i,e,t,r,n,s,o){let a=r.parent,l={from:n.from,to:n.to},c=0,h=a==null?void 0:a.cursor();if(h&&(t<0?h.childBefore(r.from):h.childAfter(r.to)))do if(t<0?h.to<=r.from:h.from>=r.to){if(c==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},h=i.doc.iterRange(e,t>0?i.doc.length:0),O=0;for(let f=0;!h.next().done&&f<=s;){let u=h.value;t<0&&(f+=u.length);let p=e+f*t;for(let m=t>0?0:u.length-1,S=t>0?u.length:-1;m!=S;m+=t){let w=o.indexOf(u[m]);if(!(w<0||r.resolveInner(p+m,1).type!=n))if(w%2==0==t>0)O++;else{if(O==1)return{start:c,end:{from:p+m,to:p+m+1},matched:w>>1==l>>1};O--}}t>0&&(f+=u.length)}return h.done?{start:c,matched:!1}:null}function Zx(i,e,t,r=0,n=0){e==null&&(e=i.search(/[^\s\u00a0]/),e==-1&&(e=i.length));let s=n;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosr?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return n(s)==n(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}}current(){return this.string.slice(this.start,this.pos)}};function jT(i){return{name:i.name||"",token:i.token,blankLine:i.blankLine||(()=>{}),startState:i.startState||(()=>!0),copyState:i.copyState||qT,indent:i.indent||(()=>null),languageData:i.languageData||{},tokenTable:i.tokenTable||wd,mergeTokens:i.mergeTokens!==!1}}function qT(i){if(typeof i!="object")return i;let e={};for(let t in i){let r=i[t];e[t]=r instanceof Array?r.slice():r}return e}var Cx=new WeakMap,ft=class i extends Tt{constructor(e){let t=Rs(e.languageData),r=jT(e),n,s=new class extends br{createParse(o,a,l){return new md(n,o,a,l)}};super(t,s,[],e.name),this.topNode=BT(t,this),n=this,this.streamParser=r,this.stateAfter=new ue({perNode:!0}),this.tokenTable=e.tokenTable?new zc(r.tokenTable):FT}static define(e){return new i(e)}getIndent(e){let t,{overrideIndentation:r}=e.options;r&&(t=Cx.get(e.state),t!=null&&t1e4)return null;for(;s=r&&t+e.length<=n&&e.prop(i.stateAfter);if(s)return{state:i.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let a=e.children[o],l=t+e.positions[o],c=a instanceof Se&&l=e.length)return e;!n&&t==0&&e.type==i.topNode&&(n=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],a=e.children[s],l;if(ot&&vd(i,s.tree,0-s.offset,t,a),c;if(l&&l.pos<=r&&(c=Gx(i,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:c}}return{state:i.streamParser.startState(n?jr(n):4),tree:Se.empty}}var md=class{constructor(e,t,r,n){this.lang=e,this.input=t,this.fragments=r,this.ranges=n,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=n[n.length-1].to;let s=_n.get(),o=n[0].from,{state:a,tree:l}=DT(e,r,o,this.to,s==null?void 0:s.state);this.state=a,this.parsedPos=this.chunkStart=o+l.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(jr(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=_n.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),r=Math.min(t,this.chunkStart+512);for(e&&(r=Math.min(r,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` `&&(t="");else{let r=t.indexOf(` -`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let n=this.rangeIndex;;){let s=this.ranges[n].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),n++,n==this.ranges.length))break;let o=this.ranges[n].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let n=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?n>s:n>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-n}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){n=this.skipGapsTo(t,n,1),t+=n;let a=this.chunk.length;n=this.skipGapsTo(r,n,-1),r+=n,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),n}parseLine(e){let{line:t,end:r}=this.nextLine(),n=0,{streamParser:s}=this.lang,o=new Ec(t,e?e.state.tabSize:4,e?jr(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Ix(s.token,o,this.state);if(a&&(n=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,n)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return n}throw new Error("Stream parser failed to advance stream.")}var vd=Object.create(null),ta=[Je.none],YX=new mr(ta),_x=[],Rx=Object.create(null),Fx=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Fx[i]=Bx(vd,e);var zc=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Fx)}resolve(e){return e?this.table[e]||(this.table[e]=Bx(this.extra,e)):0}},MX=new zc(vd);function od(i,e){_x.indexOf(i)>-1||(_x.push(i),console.warn(e))}function Bx(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let h=i[c]||d[c];h?typeof h=="function"?l.length?l=l.map(h):od(c,`Modifier ${c} used at start of tag`):l.length?od(c,`Tag ${c} used as modifier`):l=Array.isArray(h)?h:[h]:od(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),n=r+" "+t.map(a=>a.id),s=Rx[n];if(s)return s.id;let o=Rx[n]=Je.define({id:ta.length,name:r,props:[St({[r]:t})]});return ta.push(o),o.id}function LX(i,e){let t=Je.define({id:ta.length,name:"Document",props:[xr.add(()=>i),Qi.add(()=>r=>e.getIndent(r))],top:!0});return ta.push(t),t}var az={rtl:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Ye.RTL}),ltr:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Ye.LTR}),auto:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var jc=class{constructor(e,t,r,n){this.state=e,this.pos=t,this.explicit=r,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=_e(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),n=t.text.slice(r-t.from,this.pos-t.from),s=n.search(VX(e,!1));return s<0?null:{from:r+s,to:this.pos,text:n.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Gx(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function WX(i){let e=Object.create(null),t=Object.create(null);for(let{label:n}of i){e[n[0]]=!0;for(let s=1;stypeof n=="string"?{label:n}:n),[t,r]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:WX(e);return n=>{let s=n.matchBefore(r);return s||n.explicit?{from:s?s.from:n.pos,options:e,validFor:t}:null}}function eS(i,e){return t=>{for(let r=_e(t.state).resolveInner(t.pos,-1);r;r=r.parent){if(i.indexOf(r.name)>-1)return null;if(r.type.isTop)break}return e(t)}}function VX(i,e){var t;let{source:r}=i,n=e&&r[0]!="^",s=r[r.length-1]!="$";return!n&&!s?i:new RegExp(`${n?"^":""}(?:${r})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var jX=It.define();var xz=typeof navigator=="object"&&/Win/.test(navigator.platform);var qX=W.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),yd=class{constructor(e,t,r,n){this.field=e,this.line=t,this.from=r,this.to=n}},$d=class i{constructor(e,t,r){this.field=e,this.from=t,this.to=r}map(e){let t=e.mapPos(this.from,-1,Ot.TrackDel),r=e.mapPos(this.to,1,Ot.TrackDel);return t==null||r==null?null:new i(this.field,t,r)}},Pd=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let r=[],n=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(r.length){let c=o,h=/^\t*/.exec(l)[0].length;for(let O=0;Onew $d(l.field,n[l.line]+l.from,n[l.line]+l.to));return{text:r,ranges:a}}static parse(e){let t=[],r=[],n=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1;a===0&&(a=1e9);let h=l.replace(/\\[{}]/g,O=>O[1]);for(let O=0;O=c&&f.field++}for(let O of n)if(O.line==r.length&&O.from>s.index){let f=s[2]?3+(s[1]||"").length:2;O.from-=f,O.to-=f}n.push(new yd(c,r.length,s.index,s.index+h.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let h of n)h.line==r.length&&h.from>c&&(h.from--,h.to--);return l}),r.push(o)}return new i(r,n)}},DX=I.widget({widget:new class extends at{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),IX=I.mark({class:"cm-snippetField"}),_s=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=I.set(e.map(r=>(r.from==r.to?DX:IX).range(r.from,r.to)),!0)}map(e){let t=[];for(let r of this.ranges){let n=r.map(e);if(!n)return null;t.push(n)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(r=>r.field==this.active&&r.from<=t.from&&r.to>=t.to))}},na=ae.define({map(i,e){return i&&i.map(e)}}),FX=ae.define(),ia=ke.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(na))return t.value;if(t.is(FX)&&i)return new _s(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>W.decorations.from(i,e=>e?e.deco:I.none)});function kd(i,e){return U.create(i.filter(t=>t.field==e).map(t=>U.range(t.from,t.to)))}function BX(i){let e=Pd.parse(i);return(t,r,n,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,n),{main:l}=t.state.selection,c={changes:{from:n,to:s==l.from?l.to:s,insert:$e.of(o)},scrollIntoView:!0,annotations:r?[jX.of(r),Ne.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=kd(a,0)),a.some(h=>h.field>0)){let h=new _s(a,0),O=c.effects=[na.of(h)];t.state.field(ia,!1)===void 0&&O.push(ae.appendConfig.of([ia,JX,eT,qX]))}t.dispatch(t.state.update(c))}}function tS(i){return({state:e,dispatch:t})=>{let r=e.field(ia,!1);if(!r||i<0&&r.active==0)return!1;let n=r.active+i,s=i>0&&!r.ranges.some(o=>o.field==n+i);return t(e.update({selection:kd(r.ranges,n),effects:na.of(s?null:new _s(r.ranges,n)),scrollIntoView:!0})),!0}}var GX=({state:i,dispatch:e})=>i.field(ia,!1)?(e(i.update({effects:na.of(null)})),!0):!1,NX=tS(1),HX=tS(-1);var KX=[{key:"Tab",run:NX,shift:HX},{key:"Escape",run:GX}],Nx=K.define({combine(i){return i.length?i[0]:KX}}),JX=pi.highest(Bt.compute([Nx],i=>i.facet(Nx)));function Mt(i,e){return Ol(st({},e),{apply:BX(i)})}var eT=W.domEventHandlers({mousedown(i,e){let t=e.state.field(ia,!1),r;if(!t||(r=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let n=t.ranges.find(s=>s.from<=r&&s.to>=r);return!n||n.field==t.active?!1:(e.dispatch({selection:kd(t.ranges,n.field),effects:na.of(t.ranges.some(s=>s.field>n.field)?new _s(t.ranges,n.field):null),scrollIntoView:!0}),!0)}});var ra={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},_n=ae.define({map(i,e){let t=e.mapPos(i,-1,Ot.TrackAfter);return t==null?void 0:t}}),Xd=new class extends di{};Xd.startSide=1;Xd.endSide=-1;var iS=ke.define({create(){return pe.empty},update(i,e){if(i=i.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);i=i.update({filter:r=>r>=t.from&&r<=t.to})}for(let t of e.effects)t.is(_n)&&(i=i.update({add:[Xd.range(t.value,t.value+1)]}));return i}});function rS(){return[iT,iS]}var wd="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function nS(i){for(let e=0;e{if((tT?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let n=i.state.selection.main;if(r.length>2||r.length==2&&Cr(Zi(r,0))==1||e!=n.from||t!=n.to)return!1;let s=rT(i.state,r);return s?(i.dispatch(s),!0):!1}),oS=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let r=sS(i,i.selection.main.head).brackets||ra.brackets,n=null,s=i.changeByRange(o=>{if(o.empty){let a=nT(i.doc,o.head);for(let l of r)if(l==a&&qc(i.doc,o.head)==nS(Zi(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:U.cursor(o.head-l.length)}}return{range:n=o}});return n||e(i.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!n};function rT(i,e){let t=sS(i,i.selection.main.head),r=t.brackets||ra.brackets;for(let n of r){let s=nS(Zi(n,0));if(e==n)return s==n?aT(i,n,r.indexOf(n+n+n)>-1,t):sT(i,n,s,t.before||ra.before);if(e==s&&aS(i,i.selection.main.from))return oT(i,n,s)}return null}function aS(i,e){let t=!1;return i.field(iS).between(0,i.doc.length,r=>{r==e&&(t=!0)}),t}function qc(i,e){let t=i.sliceString(e,e+2);return t.slice(0,Cr(Zi(t,0)))}function nT(i,e){let t=i.sliceString(e-2,e);return Cr(Zi(t,0))==t.length?t:t.slice(1)}function sT(i,e,t,r){let n=null,s=i.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:_n.of(o.to+e.length),range:U.range(o.anchor+e.length,o.head+e.length)};let a=qc(i.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:_n.of(o.head+e.length),range:U.cursor(o.head+e.length)}:{range:n=o}});return n?null:i.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function oT(i,e,t){let r=null,n=i.changeByRange(s=>s.empty&&qc(i.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:U.cursor(s.head+t.length)}:r={range:s});return r?null:i.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function aT(i,e,t,r){let n=r.stringPrefixes||ra.stringPrefixes,s=null,o=i.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:_n.of(a.to+e.length),range:U.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=qc(i.doc,l),h;if(c==e){if(Hx(i,l))return{changes:{insert:e+e,from:l},effects:_n.of(l+e.length),range:U.cursor(l+e.length)};if(aS(i,l)){let f=t&&i.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:U.cursor(l+f.length)}}}else{if(t&&i.sliceDoc(l-2*e.length,l)==e+e&&(h=Kx(i,l-2*e.length,n))>-1&&Hx(i,h))return{changes:{insert:e+e+e+e,from:l},effects:_n.of(l+e.length),range:U.cursor(l+e.length)};if(i.charCategorizer(l)(c)!=Me.Word&&Kx(i,l,n)>-1&&!lT(i,l,e,n))return{changes:{insert:e+e,from:l},effects:_n.of(l+e.length),range:U.cursor(l+e.length)}}return{range:s=a}});return s?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Hx(i,e){let t=_e(i).resolveInner(e+1);return t.parent&&t.from==e}function lT(i,e,t,r){let n=_e(i).resolveInner(e,-1),s=r.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=i.sliceDoc(n.from,Math.min(n.to,n.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&r.indexOf(a.slice(0,l))>-1){let h=n.firstChild;for(;h&&h.from==n.from&&h.to-h.from>t.length+l;){if(i.sliceDoc(h.to-t.length,h.to)==t)return!1;h=h.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function Kx(i,e,t){let r=i.charCategorizer(e);if(r(i.sliceDoc(e-1,e))!=Me.Word)return e;for(let n of t){let s=e-n.length;if(i.sliceDoc(s,e)==n&&r(i.sliceDoc(s-1,s))!=Me.Word)return s}return-1}var lS=Jb((i,e,t)=>{let r=_e(i.state).resolveInner(e,t),n=id(r),s="";if(n)for(let c of n.tags)s+=c.set.join(" < ")+` +`);r>-1&&(t=t.slice(0,r))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),r=e+t.length;for(let n=this.rangeIndex;;){let s=this.ranges[n].to;if(s>=r||(t=t.slice(0,s-(r-t.length)),n++,n==this.ranges.length))break;let o=this.ranges[n].from,a=this.lineAfter(o);t+=a,r=o+a.length}return{line:t,end:r}}skipGapsTo(e,t,r){for(;;){let n=this.ranges[this.rangeIndex].to,s=e+t;if(r>0?n>s:n>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-n}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){n=this.skipGapsTo(t,n,1),t+=n;let a=this.chunk.length;n=this.skipGapsTo(r,n,-1),r+=n,s+=this.chunk.length-a}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=r:this.chunk.push(e,t,r,s),n}parseLine(e){let{line:t,end:r}=this.nextLine(),n=0,{streamParser:s}=this.lang,o=new Ec(t,e?e.state.tabSize:4,e?jr(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let a=Nx(s.token,o,this.state);if(a&&(n=this.emitToken(this.lang.tokenTable.resolve(a),this.parsedPos+o.start,this.parsedPos+o.pos,n)),o.start>1e4)break}this.parsedPos=r,this.moveRangeIndex(),this.parsedPose.start)return n}throw new Error("Stream parser failed to advance stream.")}var wd=Object.create(null),ta=[Je.none],IT=new mr(ta),Ux=[],Ax=Object.create(null),Hx=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Hx[i]=Kx(wd,e);var zc=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Hx)}resolve(e){return e?this.table[e]||(this.table[e]=Kx(this.extra,e)):0}},FT=new zc(wd);function ad(i,e){Ux.indexOf(i)>-1||(Ux.push(i),console.warn(e))}function Kx(i,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let h=i[c]||d[c];h?typeof h=="function"?l.length?l=l.map(h):ad(c,`Modifier ${c} used at start of tag`):l.length?ad(c,`Tag ${c} used as modifier`):l=Array.isArray(h)?h:[h]:ad(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let r=e.replace(/ /g,"_"),n=r+" "+t.map(a=>a.id),s=Ax[n];if(s)return s.id;let o=Ax[n]=Je.define({id:ta.length,name:r,props:[St({[r]:t})]});return ta.push(o),o.id}function BT(i,e){let t=Je.define({id:ta.length,name:"Document",props:[xr.add(()=>i),Qi.add(()=>r=>e.getIndent(r))],top:!0});return ta.push(t),t}var gz={rtl:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Ye.RTL}),ltr:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Ye.LTR}),auto:I.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var jc=class{constructor(e,t,r,n){this.state=e,this.pos=t,this.explicit=r,this.view=n,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=_e(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),r=Math.max(t.from,this.pos-250),n=t.text.slice(r-t.from,this.pos-t.from),s=n.search(NT(e,!1));return s<0?null:{from:r+s,to:this.pos,text:n.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,r){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),r&&r.onDocChange&&(this.abortOnDocChange=!0))}};function Jx(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function GT(i){let e=Object.create(null),t=Object.create(null);for(let{label:n}of i){e[n[0]]=!0;for(let s=1;stypeof n=="string"?{label:n}:n),[t,r]=e.every(n=>/^\w+$/.test(n.label))?[/\w*$/,/\w+$/]:GT(e);return n=>{let s=n.matchBefore(r);return s||n.explicit?{from:s?s.from:n.pos,options:e,validFor:t}:null}}function nS(i,e){return t=>{for(let r=_e(t.state).resolveInner(t.pos,-1);r;r=r.parent){if(i.indexOf(r.name)>-1)return null;if(r.type.isTop)break}return e(t)}}function NT(i,e){var t;let{source:r}=i,n=e&&r[0]!="^",s=r[r.length-1]!="$";return!n&&!s?i:new RegExp(`${n?"^":""}(?:${r})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var HT=It.define();var Xz=typeof navigator=="object"&&/Win/.test(navigator.platform);var KT=W.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),$d=class{constructor(e,t,r,n){this.field=e,this.line=t,this.from=r,this.to=n}},Pd=class i{constructor(e,t,r){this.field=e,this.from=t,this.to=r}map(e){let t=e.mapPos(this.from,-1,Ot.TrackDel),r=e.mapPos(this.to,1,Ot.TrackDel);return t==null||r==null?null:new i(this.field,t,r)}},kd=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let r=[],n=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(r.length){let c=o,h=/^\t*/.exec(l)[0].length;for(let O=0;Onew Pd(l.field,n[l.line]+l.from,n[l.line]+l.to));return{text:r,ranges:a}}static parse(e){let t=[],r=[],n=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",c=-1;a===0&&(a=1e9);let h=l.replace(/\\[{}]/g,O=>O[1]);for(let O=0;O=c&&f.field++}for(let O of n)if(O.line==r.length&&O.from>s.index){let f=s[2]?3+(s[1]||"").length:2;O.from-=f,O.to-=f}n.push(new $d(c,r.length,s.index,s.index+h.length)),o=o.slice(0,s.index)+l+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let h of n)h.line==r.length&&h.from>c&&(h.from--,h.to--);return l}),r.push(o)}return new i(r,n)}},JT=I.widget({widget:new class extends at{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),eX=I.mark({class:"cm-snippetField"}),Cs=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=I.set(e.map(r=>(r.from==r.to?JT:eX).range(r.from,r.to)),!0)}map(e){let t=[];for(let r of this.ranges){let n=r.map(e);if(!n)return null;t.push(n)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(r=>r.field==this.active&&r.from<=t.from&&r.to>=t.to))}},na=ae.define({map(i,e){return i&&i.map(e)}}),tX=ae.define(),ia=Te.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(na))return t.value;if(t.is(tX)&&i)return new Cs(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>W.decorations.from(i,e=>e?e.deco:I.none)});function Td(i,e){return U.create(i.filter(t=>t.field==e).map(t=>U.range(t.from,t.to)))}function iX(i){let e=kd.parse(i);return(t,r,n,s)=>{let{text:o,ranges:a}=e.instantiate(t.state,n),{main:l}=t.state.selection,c={changes:{from:n,to:s==l.from?l.to:s,insert:Pe.of(o)},scrollIntoView:!0,annotations:r?[HT.of(r),Ne.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=Td(a,0)),a.some(h=>h.field>0)){let h=new Cs(a,0),O=c.effects=[na.of(h)];t.state.field(ia,!1)===void 0&&O.push(ae.appendConfig.of([ia,aX,lX,KT]))}t.dispatch(t.state.update(c))}}function sS(i){return({state:e,dispatch:t})=>{let r=e.field(ia,!1);if(!r||i<0&&r.active==0)return!1;let n=r.active+i,s=i>0&&!r.ranges.some(o=>o.field==n+i);return t(e.update({selection:Td(r.ranges,n),effects:na.of(s?null:new Cs(r.ranges,n)),scrollIntoView:!0})),!0}}var rX=({state:i,dispatch:e})=>i.field(ia,!1)?(e(i.update({effects:na.of(null)})),!0):!1,nX=sS(1),sX=sS(-1);var oX=[{key:"Tab",run:nX,shift:sX},{key:"Escape",run:rX}],eS=K.define({combine(i){return i.length?i[0]:oX}}),aX=pi.highest(Bt.compute([eS],i=>i.facet(eS)));function Mt(i,e){return Ol(st({},e),{apply:iX(i)})}var lX=W.domEventHandlers({mousedown(i,e){let t=e.state.field(ia,!1),r;if(!t||(r=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let n=t.ranges.find(s=>s.from<=r&&s.to>=r);return!n||n.field==t.active?!1:(e.dispatch({selection:Td(t.ranges,n.field),effects:na.of(t.ranges.some(s=>s.field>n.field)?new Cs(t.ranges,n.field):null),scrollIntoView:!0}),!0)}});var ra={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Zn=ae.define({map(i,e){let t=e.mapPos(i,-1,Ot.TrackAfter);return t==null?void 0:t}}),Xd=new class extends di{};Xd.startSide=1;Xd.endSide=-1;var oS=Te.define({create(){return pe.empty},update(i,e){if(i=i.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);i=i.update({filter:r=>r>=t.from&&r<=t.to})}for(let t of e.effects)t.is(Zn)&&(i=i.update({add:[Xd.range(t.value,t.value+1)]}));return i}});function aS(){return[hX,oS]}var yd="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function lS(i){for(let e=0;e{if((cX?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let n=i.state.selection.main;if(r.length>2||r.length==2&&Cr(Ci(r,0))==1||e!=n.from||t!=n.to)return!1;let s=OX(i.state,r);return s?(i.dispatch(s),!0):!1}),hS=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let r=cS(i,i.selection.main.head).brackets||ra.brackets,n=null,s=i.changeByRange(o=>{if(o.empty){let a=fX(i.doc,o.head);for(let l of r)if(l==a&&qc(i.doc,o.head)==lS(Ci(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:U.cursor(o.head-l.length)}}return{range:n=o}});return n||e(i.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!n};function OX(i,e){let t=cS(i,i.selection.main.head),r=t.brackets||ra.brackets;for(let n of r){let s=lS(Ci(n,0));if(e==n)return s==n?pX(i,n,r.indexOf(n+n+n)>-1,t):uX(i,n,s,t.before||ra.before);if(e==s&&OS(i,i.selection.main.from))return dX(i,n,s)}return null}function OS(i,e){let t=!1;return i.field(oS).between(0,i.doc.length,r=>{r==e&&(t=!0)}),t}function qc(i,e){let t=i.sliceString(e,e+2);return t.slice(0,Cr(Ci(t,0)))}function fX(i,e){let t=i.sliceString(e-2,e);return Cr(Ci(t,0))==t.length?t:t.slice(1)}function uX(i,e,t,r){let n=null,s=i.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Zn.of(o.to+e.length),range:U.range(o.anchor+e.length,o.head+e.length)};let a=qc(i.doc,o.head);return!a||/\s/.test(a)||r.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:Zn.of(o.head+e.length),range:U.cursor(o.head+e.length)}:{range:n=o}});return n?null:i.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function dX(i,e,t){let r=null,n=i.changeByRange(s=>s.empty&&qc(i.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:U.cursor(s.head+t.length)}:r={range:s});return r?null:i.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function pX(i,e,t,r){let n=r.stringPrefixes||ra.stringPrefixes,s=null,o=i.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:Zn.of(a.to+e.length),range:U.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=qc(i.doc,l),h;if(c==e){if(tS(i,l))return{changes:{insert:e+e,from:l},effects:Zn.of(l+e.length),range:U.cursor(l+e.length)};if(OS(i,l)){let f=t&&i.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:U.cursor(l+f.length)}}}else{if(t&&i.sliceDoc(l-2*e.length,l)==e+e&&(h=iS(i,l-2*e.length,n))>-1&&tS(i,h))return{changes:{insert:e+e+e+e,from:l},effects:Zn.of(l+e.length),range:U.cursor(l+e.length)};if(i.charCategorizer(l)(c)!=Me.Word&&iS(i,l,n)>-1&&!mX(i,l,e,n))return{changes:{insert:e+e,from:l},effects:Zn.of(l+e.length),range:U.cursor(l+e.length)}}return{range:s=a}});return s?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function tS(i,e){let t=_e(i).resolveInner(e+1);return t.parent&&t.from==e}function mX(i,e,t,r){let n=_e(i).resolveInner(e,-1),s=r.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=i.sliceDoc(n.from,Math.min(n.to,n.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&r.indexOf(a.slice(0,l))>-1){let h=n.firstChild;for(;h&&h.from==n.from&&h.to-h.from>t.length+l;){if(i.sliceDoc(h.to-t.length,h.to)==t)return!1;h=h.firstChild}return!0}let c=n.to==e&&n.parent;if(!c)break;n=c}return!1}function iS(i,e,t){let r=i.charCategorizer(e);if(r(i.sliceDoc(e-1,e))!=Me.Word)return e;for(let n of t){let s=e-n.length;if(i.sliceDoc(s,e)==n&&r(i.sliceDoc(s-1,s))!=Me.Word)return s}return-1}var fS=rx((i,e,t)=>{let r=_e(i.state).resolveInner(e,t),n=rd(r),s="";if(n)for(let c of n.tags)s+=c.set.join(" < ")+` `;let o=i.state.facet(rr),a=o instanceof Qt?"Lezer LRLanguage":o instanceof ft?"StreamLanguage":"Unknown",l=o instanceof Qt?"AST ":o instanceof ft?"Token ":"Name ";return{pos:e,above:!0,arrow:!0,create(c){let h=document.createElement("div");h.style.overflow="visible",h.style.height="0",h.style.width="0";let O=document.createElement("div");return O.className="cm-debug-tooltip",O.textContent=`Parser: ${a} ${l}: ${r.name} -Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.style.background="#333",O.style.color="white",O.style.padding="2px 8px",O.style.borderRadius="4px",O.style.fontSize="12px",O.style.border="1px solid #555",O.style.pointerEvents="none",O.style.position="absolute",O.style.bottom="0",O.style.width="max-content",h.appendChild(O),{dom:h}}}},{hoverTime:10,hideOnChange:!0});var Cd=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),r=Ad(i.state,t.from);return r.line?cT(i):r.block?OT(i):!1};function Ud(i,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let n=i(e,t);return n?(r(t.update(n)),!0):!1}}var cT=Ud(dT,0);var hT=Ud(gS,0);var OT=Ud((i,e)=>gS(i,e,uT(e)),0);function Ad(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var sa=50;function fT(i,{open:e,close:t},r,n){let s=i.sliceDoc(r-sa,r),o=i.sliceDoc(n,n+sa),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:n+l,margin:l&&1}};let h,O;n-r<=2*sa?h=O=i.sliceDoc(r,n):(h=i.sliceDoc(r,r+sa),O=i.sliceDoc(n-sa,n));let f=/^\s*/.exec(h)[0].length,u=/\s*$/.exec(O)[0].length,p=O.length-u-t.length;return h.slice(f,f+e.length)==e&&O.slice(p,p+t.length)==t?{open:{pos:r+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:n-u-t.length,margin:/\s/.test(O.charAt(p-1))?1:0}}:null}function uT(i){let e=[];for(let t of i.selection.ranges){let r=i.doc.lineAt(t.from),n=t.to<=r.to?r:i.doc.lineAt(t.to);n.from>r.from&&n.from==t.to&&(n=t.to==r.to+1?r:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=n.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return e}function gS(i,e,t=e.selection.ranges){let r=t.map(s=>Ad(e,s.from).block);if(!r.every(s=>s))return null;let n=t.map((s,o)=>fT(e,r[o],s.from,s.to));if(i!=2&&!n.every(s=>s))return{changes:e.changes(t.map((s,o)=>n[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(i!=1&&n.some(s=>s)){let s=[];for(let o=0,a;on&&(s==o||o>O.from)){n=O.from;let f=/^\s*/.exec(O.text)[0].length,u=f==O.length,p=O.text.slice(f,f+c.length)==c?f:-1;fs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:h,single:O}of r)(O||!h)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,h=c+l.length;o.text[h-o.from]==" "&&h++,s.push({from:c,to:h})}return{changes:s}}return null}var _d=It.define(),Fc=It.define(),pT=K.define(),bS=K.define({combine(i){return ei(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,n)=>e(r,n)||t(r,n)})}}),xS=ke.define({create(){return Rn.empty},update(i,e){let t=e.state.facet(bS),r=e.annotation(_d);if(r){let l=zi.fromTransaction(e,r.selection),c=r.side,h=c==0?i.undone:i.done;return l?h=Ic(h,h.length,t.minDepth,l):h=vS(h,e.startState.selection),new Rn(c==0?r.rest:h,c==0?h:r.rest)}let n=e.annotation(Fc);if((n=="full"||n=="before")&&(i=i.isolate()),e.annotation(Ne.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=zi.fromTransaction(e),o=e.annotation(Ne.time),a=e.annotation(Ne.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(n=="full"||n=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Rn(i.done.map(zi.fromJSON),i.undone.map(zi.fromJSON))}});function SS(i={}){return[xS,bS.of(i),W.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?oa:e.inputType=="historyRedo"?Rs:null;return r?(e.preventDefault(),r(t)):!1}})]}function Bc(i,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let n=t.field(xS,!1);if(!n)return!1;let s=n.pop(i,t,e);return s?(r(s),!0):!1}}var oa=Bc(0,!1),Rs=Bc(1,!1),mT=Bc(0,!0),gT=Bc(1,!0);var zi=class i{constructor(e,t,r,n,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=n,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(n=>n.toJSON())}}static fromJSON(e){return new i(e.changes&&At.fromJSON(e.changes),[],e.mapped&&Or.fromJSON(e.mapped),e.startSelection&&U.fromJSON(e.startSelection),e.selectionsAfter.map(U.fromJSON))}static fromTransaction(e,t){let r=wi;for(let n of e.startState.facet(pT)){let s=n(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,wi)}static selection(e){return new i(void 0,wi,void 0,void 0,e)}};function Ic(i,e,t,r){let n=e+1>t+20?e-t-1:0,s=i.slice(n,e);return s.push(r),s}function bT(i,e){let t=[],r=!1;return i.iterChangedRanges((n,s)=>t.push(n,s)),e.iterChangedRanges((n,s,o,a)=>{for(let l=0;l=c&&o<=h&&(r=!0)}}),r}function xT(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function QS(i,e){return i.length?e.length?i.concat(e):i:e}var wi=[],ST=200;function vS(i,e){if(i.length){let t=i[i.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-ST));return r.length&&r[r.length-1].eq(e)?i:(r.push(e),Ic(i,i.length-1,1e9,t.setSelAfter(r)))}else return[zi.selection([e])]}function QT(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Td(i,e){if(!i.length)return i;let t=i.length,r=wi;for(;t;){let n=vT(i[t-1],e,r);if(n.changes&&!n.changes.empty||n.effects.length){let s=i.slice(0,t);return s[t-1]=n,s}else e=n.mapped,t--,r=n.selectionsAfter}return r.length?[zi.selection(r)]:wi}function vT(i,e,t){let r=QS(i.selectionsAfter.length?i.selectionsAfter.map(a=>a.map(e)):wi,t);if(!i.changes)return zi.selection(r);let n=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new zi(n,ae.mapEffects(i.effects,e),o,i.startSelection.map(s),r)}var wT=/^(input\.type|delete)($|\.)/,Rn=class i{constructor(e,t,r=0,n=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=n}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,r,n,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!r||wT.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?i.moveByChar(t,e):Gc(t,e))}function _t(i){return i.textDirectionAt(i.state.selection.main.head)==Ye.LTR}var $S=i=>yS(i,!_t(i)),PS=i=>yS(i,_t(i));function kS(i,e){return Mi(i,t=>t.empty?i.moveByGroup(t,e):Gc(t,e))}var yT=i=>kS(i,!_t(i)),$T=i=>kS(i,_t(i));var Zz=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function PT(i,e,t){if(e.type.prop(t))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function Nc(i,e,t){let r=_e(i).resolveInner(e.head),n=t?ue.closedBy:ue.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;PT(i,c,n)?r=c:l=t?c.to:c.from}let s=r.type.prop(n),o,a;return s&&(o=t?Ei(i,r.from,1):Ei(i,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,U.cursor(a,t?-1:1)}var kT=i=>Mi(i,e=>Nc(i.state,e,!_t(i))),XT=i=>Mi(i,e=>Nc(i.state,e,_t(i)));function XS(i,e){return Mi(i,t=>{if(!t.empty)return Gc(t,e);let r=i.moveVertically(t,e);return r.head!=t.head?r:i.moveToLineBoundary(t,e)})}var TS=i=>XS(i,!1),_S=i=>XS(i,!0);function RS(i){let e=i.scrollDOM.clientHeighto.empty?i.moveVertically(o,e,t.height):Gc(o,e));if(n.eq(r.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(r.selection.main.head),a=i.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottomZS(i,!1),Rd=i=>ZS(i,!0);function Dr(i,e,t){let r=i.lineBlockAt(e.head),n=i.moveToLineBoundary(e,t);if(n.head==e.head&&n.head!=(t?r.to:r.from)&&(n=i.moveToLineBoundary(e,t,!1)),!t&&n.head==r.from&&r.length){let s=/^\s*/.exec(i.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(n=U.cursor(r.from+s))}return n}var TT=i=>Mi(i,e=>Dr(i,e,!0)),_T=i=>Mi(i,e=>Dr(i,e,!1)),RT=i=>Mi(i,e=>Dr(i,e,!_t(i))),ZT=i=>Mi(i,e=>Dr(i,e,_t(i))),CT=i=>Mi(i,e=>U.cursor(i.lineBlockAt(e.head).from,1)),UT=i=>Mi(i,e=>U.cursor(i.lineBlockAt(e.head).to,-1));function AT(i,e,t){let r=!1,n=Zs(i.selection,s=>{let o=Ei(i,s.head,-1)||Ei(i,s.head,1)||s.head>0&&Ei(i,s.head-1,1)||s.headAT(i,e,!1);function yi(i,e,t){let r=Zs(i.state.selection,n=>{n.undirectional&&n.head>=n.anchor!=e&&(n=U.range(n.head,n.anchor));let s=t(n);return U.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return r.eq(i.state.selection)?!1:(i.dispatch(Yi(i.state,r)),!0)}function CS(i,e){return yi(i,e,t=>i.moveByChar(t,e))}var US=i=>CS(i,!_t(i)),AS=i=>CS(i,_t(i));function ES(i,e){return yi(i,e,t=>i.moveByGroup(t,e))}var zT=i=>ES(i,!_t(i)),YT=i=>ES(i,_t(i));var MT=i=>{let e=!_t(i);return yi(i,e,t=>Nc(i.state,t,e))},LT=i=>{let e=_t(i);return yi(i,e,t=>Nc(i.state,t,e))};function zS(i,e){return yi(i,e,t=>i.moveVertically(t,e))}var YS=i=>zS(i,!1),MS=i=>zS(i,!0);function LS(i,e){return yi(i,e,t=>i.moveVertically(t,e,RS(i).height))}var hS=i=>LS(i,!1),OS=i=>LS(i,!0),WT=i=>yi(i,!0,e=>Dr(i,e,!0)),VT=i=>yi(i,!1,e=>Dr(i,e,!1)),jT=i=>{let e=!_t(i);return yi(i,e,t=>Dr(i,t,e))},qT=i=>{let e=_t(i);return yi(i,e,t=>Dr(i,t,e))},DT=i=>yi(i,!1,e=>U.cursor(i.lineBlockAt(e.head).from)),IT=i=>yi(i,!0,e=>U.cursor(i.lineBlockAt(e.head).to)),fS=({state:i,dispatch:e})=>(e(Yi(i,{anchor:0})),!0),uS=({state:i,dispatch:e})=>(e(Yi(i,{anchor:i.doc.length})),!0),dS=({state:i,dispatch:e})=>(e(Yi(i,{anchor:i.selection.main.anchor,head:0})),!0),pS=({state:i,dispatch:e})=>(e(Yi(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),FT=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),BT=({state:i,dispatch:e})=>{let t=Hc(i).map(({from:r,to:n})=>U.undirectionalRange(r,Math.min(n+1,i.doc.length)));return e(i.update({selection:U.create(t),userEvent:"select"})),!0},GT=({state:i,dispatch:e})=>{let t=Zs(i.selection,r=>{let n=_e(i),s=n.resolveStack(r.from,1);if(r.empty){let o=n.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from=r.to||a.to>r.to&&a.from<=r.from)&&o.next)return U.undirectionalRange(a.from,a.to)}return r});return t.eq(i.selection)?!1:(e(Yi(i,t)),!0)};function WS(i,e){let{state:t}=i,r=t.selection,n=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let a=s;;){let l=i.moveVertically(a,e);if(l.heado.to){n.some(c=>c.head==l.head)||n.push(l);break}else{if(l.head==a.head)break;a=l}}}return n.length==r.ranges.length?!1:(i.dispatch(Yi(t,U.create(n,n.length-1))),!0)}var NT=i=>WS(i,!1),HT=i=>WS(i,!0),KT=({state:i,dispatch:e})=>{let t=i.selection,r=null;return t.ranges.length>1?r=U.create([t.main]):t.main.empty||(r=U.create([U.cursor(t.main.head)])),r?(e(Yi(i,r)),!0):!1};function aa(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:r}=i,n=r.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);lo&&(t="delete.forward",l=Dc(i,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Dc(i,o,!1),a=Dc(i,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:U.cursor(o,on(i)))r.between(e,e,(n,s)=>{ne&&(e=t?s:n)});return e}var VS=(i,e,t)=>aa(i,r=>{let n=r.from,{state:s}=i,o=s.doc.lineAt(n),a,l;if(t&&!e&&n>o.from&&nVS(i,!1,!0);var jS=i=>VS(i,!0,!1),qS=(i,e)=>aa(i,t=>{let r=t.head,{state:n}=i,s=n.doc.lineAt(r),o=n.charCategorizer(r);for(let a=null;;){if(r==(e?s.to:s.from)){r==t.head&&s.number!=(e?n.doc.lines:1)&&(r+=e?1:-1);break}let l=it(s.text,r-s.from,e)+s.from,c=s.text.slice(Math.min(r,l)-s.from,Math.max(r,l)-s.from),h=o(c);if(a!=null&&h!=a)break;(c!=" "||r!=t.head)&&(a=h),r=l}return r}),DS=i=>qS(i,!1),JT=i=>qS(i,!0);var e_=i=>aa(i,e=>{let t=i.lineBlockAt(e.head).to;return e.headaa(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),i_=i=>aa(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head{if(i.readOnly)return!1;let t=i.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:$e.of(["",""])},range:U.cursor(r.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},n_=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(r=>{if(!r.empty||r.from==0||r.from==i.doc.length)return{range:r};let n=r.from,s=i.doc.lineAt(n),o=n==s.from?n-1:it(s.text,n-s.from,!1)+s.from,a=n==s.to?n+1:it(s.text,n-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:i.doc.slice(n,a).append(i.doc.slice(o,n))},range:U.cursor(a)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Hc(i){let e=[],t=-1;for(let r of i.selection.ranges){let n=i.doc.lineAt(r.from),s=i.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=i.doc.lineAt(r.to-1)),t>=n.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:n.from,to:s.to,ranges:[r]});t=s.number+1}return e}function IS(i,e,t){if(i.readOnly)return!1;let r=[],n=[];for(let s of Hc(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let l of s.ranges)n.push(U.range(Math.min(i.doc.length,l.anchor+a),Math.min(i.doc.length,l.head+a)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let l of s.ranges)n.push(U.range(l.anchor-a,l.head-a))}}return r.length?(e(i.update({changes:r,scrollIntoView:!0,selection:U.create(n,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var s_=({state:i,dispatch:e})=>IS(i,e,!1),o_=({state:i,dispatch:e})=>IS(i,e,!0);function FS(i,e,t){if(i.readOnly)return!1;let r=[];for(let s of Hc(i))t?r.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):r.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});let n=i.changes(r);return e(i.update({changes:n,selection:i.selection.map(n,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var a_=({state:i,dispatch:e})=>FS(i,e,!1),l_=({state:i,dispatch:e})=>FS(i,e,!0),Kc=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Hc(e).map(({from:n,to:s})=>(n>0?n--:s{let s;if(i.lineWrapping){let o=i.lineBlockAt(n.head),a=i.coordsAtPos(n.head,n.assoc||1);a&&(s=o.bottom+i.documentTop-a.bottom+i.defaultLineHeight/2)}return i.moveVertically(n,!0,s)}).map(t);return i.dispatch({changes:t,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function c_(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=_e(i).resolveInner(e),r=t.childBefore(e),n=t.childAfter(e),s;return r&&n&&r.to<=e&&n.from>=e&&(s=r.type.prop(ue.closedBy))&&s.indexOf(n.name)>-1&&i.doc.lineAt(r.to).from==i.doc.lineAt(n.from).from&&!/\S/.test(i.sliceDoc(r.to,n.from))?{from:r.to,to:n.from}:null}var mS=BS(!1),h_=BS(!0);function BS(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{let{from:s,to:o}=n,a=e.doc.lineAt(s),l=!i&&s==o&&c_(e,s);i&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new Tn(e,{simulateBreak:s,simulateDoubleBreak:!!l}),h=Mc(c,s);for(h==null&&(h=Et(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));oa.from&&s{let n=[];for(let o=r.from;o<=r.to;){let a=i.doc.lineAt(o);a.number>t&&(r.empty||r.to>a.from)&&(e(a,n,r),t=a.number),o=a.to+1}let s=i.changes(n);return{changes:n,range:U.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}var O_=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),r=new Tn(i,{overrideIndentation:s=>{let o=t[s];return o==null?-1:o}}),n=Ed(i,(s,o,a)=>{let l=Mc(r,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],h=Ts(i,l);(c!=h||a.fromi.readOnly?!1:(e(i.update(Ed(i,(t,r)=>{r.push({from:t.from,insert:i.facet(Si)})}),{userEvent:"input.indent"})),!0),eh=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Ed(i,(t,r)=>{let n=/^\s*/.exec(t.text)[0];if(!n)return;let s=Et(n,i.tabSize),o=0,a=Ts(i,Math.max(0,s-jr(i)));for(;o(i.setTabFocusMode(),!0);var GS=({state:i,dispatch:e})=>i.selection.ranges.some(t=>!t.empty)?Jc({state:i,dispatch:e}):(e(i.update(i.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),u_=[{key:"Ctrl-b",run:$S,shift:US,preventDefault:!0},{key:"Ctrl-f",run:PS,shift:AS},{key:"Ctrl-p",run:TS,shift:YS},{key:"Ctrl-n",run:_S,shift:MS},{key:"Ctrl-a",run:CT,shift:DT},{key:"Ctrl-e",run:UT,shift:IT},{key:"Ctrl-d",run:jS},{key:"Ctrl-h",run:Zd},{key:"Ctrl-k",run:e_},{key:"Ctrl-Alt-h",run:DS},{key:"Ctrl-o",run:r_},{key:"Ctrl-t",run:n_},{key:"Ctrl-v",run:Rd}],d_=[{key:"ArrowLeft",run:$S,shift:US,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:yT,shift:zT,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:RT,shift:jT,preventDefault:!0},{key:"ArrowRight",run:PS,shift:AS,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:$T,shift:YT,preventDefault:!0},{mac:"Cmd-ArrowRight",run:ZT,shift:qT,preventDefault:!0},{key:"ArrowUp",run:TS,shift:YS,preventDefault:!0},{mac:"Cmd-ArrowUp",run:fS,shift:dS},{mac:"Ctrl-ArrowUp",run:cS,shift:hS},{key:"ArrowDown",run:_S,shift:MS,preventDefault:!0},{mac:"Cmd-ArrowDown",run:uS,shift:pS},{mac:"Ctrl-ArrowDown",run:Rd,shift:OS},{key:"PageUp",run:cS,shift:hS},{key:"PageDown",run:Rd,shift:OS},{key:"Home",run:_T,shift:VT,preventDefault:!0},{key:"Mod-Home",run:fS,shift:dS},{key:"End",run:TT,shift:WT,preventDefault:!0},{key:"Mod-End",run:uS,shift:pS},{key:"Enter",run:mS,shift:mS},{key:"Mod-a",run:FT},{key:"Backspace",run:Zd,shift:Zd,preventDefault:!0},{key:"Delete",run:jS,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:DS,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:JT,preventDefault:!0},{mac:"Mod-Backspace",run:t_,preventDefault:!0},{mac:"Mod-Delete",run:i_,preventDefault:!0}].concat(u_.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),NS=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:kT,shift:MT},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:XT,shift:LT},{key:"Alt-ArrowUp",run:s_},{key:"Shift-Alt-ArrowUp",run:a_},{key:"Alt-ArrowDown",run:o_},{key:"Shift-Alt-ArrowDown",run:l_},{key:"Mod-Alt-ArrowUp",run:NT},{key:"Mod-Alt-ArrowDown",run:HT},{key:"Escape",run:KT},{key:"Mod-Enter",run:h_},{key:"Alt-l",mac:"Ctrl-l",run:BT},{key:"Mod-i",run:GT,preventDefault:!0},{key:"Mod-[",run:eh},{key:"Mod-]",run:Jc},{key:"Mod-Alt-\\",run:O_},{key:"Shift-Mod-k",run:Kc},{key:"Shift-Mod-\\",run:ET},{key:"Mod-/",run:Cd},{key:"Alt-A",mac:"Ctrl-A",run:hT},{key:"Ctrl-m",mac:"Shift-Alt-m",run:f_}].concat(d_);var HS=[{key:"Tab",run:Jc},{key:"Shift-Tab",run:eh}],KS=[{key:"Tab",run:GS},{key:"Shift-Tab",run:eh}],la=50,th=8,p_=!0;function Cs(i){p_&&console.log("[asm-tab] "+i)}function Us(i,e){let t=0;for(let r=0;r0&&e.set(i,(e.get(i)||0)+1)}function m_(i,e){let t=[],r=/\S+/g,n;for(;(n=r.exec(i))!==null&&i[n.index]!=";";)t.push(Us(i,n.index));let s=/(^|\s);/.exec(i);s&&zd(Us(i,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&zd(o[0],e),o.length>=2&&zd(o[1],e)}var g_=3;function JS(i,e){let t=i.doc.lineAt(e),r=i.doc.lines,n=(a,l,c,h)=>{let O=0;for(let f=a;f!=l&&Oe&&(o>n||o==n&&s=0?r:(Math.floor(e/t)+1)*t}function x_(i,e,t){let r=-1,n=0;for(let[s,o]of i)sn||o==n&&s>r)&&(r=s,n=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function eQ(i,e){let t=i.doc.lineAt(e),r=Math.max(1,t.number-la),n=Math.min(i.doc.lines,t.number+la);for(let s=r;s<=n;s++)if(i.doc.line(s).text.includes(" "))return!0;return!1}function tQ(i){return"["+[...i.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function S_(i,e){let t=i.doc.lineAt(e),r=Us(t.text,e-t.from),n=eQ(i,e),s=n?th:i.tabSize,o=JS(i,e),a=b_(o,r,s);return Cs(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${tQ(o)} ${n?"grid=8 (file has tabs)":`grid=${i.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function Q_(i,e){let t=i.doc.lineAt(e),r=e-t.from;if(r==0)return Cs(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return Cs(`Backspace @ line ${t.number} col ${Us(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return Cs(`Backspace @ line ${t.number} col ${Us(t.text,r)}: cursor not in leading whitespace, using default`),null;let n=eQ(i,e),s=n?th:i.tabSize,o=Us(t.text,r),a=JS(i,e),l=x_(a,o,s);if(l>=o)return Cs(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return Cs(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${tQ(a)} ${n?"grid=8 (file has tabs)":`grid=${i.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function v_(i){let e=i.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let n=S_(e,r.head);return n?{changes:n,range:U.cursor(r.head+n.insert.length)}:{range:r}});return i.dispatch(t),!0}function w_(i){let e=i.state,t=e.selection.main;if(!t.empty)return!1;let r=Q_(e,t.head);return r?(i.dispatch(e.update({changes:r,selection:U.cursor(r.from)})),!0):!1}function iQ(i){return[{key:"Tab",run:e=>i()&&v_(e)},{key:"Backspace",run:e=>i()&&w_(e)}]}var y_=new bt,$_=new bt,P_=new bt,k_=new bt,X_=new bt,T_=new bt,__=new bt,R_=new bt,nQ="8bitworkshop/editorSettings",rQ={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function As(){try{var i=localStorage.getItem(nQ);if(i)return st(st({},rQ),JSON.parse(i))}catch(e){}return st({},rQ)}function Z_(i){localStorage.setItem(nQ,JSON.stringify(i))}var sQ=[[k_,i=>[ve.tabSize.of(i.tabSize),Si.of(" ".repeat(i.tabSize))]],[T_,i=>Bt.of(i.tabsToSpaces?HS:KS)],[y_,i=>i.highlightSpecialChars?Hb():[]],[$_,i=>i.highlightWhitespace?ax():[]],[P_,i=>i.highlightTrailingWhitespace?lx():[]],[X_,i=>i.closeBrackets?[rS(),Bt.of([{key:"Backspace",run:oS}])]:[]],[__,i=>i.debugHighlightTags?lS:[]],[R_,i=>i.showLineNumbers?yc():[]]];function oQ(i){return sQ.map(([e,t])=>e.of(t(i)))}var aQ=new Set;function lQ(i){aQ.add(i)}function C_(i){var e=sQ.map(([r,n])=>r.reconfigure(n(i)));for(var t of aQ)t.dispatch({effects:e})}function cQ(){var i=As(),e=!vo();bootbox.dialog({onEscape:!0,title:"Settings",message:`
+Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.style.background="#333",O.style.color="white",O.style.padding="2px 8px",O.style.borderRadius="4px",O.style.fontSize="12px",O.style.border="1px solid #555",O.style.pointerEvents="none",O.style.position="absolute",O.style.bottom="0",O.style.width="max-content",h.appendChild(O),{dom:h}}}},{hoverTime:10,hideOnChange:!0});var Ud=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),r=Ed(i.state,t.from);return r.line?gX(i):r.block?xX(i):!1};function Ad(i,e){return({state:t,dispatch:r})=>{if(t.readOnly)return!1;let n=i(e,t);return n?(r(t.update(n)),!0):!1}}var gX=Ad(vX,0);var bX=Ad(QS,0);var xX=Ad((i,e)=>QS(i,e,QX(e)),0);function Ed(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var sa=50;function SX(i,{open:e,close:t},r,n){let s=i.sliceDoc(r-sa,r),o=i.sliceDoc(n,n+sa),a=/\s*$/.exec(s)[0].length,l=/^\s*/.exec(o)[0].length,c=s.length-a;if(s.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:r-a,margin:a&&1},close:{pos:n+l,margin:l&&1}};let h,O;n-r<=2*sa?h=O=i.sliceDoc(r,n):(h=i.sliceDoc(r,r+sa),O=i.sliceDoc(n-sa,n));let f=/^\s*/.exec(h)[0].length,u=/\s*$/.exec(O)[0].length,p=O.length-u-t.length;return h.slice(f,f+e.length)==e&&O.slice(p,p+t.length)==t?{open:{pos:r+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:n-u-t.length,margin:/\s/.test(O.charAt(p-1))?1:0}}:null}function QX(i){let e=[];for(let t of i.selection.ranges){let r=i.doc.lineAt(t.from),n=t.to<=r.to?r:i.doc.lineAt(t.to);n.from>r.from&&n.from==t.to&&(n=t.to==r.to+1?r:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>r.from?e[s].to=n.to:e.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:n.to})}return e}function QS(i,e,t=e.selection.ranges){let r=t.map(s=>Ed(e,s.from).block);if(!r.every(s=>s))return null;let n=t.map((s,o)=>SX(e,r[o],s.from,s.to));if(i!=2&&!n.every(s=>s))return{changes:e.changes(t.map((s,o)=>n[o]?[]:[{from:s.from,insert:r[o].open+" "},{from:s.to,insert:" "+r[o].close}]))};if(i!=1&&n.some(s=>s)){let s=[];for(let o=0,a;on&&(s==o||o>O.from)){n=O.from;let f=/^\s*/.exec(O.text)[0].length,u=f==O.length,p=O.text.slice(f,f+c.length)==c?f:-1;fs.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:l,indent:c,empty:h,single:O}of r)(O||!h)&&s.push({from:a.from+c,insert:l+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&r.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:a,token:l}of r)if(a>=0){let c=o.from+a,h=c+l.length;o.text[h-o.from]==" "&&h++,s.push({from:c,to:h})}return{changes:s}}return null}var Rd=It.define(),Fc=It.define(),wX=K.define(),vS=K.define({combine(i){return ei(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(r,n)=>e(r,n)||t(r,n)})}}),wS=Te.define({create(){return Cn.empty},update(i,e){let t=e.state.facet(vS),r=e.annotation(Rd);if(r){let l=Yi.fromTransaction(e,r.selection),c=r.side,h=c==0?i.undone:i.done;return l?h=Ic(h,h.length,t.minDepth,l):h=PS(h,e.startState.selection),new Cn(c==0?r.rest:h,c==0?h:r.rest)}let n=e.annotation(Fc);if((n=="full"||n=="before")&&(i=i.isolate()),e.annotation(Ne.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=Yi.fromTransaction(e),o=e.annotation(Ne.time),a=e.annotation(Ne.userEvent);return s?i=i.addChanges(s,o,a,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(n=="full"||n=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Cn(i.done.map(Yi.fromJSON),i.undone.map(Yi.fromJSON))}});function yS(i={}){return[wS,vS.of(i),W.domEventHandlers({beforeinput(e,t){let r=e.inputType=="historyUndo"?oa:e.inputType=="historyRedo"?Us:null;return r?(e.preventDefault(),r(t)):!1}})]}function Bc(i,e){return function({state:t,dispatch:r}){if(!e&&t.readOnly)return!1;let n=t.field(wS,!1);if(!n)return!1;let s=n.pop(i,t,e);return s?(r(s),!0):!1}}var oa=Bc(0,!1),Us=Bc(1,!1),yX=Bc(0,!0),$X=Bc(1,!0);var Yi=class i{constructor(e,t,r,n,s){this.changes=e,this.effects=t,this.mapped=r,this.startSelection=n,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,r;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(n=>n.toJSON())}}static fromJSON(e){return new i(e.changes&&At.fromJSON(e.changes),[],e.mapped&&Or.fromJSON(e.mapped),e.startSelection&&U.fromJSON(e.startSelection),e.selectionsAfter.map(U.fromJSON))}static fromTransaction(e,t){let r=wi;for(let n of e.startState.facet(wX)){let s=n(e);s.length&&(r=r.concat(s))}return!r.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),r,void 0,t||e.startState.selection,wi)}static selection(e){return new i(void 0,wi,void 0,void 0,e)}};function Ic(i,e,t,r){let n=e+1>t+20?e-t-1:0,s=i.slice(n,e);return s.push(r),s}function PX(i,e){let t=[],r=!1;return i.iterChangedRanges((n,s)=>t.push(n,s)),e.iterChangedRanges((n,s,o,a)=>{for(let l=0;l=c&&o<=h&&(r=!0)}}),r}function kX(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,r)=>t.empty!=e.ranges[r].empty).length===0}function $S(i,e){return i.length?e.length?i.concat(e):i:e}var wi=[],TX=200;function PS(i,e){if(i.length){let t=i[i.length-1],r=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-TX));return r.length&&r[r.length-1].eq(e)?i:(r.push(e),Ic(i,i.length-1,1e9,t.setSelAfter(r)))}else return[Yi.selection([e])]}function XX(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function _d(i,e){if(!i.length)return i;let t=i.length,r=wi;for(;t;){let n=_X(i[t-1],e,r);if(n.changes&&!n.changes.empty||n.effects.length){let s=i.slice(0,t);return s[t-1]=n,s}else e=n.mapped,t--,r=n.selectionsAfter}return r.length?[Yi.selection(r)]:wi}function _X(i,e,t){let r=$S(i.selectionsAfter.length?i.selectionsAfter.map(a=>a.map(e)):wi,t);if(!i.changes)return Yi.selection(r);let n=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new Yi(n,ae.mapEffects(i.effects,e),o,i.startSelection.map(s),r)}var RX=/^(input\.type|delete)($|\.)/,Cn=class i{constructor(e,t,r=0,n=void 0){this.done=e,this.undone=t,this.prevTime=r,this.prevUserEvent=n}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,r,n,s){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!r||RX.test(r))&&(!a.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?i.moveByChar(t,e):Gc(t,e))}function _t(i){return i.textDirectionAt(i.state.selection.main.head)==Ye.LTR}var XS=i=>TS(i,!_t(i)),_S=i=>TS(i,_t(i));function RS(i,e){return Li(i,t=>t.empty?i.moveByGroup(t,e):Gc(t,e))}var ZX=i=>RS(i,!_t(i)),CX=i=>RS(i,_t(i));var Vz=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function UX(i,e,t){if(e.type.prop(t))return!0;let r=e.to-e.from;return r&&(r>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function Nc(i,e,t){let r=_e(i).resolveInner(e.head),n=t?ue.closedBy:ue.openedBy;for(let l=e.head;;){let c=t?r.childAfter(l):r.childBefore(l);if(!c)break;UX(i,c,n)?r=c:l=t?c.to:c.from}let s=r.type.prop(n),o,a;return s&&(o=t?zi(i,r.from,1):zi(i,r.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?r.to:r.from,U.cursor(a,t?-1:1)}var AX=i=>Li(i,e=>Nc(i.state,e,!_t(i))),EX=i=>Li(i,e=>Nc(i.state,e,_t(i)));function ZS(i,e){return Li(i,t=>{if(!t.empty)return Gc(t,e);let r=i.moveVertically(t,e);return r.head!=t.head?r:i.moveToLineBoundary(t,e)})}var CS=i=>ZS(i,!1),US=i=>ZS(i,!0);function AS(i){let e=i.scrollDOM.clientHeighto.empty?i.moveVertically(o,e,t.height):Gc(o,e));if(n.eq(r.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(r.selection.main.head),a=i.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottomES(i,!1),Zd=i=>ES(i,!0);function Dr(i,e,t){let r=i.lineBlockAt(e.head),n=i.moveToLineBoundary(e,t);if(n.head==e.head&&n.head!=(t?r.to:r.from)&&(n=i.moveToLineBoundary(e,t,!1)),!t&&n.head==r.from&&r.length){let s=/^\s*/.exec(i.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;s&&e.head!=r.from+s&&(n=U.cursor(r.from+s))}return n}var zX=i=>Li(i,e=>Dr(i,e,!0)),YX=i=>Li(i,e=>Dr(i,e,!1)),MX=i=>Li(i,e=>Dr(i,e,!_t(i))),LX=i=>Li(i,e=>Dr(i,e,_t(i))),WX=i=>Li(i,e=>U.cursor(i.lineBlockAt(e.head).from,1)),VX=i=>Li(i,e=>U.cursor(i.lineBlockAt(e.head).to,-1));function jX(i,e,t){let r=!1,n=As(i.selection,s=>{let o=zi(i,s.head,-1)||zi(i,s.head,1)||s.head>0&&zi(i,s.head-1,1)||s.headjX(i,e,!1);function yi(i,e,t){let r=As(i.state.selection,n=>{n.undirectional&&n.head>=n.anchor!=e&&(n=U.range(n.head,n.anchor));let s=t(n);return U.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return r.eq(i.state.selection)?!1:(i.dispatch(Mi(i.state,r)),!0)}function zS(i,e){return yi(i,e,t=>i.moveByChar(t,e))}var YS=i=>zS(i,!_t(i)),MS=i=>zS(i,_t(i));function LS(i,e){return yi(i,e,t=>i.moveByGroup(t,e))}var DX=i=>LS(i,!_t(i)),IX=i=>LS(i,_t(i));var FX=i=>{let e=!_t(i);return yi(i,e,t=>Nc(i.state,t,e))},BX=i=>{let e=_t(i);return yi(i,e,t=>Nc(i.state,t,e))};function WS(i,e){return yi(i,e,t=>i.moveVertically(t,e))}var VS=i=>WS(i,!1),jS=i=>WS(i,!0);function qS(i,e){return yi(i,e,t=>i.moveVertically(t,e,AS(i).height))}var dS=i=>qS(i,!1),pS=i=>qS(i,!0),GX=i=>yi(i,!0,e=>Dr(i,e,!0)),NX=i=>yi(i,!1,e=>Dr(i,e,!1)),HX=i=>{let e=!_t(i);return yi(i,e,t=>Dr(i,t,e))},KX=i=>{let e=_t(i);return yi(i,e,t=>Dr(i,t,e))},JX=i=>yi(i,!1,e=>U.cursor(i.lineBlockAt(e.head).from)),e_=i=>yi(i,!0,e=>U.cursor(i.lineBlockAt(e.head).to)),mS=({state:i,dispatch:e})=>(e(Mi(i,{anchor:0})),!0),gS=({state:i,dispatch:e})=>(e(Mi(i,{anchor:i.doc.length})),!0),bS=({state:i,dispatch:e})=>(e(Mi(i,{anchor:i.selection.main.anchor,head:0})),!0),xS=({state:i,dispatch:e})=>(e(Mi(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),t_=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),i_=({state:i,dispatch:e})=>{let t=Hc(i).map(({from:r,to:n})=>U.undirectionalRange(r,Math.min(n+1,i.doc.length)));return e(i.update({selection:U.create(t),userEvent:"select"})),!0},r_=({state:i,dispatch:e})=>{let t=As(i.selection,r=>{let n=_e(i),s=n.resolveStack(r.from,1);if(r.empty){let o=n.resolveStack(r.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:a}=o;if((a.from=r.to||a.to>r.to&&a.from<=r.from)&&o.next)return U.undirectionalRange(a.from,a.to)}return r});return t.eq(i.selection)?!1:(e(Mi(i,t)),!0)};function DS(i,e){let{state:t}=i,r=t.selection,n=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let a=s;;){let l=i.moveVertically(a,e);if(l.heado.to){n.some(c=>c.head==l.head)||n.push(l);break}else{if(l.head==a.head)break;a=l}}}return n.length==r.ranges.length?!1:(i.dispatch(Mi(t,U.create(n,n.length-1))),!0)}var n_=i=>DS(i,!1),s_=i=>DS(i,!0),o_=({state:i,dispatch:e})=>{let t=i.selection,r=null;return t.ranges.length>1?r=U.create([t.main]):t.main.empty||(r=U.create([U.cursor(t.main.head)])),r?(e(Mi(i,r)),!0):!1};function aa(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:r}=i,n=r.changeByRange(s=>{let{from:o,to:a}=s;if(o==a){let l=e(s);lo&&(t="delete.forward",l=Dc(i,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Dc(i,o,!1),a=Dc(i,a,!0);return o==a?{range:s}:{changes:{from:o,to:a},range:U.cursor(o,on(i)))r.between(e,e,(n,s)=>{ne&&(e=t?s:n)});return e}var IS=(i,e,t)=>aa(i,r=>{let n=r.from,{state:s}=i,o=s.doc.lineAt(n),a,l;if(t&&!e&&n>o.from&&nIS(i,!1,!0);var FS=i=>IS(i,!0,!1),BS=(i,e)=>aa(i,t=>{let r=t.head,{state:n}=i,s=n.doc.lineAt(r),o=n.charCategorizer(r);for(let a=null;;){if(r==(e?s.to:s.from)){r==t.head&&s.number!=(e?n.doc.lines:1)&&(r+=e?1:-1);break}let l=it(s.text,r-s.from,e)+s.from,c=s.text.slice(Math.min(r,l)-s.from,Math.max(r,l)-s.from),h=o(c);if(a!=null&&h!=a)break;(c!=" "||r!=t.head)&&(a=h),r=l}return r}),GS=i=>BS(i,!1),a_=i=>BS(i,!0);var l_=i=>aa(i,e=>{let t=i.lineBlockAt(e.head).to;return e.headaa(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),h_=i=>aa(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head{if(i.readOnly)return!1;let t=i.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:Pe.of(["",""])},range:U.cursor(r.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},f_=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(r=>{if(!r.empty||r.from==0||r.from==i.doc.length)return{range:r};let n=r.from,s=i.doc.lineAt(n),o=n==s.from?n-1:it(s.text,n-s.from,!1)+s.from,a=n==s.to?n+1:it(s.text,n-s.from,!0)+s.from;return{changes:{from:o,to:a,insert:i.doc.slice(n,a).append(i.doc.slice(o,n))},range:U.cursor(a)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Hc(i){let e=[],t=-1;for(let r of i.selection.ranges){let n=i.doc.lineAt(r.from),s=i.doc.lineAt(r.to);if(!r.empty&&r.to==s.from&&(s=i.doc.lineAt(r.to-1)),t>=n.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(r)}else e.push({from:n.from,to:s.to,ranges:[r]});t=s.number+1}return e}function NS(i,e,t){if(i.readOnly)return!1;let r=[],n=[];for(let s of Hc(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),a=o.length+1;if(t){r.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let l of s.ranges)n.push(U.range(Math.min(i.doc.length,l.anchor+a),Math.min(i.doc.length,l.head+a)))}else{r.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let l of s.ranges)n.push(U.range(l.anchor-a,l.head-a))}}return r.length?(e(i.update({changes:r,scrollIntoView:!0,selection:U.create(n,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var u_=({state:i,dispatch:e})=>NS(i,e,!1),d_=({state:i,dispatch:e})=>NS(i,e,!0);function HS(i,e,t){if(i.readOnly)return!1;let r=[];for(let s of Hc(i))t?r.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):r.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});let n=i.changes(r);return e(i.update({changes:n,selection:i.selection.map(n,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var p_=({state:i,dispatch:e})=>HS(i,e,!1),m_=({state:i,dispatch:e})=>HS(i,e,!0),Kc=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Hc(e).map(({from:n,to:s})=>(n>0?n--:s{let s;if(i.lineWrapping){let o=i.lineBlockAt(n.head),a=i.coordsAtPos(n.head,n.assoc||1);a&&(s=o.bottom+i.documentTop-a.bottom+i.defaultLineHeight/2)}return i.moveVertically(n,!0,s)}).map(t);return i.dispatch({changes:t,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function g_(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=_e(i).resolveInner(e),r=t.childBefore(e),n=t.childAfter(e),s;return r&&n&&r.to<=e&&n.from>=e&&(s=r.type.prop(ue.closedBy))&&s.indexOf(n.name)>-1&&i.doc.lineAt(r.to).from==i.doc.lineAt(n.from).from&&!/\S/.test(i.sliceDoc(r.to,n.from))?{from:r.to,to:n.from}:null}var SS=KS(!1),b_=KS(!0);function KS(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let r=e.changeByRange(n=>{let{from:s,to:o}=n,a=e.doc.lineAt(s),l=!i&&s==o&&g_(e,s);i&&(s=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new Rn(e,{simulateBreak:s,simulateDoubleBreak:!!l}),h=Mc(c,s);for(h==null&&(h=Et(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));oa.from&&s{let n=[];for(let o=r.from;o<=r.to;){let a=i.doc.lineAt(o);a.number>t&&(r.empty||r.to>a.from)&&(e(a,n,r),t=a.number),o=a.to+1}let s=i.changes(n);return{changes:n,range:U.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}var x_=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),r=new Rn(i,{overrideIndentation:s=>{let o=t[s];return o==null?-1:o}}),n=zd(i,(s,o,a)=>{let l=Mc(r,s.from);if(l==null)return;/\S/.test(s.text)||(l=0);let c=/^\s*/.exec(s.text)[0],h=Zs(i,l);(c!=h||a.fromi.readOnly?!1:(e(i.update(zd(i,(t,r)=>{r.push({from:t.from,insert:i.facet(Si)})}),{userEvent:"input.indent"})),!0),eh=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(zd(i,(t,r)=>{let n=/^\s*/.exec(t.text)[0];if(!n)return;let s=Et(n,i.tabSize),o=0,a=Zs(i,Math.max(0,s-jr(i)));for(;o(i.setTabFocusMode(),!0);var JS=({state:i,dispatch:e})=>i.selection.ranges.some(t=>!t.empty)?Jc({state:i,dispatch:e}):(e(i.update(i.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),Q_=[{key:"Ctrl-b",run:XS,shift:YS,preventDefault:!0},{key:"Ctrl-f",run:_S,shift:MS},{key:"Ctrl-p",run:CS,shift:VS},{key:"Ctrl-n",run:US,shift:jS},{key:"Ctrl-a",run:WX,shift:JX},{key:"Ctrl-e",run:VX,shift:e_},{key:"Ctrl-d",run:FS},{key:"Ctrl-h",run:Cd},{key:"Ctrl-k",run:l_},{key:"Ctrl-Alt-h",run:GS},{key:"Ctrl-o",run:O_},{key:"Ctrl-t",run:f_},{key:"Ctrl-v",run:Zd}],v_=[{key:"ArrowLeft",run:XS,shift:YS,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:ZX,shift:DX,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:MX,shift:HX,preventDefault:!0},{key:"ArrowRight",run:_S,shift:MS,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:CX,shift:IX,preventDefault:!0},{mac:"Cmd-ArrowRight",run:LX,shift:KX,preventDefault:!0},{key:"ArrowUp",run:CS,shift:VS,preventDefault:!0},{mac:"Cmd-ArrowUp",run:mS,shift:bS},{mac:"Ctrl-ArrowUp",run:uS,shift:dS},{key:"ArrowDown",run:US,shift:jS,preventDefault:!0},{mac:"Cmd-ArrowDown",run:gS,shift:xS},{mac:"Ctrl-ArrowDown",run:Zd,shift:pS},{key:"PageUp",run:uS,shift:dS},{key:"PageDown",run:Zd,shift:pS},{key:"Home",run:YX,shift:NX,preventDefault:!0},{key:"Mod-Home",run:mS,shift:bS},{key:"End",run:zX,shift:GX,preventDefault:!0},{key:"Mod-End",run:gS,shift:xS},{key:"Enter",run:SS,shift:SS},{key:"Mod-a",run:t_},{key:"Backspace",run:Cd,shift:Cd,preventDefault:!0},{key:"Delete",run:FS,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:GS,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:a_,preventDefault:!0},{mac:"Mod-Backspace",run:c_,preventDefault:!0},{mac:"Mod-Delete",run:h_,preventDefault:!0}].concat(Q_.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),eQ=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:AX,shift:FX},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:EX,shift:BX},{key:"Alt-ArrowUp",run:u_},{key:"Shift-Alt-ArrowUp",run:p_},{key:"Alt-ArrowDown",run:d_},{key:"Shift-Alt-ArrowDown",run:m_},{key:"Mod-Alt-ArrowUp",run:n_},{key:"Mod-Alt-ArrowDown",run:s_},{key:"Escape",run:o_},{key:"Mod-Enter",run:b_},{key:"Alt-l",mac:"Ctrl-l",run:i_},{key:"Mod-i",run:r_,preventDefault:!0},{key:"Mod-[",run:eh},{key:"Mod-]",run:Jc},{key:"Mod-Alt-\\",run:x_},{key:"Shift-Mod-k",run:Kc},{key:"Shift-Mod-\\",run:qX},{key:"Mod-/",run:Ud},{key:"Alt-A",mac:"Ctrl-A",run:bX},{key:"Ctrl-m",mac:"Shift-Alt-m",run:S_}].concat(v_);var tQ=[{key:"Tab",run:Jc},{key:"Shift-Tab",run:eh}],iQ=[{key:"Tab",run:JS},{key:"Shift-Tab",run:eh}],la=50,th=8,w_=!0;function Es(i){w_&&console.log("[asm-tab] "+i)}function zs(i,e){let t=0;for(let r=0;r0&&e.set(i,(e.get(i)||0)+1)}function y_(i,e){let t=[],r=/\S+/g,n;for(;(n=r.exec(i))!==null&&i[n.index]!=";";)t.push(zs(i,n.index));let s=/(^|\s);/.exec(i);s&&Yd(zs(i,s.index+s[1].length),e);let o=t.length&&t[0]==0?t.slice(1):t;o.length>=1&&Yd(o[0],e),o.length>=2&&Yd(o[1],e)}var $_=3;function rQ(i,e){let t=i.doc.lineAt(e),r=i.doc.lines,n=(a,l,c,h)=>{let O=0;for(let f=a;f!=l&&Oe&&(o>n||o==n&&s=0?r:(Math.floor(e/t)+1)*t}function k_(i,e,t){let r=-1,n=0;for(let[s,o]of i)sn||o==n&&s>r)&&(r=s,n=o);return r>=0?r:Math.max(0,Math.min(Math.floor((e-1)/t)*t,e-1))}function nQ(i,e){let t=i.doc.lineAt(e),r=Math.max(1,t.number-la),n=Math.min(i.doc.lines,t.number+la);for(let s=r;s<=n;s++)if(i.doc.line(s).text.includes(" "))return!0;return!1}function sQ(i){return"["+[...i.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>`${e}:${t}`).join(" ")+"]"}function T_(i,e){let t=i.doc.lineAt(e),r=zs(t.text,e-t.from),n=nQ(i,e),s=n?th:i.tabSize,o=rQ(i,e),a=P_(o,r,s);return Es(`Tab @ line ${t.number} col ${r}: stops(col:freq)=${sQ(o)} ${n?"grid=8 (file has tabs)":`grid=${i.tabSize}`} -> target=${a} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),a<=r?null:{from:e,insert:" ".repeat(a-r)}}function X_(i,e){let t=i.doc.lineAt(e),r=e-t.from;if(r==0)return Es(`Backspace @ line ${t.number} col 0: start of line, using default`),null;if(t.text[r-1]==" ")return Es(`Backspace @ line ${t.number} col ${zs(t.text,r)}: deleting one tab char`),{from:e-1,to:e};if(!/^[ \t]+$/.test(t.text.slice(0,r)))return Es(`Backspace @ line ${t.number} col ${zs(t.text,r)}: cursor not in leading whitespace, using default`),null;let n=nQ(i,e),s=n?th:i.tabSize,o=zs(t.text,r),a=rQ(i,e),l=k_(a,o,s);if(l>=o)return Es(`Backspace @ line ${t.number} col ${o}: no stop before cursor, using default`),null;let c=e-(o-l);return Es(`Backspace @ line ${t.number} col ${o}: stops(col:freq)=${sQ(a)} ${n?"grid=8 (file has tabs)":`grid=${i.tabSize}`} -> deleting cols ${l}..${o} | line=${JSON.stringify(t.text.slice(0,r))}+CURSOR`),{from:c,to:e}}function __(i){let e=i.state;if(e.selection.ranges.some(r=>!r.empty))return!1;let t=e.changeByRange(r=>{let n=T_(e,r.head);return n?{changes:n,range:U.cursor(r.head+n.insert.length)}:{range:r}});return i.dispatch(t),!0}function R_(i){let e=i.state,t=e.selection.main;if(!t.empty)return!1;let r=X_(e,t.head);return r?(i.dispatch(e.update({changes:r,selection:U.cursor(r.from)})),!0):!1}function oQ(i){return[{key:"Tab",run:e=>i()&&__(e)},{key:"Backspace",run:e=>i()&&R_(e)}]}var Z_=new bt,C_=new bt,U_=new bt,A_=new bt,E_=new bt,z_=new bt,Y_=new bt,M_=new bt,lQ="8bitworkshop/editorSettings",aQ={tabSize:8,tabsToSpaces:!0,highlightSpecialChars:!1,highlightWhitespace:!1,highlightTrailingWhitespace:!1,closeBrackets:!1,debugHighlightTags:!1,showLineNumbers:!1,showStatusBar:!0};function Ys(){try{var i=localStorage.getItem(lQ);if(i)return st(st({},aQ),JSON.parse(i))}catch(e){}return st({},aQ)}function L_(i){localStorage.setItem(lQ,JSON.stringify(i))}var cQ=[[A_,i=>[ve.tabSize.of(i.tabSize),Si.of(" ".repeat(i.tabSize))]],[z_,i=>Bt.of(i.tabsToSpaces?tQ:iQ)],[Z_,i=>i.highlightSpecialChars?tx():[]],[C_,i=>i.highlightWhitespace?Ox():[]],[U_,i=>i.highlightTrailingWhitespace?fx():[]],[E_,i=>i.closeBrackets?[aS(),Bt.of([{key:"Backspace",run:hS}])]:[]],[Y_,i=>i.debugHighlightTags?fS:[]],[M_,i=>i.showLineNumbers?yc():[]]];function hQ(i){return cQ.map(([e,t])=>e.of(t(i)))}var OQ=new Set;function fQ(i){OQ.add(i)}function W_(i){var e=cQ.map(([r,n])=>r.reconfigure(n(i)));for(var t of OQ)t.dispatch({effects:e})}function uQ(){var i=Ys(),e=!cs();bootbox.dialog({onEscape:!0,title:"Settings",message:`
@@ -29,23 +29,23 @@ Tags : ${s}`,O.style.whiteSpace="pre-wrap",O.style.fontFamily="monospace",O.sty
Internal
`:""} - `,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{i.tabSize=parseInt($("#setting_tabSize").val())||8,i.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),i.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),i.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),i.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),i.closeBrackets=$("#setting_closeBrackets").is(":checked"),i.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(i.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),i.showStatusBar=$("#setting_showStatusBar").is(":checked"),Z_(i),C_(i),xl(i.showStatusBar)}}}})}function ih(){return typeof navigator!="undefined"?navigator.storage:null}function U_(i){var e=i!==void 0?i:ih();return!!(e&&typeof e.persist=="function")}async function A_(i){var e=i!==void 0?i:ih();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function E_(i){var e=i!==void 0?i:ih(),t={supported:U_(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(n){console.log("storage.persisted() failed",n)}var r=await A_(e);return t.usage=r.usage,t.quota=r.quota,t}async function Md(i){var e=i!==void 0?i:ih(),t=await E_(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function z_(i){return i==null&&(i=typeof navigator!="undefined"?navigator.userAgent:""),i?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(i)?"chromium":/Firefox\/|FxiOS\//.test(i)?"firefox":/Safari\//.test(i)?"safari":"other":"other"}function hQ(i){if(typeof i!="number"||!isFinite(i))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;i>=1024&&tRequest Local Storage Permissions again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try Request Local Storage Permissions again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function Y_(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Yd}function uQ(i,e){var t=OQ(i),r;return i.supported?i.persisted?r=(i.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Yd:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.

"+fQ()+"

"+Yd:r=Y_(),t?r+"

"+t:r}function dQ(i){return"Your browser ran out of space for this site, so your last edit may not have been saved.

"+OQ(i)+" Delete unused projects, or use File > Download All Changes as ZIP to back up your work before it is lost."+(i.supported&&!i.persisted?"

"+fQ():"")}var gQ=DO(rf());var ca=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc[r.offset]||(this.offset2loc[r.offset]=r),this.line2offset[r.line]||(this.line2offset[r.line]=r.offset))}findLineForOffset(e,t){if(this.offset2loc)for(var r=0;r<=t;r++){var n=this.offset2loc[e];if(n)return n;e--}return null}lineCount(){return this.lines.length}};function pQ(i){return"errors"in i}function mQ(i){return"output"in i}var rh=class{constructor(e){this.preset_id=Ut(e)}async getRemoteFile(e){return new Promise((t,r)=>Qo(e,t,un(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var Es=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},nh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var sh=class{constructor(e,t,r,n){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.pendingQueries={};this.queryCounter=0;this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=n,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},n.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){if(e&&e.qid!=null){var t=this.pendingQueries[e.qid];t&&(delete this.pendingQueries[e.qid],t(e));return}var r=this.pendingWorkerMessages>1;r?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&mQ(e)?this.processBuildResult(e):pQ(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}queryWorker(e){return new Promise(t=>{var r=++this.queryCounter;this.pendingQueries[r]=s=>{clearTimeout(n),t(s)};var n=setTimeout(()=>{delete this.pendingQueries[r],t(null)},15e3);e.qid=r,this.worker.postMessage(e)})}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadWorker(e){var t=this.getToolForFilename(e);t&&!this.tools_preloaded[t]&&(this.worker.postMessage({preload:t,platform:this.platform_id}),this.tools_preloaded[t]=!0)}pushAllFiles(e,t){e.push(t);var r=So(this.mainPath);r.length>0&&r!="local"&&e.push(r+"/"+t)}parseIncludeDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of sf(e,vl(t,this.platform_id)))this.pushAllFiles(r,n);return r}parseLinkDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of sf(e,wl(t,this.platform_id)))this.pushAllFiles(r,n);return r}loadFileDependencies(e){let t=this.parseIncludeDependencies(e),r=this.parseLinkDependencies(e),n=t.concat(r);return this.loadFiles(n).then(s=>{if(s)for(let o of s)o.link=r.indexOf(o.path)>=0;return s})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){this.preloadWorker(this.mainPath);var t={updates:[],buildsteps:[]},r=this.stripLocalPath(this.mainPath),n=this.getFile(this.mainPath),s=[];t.updates.push({path:r,data:n}),this.filename2path[r]=this.mainPath;let a=this.getToolForFilename(this.mainPath).startsWith("remote:");for(var l of e)(!l.link||a)&&(t.updates.push({path:l.filename,data:l.data}),s.push(l.filename)),this.filename2path[l.filename]=l.path;t.buildsteps.push({path:r,files:[r].concat(s),platform:this.platform_id,tool:this.getToolForFilename(this.mainPath),mainfile:!0});for(var l of e)l.data&&l.link&&(this.preloadWorker(l.filename),t.updates.push({path:l.filename,data:l.data}),t.buildsteps.push({path:l.filename,files:[l.filename].concat(s),platform:this.platform_id,tool:this.getToolForFilename(l.path)}));return this.dataItems&&(t.setitems=this.dataItems),t}async loadFiles(e){var t=[],r=(o,a)=>{t.push({path:o,filename:this.stripLocalPath(o),link:!0,data:a})};for(var n of e)if(n in this.filedata){var s=this.filedata[n];s&&r(n,s)}else{var s=await this.filesystem.getFileData(n);s?(this.filedata[n]=s,r(n,s)):this.filedata[n]=null}return t}getFile(e){return this.filedata[e]}iterateFiles(e){for(var t in this.filedata)e(t,this.getFile(t))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var e=this.getFile(this.mainPath);if(e instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:e,errors:[],listings:null,symbolmap:null,params:{}});return}var t=typeof e=="string"?e:"";return this.loadFileDependencies(t).then(r=>{r||(r=[]);var n=this.buildWorkerMessage(r);this.worker.postMessage(n),this.isCompiling=!0})}updateFile(e,t){this.filedata[e]!=t&&(this.updateFileInStore(e,t),this.filedata[e]=t,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(e){this.mainPath=e,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(e){if(e.listings){this.listings=e.listings;for(var t in this.listings){var r=this.listings[t];r.lines&&(r.sourcefile=new ca(r.lines,r.text)),r.asmlines&&(r.assemblyfile=new ca(r.asmlines,r.text))}}}processBuildResult(e){this.processBuildListings(e),this.processBuildSegments(e)}processBuildSegments(e){var t=this.platform.getMemoryMap&&this.platform.getMemoryMap().main||[];t!=null&&t.length&&t.forEach(r=>r.source="native"),e.segments&&(e.segments.forEach(r=>r.source="linker"),t=t.concat(e.segments||[])),t.sort((r,n)=>r.start-n.start),this.segments=t}getListings(){return this.listings}getListingForFile(e){var t=$t(this.stripLocalPath(e)),r=this.getListings();for(var n in r)if(n==e)return r[n];for(var n in r)if($t(n)==t)return r[n]}stripLocalPath(e){if(this.mainPath){var t=So(this.mainPath);t!=""&&e.startsWith(t+"/")&&(e=e.substring(t.length+1))}return e}updateDataItems(e){this.dataItems=e,this.okToSend()&&this.sendBuild()}};function oh(i){var e=gQ.default.createInstance({name:"__"+i,version:2});return e}var M_=`$NAME + `,buttons:{cancel:{label:"Cancel",className:"btn-default"},ok:{label:"Save",className:"btn-primary",callback:()=>{i.tabSize=parseInt($("#setting_tabSize").val())||8,i.tabsToSpaces=$("#setting_tabsToSpaces").is(":checked"),i.highlightSpecialChars=$("#setting_highlightSpecialChars").is(":checked"),i.highlightWhitespace=$("#setting_highlightWhitespace").is(":checked"),i.highlightTrailingWhitespace=$("#setting_highlightTrailingWhitespace").is(":checked"),i.closeBrackets=$("#setting_closeBrackets").is(":checked"),i.showLineNumbers=$("#setting_showLineNumbers").is(":checked"),e&&(i.debugHighlightTags=$("#setting_debugHighlightTags").is(":checked")),i.showStatusBar=$("#setting_showStatusBar").is(":checked"),L_(i),W_(i),xl(i.showStatusBar)}}}})}function ih(){return typeof navigator!="undefined"?navigator.storage:null}function V_(i){var e=i!==void 0?i:ih();return!!(e&&typeof e.persist=="function")}async function j_(i){var e=i!==void 0?i:ih();try{if(e&&typeof e.estimate=="function"){var t=await e.estimate();return{usage:t&&t.usage,quota:t&&t.quota}}}catch(r){console.log("storage.estimate() failed",r)}return{}}async function q_(i){var e=i!==void 0?i:ih(),t={supported:V_(e),persisted:!1};try{e&&typeof e.persisted=="function"&&(t.persisted=await e.persisted())}catch(n){console.log("storage.persisted() failed",n)}var r=await j_(e);return t.usage=r.usage,t.quota=r.quota,t}async function Ld(i){var e=i!==void 0?i:ih(),t=await q_(e);if(!t.supported||t.persisted)return t.granted=!1,t;try{t.persisted=await e.persist(),t.granted=t.persisted}catch(r){console.log("storage.persist() failed",r),t.granted=!1}return t}function D_(i){return i==null&&(i=typeof navigator!="undefined"?navigator.userAgent:""),i?/Edg\/|OPR\/|Chrome\/|Chromium\//.test(i)?"chromium":/Firefox\/|FxiOS\//.test(i)?"firefox":/Safari\//.test(i)?"safari":"other":"other"}function dQ(i){if(typeof i!="number"||!isFinite(i))return"?";for(var e=["bytes","KB","MB","GB","TB"],t=0;i>=1024&&tRequest Local Storage Permissions again.";case"firefox":return"Firefox asks for permission the first time. If you dismissed or blocked that prompt, clear it from the padlock icon in the address bar and try Request Local Storage Permissions again.";case"safari":return"Safari decides on its own, and may delete site data after several days without a visit. Adding this page to your Favorites or Home Screen makes eviction less likely.";default:return"This browser decides on its own whether to keep site data."}}function I_(){return"This browser doesn't support persistent storage, so it may discard your local file edits when it needs disk space. "+Md}function gQ(i,e){var t=pQ(i),r;return i.supported?i.persisted?r=(i.granted?"Your browser just granted persistent storage. ":"Your browser is already persisting your local file edits. ")+Md:r="Your browser has not granted persistent storage, so it may discard your local file edits when it needs disk space.

"+mQ()+"

"+Md:r=I_(),t?r+"

"+t:r}function bQ(i){return"Your browser ran out of space for this site, so your last edit may not have been saved.

"+pQ(i)+" Delete unused projects, or use File > Download All Changes as ZIP to back up your work before it is lost."+(i.supported&&!i.persisted?"

"+mQ():"")}var QQ=IO(nf());var ca=class{constructor(e,t){e=e||[],this.lines=e,this.text=t,this.offset2loc=new Map,this.line2offset=new Map;for(var r of e)r.offset>=0&&(this.offset2loc[r.offset]||(this.offset2loc[r.offset]=r),this.line2offset[r.line]||(this.line2offset[r.line]=r.offset))}findLineForOffset(e,t){if(this.offset2loc)for(var r=0;r<=t;r++){var n=this.offset2loc[e];if(n)return n;e--}return null}lineCount(){return this.lines.length}};function xQ(i){return"errors"in i}function SQ(i){return"output"in i}var rh=class{constructor(e){this.preset_id=Ut(e)}async getRemoteFile(e){return new Promise((t,r)=>vo(e,t,pn(e)?"arraybuffer":"text"))}async getFileData(e){var t="presets/"+this.preset_id+"/"+e,r=await this.getRemoteFile(t);return r&&console.log("read",t,r.length,"bytes"),r}async setFileData(e,t){}onFileSystemUpdate(e){}};var Ms=class{constructor(e,t){this.basefs=e,this.overlayfs=t}async getFileData(e){var t=await this.overlayfs.getFileData(e);return t==null?this.basefs.getFileData(e):t}async setFileData(e,t){return await this.overlayfs.setFileData(e,t),this.basefs.setFileData(e,t)}onFileSystemUpdate(e){this.overlayfs.onFileSystemUpdate(e),this.basefs.onFileSystemUpdate(e)}},nh=class{constructor(e){this.store=e}async getFileData(e){return this.store.getItem(e)}async setFileData(e,t){return this.store.setItem(e,t)}onFileSystemUpdate(e){}};var sh=class{constructor(e,t,r,n){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.pendingQueries={};this.queryCounter=0;this.worker=e,this.platform_id=t,this.platform=r,this.filesystem=n,e.onmessage=s=>{this.receiveWorkerMessage(s.data)},n.onFileSystemUpdate(async s=>{if(s in this.filedata){var o=await this.filesystem.getFileData(s);o&&(this.updateFile(s,o),this.onFileChanged&&this.onFileChanged(s,o))}})}receiveWorkerMessage(e){if(e&&e.qid!=null){var t=this.pendingQueries[e.qid];t&&(delete this.pendingQueries[e.qid],t(e));return}var r=this.pendingWorkerMessages>1;r?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),e&&SQ(e)?this.processBuildResult(e):xQ(e)&&this.processBuildListings(e),this.callbackBuildResult(e)}queryWorker(e){return new Promise(t=>{var r=++this.queryCounter;this.pendingQueries[r]=s=>{clearTimeout(n),t(s)};var n=setTimeout(()=>{delete this.pendingQueries[r],t(null)},15e3);e.qid=r,this.worker.postMessage(e)})}getToolForFilename(e){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(e)}preloadWorker(e){var t=this.getToolForFilename(e);t&&!this.tools_preloaded[t]&&(this.worker.postMessage({preload:t,platform:this.platform_id}),this.tools_preloaded[t]=!0)}pushAllFiles(e,t){e.push(t);var r=Qo(this.mainPath);r.length>0&&r!="local"&&e.push(r+"/"+t)}parseIncludeDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of of(e,vl(t,this.platform_id)))this.pushAllFiles(r,n);return r}parseLinkDependencies(e){let t=this.mainPath&&this.getToolForFilename(this.mainPath),r=[];for(let n of of(e,wl(t,this.platform_id)))this.pushAllFiles(r,n);return r}loadFileDependencies(e){let t=this.parseIncludeDependencies(e),r=this.parseLinkDependencies(e),n=t.concat(r);return this.loadFiles(n).then(s=>{if(s)for(let o of s)o.link=r.indexOf(o.path)>=0;return s})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(e,t){this.filesystem.setFileData(e,t)}buildWorkerMessage(e){this.preloadWorker(this.mainPath);var t={updates:[],buildsteps:[]},r=this.stripLocalPath(this.mainPath),n=this.getFile(this.mainPath),s=[];t.updates.push({path:r,data:n}),this.filename2path[r]=this.mainPath;let a=this.getToolForFilename(this.mainPath).startsWith("remote:");for(var l of e)(!l.link||a)&&(t.updates.push({path:l.filename,data:l.data}),s.push(l.filename)),this.filename2path[l.filename]=l.path;t.buildsteps.push({path:r,files:[r].concat(s),platform:this.platform_id,tool:this.getToolForFilename(this.mainPath),mainfile:!0});for(var l of e)l.data&&l.link&&(this.preloadWorker(l.filename),t.updates.push({path:l.filename,data:l.data}),t.buildsteps.push({path:l.filename,files:[l.filename].concat(s),platform:this.platform_id,tool:this.getToolForFilename(l.path)}));return this.dataItems&&(t.setitems=this.dataItems),t}async loadFiles(e){var t=[],r=(o,a)=>{t.push({path:o,filename:this.stripLocalPath(o),link:!0,data:a})};for(var n of e)if(n in this.filedata){var s=this.filedata[n];s&&r(n,s)}else{var s=await this.filesystem.getFileData(n);s?(this.filedata[n]=s,r(n,s)):this.filedata[n]=null}return t}getFile(e){return this.filedata[e]}iterateFiles(e){for(var t in this.filedata)e(t,this.getFile(t))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var e=this.getFile(this.mainPath);if(e instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:e,errors:[],listings:null,symbolmap:null,params:{}});return}var t=typeof e=="string"?e:"";return this.loadFileDependencies(t).then(r=>{r||(r=[]);var n=this.buildWorkerMessage(r);this.worker.postMessage(n),this.isCompiling=!0})}updateFile(e,t){this.filedata[e]!=t&&(this.updateFileInStore(e,t),this.filedata[e]=t,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(e){this.mainPath=e,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(e){if(e.listings){this.listings=e.listings;for(var t in this.listings){var r=this.listings[t];r.lines&&(r.sourcefile=new ca(r.lines,r.text)),r.asmlines&&(r.assemblyfile=new ca(r.asmlines,r.text))}}}processBuildResult(e){this.processBuildListings(e),this.processBuildSegments(e)}processBuildSegments(e){var t=this.platform.getMemoryMap&&this.platform.getMemoryMap().main||[];t!=null&&t.length&&t.forEach(r=>r.source="native"),e.segments&&(e.segments.forEach(r=>r.source="linker"),t=t.concat(e.segments||[])),t.sort((r,n)=>r.start-n.start),this.segments=t}getListings(){return this.listings}getListingForFile(e){var t=$t(this.stripLocalPath(e)),r=this.getListings();for(var n in r)if(n==e)return r[n];for(var n in r)if($t(n)==t)return r[n]}stripLocalPath(e){if(this.mainPath){var t=Qo(this.mainPath);t!=""&&e.startsWith(t+"/")&&(e=e.substring(t.length+1))}return e}updateDataItems(e){this.dataItems=e,this.okToSend()&&this.sendBuild()}};function oh(i){var e=QQ.default.createInstance({name:"__"+i,version:2});return e}var F_=`$NAME ===== [Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE). -`;function Zn(){for(var i={},e=0;e{t()});var e=new firebase.auth.GithubAuthProvider;return e.addScope("repo"),firebase.auth().signInWithPopup(e).then(t=>{this.githubToken=t.credential.accessToken;var r=t.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((e,t)=>{e()})}isFileIgnored(e){return e=e.toUpperCase(),!!(e.startsWith("LICENSE")||e.startsWith("README")||e.startsWith("."))}async getGithubSession(e){var t=ha(e);if(!t)throw new Error("Please enter a valid GitHub URL.");var r=Zn()[t.repopath],n=t.branch||r&&r.branch,s=this.github.repos(t.user,t.repo);try{n=(await s.fetch()).defaultBranch||"master"}catch(a){console.log("could not fetch default branch: "+a),n="main"}console.log("branch =",n);var o={url:e,user:t.user,reponame:t.repo,repopath:t.repopath,branch:n,subtreepath:t.subtreepath,prefix:"",repo:s,platform_id:this.project?this.project.platform_id:r?r.platform_id:null};return o}getGithubHEADTree(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.git.refs.heads(t.branch).fetch())).then(r=>(t.head=r,t.sha=r.object.sha,t.repo.git.trees(t.sha).fetch())).then(r=>{if(t.subtreepath){for(let n of r.tree)if(n.type=="tree"&&n.path==t.subtreepath&&n.sha)return t.repo.git.trees(n.sha).fetch();throw Error("Cannot find subtree '"+t.subtreepath+"' in tree "+r.sha)}return r}).then(r=>(t.tree=r,t))}bind(e,t){var r="__repo__"+e.repopath;if(t){var n={url:e.url,branch:e.branch,platform_id:e.platform_id,mainPath:e.mainPath,sha:e.sha};console.log("storing",n),localStorage.setItem(r,JSON.stringify(n))}else localStorage.removeItem(r)}import(e){var t;return this.getGithubSession(e).then(r=>(t=r,t.repo.contents("README.md").read())).catch(r=>(console.log(r),console.log("no README.md found"),t.repo.fetch().then(n=>""))).then(r=>{var n;if(n=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(r),n&&n[1]&&(console.log("main path: '"+n[1]+"'"),t.mainPath=n[1]),n=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(r),n){if(console.log("platform id: '"+n[1]+"'"),t.platform_id&&!t.platform_id.startsWith(n[1]))throw Error("Platform mismatch: Repository is '"+n[1]+"', you have '"+t.platform_id+"' selected.");t.platform_id=n[1]}return this.bind(t,!0),t})}pull(e,t){var r;return this.getGithubHEADTree(e).then(n=>{r=n;let s=[];return r.paths=[],r.tree.tree.forEach(o=>{if(console.log(o.path,o.type,o.size),r.paths.push(o.path),o.type=="blob"&&!this.isFileIgnored(o.path)){var a=r.repo.git.blobs(o.sha).fetch().then(l=>{var c=r.prefix+o.path,h=o.size,O=l.encoding,f=l.content;if(l.encoding=="base64"){var u=fl(atob(f)),p=un(o.path,u);f=p?u:dl(u)}return l.size!=f.length&&(f=f.slice(0,l.size)),(t||this.store).setItem(c,f)});s.push(a)}else console.log("ignoring "+o.path)}),Promise.all(s)}).then(n=>r)}importAndPull(e){return this.import(e).then(t=>this.pull(e))}publish(e,t,r,n){var s,o=this.project.platform_id,a=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:e,description:t,private:n,auto_init:!1,license_template:r}).then(l=>{s=l;var c=M_;c=c.replace(/\$NAME/g,encodeURIComponent(e)),c=c.replace(/\$PLATFORM/g,encodeURIComponent(o)),c=c.replace(/\$GITHUBURL/g,encodeURIComponent(s.htmlUrl)),c=c.replace(/\$MAINFILE/g,encodeURIComponent(a));var h={message:"8bitworkshop: updated metadata in README.md",content:btoa(c)};return s.contents("README.md").add(h)}).then(()=>this.getGithubSession(s.htmlUrl))}commit(e,t,r){var n;return t||(t="updated from 8bitworkshop.com"),this.getGithubHEADTree(e).then(s=>{if(n=s,n.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(r.map(o=>typeof o.data=="string"?n.repo.git.blobs.create({content:o.data,encoding:"utf-8"}):n.repo.git.blobs.create({content:btoa(ul(o.data)),encoding:"base64"})))}).then(s=>n.repo.git.trees.create({tree:r.map((o,a)=>({path:o.path,mode:"100644",type:"blob",sha:s[a].sha})),base_tree:n.tree.sha})).then(s=>n.repo.git.commits.create({message:t,tree:s.sha,parents:[n.head.object.sha]})).then(s=>n.repo.commits(s.sha).fetch()).then(s=>(n.commit=s,n))}push(e){return e.head.update({sha:e.commit.sha}).then(t=>e)}deleteRepository(e){return this.getGithubSession(e).then(t=>t.repo.remove())}};var lh=class{constructor(e){this.options=e,this.sampleRate=44100,this.soundData=[],this.tapData=[67,54,52,45,84,65,80,69,45,82,65,87,1,0,0,0,0,0,0,0]}getWAVHeader(){let e=new Uint8Array(44),t=new DataView(e.buffer);return t.setUint32(0,1380533830,!1),t.setUint32(4,44+this.soundData.length,!0),t.setUint32(8,1463899717,!1),t.setUint32(12,1718449184,!1),t.setUint32(16,16,!0),t.setUint16(20,1,!0),t.setUint16(22,1,!0),t.setUint32(24,this.sampleRate,!0),t.setUint32(28,this.sampleRate*2,!0),t.setUint16(32,1,!0),t.setUint16(34,8,!0),t.setUint32(36,1684108385,!1),t.setUint32(40,this.soundData.length,!0),e}addSilence(e){let t=Math.floor(this.sampleRate*e);for(let n=0;n>8&255),this.tapData.push(r>>16&255)}addCycle(e){this.tapData.push(e);let t=Math.floor(this.sampleRate*Cn.TAP_LENGTH_IN_SECONDS*e);for(let r=0;r>8&255,this.tapData[18]=e>>16&255,this.tapData[19]=e>>24&255}getTAPData(){return this.updateTAPHeader(),new Uint8Array(this.tapData)}getSoundData(){let e=this.getWAVHeader(),t=new Uint8Array(e.length+this.soundData.length);return t.set(e,0),t.set(new Uint8Array(this.soundData),e.length),t}},Pe=class Pe{constructor(e,t){this.options=t,this.checksum=0,this.data=new Uint8Array(0),this.filenameData=this.makeFilename(e),this.startAddress=0,this.endAddress=0,this.fileType=Pe.FILE_TYPE_NONE,this.waveFile=null}makeFilename(e){let t=[];e=e.toUpperCase();for(let n=0;n0;)this.addByteFrame(t,!0),t-=1,r-=1}addData(){for(let e=0;e>8,!0),this.addByteFrame(this.endAddress&255,!0),this.addByteFrame((this.endAddress&65280)>>8,!0),this.addFilename();for(let t=0;t{var e=wg(window.Module,Array.from(Lt()));window.Module=null;var t=btoa(ul(e)),r={p:ce,r:t},n=$.param(r),s=W_(n,"player.html"),o='