commit d5d46013572477ca00325dfbfde56cf1fba6707d Author: Bubobubobubobubo Date: Sun Aug 6 21:59:05 2023 +0000 deploy: 6ced3bb3bea94f590472f05ffd3a0edafb80680c diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/assets/TransportProcessor-d32032a5.js b/assets/TransportProcessor-d32032a5.js new file mode 100644 index 0000000..a192249 --- /dev/null +++ b/assets/TransportProcessor-d32032a5.js @@ -0,0 +1 @@ +var i=Object.defineProperty;var o=(e,s,r)=>s in e?i(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r;var a=(e,s,r)=>(o(e,typeof s!="symbol"?s+"":s,r),r);(function(){"use strict";class e extends AudioWorkletProcessor{constructor(t){super();a(this,"started");a(this,"options");a(this,"handleMessage",t=>{t.data&&t.data.type==="ping"?this.port.postMessage(t.data):t.data==="start"?this.started=!0:t.data==="pause"?this.started=!1:t.data==="stop"&&(this.started=!1)});this.port.addEventListener("message",this.handleMessage),this.port.start(),this.started=!1,this.options=t}process(t,p,d){return this.started&&this.port.postMessage({type:"bang",currentTime}),!0}}registerProcessor("transport",e)})(); diff --git a/assets/index-63fdba11.js b/assets/index-63fdba11.js new file mode 100644 index 0000000..1b8069f --- /dev/null +++ b/assets/index-63fdba11.js @@ -0,0 +1,90 @@ +var Pr=Object.defineProperty;var Tr=(n,e,s)=>e in n?Pr(n,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[e]=s;var Oe=(n,e,s)=>(Tr(n,typeof e!="symbol"?e+"":e,s),s);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const l of a)if(l.type==="childList")for(const c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).observe(document,{childList:!0,subtree:!0});function s(a){const l={};return a.integrity&&(l.integrity=a.integrity),a.referrerPolicy&&(l.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?l.credentials="include":a.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(a){if(a.ep)return;a.ep=!0;const l=s(a);fetch(a.href,l)}})();const output="",style="";class Text{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,s,o){let a=[];return this.decompose(0,e,a,2),o.length&&o.decompose(0,o.length,a,3),this.decompose(s,this.length,a,1),TextNode.from(a,this.length-(s-e)+o.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let o=[];return this.decompose(e,s,o,0),TextNode.from(o,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),o=this.length-this.scanIdentical(e,-1),a=new RawTextCursor(this),l=new RawTextCursor(e);for(let c=s,u=s;;){if(a.next(c),l.next(c),c=0,a.lineBreak!=l.lineBreak||a.done!=l.done||a.value!=l.value)return!1;if(u+=a.value.length,a.done||u>=o)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let o;if(e==null)o=this.iter();else{s==null&&(s=this.lines+1);let a=this.line(e).from;o=this.iterRange(a,Math.max(a,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(o)}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]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,o,a){for(let l=0;;l++){let c=this.text[l],u=a+c.length;if((s?o:u)>=e)return new Line$1(a,u,o,c);a=u+1,o++}}decompose(e,s,o,a){let l=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(a&1){let c=o.pop(),u=appendText(l.text,c.text.slice(),0,l.length);if(u.length<=32)o.push(new TextLeaf(u,c.length+l.length));else{let f=u.length>>1;o.push(new TextLeaf(u.slice(0,f)),new TextLeaf(u.slice(f)))}}else o.push(l)}replace(e,s,o){if(!(o instanceof TextLeaf))return super.replace(e,s,o);let a=appendText(this.text,appendText(o.text,sliceText(this.text,0,e)),s),l=this.length+o.length-(s-e);return a.length<=32?new TextLeaf(a,l):TextNode.from(TextLeaf.split(a,[]),l)}sliceString(e,s=this.length,o=` +`){let a="";for(let l=0,c=0;l<=s&&ce&&c&&(a+=o),el&&(a+=u.slice(Math.max(0,e-l),s-l)),l=f+1}return a}flatten(e){for(let s of this.text)e.push(s)}scanIdentical(){return 0}static split(e,s){let o=[],a=-1;for(let l of e)o.push(l),a+=l.length+1,o.length==32&&(s.push(new TextLeaf(o,a)),o=[],a=-1);return a>-1&&s.push(new TextLeaf(o,a)),s}}class TextNode extends Text{constructor(e,s){super(),this.children=e,this.length=s,this.lines=0;for(let o of e)this.lines+=o.lines}lineInner(e,s,o,a){for(let l=0;;l++){let c=this.children[l],u=a+c.length,f=o+c.lines-1;if((s?f:u)>=e)return c.lineInner(e,s,o,a);a=u+1,o=f+1}}decompose(e,s,o,a){for(let l=0,c=0;c<=s&&l=c){let d=a&((c<=e?1:0)|(f>=s?2:0));c>=e&&f<=s&&!d?o.push(u):u.decompose(e-c,s-c,o,d)}c=f+1}}replace(e,s,o){if(o.lines=l&&s<=u){let f=c.replace(e-l,s-l,o),d=this.lines-c.lines+f.lines;if(f.lines>5-1&&f.lines>d>>5+1){let g=this.children.slice();return g[a]=f,new TextNode(g,this.length-(s-e)+o.length)}return super.replace(l,u,f)}l=u+1}return super.replace(e,s,o)}sliceString(e,s=this.length,o=` +`){let a="";for(let l=0,c=0;le&&l&&(a+=o),ec&&(a+=u.sliceString(e-c,s-c,o)),c=f+1}return a}flatten(e){for(let s of this.children)s.flatten(e)}scanIdentical(e,s){if(!(e instanceof TextNode))return 0;let o=0,[a,l,c,u]=s>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;a+=s,l+=s){if(a==c||l==u)return o;let f=this.children[a],d=e.children[l];if(f!=d)return o+f.scanIdentical(d,s);o+=f.length+1}}static from(e,s=e.reduce((o,a)=>o+a.length+1,-1)){let o=0;for(let B of e)o+=B.lines;if(o<32){let B=[];for(let V of e)V.flatten(B);return new TextLeaf(B,s)}let a=Math.max(32,o>>5),l=a<<1,c=a>>1,u=[],f=0,d=-1,g=[];function b(B){let V;if(B.lines>l&&B instanceof TextNode)for(let D of B.children)b(D);else B.lines>c&&(f>c||!f)?(E(),u.push(B)):B instanceof TextLeaf&&f&&(V=g[g.length-1])instanceof TextLeaf&&B.lines+V.lines<=32?(f+=B.lines,d+=B.length+1,g[g.length-1]=new TextLeaf(V.text.concat(B.text),V.length+1+B.length)):(f+B.lines>a&&E(),f+=B.lines,d+=B.length+1,g.push(B))}function E(){f!=0&&(u.push(g.length==1?g[0]:TextNode.from(g,d)),d=-1,f=g.length=0)}for(let B of e)b(B);return E(),u.length==1?u[0]:new TextNode(u,s)}}Text.empty=new TextLeaf([""],0);function textLength(n){let e=-1;for(let s of n)e+=s.length+1;return e}function appendText(n,e,s=0,o=1e9){for(let a=0,l=0,c=!0;l=s&&(f>o&&(u=u.slice(0,o-a)),a0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,s){for(this.done=this.lineBreak=!1;;){let o=this.nodes.length-1,a=this.nodes[o],l=this.offsets[o],c=l>>1,u=a instanceof TextLeaf?a.text.length:a.children.length;if(c==(s>0?u:0)){if(o==0)return this.done=!0,this.value="",this;s>0&&this.offsets[o-1]++,this.nodes.pop(),this.offsets.pop()}else if((l&1)==(s>0?0:1)){if(this.offsets[o]+=s,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(a instanceof TextLeaf){let f=a.text[c+(s<0?-1:0)];if(this.offsets[o]+=s,f.length>Math.max(0,e))return this.value=e==0?f:s>0?f.slice(e):f.slice(0,f.length-e),this;e-=f.length}else{let f=a.children[c+(s<0?-1:0)];e>f.length?(e-=f.length,this.offsets[o]+=s):(s<0&&this.offsets[o]--,this.nodes.push(f),this.offsets.push(s>0?1:(f instanceof TextLeaf?f.text.length:f.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,o){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>o?-1:1),this.pos=s>o?e.length:0,this.from=Math.min(s,o),this.to=Math.max(s,o)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let o=s<0?this.pos-this.from:this.to-this.pos;e>o&&(e=o),o-=e;let{value:a}=this.cursor.next(e);return this.pos+=(a.length+e)*s,this.value=a.length<=o?a:s<0?a.slice(a.length-o):a.slice(0,o),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!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:o,value:a}=this.inner.next(e);return s?(this.done=!0,this.value=""):o?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=a,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});let Line$1=class{constructor(e,s,o,a){this.from=e,this.to=s,this.number=o,this.text=a}get length(){return this.to-this.from}},extend="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(n=>n?parseInt(n,36):1);for(let n=1;nn)return extend[e-1]<=n;return!1}function isRegionalIndicator(n){return n>=127462&&n<=127487}const ZWJ=8205;function findClusterBreak(n,e,s=!0,o=!0){return(s?nextClusterBreak:prevClusterBreak)(n,e,o)}function nextClusterBreak(n,e,s){if(e==n.length)return e;e&&surrogateLow(n.charCodeAt(e))&&surrogateHigh(n.charCodeAt(e-1))&&e--;let o=codePointAt(n,e);for(e+=codePointSize(o);e=0&&isRegionalIndicator(codePointAt(n,c));)l++,c-=2;if(l%2==0)break;e+=2}else break}return e}function prevClusterBreak(n,e,s){for(;e>0;){let o=nextClusterBreak(n,e-2,s);if(o=56320&&n<57344}function surrogateHigh(n){return n>=55296&&n<56320}function codePointAt(n,e){let s=n.charCodeAt(e);if(!surrogateHigh(s)||e+1==n.length)return s;let o=n.charCodeAt(e+1);return surrogateLow(o)?(s-55296<<10)+(o-56320)+65536:s}function fromCodePoint(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function codePointSize(n){return n<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return l+(e-a);l+=u}else{if(o!=MapMode.Simple&&d>=e&&(o==MapMode.TrackDel&&ae||o==MapMode.TrackBefore&&ae))return null;if(d>e||d==e&&s<0&&!u)return e==a||s<0?l:l+f;l+=f}a=d}if(e>a)throw new RangeError(`Position ${e} is out of range for changeset of length ${a}`);return l}touchesRange(e,s=e){for(let o=0,a=0;o=0&&a<=s&&u>=e)return as?"cover":!0;a=u}return!1}toString(){let e="";for(let s=0;s=0?":"+a:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,o,a,l,c)=>e=e.replace(a,a+(o-s),c),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),o=[];for(let a=0,l=0;a=0){s[a]=u,s[a+1]=c;let f=a>>1;for(;o.length0&&addInsert(o,s,l.text),l.forward(g),u+=g}let d=e[c++];for(;u>1].toJSON()))}return e}static of(e,s,o){let a=[],l=[],c=0,u=null;function f(g=!1){if(!g&&!a.length)return;cE||b<0||E>s)throw new RangeError(`Invalid change range ${b} to ${E} (in doc of length ${s})`);let V=B?typeof B=="string"?Text.of(B.split(o||DefaultSplit)):B:Text.empty,D=V.length;if(b==E&&D==0)return;bc&&addSection(a,b-c,-1),addSection(a,E-b,D),addInsert(l,a,V),c=E}}return d(e),f(!u),u}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],o=[];for(let a=0;au&&typeof c!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(l.length==1)s.push(l[0],0);else{for(;o.length=0&&s<=0&&s==n[a+1]?n[a]+=e:e==0&&n[a]==0?n[a+1]+=s:o?(n[a]+=e,n[a+1]+=s):n.push(e,s)}function addInsert(n,e,s){if(s.length==0)return;let o=e.length-2>>1;if(o>1])),!(s||c==n.sections.length||n.sections[c+1]<0);)u=n.sections[c++],f=n.sections[c++];e(a,d,l,g,b),a=d,l=g}}}function mapSet(n,e,s,o=!1){let a=[],l=o?[]:null,c=new SectionIter(n),u=new SectionIter(e);for(let f=-1;;)if(c.ins==-1&&u.ins==-1){let d=Math.min(c.len,u.len);addSection(a,d,-1),c.forward(d),u.forward(d)}else if(u.ins>=0&&(c.ins<0||f==c.i||c.off==0&&(u.len=0&&f=0){let d=0,g=c.len;for(;g;)if(u.ins==-1){let b=Math.min(g,u.len);d+=b,g-=b,u.forward(b)}else if(u.ins==0&&u.lenf||c.ins>=0&&c.len>f)&&(u||o.length>d),l.forward2(f),c.forward(f)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,o=this.i-2>>1;return o>=s.length&&!e?Text.empty:s[o].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)}}class SelectionRange{constructor(e,s,o){this.from=e,this.to=s,this.flags=o}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let o,a;return this.empty?o=a=e.mapPos(this.from,s):(o=e.mapPos(this.from,1),a=e.mapPos(this.to,-1)),o==this.from&&a==this.to?this:new SelectionRange(o,a,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let o=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,o)}eq(e){return this.anchor==e.anchor&&this.head==e.head}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 EditorSelection.range(e.anchor,e.head)}static create(e,s,o){return new SelectionRange(e,s,o)}}class EditorSelection{constructor(e,s){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(o=>o.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.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 EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let o=0,a=0;ae?4:0)|l)}static normalized(e,s=0){let o=e[s];e.sort((a,l)=>a.from-l.from),s=e.indexOf(o);for(let a=1;al.head?EditorSelection.range(f,u):EditorSelection.range(u,f))}}return new EditorSelection(e,s)}}function checkSelection(n,e){for(let s of n.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,o,a,l){this.combine=e,this.compareInput=s,this.compare=o,this.isStatic=a,this.id=nextID++,this.default=e([]),this.extensions=typeof l=="function"?l(this):l}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,o)=>s===o),e.compare||(e.combine?(s,o)=>s===o:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=o=>o),this.compute([e],o=>s(o.field(e)))}}function sameArray$1(n,e){return n==e||n.length==e.length&&n.every((s,o)=>s===e[o])}class FacetProvider{constructor(e,s,o,a){this.dependencies=e,this.facet=s,this.type=o,this.value=a,this.id=nextID++}dynamicSlot(e){var s;let o=this.value,a=this.facet.compareInput,l=this.id,c=e[l]>>1,u=this.type==2,f=!1,d=!1,g=[];for(let b of this.dependencies)b=="doc"?f=!0:b=="selection"?d=!0:((s=e[b.id])!==null&&s!==void 0?s:1)&1||g.push(e[b.id]);return{create(b){return b.values[c]=o(b),1},update(b,E){if(f&&E.docChanged||d&&(E.docChanged||E.selection)||ensureAll(b,g)){let B=o(b);if(u?!compareArray(B,b.values[c],a):!a(B,b.values[c]))return b.values[c]=B,1}return 0},reconfigure:(b,E)=>{let B,V=E.config.address[l];if(V!=null){let D=getAddr(E,V);if(this.dependencies.every(X=>X instanceof Facet?E.facet(X)===b.facet(X):X instanceof StateField?E.field(X,!1)==b.field(X,!1):!0)||(u?compareArray(B=o(b),D,a):a(B=o(b),D)))return b.values[c]=D,0}else B=o(b);return b.values[c]=B,1}}}}function compareArray(n,e,s){if(n.length!=e.length)return!1;for(let o=0;on[f.id]),a=s.map(f=>f.type),l=o.filter(f=>!(f&1)),c=n[e.id]>>1;function u(f){let d=[];for(let g=0;go===a),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(o=>o.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:o=>(o.values[s]=this.create(o),1),update:(o,a)=>{let l=o.values[s],c=this.updateF(l,a);return this.compareF(l,c)?0:(o.values[s]=c,1)},reconfigure:(o,a)=>a.config.address[this.id]!=null?(o.values[s]=a.field(this),0):(o.values[s]=this.create(o),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(n){return e=>new PrecExtension(e,n)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,o,a,l,c){for(this.base=e,this.compartments=s,this.dynamicSlots=o,this.address=a,this.staticValues=l,this.facets=c,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,o){let a=[],l=Object.create(null),c=new Map;for(let E of flatten$1(e,s,c))E instanceof StateField?a.push(E):(l[E.facet.id]||(l[E.facet.id]=[])).push(E);let u=Object.create(null),f=[],d=[];for(let E of a)u[E.id]=d.length<<1,d.push(B=>E.slot(B));let g=o==null?void 0:o.config.facets;for(let E in l){let B=l[E],V=B[0].facet,D=g&&g[E]||[];if(B.every(X=>X.type==0))if(u[V.id]=f.length<<1|1,sameArray$1(D,B))f.push(o.facet(V));else{let X=V.combine(B.map(q=>q.value));f.push(o&&V.compare(X,o.facet(V))?o.facet(V):X)}else{for(let X of B)X.type==0?(u[X.id]=f.length<<1|1,f.push(X.value)):(u[X.id]=d.length<<1,d.push(q=>X.dynamicSlot(q)));u[V.id]=d.length<<1,d.push(X=>dynamicFacetSlot(X,V,B))}}let b=d.map(E=>E(u));return new Configuration(e,c,b,u,f,l)}}function flatten$1(n,e,s){let o=[[],[],[],[],[]],a=new Map;function l(c,u){let f=a.get(c);if(f!=null){if(f<=u)return;let d=o[f].indexOf(c);d>-1&&o[f].splice(d,1),c instanceof CompartmentInstance&&s.delete(c.compartment)}if(a.set(c,u),Array.isArray(c))for(let d of c)l(d,u);else if(c instanceof CompartmentInstance){if(s.has(c.compartment))throw new RangeError("Duplicate use of compartment in extensions");let d=e.get(c.compartment)||c.inner;s.set(c.compartment,d),l(d,u)}else if(c instanceof PrecExtension)l(c.inner,c.prec);else if(c instanceof StateField)o[u].push(c),c.provides&&l(c.provides,u);else if(c instanceof FacetProvider)o[u].push(c),c.facet.extensions&&l(c.facet.extensions,Prec_.default);else{let d=c.extension;if(!d)throw new Error(`Unrecognized extension value in extension set (${c}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);l(d,u)}}return l(n,Prec_.default),o.reduce((c,u)=>c.concat(u))}function ensureAddr(n,e){if(e&1)return 2;let s=e>>1,o=n.status[s];if(o==4)throw new Error("Cyclic dependency between fields and/or facets");if(o&2)return o;n.status[s]=4;let a=n.computeSlot(n,n.config.dynamicSlots[s]);return n.status[s]=2|a}function getAddr(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:n=>n.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:n=>n.length?n[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:n=>n.length?n[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let o=[];for(let a of e){let l=a.map(s);l&&o.push(l)}return o}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,o,a,l,c){this.startState=e,this.changes=s,this.selection=o,this.effects=a,this.annotations=l,this.scrollIntoView=c,this._doc=null,this._state=null,o&&checkSelection(o,s.newLength),l.some(u=>u.type==Transaction.time)||(this.annotations=l.concat(Transaction.time.of(Date.now())))}static create(e,s,o,a,l,c){return new Transaction(e,s,o,a,l,c)}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 s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(n,e){let s=[];for(let o=0,a=0;;){let l,c;if(o=n[o]))l=n[o++],c=n[o++];else if(a=0;a--){let l=o[a](n);l instanceof Transaction?n=l:Array.isArray(l)&&l.length==1&&l[0]instanceof Transaction?n=l[0]:n=resolveTransaction(e,asArray$1(l),!1)}return n}function extendTransaction(n){let e=n.startState,s=e.facet(transactionExtender),o=n;for(let a=s.length-1;a>=0;a--){let l=s[a](n);l&&Object.keys(l).length&&(o=mergeTransaction(o,resolveTransactionInner(e,l,n.changes.newLength),!0))}return o==n?n:Transaction.create(e,n.changes,n.selection,o.effects,o.annotations,o.scrollIntoView)}const none$3=[];function asArray$1(n){return n==null?none$3:Array.isArray(n)?n:[n]}var CharCategory=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar$1;try{wordChar$1=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function hasWordChar(n){if(wordChar$1)return wordChar$1.test(n);for(let e=0;e"€"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(n){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,o,a,l,c){this.config=e,this.doc=s,this.selection=o,this.values=a,this.status=e.statusTemplate.slice(),this.computeSlot=l,c&&(c._state=this);for(let u=0;ua.set(f,u)),s=null),a.set(c.value.compartment,c.value.extension)):c.is(StateEffect.reconfigure)?(s=null,o=c.value):c.is(StateEffect.appendConfig)&&(s=null,o=asArray$1(o).concat(c.value));let l;s?l=e.startState.values.slice():(s=Configuration.resolve(o,a,this),l=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(u,f)=>f.reconfigure(u,this),null).values),new EditorState(s,e.newDoc,e.newSelection,l,(c,u)=>u.update(c,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,o=e(s.ranges[0]),a=this.changes(o.changes),l=[o.range],c=asArray$1(o.effects);for(let u=1;uc.spec.fromJSON(u,f)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?a.concat([s.extensions]):a})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),o=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),a=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(a,o.length),s.staticFacet(allowMultipleSelections)||(a=a.asSingle()),new EditorState(s,o,a,s.dynamicSlots.map(()=>null),(l,c)=>c.create(l),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` +`}get readOnly(){return this.facet(readOnly)}phrase(e,...s){for(let o of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(o,e)){e=o[e];break}return s.length&&(e=e.replace(/\$(\$|\d*)/g,(o,a)=>{if(a=="$")return"$";let l=+(a||1);return!l||l>s.length?o:s[l-1]})),e}languageDataAt(e,s,o=-1){let a=[];for(let l of this.facet(languageData))for(let c of l(this,s,o))Object.prototype.hasOwnProperty.call(c,e)&&a.push(c[e]);return a}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:o,length:a}=this.doc.lineAt(e),l=this.charCategorizer(e),c=e-o,u=e-o;for(;c>0;){let f=findClusterBreak(s,c,!1);if(l(s.slice(f,c))!=CharCategory.Word)break;c=f}for(;un.length?n[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(n,e){let s=Object.keys(n),o=Object.keys(e);return s.length==o.length&&s.every(a=>n[a]==e[a])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(n,e,s={}){let o={};for(let a of n)for(let l of Object.keys(a)){let c=a[l],u=o[l];if(u===void 0)o[l]=c;else if(!(u===c||c===void 0))if(Object.hasOwnProperty.call(s,l))o[l]=s[l](u,c);else throw new Error("Config merge conflict for field "+l)}for(let a in e)o[a]===void 0&&(o[a]=e[a]);return o}class RangeValue{eq(e){return this==e}range(e,s=e){return Range$1.create(e,s,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=!1;RangeValue.prototype.mapMode=MapMode.TrackDel;let Range$1=class Ri{constructor(e,s,o){this.from=e,this.to=s,this.value=o}static create(e,s,o){return new Ri(e,s,o)}};function cmpRange(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class Chunk{constructor(e,s,o,a){this.from=e,this.to=s,this.value=o,this.maxPoint=a}get length(){return this.to[this.to.length-1]}findIndex(e,s,o,a=0){let l=o?this.to:this.from;for(let c=a,u=l.length;;){if(c==u)return c;let f=c+u>>1,d=l[f]-e||(o?this.value[f].endSide:this.value[f].startSide)-s;if(f==c)return d>=0?c:u;d>=0?u=f:c=f+1}}between(e,s,o,a){for(let l=this.findIndex(s,-1e9,!0),c=this.findIndex(o,1e9,!1,l);lB||E==B&&d.startSide>0&&d.endSide<=0)continue;(B-E||d.endSide-d.startSide)<0||(c<0&&(c=E),d.point&&(u=Math.max(u,B-E)),o.push(d),a.push(E-c),l.push(B-c))}return{mapped:o.length?new Chunk(a,l,o,u):null,pos:c}}}class RangeSet{constructor(e,s,o,a){this.chunkPos=e,this.chunk=s,this.nextLayer=o,this.maxPoint=a}static create(e,s,o,a){return new RangeSet(e,s,o,a)}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 s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:o=!1,filterFrom:a=0,filterTo:l=this.length}=e,c=e.filter;if(s.length==0&&!c)return this;if(o&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let u=new LayerCursor(this,null,-1).goto(0),f=0,d=[],g=new RangeSetBuilder;for(;u.value||f=0){let b=s[f++];g.addInner(b.from,b.to,b.value)||d.push(b)}else u.rangeIndex==1&&u.chunkIndexthis.chunkEnd(u.chunkIndex)||lu.to||l=l&&e<=l+c.length&&c.between(l,e-l,s-l,o)===!1)return}this.nextLayer.between(e,s,o)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,o,a,l=-1){let c=e.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=l),u=s.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=l),f=findSharedChunks(c,u,o),d=new SpanCursor(c,f,l),g=new SpanCursor(u,f,l);o.iterGaps((b,E,B)=>compare(d,b,g,E,B,a)),o.empty&&o.length==0&&compare(d,0,g,0,0,a)}static eq(e,s,o=0,a){a==null&&(a=1e9-1);let l=e.filter(g=>!g.isEmpty&&s.indexOf(g)<0),c=s.filter(g=>!g.isEmpty&&e.indexOf(g)<0);if(l.length!=c.length)return!1;if(!l.length)return!0;let u=findSharedChunks(l,c),f=new SpanCursor(l,u,0).goto(o),d=new SpanCursor(c,u,0).goto(o);for(;;){if(f.to!=d.to||!sameValues(f.active,d.active)||f.point&&(!d.point||!f.point.eq(d.point)))return!1;if(f.to>a)return!0;f.next(),d.next()}}static spans(e,s,o,a,l=-1){let c=new SpanCursor(e,null,l).goto(s),u=s,f=c.openStart;for(;;){let d=Math.min(c.to,o);if(c.point){let g=c.activeForPoint(c.to),b=c.pointFromu&&(a.span(u,d,c.active,f),f=c.openEnd(d));if(c.to>o)return f+(c.point&&c.to>o?1:0);u=c.to,c.next()}}static of(e,s=!1){let o=new RangeSetBuilder;for(let a of e instanceof Range$1?[e]:s?lazySort(e):e)o.add(a.from,a.to,a.value);return o.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(n){if(n.length>1)for(let e=n[0],s=1;s0)return n.slice().sort(cmpRange);e=o}return n}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{finishChunk(e){this.chunks.push(new Chunk(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,s,o){this.addInner(e,s,o)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,o)}addInner(e,s,o){let a=e-this.lastTo||o.startSide-this.last.endSide;if(a<=0&&(e-this.lastFrom||o.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return a<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=o,this.lastFrom=e,this.lastTo=s,this.value.push(o),o.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let o=s.value.length-1;return this.last=s.value[o],this.lastFrom=s.from[o]+e,this.lastTo=s.to[o]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(n,e,s){let o=new Map;for(let l of n)for(let c=0;c=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=o&&a.push(new LayerCursor(c,s,o,l));return a.length==1?a[0]:new HeapCursor(a)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let o of this.heap)o.goto(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);return this.next(),this}forward(e,s){for(let o of this.heap)o.forward(e,s);for(let o=this.heap.length>>1;o>=0;o--)heapBubble(this.heap,o);(this.to-e||this.value.endSide-s)<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(),heapBubble(this.heap,0)}}}function heapBubble(n,e){for(let s=n[e];;){let o=(e<<1)+1;if(o>=n.length)break;let a=n[o];if(o+1=0&&(a=n[o+1],o++),s.compare(a)<0)break;n[o]=s,n[e]=a,e=o}}class SpanCursor{constructor(e,s,o){this.minPoint=o,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=HeapCursor.from(e,s,o)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove(this.active,e),remove(this.activeTo,e),remove(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:o,to:a,rank:l}=this.cursor;for(;s-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>e){this.to=this.activeTo[a],this.endSide=this.active[a].endSide;break}this.removeActive(a),o&&remove(o,a)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let l=this.cursor.value;if(!l.point)this.addActive(o),this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&o[a]=0&&!(this.activeRank[o]e||this.activeTo[o]==e&&this.active[o].endSide>=this.point.endSide)&&s.push(this.active[o]);return s.reverse()}openEnd(e){let s=0;for(let o=this.activeTo.length-1;o>=0&&this.activeTo[o]>e;o--)s++;return s}}function compare(n,e,s,o,a,l){n.goto(e),s.goto(o);let c=o+a,u=o,f=o-e;for(;;){let d=n.to+f-s.to||n.endSide-s.endSide,g=d<0?n.to+f:s.to,b=Math.min(g,c);if(n.point||s.point?n.point&&s.point&&(n.point==s.point||n.point.eq(s.point))&&sameValues(n.activeForPoint(n.to),s.activeForPoint(s.to))||l.comparePoint(u,b,n.point,s.point):b>u&&!sameValues(n.active,s.active)&&l.compareRange(u,b,n.active,s.active),g>c)break;u=g,d<=0&&n.next(),d>=0&&s.next()}}function sameValues(n,e){if(n.length!=e.length)return!1;for(let s=0;s=e;o--)n[o+1]=n[o];n[e]=s}function findMinIndex(n,e){let s=-1,o=1e9;for(let a=0;a=e)return a;if(a==n.length)break;l+=n.charCodeAt(a)==9?s-l%s:1,a=findClusterBreak(n,a)}return o===!0?-1:n.length}const C="ͼ",COUNT=typeof Symbol>"u"?"__"+C:Symbol.for(C),SET=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:o}=s||{};function a(c){return/^@/.test(c)?[c]:c.split(/,\s*/)}function l(c,u,f,d){let g=[],b=/^@(\w+)\b/.exec(c[0]),E=b&&b[1]=="keyframes";if(b&&u==null)return f.push(c[0]+";");for(let B in u){let V=u[B];if(/&/.test(B))l(B.split(/,\s*/).map(D=>c.map(X=>D.replace(/&/,X))).reduce((D,X)=>D.concat(X)),V,f);else if(V&&typeof V=="object"){if(!b)throw new RangeError("The value of a property ("+B+") should be a primitive value.");l(a(B),V,g,E)}else V!=null&&g.push(B.replace(/_.*/,"").replace(/[A-Z]/g,D=>"-"+D.toLowerCase())+": "+V+";")}(g.length||E)&&f.push((o&&!b&&!d?c.map(o):c).join(", ")+" {"+g.join(" ")+"}")}for(let c in e)l(a(c),e[c],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,s){(e[SET]||new StyleSet(e)).mount(Array.isArray(s)?s:[s])}}let adoptedSet=new Map;class StyleSet{constructor(e){let s=e.ownerDocument||e,o=s.defaultView;if(!e.head&&e.adoptedStyleSheets&&o.CSSStyleSheet){let a=adoptedSet.get(s);if(a)return e.adoptedStyleSheets=[a.sheet,...e.adoptedStyleSheets],e[SET]=a;this.sheet=new o.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],adoptedSet.set(s,this)}else{this.styleTag=s.createElement("style");let a=e.head||e;a.insertBefore(this.styleTag,a.firstChild)}this.modules=[],e[SET]=this}mount(e){let s=this.sheet,o=0,a=0;for(let l=0;l-1&&(this.modules.splice(u,1),a--,u=-1),u==-1){if(this.modules.splice(a++,0,c),s)for(let f=0;f",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},mac=typeof navigator<"u"&&/Mac/.test(navigator.platform),ie$2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var i$1=0;i$1<10;i$1++)base[48+i$1]=base[96+i$1]=String(i$1);for(var i$1=1;i$1<=24;i$1++)base[i$1+111]="F"+i$1;for(var i$1=65;i$1<=90;i$1++)base[i$1]=String.fromCharCode(i$1+32),shift[i$1]=String.fromCharCode(i$1);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(n){var e=mac&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||ie$2&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",s=!e&&n.key||(n.shiftKey?shift:base)[n.keyCode]||n.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function contains(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(n){let e=n.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function hasSelection(n,e){if(!e.anchorNode)return!1;try{return contains(n,e.anchorNode)}catch{return!1}}function clientRectsFor(n){return n.nodeType==3?textRange(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function isEquivalentPosition(n,e,s,o){return s?scanFor(n,e,s,o,-1)||scanFor(n,e,s,o,1):!1}function domIndex(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function scanFor(n,e,s,o,a){for(;;){if(n==s&&e==o)return!0;if(e==(a<0?0:maxOffset(n))){if(n.nodeName=="DIV")return!1;let l=n.parentNode;if(!l||l.nodeType!=1)return!1;e=domIndex(n)+(a<0?0:1),n=l}else if(n.nodeType==1){if(n=n.childNodes[e+(a<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=a<0?maxOffset(n):0}else return!1}}function maxOffset(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function flattenRect(n,e){let s=e?n.left:n.right;return{left:s,right:s,top:n.top,bottom:n.bottom}}function windowRect(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function scrollRectIntoView(n,e,s,o,a,l,c,u){let f=n.ownerDocument,d=f.defaultView||window;for(let g=n,b=!1;g&&!b;)if(g.nodeType==1){let E,B=g==f.body;if(B)E=windowRect(d);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(b=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let X=g.getBoundingClientRect();E={left:X.left,right:X.left+g.clientWidth,top:X.top,bottom:X.top+g.clientHeight}}let V=0,D=0;if(a=="nearest")e.top0&&e.bottom>E.bottom+D&&(D=e.bottom-E.bottom+D+c)):e.bottom>E.bottom&&(D=e.bottom-E.bottom+c,s<0&&e.top-D0&&e.right>E.right+V&&(V=e.right-E.right+V+l)):e.right>E.right&&(V=e.right-E.right+l,s<0&&e.lefts.clientHeight||s.scrollWidth>s.clientWidth)return s;s=s.assignedSlot||s.parentNode}else if(s.nodeType==11)s=s.host;else break;return null}class DOMSelectionState{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:s,focusNode:o}=e;this.set(s,Math.min(e.anchorOffset,s?maxOffset(s):0),o,Math.min(e.focusOffset,o?maxOffset(o):0))}set(e,s,o,a){this.anchorNode=e,this.anchorOffset=s,this.focusNode=o,this.focusOffset=a}}let preventScrollSupported=null;function focusPreventScroll(n){if(n.setActive)return n.setActive();if(preventScrollSupported)return n.focus(preventScrollSupported);let e=[];for(let s=n;s&&(e.push(s,s.scrollTop,s.scrollLeft),s!=s.ownerDocument);s=s.parentNode);if(n.focus(preventScrollSupported==null?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let s=0;sMath.max(1,n.scrollHeight-n.clientHeight-4)}class DOMPos{constructor(e,s,o=!0){this.node=e,this.offset=s,this.precise=o}static before(e,s){return new DOMPos(e.parentNode,domIndex(e),s)}static after(e,s){return new DOMPos(e.parentNode,domIndex(e)+1,s)}}const noChildren=[];class ContentView{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let s=this.posAtStart;for(let o of this.children){if(o==e)return s;s+=o.length+o.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,s){if(this.flags&2){let o=this.dom,a=null,l;for(let c of this.children){if(c.flags&7){if(!c.dom&&(l=a?a.nextSibling:o.firstChild)){let u=ContentView.get(l);(!u||!u.parent&&u.canReuseDOM(c))&&c.reuseDOM(l)}c.sync(e,s),c.flags&=-8}if(l=a?a.nextSibling:o.firstChild,s&&!s.written&&s.node==o&&l!=c.dom&&(s.written=!0),c.dom.parentNode==o)for(;l&&l!=c.dom;)l=rm$1(l);else o.insertBefore(c.dom,l);a=c.dom}for(l=a?a.nextSibling:o.firstChild,l&&s&&s.node==o&&(s.written=!0);l;)l=rm$1(l)}else if(this.flags&1)for(let o of this.children)o.flags&7&&(o.sync(e,s),o.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,s){let o;if(e==this.dom)o=this.dom.childNodes[s];else{let a=maxOffset(e)==0?0:s==0?-1:1;for(;;){let l=e.parentNode;if(l==this.dom)break;a==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?a=-1:a=1),e=l}a<0?o=e:o=e.nextSibling}if(o==this.dom.firstChild)return 0;for(;o&&!ContentView.get(o);)o=o.nextSibling;if(!o)return this.length;for(let a=0,l=0;;a++){let c=this.children[a];if(c.dom==o)return l;l+=c.length+c.breakAfter}}domBoundsAround(e,s,o=0){let a=-1,l=-1,c=-1,u=-1;for(let f=0,d=o,g=o;fs)return b.domBoundsAround(e,s,d);if(E>=e&&a==-1&&(a=f,l=d),d>s&&b.dom.parentNode==this.dom){c=f,u=g;break}g=E,d=E+b.breakAfter}return{from:l,to:u<0?o+this.length:u,startDOM:(a?this.children[a-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:c=0?this.children[c].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.flags|=2),s.flags&1)return;s.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,o=noChildren){this.markDirty();for(let a=e;athis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let o=this.children[--this.i];this.pos-=o.length+o.breakAfter}}}function replaceRange(n,e,s,o,a,l,c,u,f){let{children:d}=n,g=d.length?d[e]:null,b=l.length?l[l.length-1]:null,E=b?b.breakAfter:c;if(!(e==o&&g&&!c&&!E&&l.length<2&&g.merge(s,a,l.length?b:null,s==0,u,f))){if(o0&&(!c&&l.length&&g.merge(s,g.length,l[0],!1,u,0)?g.breakAfter=l.shift().breakAfter:(sl)&&this.lineBreak(),a=c}return this.findPointBefore(o,s),this}readTextNode(e){let s=e.nodeValue;for(let o of this.points)o.node==e&&(o.pos=this.text.length+Math.min(o.offset,s.length));for(let o=0,a=this.lineSeparator?null:/\r\n?|\n/g;;){let l=-1,c=1,u;if(this.lineSeparator?(l=s.indexOf(this.lineSeparator,o),c=this.lineSeparator.length):(u=a.exec(s))&&(l=u.index,c=u[0].length),this.append(s.slice(o,l<0?s.length:l)),l<0)break;if(this.lineBreak(),c>1)for(let f of this.points)f.node==e&&f.pos>this.text.length&&(f.pos-=c-1);o=l+c}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),o=s&&s.overrideDOMText;if(o!=null){this.findPointInside(e,o.length);for(let a=o.iter();!a.next().done;)a.lineBreak?this.lineBreak():this.append(a.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,s){for(let o of this.points)o.node==e&&e.childNodes[o.offset]==s&&(o.pos=this.text.length)}findPointInside(e,s){for(let o of this.points)(e.nodeType==3?o.node==e:e.contains(o.node))&&(o.pos=this.text.length+Math.min(s,o.offset))}}function isBlockElement(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}let nav=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},doc=typeof document<"u"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent),ie_upto10=/MSIE \d/.test(nav.userAgent),ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent),ie$1=!!(ie_upto10||ie_11up||ie_edge),gecko=!ie$1&&/gecko\/(\d+)/i.test(nav.userAgent),chrome=!ie$1&&/Chrome\/(\d+)/.exec(nav.userAgent),webkit="webkitFontSmoothing"in doc.documentElement.style,safari=!ie$1&&/Apple Computer/.test(nav.vendor),ios=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie:ie$1,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,s){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(s&&s.node==this.dom&&(s.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,o){return this.flags&8||o&&(!(o instanceof TextView)||this.length-(s-e)+o.length>MaxJoinLen||o.flags&8)?!1:(this.text=this.text.slice(0,e)+(o?o.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s.flags|=this.flags&8,s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,o){return{from:o,to:o+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],o=0){super(),this.mark=e,this.children=s,this.length=o;for(let a of s)a.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,s){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,s)}merge(e,s,o,a,l,c){return o&&(!(o instanceof MarkView&&o.mark.eq(this.mark))||e&&l<=0||se&&s.push(o=e&&(a=l),o=f,l++}let c=this.length-e;return this.length=e,a>-1&&(this.children.length=a,this.markDirty()),new MarkView(this.mark,s,c)}domAtPos(e){return inlineDOMAtPos(this,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(n,e,s){let o=n.nodeValue.length;e>o&&(e=o);let a=e,l=e,c=0;e==0&&s<0||e==o&&s>=0?browser.chrome||browser.gecko||(e?(a--,c=1):l=0)?0:u.length-1];return browser.safari&&!c&&f.width==0&&(f=Array.prototype.find.call(u,d=>d.width)||f),c?flattenRect(f,c<0):f||null}class WidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.side=o,this.prevWidget=null}static create(e,s,o){return new WidgetView(e,s,o)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,o,a,l,c){return o&&(!(o instanceof WidgetView)||!this.widget.compare(o.widget)||e>0&&l<=0||s0)?DOMPos.before(this.dom):DOMPos.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,s){let o=this.widget.coordsAt(this.dom,e,s);if(o)return o;let a=this.dom.getClientRects(),l=null;if(!a.length)return null;let c=this.side?this.side<0:e>0;for(let u=c?a.length-1:0;l=a[u],!(e>0?u==0:u==a.length-1||l.top0?DOMPos.before(this.dom):DOMPos.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return Text.empty}get isHidden(){return!0}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineDOMAtPos(n,e){let s=n.dom,{children:o}=n,a=0;for(let l=0;al&&e0;l--){let c=o[l-1];if(c.dom.parentNode==s)return c.domAtPos(c.length)}for(let l=a;l0&&e instanceof MarkView&&a.length&&(o=a[a.length-1])instanceof MarkView&&o.mark.eq(e.mark)?joinInlineInto(o,e.children[0],s-1):(a.push(e),e.setParent(n)),n.length+=e.length}function coordsInChildren(n,e,s){let o=null,a=-1,l=null,c=-1;function u(d,g){for(let b=0,E=0;b=g&&(B.children.length?u(B,g-E):(!l||l.isHidden&&s>0)&&(V>g||E==V&&B.getSide()>0)?(l=B,c=g-E):(E-1?1:0)!=a.length-(s&&a.indexOf(s)>-1?1:0))return!1;for(let l of o)if(l!=s&&(a.indexOf(l)==-1||n[l]!==e[l]))return!1;return!0}function updateAttrs(n,e,s){let o=null;if(e)for(let a in e)s&&a in s||n.removeAttribute(o=a);if(s)for(let a in s)e&&e[a]==s[a]||n.setAttribute(o=a,s[a]);return!!o}function getAttrs$1(n){let e=Object.create(null);for(let s=0;s0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,o,e.widget||null,!1)}static replace(e){let s=!!e.block,o,a;if(e.isBlockGap)o=-5e8,a=4e8;else{let{start:l,end:c}=getInclusive(e,s);o=(l?s?-3e8:-1:5e8)-1,a=(c?s?2e8:1:-6e8)+1}return new PointDecoration(e,o,a,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:o}=getInclusive(e);super(s?-1:5e8,o?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var s,o;return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&(this.class||((s=this.attrs)===null||s===void 0?void 0:s.class))==(e.class||((o=e.attrs)===null||o===void 0?void 0:o.class))&&attrsEq(this.attrs,e.attrs,"class")}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&this.spec.class==e.spec.class&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,o,a,l,c){super(s,o,l,e),this.block=a,this.isReplace=c,this.mapMode=a?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5||this.widget.lineBreaks>0)}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(n,e=!1){let{inclusiveStart:s,inclusiveEnd:o}=n;return s==null&&(s=n.inclusive),o==null&&(o=n.inclusive),{start:s??e,end:o??e}}function widgetsEq(n,e){return n==e||!!(n&&e&&n.compare(e))}function addRange(n,e,s,o=0){let a=s.length-1;a>=0&&s[a]+o>=n?s[a]=Math.max(s[a],e):s.push(n,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,o,a,l,c){if(o){if(!(o instanceof LineView))return!1;this.dom||o.transferDOM(this)}return a&&this.setDeco(o?o.attrs:null),mergeChildrenInto(this,e,s,o?o.children:[],l,c),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:o,off:a}=this.childPos(e);a&&(s.append(this.children[o].split(a),0),this.children[o].merge(a,this.children[o].length,null,!1,0,0),o++);for(let l=o;l0&&this.children[o-1].length==0;)this.children[--o].destroy();return this.children.length=o,this.markDirty(),this.length=e,s}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,o=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),o&&(this.attrs=combineAttrs({class:o},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,s){var o;this.dom?this.flags&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,s);let a=this.dom.lastChild;for(;a&&ContentView.get(a)instanceof MarkView;)a=a.lastChild;if(!a||!this.length||a.nodeName!="BR"&&((o=ContentView.get(a))===null||o===void 0?void 0:o.isEditable)==!1&&(!browser.ios||!this.children.some(l=>l instanceof TextView))){let l=document.createElement("BR");l.cmIgnore=!0,this.dom.appendChild(l)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,s;for(let o of this.children){if(!(o instanceof TextView)||/[^ -~]/.test(o.text))return null;let a=clientRectsFor(o.dom);if(a.length!=1)return null;e+=a[0].width,s=a[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:s}:null}coordsAt(e,s){let o=coordsInChildren(this,e,s);if(!this.children.length&&o&&this.parent){let{heightOracle:a}=this.parent.view.viewState,l=o.bottom-o.top;if(Math.abs(l-a.lineHeight)<2&&a.textHeight=s){if(l instanceof LineView)return l;if(c>s)break}a=c+l.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,o){super(),this.widget=e,this.length=s,this.type=o,this.breakAfter=0,this.prevWidget=null}merge(e,s,o,a,l,c){return o&&(!(o instanceof BlockWidgetView)||!this.widget.compare(o.widget)||e>0&&l<=0||s0;){if(this.textOff==this.text.length){let{value:l,lineBreak:c,done:u}=this.cursor.next(this.skip);if(this.skip=0,u)throw new Error("Ran out of text content when drawing inline views");if(c){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=l,this.textOff=0}let a=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(s.length-o)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+a)),s),o),this.atCursorPos=!0,this.textOff+=a,e-=a,o=0}}span(e,s,o,a){this.buildText(s-e,o,a),this.pos=s,this.openStart<0&&(this.openStart=a)}point(e,s,o,a,l,c){if(this.disallowBlockEffectsFor[c]&&o instanceof PointDecoration){if(o.block)throw new RangeError("Block decorations may not be specified via plugins");if(s>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let u=s-e;if(o instanceof PointDecoration)if(o.block){let{type:f}=o;f==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(o.widget||new NullWidget("div"),u,f))}else{let f=WidgetView.create(o.widget||new NullWidget("span"),u,u?0:o.startSide),d=this.atCursorPos&&!f.isEditable&&l<=a.length&&(e0),g=!f.isEditable&&(ea.length||o.startSide<=0),b=this.getLine();this.pendingBuffer==2&&!d&&!f.isEditable&&(this.pendingBuffer=0),this.flushBuffer(a),d&&(b.append(wrapMarks(new WidgetBufferView(1),a),l),l=a.length+Math.max(0,l-a.length)),b.append(wrapMarks(f,a),l),this.atCursorPos=g,this.pendingBuffer=g?ea.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=a.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(o);u&&(this.textOff+u<=this.text.length?this.textOff+=u:(this.skip+=u-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=s),this.openStart<0&&(this.openStart=l)}static build(e,s,o,a,l){let c=new ContentBuilder(e,s,o,l);return c.openEnd=RangeSet.spans(a,s,o,c),c.openStart<0&&(c.openStart=c.openEnd),c.finish(c.openEnd),c}}function wrapMarks(n,e){for(let s of e)n=new MarkView(s,[n],n.length);return n}class NullWidget extends WidgetType{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}}const clickAddsSelectionRange=Facet.define(),dragMovesSelection$1=Facet.define(),mouseSelectionStyle=Facet.define(),exceptionSink=Facet.define(),updateListener=Facet.define(),inputHandler$1=Facet.define(),focusChangeEffect=Facet.define(),perLineTextDirection=Facet.define({combine:n=>n.some(e=>e)}),nativeSelectionHidden=Facet.define({combine:n=>n.some(e=>e)});class ScrollTarget{constructor(e,s="nearest",o="nearest",a=5,l=5){this.range=e,this.y=s,this.x=o,this.yMargin=a,this.xMargin=l}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(n,e)=>n.map(e)});function logException(n,e,s){let o=n.facet(exceptionSink);o.length?o[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:n=>n.length?n[0]:!0});let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,o,a){this.id=e,this.create=s,this.domEventHandlers=o,this.extension=a(this)}static define(e,s){const{eventHandlers:o,provide:a,decorations:l}=s||{};return new ViewPlugin(nextPluginID++,e,o,c=>{let u=[viewPlugin.of(c)];return l&&u.push(decorations.of(f=>{let d=f.plugin(c);return d?l(d):Decoration.none})),a&&u.push(a(c)),u})}static fromClass(e,s){return ViewPlugin.define(o=>new e(o),s)}}class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(o){if(logException(s.state,o,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(o){logException(e.state,o,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),atomicRanges=Facet.define(),scrollMargins=Facet.define();function getScrollMargins(n){let e=0,s=0,o=0,a=0;for(let l of n.state.facet(scrollMargins)){let c=l(n);c&&(c.left!=null&&(e=Math.max(e,c.left)),c.right!=null&&(s=Math.max(s,c.right)),c.top!=null&&(o=Math.max(o,c.top)),c.bottom!=null&&(a=Math.max(a,c.bottom)))}return{left:e,right:s,top:o,bottom:a}}const styleModule=Facet.define();class ChangedRange{constructor(e,s,o,a){this.fromA=e,this.toA=s,this.fromB=o,this.toB=a}join(e){return new ChangedRange(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 s=e.length,o=this;for(;s>0;s--){let a=e[s-1];if(!(a.fromA>o.toA)){if(a.toAg)break;l+=2}if(!f)return o;new ChangedRange(f.fromA,f.toA,f.fromB,f.toB).addToSet(o),c=f.toA,u=f.toB}}}class ViewUpdate{constructor(e,s,o){this.view=e,this.state=s,this.transactions=o,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let l of o)this.changes=this.changes.compose(l.changes);let a=[];this.changes.iterChangedRanges((l,c,u,f)=>a.push(new ChangedRange(l,c,u,f))),this.changedRanges=a}static create(e,s,o){return new ViewUpdate(e,s,o)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>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}}var Direction=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(n){let e=[];for(let s=0;s=s){if(u.level==o)return c;(l<0||(a!=0?a<0?u.froms:e[l].level>u.level))&&(l=c)}}if(l<0)throw new RangeError("Index out of range");return l}}const types$2=[];function computeOrder(n,e){let s=n.length,o=e==LTR?1:2,a=e==LTR?2:1;if(!n||o==1&&!BidiRE.test(n))return trivialOrder(s);for(let c=0,u=o,f=o;c=0;E-=3)if(BracketStack[E+1]==-g){let B=BracketStack[E+2],V=B&2?o:B&4?B&1?a:o:0;V&&(types$2[c]=types$2[BracketStack[E]]=V),u=E;break}}else{if(BracketStack.length==189)break;BracketStack[u++]=c,BracketStack[u++]=d,BracketStack[u++]=f}else if((b=types$2[c])==2||b==1){let E=b==o;f=E?0:1;for(let B=u-3;B>=0;B-=3){let V=BracketStack[B+2];if(V&2)break;if(E)BracketStack[B+2]|=2;else{if(V&4)break;BracketStack[B+2]|=4}}}for(let c=0;cu;){let g=d,b=types$2[--d]!=2;for(;d>u&&b==(types$2[d-1]!=2);)d--;l.push(new BidiSpan(d,g,b?2:1))}else l.push(new BidiSpan(u,c,0))}else for(let c=0;c0&&s.length&&(s.every(({fromA:u,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let o=this.view.inputState.composing<0?null:findCompositionRange(this.view,e.changes);if(this.hasComposition){this.markedForComposition.clear();let{from:u,to:f}=this.hasComposition;s=new ChangedRange(u,f,e.changes.mapPos(u,-1),e.changes.mapPos(f,1)).addToSet(s.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(browser.ie||browser.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,l=this.updateDeco(),c=findChangedDeco(a,l,e.changes);return s=ChangedRange.extendWithRanges(s,c),!(this.flags&7)&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s,o){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s,o);let{observer:a}=this.view;a.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let c=browser.chrome||browser.ios?{node:a.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,c),this.flags&=-8,c&&(c.written||a.selectionRange.focusNode!=c.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(c=>c.flags&=-9);let l=[];if(this.view.viewport.from||this.view.viewport.to=0?a[c]:null;if(!u)break;let{fromA:f,toA:d,fromB:g,toB:b}=u,E,B,V,D;if(o&&o.range.fromBg){let j=ContentBuilder.build(this.view.state.doc,g,o.range.fromB,this.decorations,this.dynamicDecorationMap),ue=ContentBuilder.build(this.view.state.doc,o.range.toB,b,this.decorations,this.dynamicDecorationMap);B=j.breakAtStart,V=j.openStart,D=ue.openEnd;let fe=this.compositionView(o);ue.breakAtStart?fe.breakAfter=1:ue.content.length&&fe.merge(fe.length,fe.length,ue.content[0],!1,ue.openStart,0)&&(fe.breakAfter=ue.content[0].breakAfter,ue.content.shift()),j.content.length&&fe.merge(0,0,j.content[j.content.length-1],!0,0,j.openEnd)&&j.content.pop(),E=j.content.concat(fe).concat(ue.content)}else({content:E,breakAtStart:B,openStart:V,openEnd:D}=ContentBuilder.build(this.view.state.doc,g,b,this.decorations,this.dynamicDecorationMap));let{i:X,off:q}=l.findPos(d,1),{i:z,off:oe}=l.findPos(f,-1);replaceRange(this,z,oe,X,q,E,B,V,D)}o&&this.fixCompositionDOM(o)}compositionView(e){let s=new TextView(e.text.nodeValue);s.flags|=8;for(let{deco:a}of e.marks)s=new MarkView(a,[s],s.length);let o=new LineView;return o.append(s,0),o}fixCompositionDOM(e){let s=(l,c)=>{c.flags|=8,this.markedForComposition.add(c);let u=ContentView.get(l);u!=c&&(u&&(u.dom=null),c.setDOM(l))},o=this.childPos(e.range.fromB,1),a=this.children[o.i];s(e.line,a);for(let l=e.marks.length-1;l>=-1;l--)o=a.childPos(o.off,1),a=a.children[o.i],s(l>=0?e.marks[l].node:e.text,a)}updateSelection(e=!1,s=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let o=this.view.root.activeElement,a=o==this.dom,l=!a&&hasSelection(this.dom,this.view.observer.selectionRange)&&!(o&&this.dom.contains(o));if(!(a||s||l))return;let c=this.forceSelection;this.forceSelection=!1;let u=this.view.state.selection.main,f=this.domAtPos(u.anchor),d=u.empty?f:this.domAtPos(u.head);if(browser.gecko&&u.empty&&!this.hasComposition&&betweenUneditable(f)){let b=document.createTextNode("");this.view.observer.ignore(()=>f.node.insertBefore(b,f.node.childNodes[f.offset]||null)),f=d=new DOMPos(b,0),c=!0}let g=this.view.observer.selectionRange;(c||!g.focusNode||!isEquivalentPosition(f.node,f.offset,g.anchorNode,g.anchorOffset)||!isEquivalentPosition(d.node,d.offset,g.focusNode,g.focusOffset))&&(this.view.observer.ignore(()=>{browser.android&&browser.chrome&&this.dom.contains(g.focusNode)&&inUneditable(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let b=getSelection(this.view.root);if(b)if(u.empty){if(browser.gecko){let E=nextToUneditable(f.node,f.offset);if(E&&E!=3){let B=nearbyTextNode(f.node,f.offset,E==1?1:-1);B&&(f=new DOMPos(B,E==1?0:B.nodeValue.length))}}b.collapse(f.node,f.offset),u.bidiLevel!=null&&g.cursorBidiLevel!=null&&(g.cursorBidiLevel=u.bidiLevel)}else if(b.extend){b.collapse(f.node,f.offset);try{b.extend(d.node,d.offset)}catch{}}else{let E=document.createRange();u.anchor>u.head&&([f,d]=[d,f]),E.setEnd(d.node,d.offset),E.setStart(f.node,f.offset),b.removeAllRanges(),b.addRange(E)}l&&this.view.root.activeElement==this.dom&&(this.dom.blur(),o&&o.focus())}),this.view.observer.setSelectionRange(f,d)),this.impreciseAnchor=f.precise?null:new DOMPos(g.anchorNode,g.anchorOffset),this.impreciseHead=d.precise?null:new DOMPos(g.focusNode,g.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,s=e.state.selection.main,o=getSelection(e.root),{anchorNode:a,anchorOffset:l}=e.observer.selectionRange;if(!o||!s.empty||!s.assoc||!o.modify)return;let c=LineView.find(this,s.head);if(!c)return;let u=c.posAtStart;if(s.head==u||s.head==u+c.length)return;let f=this.coordsAt(s.head,-1),d=this.coordsAt(s.head,1);if(!f||!d||f.bottom>d.top)return;let g=this.domAtPos(s.head+s.assoc);o.collapse(g.node,g.offset),o.modify("move",s.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let b=e.observer.selectionRange;e.docView.posFromDOM(b.anchorNode,b.anchorOffset)!=s.from&&o.collapse(a,l)}nearest(e){for(let s=e;s;){let o=ContentView.get(s);if(o&&o.rootView==this)return o;s=s.parentNode}return null}posFromDOM(e,s){let o=this.nearest(e);if(!o)throw new RangeError("Trying to find position for a DOM position outside of the document");return o.localPosFromDOM(e,s)+o.posAtStart}domAtPos(e){let{i:s,off:o}=this.childCursor().findPos(e,-1);for(;sc||e==c&&l.type!=BlockType.WidgetBefore&&l.type!=BlockType.WidgetAfter&&(!a||s==2||this.children[a-1].breakAfter||this.children[a-1].type==BlockType.WidgetBefore&&s>-2))return l.coordsAt(e-c,s);o=c}}coordsForChar(e){let{i:s,off:o}=this.childPos(e,1),a=this.children[s];if(!(a instanceof LineView))return null;for(;a.children.length;){let{i:u,off:f}=a.childPos(o,1);for(;;u++){if(u==a.children.length)return null;if((a=a.children[u]).length)break}o=f}if(!(a instanceof TextView))return null;let l=findClusterBreak(a.text,o);if(l==o)return null;let c=textRange(a.dom,o,l).getClientRects();return!c.length||c[0].top>=c[0].bottom?null:c[0]}measureVisibleLineHeights(e){let s=[],{from:o,to:a}=e,l=this.view.contentDOM.clientWidth,c=l>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,u=-1,f=this.view.textDirection==Direction.LTR;for(let d=0,g=0;ga)break;if(d>=o){let B=b.dom.getBoundingClientRect();if(s.push(B.height),c){let V=b.dom.lastChild,D=V?clientRectsFor(V):[];if(D.length){let X=D[D.length-1],q=f?X.right-B.left:B.right-X.left;q>u&&(u=q,this.minWidth=l,this.minWidthFrom=d,this.minWidthTo=E)}}}d=E+b.breakAfter}return s}textDirectionAt(e){let{i:s}=this.childPos(e,1);return getComputedStyle(this.children[s].dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){for(let l of this.children)if(l instanceof LineView){let c=l.measureTextSize();if(c)return c}let e=document.createElement("div"),s,o,a;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let l=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,o=l?l.width/27:7,a=l?l.height:s,e.remove()}),{lineHeight:s,charWidth:o,textHeight:a}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let o=0,a=0;;a++){let l=a==s.viewports.length?null:s.viewports[a],c=l?l.from-1:this.length;if(c>o){let u=s.lineBlockAt(c).bottom-s.lineBlockAt(o).top;e.push(Decoration.replace({widget:new BlockGapWidget(u),block:!0,inclusive:!0,isBlockGap:!0}).range(o,c))}if(!l)break;o=l.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.state.facet(decorations).map((s,o)=>(this.dynamicDecorationMap[o]=typeof s=="function")?s(this.view):s);for(let s=e.length;ss.anchor?-1:1),a;if(!o)return;!s.empty&&(a=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(o={left:Math.min(o.left,a.left),top:Math.min(o.top,a.top),right:Math.max(o.right,a.right),bottom:Math.max(o.bottom,a.bottom)});let l=getScrollMargins(this.view),c={left:o.left-l.left,top:o.top-l.top,right:o.right+l.right,bottom:o.bottom+l.bottom};scrollRectIntoView(this.view.scrollDOM,c,s.head-1)return null;c+=b.text.length}if(u=u.parentNode,!u)return null;let f=ContentView.get(u);if(f){a=l=f.posAtStart+c;break}}return{from:a,to:l,node:s}}function findCompositionRange(n,e){let s=findCompositionNode(n);if(!s)return null;let{from:o,to:a,node:l}=s,c=e.mapPos(o,-1),u=e.mapPos(a,1),f=l.nodeValue;if(/[\n\r]/.test(f))return null;if(u-c!=f.length){let E=e.mapPos(o,1),B=e.mapPos(a,-1);if(B-E==f.length)c=E,u=B;else if(n.state.doc.sliceString(u-f.length,u)==f)c=u-f.length;else if(n.state.doc.sliceString(c,c+f.length)==f)u=c+f.length;else return null}let{main:d}=n.state.selection;if(n.state.doc.sliceString(c,u)!=f||c>d.head||u0)o=o.childNodes[a-1],a=maxOffset(o);else break}if(s>=0)for(let o=n,a=e;;){if(o.nodeType==3)return o;if(o.nodeType==1&&a=0)o=o.childNodes[a],a=0;else break}return null}function nextToUneditable(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let d=findClusterBreak(a.text,c,!1);if(o(a.text.slice(d,c))!=f)break;c=d}for(;un?e.left-n:Math.max(0,n-e.right)}function getdy(n,e){return e.top>n?e.top-n:Math.max(0,n-e.bottom)}function yOverlap(n,e){return n.tope.top+1}function upTop(n,e){return en.bottom?{top:n.top,left:n.left,right:n.right,bottom:e}:n}function domPosAtCoords(n,e,s){let o,a,l,c,u=!1,f,d,g,b;for(let V=n.firstChild;V;V=V.nextSibling){let D=clientRectsFor(V);for(let X=0;Xoe||c==oe&&l>z){o=V,a=q,l=z,c=oe;let j=oe?s0?X0)}z==0?s>q.bottom&&(!g||g.bottomq.top)&&(d=V,b=q):g&&yOverlap(g,q)?g=upBot(g,q.bottom):b&&yOverlap(b,q)&&(b=upTop(b,q.top))}}if(g&&g.bottom>=s?(o=f,a=g):b&&b.top<=s&&(o=d,a=b),!o)return{node:n,offset:0};let E=Math.max(a.left,Math.min(a.right,e));if(o.nodeType==3)return domPosInText(o,E,s);if(u&&o.contentEditable!="false")return domPosAtCoords(o,E,s);let B=Array.prototype.indexOf.call(n.childNodes,o)+(e>=(a.left+a.right)/2?1:0);return{node:n,offset:B}}function domPosInText(n,e,s){let o=n.nodeValue.length,a=-1,l=1e9,c=0;for(let u=0;us?g.top-s:s-g.bottom)-1;if(g.left-1<=e&&g.right+1>=e&&b=(g.left+g.right)/2,B=E;if((browser.chrome||browser.gecko)&&textRange(n,u).getBoundingClientRect().left==g.right&&(B=!E),b<=0)return{node:n,offset:u+(B?1:0)};a=u+(B?1:0),l=b}}}return{node:n,offset:a>-1?a:c>0?n.nodeValue.length:0}}function posAtCoords(n,e,s,o=-1){var a,l;let c=n.contentDOM.getBoundingClientRect(),u=c.top+n.viewState.paddingTop,f,{docHeight:d}=n.viewState,{x:g,y:b}=e,E=b-u;if(E<0)return 0;if(E>d)return n.state.doc.length;for(let j=n.viewState.heightOracle.textHeight/2,ue=!1;f=n.elementAtHeight(E),f.type!=BlockType.Text;)for(;E=o>0?f.bottom+j:f.top-j,!(E>=0&&E<=d);){if(ue)return s?null:0;ue=!0,o=-o}b=u+E;let B=f.from;if(Bn.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:s?null:posAtCoordsImprecise(n,c,f,g,b);let V=n.dom.ownerDocument,D=n.root.elementFromPoint?n.root:V,X=D.elementFromPoint(g,b);X&&!n.contentDOM.contains(X)&&(X=null),X||(g=Math.max(c.left+1,Math.min(c.right-1,g)),X=D.elementFromPoint(g,b),X&&!n.contentDOM.contains(X)&&(X=null));let q,z=-1;if(X&&((a=n.docView.nearest(X))===null||a===void 0?void 0:a.isEditable)!=!1){if(V.caretPositionFromPoint){let j=V.caretPositionFromPoint(g,b);j&&({offsetNode:q,offset:z}=j)}else if(V.caretRangeFromPoint){let j=V.caretRangeFromPoint(g,b);j&&({startContainer:q,startOffset:z}=j,(!n.contentDOM.contains(q)||browser.safari&&isSuspiciousSafariCaretResult(q,z,g)||browser.chrome&&isSuspiciousChromeCaretResult(q,z,g))&&(q=void 0))}}if(!q||!n.docView.dom.contains(q)){let j=LineView.find(n.docView,B);if(!j)return E>f.top+f.height/2?f.to:f.from;({node:q,offset:z}=domPosAtCoords(j.dom,g,b))}let oe=n.docView.nearest(q);if(!oe)return null;if(oe.isWidget&&((l=oe.dom)===null||l===void 0?void 0:l.nodeType)==1){let j=oe.dom.getBoundingClientRect();return e.yn.defaultLineHeight*1.5){let u=n.viewState.heightOracle.textHeight,f=Math.floor((a-s.top-(n.defaultLineHeight-u)*.5)/u);l+=f*n.viewState.heightOracle.lineLength}let c=n.state.sliceDoc(s.from,s.to);return s.from+findColumn(c,l,n.state.tabSize)}function isSuspiciousSafariCaretResult(n,e,s){let o;if(n.nodeType!=3||e!=(o=n.nodeValue.length))return!1;for(let a=n.nextSibling;a;a=a.nextSibling)if(a.nodeType!=1||a.nodeName!="BR")return!1;return textRange(n,o-1,o).getBoundingClientRect().left>s}function isSuspiciousChromeCaretResult(n,e,s){if(e!=0)return!1;for(let a=n;;){let l=a.parentNode;if(!l||l.nodeType!=1||l.firstChild!=a)return!1;if(l.classList.contains("cm-line"))break;a=l}let o=n.nodeType==1?n.getBoundingClientRect():textRange(n,0,Math.max(n.nodeValue.length,1)).getBoundingClientRect();return s-o.left>5}function blockAt(n,e){let s=n.lineBlockAt(e);if(Array.isArray(s.type)){for(let o of s.type)if(o.to>e||o.to==e&&(o.to==s.to||o.type==BlockType.Text))return o}return s}function moveToLineBoundary(n,e,s,o){let a=blockAt(n,e.head),l=!o||a.type!=BlockType.Text||!(n.lineWrapping||a.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>a.from?e.head-1:e.head);if(l){let c=n.dom.getBoundingClientRect(),u=n.textDirectionAt(a.from),f=n.posAtCoords({x:s==(u==Direction.LTR)?c.right-1:c.left+1,y:(l.top+l.bottom)/2});if(f!=null)return EditorSelection.cursor(f,s?-1:1)}return EditorSelection.cursor(s?a.to:a.from,s?-1:1)}function moveByChar(n,e,s,o){let a=n.state.doc.lineAt(e.head),l=n.bidiSpans(a),c=n.textDirectionAt(a.from);for(let u=e,f=null;;){let d=moveVisually(a,l,c,u,s),g=movedOver;if(!d){if(a.number==(s?n.state.doc.lines:1))return u;g=` +`,a=n.state.doc.line(a.number+(s?1:-1)),l=n.bidiSpans(a),d=EditorSelection.cursor(s?a.from:a.to)}if(f){if(!f(g))return u}else{if(!o)return d;f=o(g)}u=d}}function byGroup(n,e,s){let o=n.state.charCategorizer(e),a=o(s);return l=>{let c=o(l);return a==CharCategory.Space&&(a=c),a==c}}function moveVertically(n,e,s,o){let a=e.head,l=s?1:-1;if(a==(s?n.state.doc.length:0))return EditorSelection.cursor(a,e.assoc);let c=e.goalColumn,u,f=n.contentDOM.getBoundingClientRect(),d=n.coordsAtPos(a),g=n.documentTop;if(d)c==null&&(c=d.left-f.left),u=l<0?d.top:d.bottom;else{let B=n.viewState.lineBlockAt(a);c==null&&(c=Math.min(f.right-f.left,n.defaultCharacterWidth*(a-B.from))),u=(l<0?B.top:B.bottom)+g}let b=f.left+c,E=o??n.viewState.heightOracle.textHeight>>1;for(let B=0;;B+=10){let V=u+(E+B)*l,D=posAtCoords(n,{x:b,y:V},!1,l);if(Vf.bottom||(l<0?Da))return EditorSelection.cursor(D,e.assoc,void 0,c)}}function skipAtomicRanges(n,e,s){for(;;){let o=0;for(let a of n)a.between(e-1,e+1,(l,c,u)=>{if(e>l&&ea(n)),s.from,e.head>s.from?-1:1);return o==s.from?s:EditorSelection.cursor(o,o{this.ignoreDuringComposition(a)||a.type=="keydown"&&this.keydown(e,a)||(this.mustFlushObserver(a)&&e.observer.forceFlush(),this.runCustomHandlers(a.type,e,a)?a.preventDefault():o(e,a))};for(let o in handlers){let a=handlers[o];e.contentDOM.addEventListener(o,l=>{eventBelongsToEditor(e,l)&&s(a,l)},handlerOptions[o]),this.registeredEvents.push(o)}e.scrollDOM.addEventListener("mousedown",o=>{if(o.target==e.scrollDOM&&o.clientY>e.contentDOM.getBoundingClientRect().bottom&&(s(handlers.mousedown,o),!o.defaultPrevented&&o.button==2)){let a=e.contentDOM.style.minHeight;e.contentDOM.style.minHeight="100%",setTimeout(()=>e.contentDOM.style.minHeight=a,200)}}),e.scrollDOM.addEventListener("drop",o=>{o.target==e.scrollDOM&&o.clientY>e.contentDOM.getBoundingClientRect().bottom&&s(handlers.drop,o)}),browser.chrome&&browser.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,browser.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,s){var o;let a;this.customHandlers=[];for(let l of s)if(a=(o=l.update(e).spec)===null||o===void 0?void 0:o.domEventHandlers){this.customHandlers.push({plugin:l.value,handlers:a});for(let c in a)this.registeredEvents.indexOf(c)<0&&c!="scroll"&&(this.registeredEvents.push(c),e.contentDOM.addEventListener(c,u=>{eventBelongsToEditor(e,u)&&this.runCustomHandlers(c,e,u)&&u.preventDefault()}))}}runCustomHandlers(e,s,o){for(let a of this.customHandlers){let l=a.handlers[e];if(l)try{if(l.call(a.plugin,o,s)||o.defaultPrevented)return!0}catch(c){logException(s.state,c)}}return!1}runScrollHandlers(e,s){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let o of this.customHandlers){let a=o.handlers.scroll;if(a)try{a.call(o.plugin,s,e)}catch(l){logException(e.state,l)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()a.keyCode==s.keyCode))&&!s.ctrlKey||EmacsyPendingKeys.indexOf(s.key)>-1&&s.ctrlKey&&!s.shiftKey)?(this.pendingIOSKey=o||s,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],EmacsyPendingKeys="dthko",modifierCodes=[16,17,18,20,91,92,224,225],dragScrollMargin=6;function dragScrollSpeed(n){return Math.max(0,n)*.7+8}function dist(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class MouseSelection{constructor(e,s,o,a){this.view=e,this.startEvent=s,this.style=o,this.mustSelect=a,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=s,this.scrollParent=scrollableParent(e.contentDOM),this.atoms=e.state.facet(atomicRanges).map(c=>c(e));let l=e.contentDOM.ownerDocument;l.addEventListener("mousemove",this.move=this.move.bind(this)),l.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var s;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let o=0,a=0,l=((s=this.scrollParent)===null||s===void 0?void 0:s.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},c=getScrollMargins(this.view);e.clientX-c.left<=l.left+dragScrollMargin?o=-dragScrollSpeed(l.left-e.clientX):e.clientX+c.right>=l.right-dragScrollMargin&&(o=dragScrollSpeed(e.clientX-l.right)),e.clientY-c.top<=l.top+dragScrollMargin?a=-dragScrollSpeed(l.top-e.clientY):e.clientY+c.bottom>=l.bottom-dragScrollMargin&&(a=dragScrollSpeed(e.clientY-l.bottom)),this.setScrollSpeed(o,a)}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=null}setScrollSpeed(e,s){this.scrollSpeed={x:e,y:s},e||s?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let s=null;for(let o=0;othis.select(this.lastEvent),20)}}function addsSelectionRange(n,e){let s=n.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(n,e){let s=n.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(n,e){let{main:s}=n.state.selection;if(s.empty)return!1;let o=getSelection(n.root);if(!o||o.rangeCount==0)return!0;let a=o.getRangeAt(0).getClientRects();for(let l=0;l=e.clientX&&c.top<=e.clientY&&c.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,o;s!=n.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(o=ContentView.get(s))&&o.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),handlerOptions=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(n){let e=n.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{n.focus(),s.remove(),doPaste(n,s.value)},50)}function doPaste(n,e){let{state:s}=n,o,a=1,l=s.toText(e),c=l.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(f=>f.empty)&&lastLinewiseCopy==l.toString()){let f=-1;o=s.changeByRange(d=>{let g=s.doc.lineAt(d.from);if(g.from==f)return{range:d};f=g.from;let b=s.toText((c?l.line(a++).text:e)+s.lineBreak);return{changes:{from:g.from,insert:b},range:EditorSelection.cursor(d.from+b.length)}})}else c?o=s.changeByRange(f=>{let d=l.line(a++);return{changes:{from:f.from,to:f.to,insert:d.text},range:EditorSelection.cursor(f.from+d.length)}}):o=s.replaceSelection(l);n.dispatch(o,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(n,e)=>{n.inputState.setSelectionOrigin("select"),e.keyCode==27&&(n.inputState.lastEscPress=Date.now())};handlers.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};handlerOptions.touchstart=handlerOptions.touchmove={passive:!0};handlers.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return;let s=null;for(let o of n.state.facet(mouseSelectionStyle))if(s=o(n,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(n,e)),s){let o=!n.hasFocus;n.inputState.startMouseSelection(new MouseSelection(n,e,s,o)),o&&n.observer.ignore(()=>focusPreventScroll(n.contentDOM)),n.inputState.mouseSelection&&n.inputState.mouseSelection.start(e)}};function rangeForClick(n,e,s,o){if(o==1)return EditorSelection.cursor(e,s);if(o==2)return groupAt(n.state,e,s);{let a=LineView.find(n.docView,e),l=n.state.doc.lineAt(a?a.posAtEnd:e),c=a?a.posAtStart:l.from,u=a?a.posAtEnd:l.to;return un>=e.top&&n<=e.bottom,inside$1=(n,e,s)=>insideY(e,s)&&n>=s.left&&n<=s.right;function findPositionSide(n,e,s,o){let a=LineView.find(n.docView,e);if(!a)return 1;let l=e-a.posAtStart;if(l==0)return 1;if(l==a.length)return-1;let c=a.coordsAt(l,-1);if(c&&inside$1(s,o,c))return-1;let u=a.coordsAt(l,1);return u&&inside$1(s,o,u)?1:c&&insideY(o,c)?-1:1}function queryPos(n,e){let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(n,s,e.clientX,e.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(n){if(!BadMouseDetail)return n.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=n,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(n,e){let s=queryPos(n,e),o=getClickType(e),a=n.state.selection;return{update(l){l.docChanged&&(s.pos=l.changes.mapPos(s.pos),a=a.map(l.changes))},get(l,c,u){let f=queryPos(n,l),d,g=rangeForClick(n,f.pos,f.bias,o);if(s.pos!=f.pos&&!c){let b=rangeForClick(n,s.pos,s.bias,o),E=Math.min(b.from,g.from),B=Math.max(b.to,g.to);g=E1&&(d=removeRangeAround(a,f.pos))?d:u?a.addRange(g):EditorSelection.create([g])}}}function removeRangeAround(n,e){for(let s=0;s=e)return EditorSelection.create(n.ranges.slice(0,s).concat(n.ranges.slice(s+1)),n.mainIndex==s?0:n.mainIndex-(n.mainIndex>s?1:0))}return null}handlers.dragstart=(n,e)=>{let{selection:{main:s}}=n.state,{mouseSelection:o}=n.inputState;o&&(o.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",n.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(n,e,s,o){if(!s)return;let a=n.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:l}=n.inputState,c=o&&l&&l.dragging&&dragMovesSelection(n,e)?{from:l.dragging.from,to:l.dragging.to}:null,u={from:a,insert:s},f=n.state.changes(c?[c,u]:u);n.focus(),n.dispatch({changes:f,selection:{anchor:f.mapPos(a,-1),head:f.mapPos(a,1)},userEvent:c?"move.drop":"input.drop"})}handlers.drop=(n,e)=>{if(!e.dataTransfer)return;if(n.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let o=Array(s.length),a=0,l=()=>{++a==s.length&&dropText(n,e,o.filter(c=>c!=null).join(n.state.lineBreak),!1)};for(let c=0;c{/[\x00-\x08\x0e-\x1f]{2}/.test(u.result)||(o[c]=u.result),l()},u.readAsText(s[c])}}else dropText(n,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(n,e)=>{if(n.state.readOnly)return e.preventDefault();n.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(n,s.getData("text/plain")||s.getData("text/uri-text")),e.preventDefault()):capturePaste(n)};function captureCopy(n,e){let s=n.dom.parentNode;if(!s)return;let o=s.appendChild(document.createElement("textarea"));o.style.cssText="position: fixed; left: -10000px; top: 10px",o.value=e,o.focus(),o.selectionEnd=e.length,o.selectionStart=0,setTimeout(()=>{o.remove(),n.focus()},50)}function copiedRange(n){let e=[],s=[],o=!1;for(let a of n.selection.ranges)a.empty||(e.push(n.sliceDoc(a.from,a.to)),s.push(a));if(!e.length){let a=-1;for(let{from:l}of n.selection.ranges){let c=n.doc.lineAt(l);c.number>a&&(e.push(c.text),s.push({from:c.from,to:Math.min(n.doc.length,c.to+1)})),a=c.number}o=!0}return{text:e.join(n.lineBreak),ranges:s,linewise:o}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(n,e)=>{let{text:s,ranges:o,linewise:a}=copiedRange(n.state);if(!s&&!a)return;lastLinewiseCopy=a?s:null;let l=brokenClipboardAPI?null:e.clipboardData;l?(e.preventDefault(),l.clearData(),l.setData("text/plain",s)):captureCopy(n,s),e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:o,scrollIntoView:!0,userEvent:"delete.cut"})};const isFocusChange=Annotation.define();function focusChangeTransaction(n,e){let s=[];for(let o of n.facet(focusChangeEffect)){let a=o(n,e);a&&s.push(a)}return s?n.update({effects:s,annotations:isFocusChange.of(!0)}):null}function updateForFocusChange(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let s=focusChangeTransaction(n.state,e);s?n.dispatch(s):n.update([])}},10)}handlers.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),updateForFocusChange(n)};handlers.blur=n=>{n.observer.clearSelectionRange(),updateForFocusChange(n)};handlers.compositionstart=handlers.compositionupdate=n=>{n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0)};handlers.compositionend=n=>{n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,browser.chrome&&browser.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50)};handlers.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(n,e)=>{var s;let o;if(browser.chrome&&browser.android&&(o=PendingKeys.find(a=>a.inputType==e.inputType))&&(n.observer.delayAndroidKey(o.key,o.keyCode),o.key=="Backspace"||o.key=="Delete")){let a=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var l;(((l=window.visualViewport)===null||l===void 0?void 0:l.height)||0)>a+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(e){this.lineWrapping=e,this.doc=Text.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let o=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(o+=Math.max(0,Math.ceil((s-e-o*this.lineLength*.5)/this.lineLength))),this.lineHeight*o}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let s=!1;for(let o=0;o-1,f=Math.round(s)!=Math.round(this.lineHeight)||this.lineWrapping!=u;if(this.lineWrapping=u,this.lineHeight=s,this.charWidth=o,this.textHeight=a,this.lineLength=l,f){this.heightSamples={};for(let d=0;d0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,o){return HeightMap.of(o)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,o,a){let l=this,c=o.doc;for(let u=a.length-1;u>=0;u--){let{fromA:f,toA:d,fromB:g,toB:b}=a[u],E=l.lineAt(f,QueryType$1.ByPosNoHeight,o.setDoc(s),0,0),B=E.to>=d?E:l.lineAt(d,QueryType$1.ByPosNoHeight,o,0,0);for(b+=B.to-d,d=B.to;u>0&&E.from<=a[u-1].toA;)f=a[u-1].fromA,g=a[u-1].fromB,u--,fl*2){let u=e[s-1];u.break?e.splice(--s,1,u.left,null,u.right):e.splice(--s,1,u.left,u.right),o+=1+u.break,a-=u.size}else if(l>a*2){let u=e[o];u.break?e.splice(o,1,u.left,null,u.right):e.splice(o,1,u.left,u.right),o+=2+u.break,l-=u.size}else break;else if(a=l&&c(this.blockAt(0,o,a,l))}updateHeight(e,s=0,o=!1,a){return a&&a.from<=s&&a.more&&this.setHeight(e,a.heights[a.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(e,s){super(e,s,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,s,o,a){return new BlockInfo(a,this.length,o,this.height,this.breaks)}replace(e,s,o){let a=o[0];return o.length==1&&(a instanceof HeightMapText||a instanceof HeightMapGap&&a.flags&4)&&Math.abs(this.length-a.length)<10?(a instanceof HeightMapGap?a=new HeightMapText(a.length,this.height):a.height=this.height,this.outdated||(a.outdated=!1),a):HeightMap.of(o)}updateHeight(e,s=0,o=!1,a){return a&&a.from<=s&&a.more?this.setHeight(e,a.heights[a.index++]):(o||this.outdated)&&this.setHeight(e,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:""})`}}class HeightMapGap extends HeightMap{constructor(e){super(e,0)}heightMetrics(e,s){let o=e.doc.lineAt(s).number,a=e.doc.lineAt(s+this.length).number,l=a-o+1,c,u=0;if(e.lineWrapping){let f=Math.min(this.height,e.lineHeight*l);c=f/l,this.length>l+1&&(u=(this.height-f)/(this.length-l-1))}else c=this.height/l;return{firstLine:o,lastLine:a,perLine:c,perChar:u}}blockAt(e,s,o,a){let{firstLine:l,lastLine:c,perLine:u,perChar:f}=this.heightMetrics(s,a);if(s.lineWrapping){let d=a+Math.round(Math.max(0,Math.min(1,(e-o)/this.height))*this.length),g=s.doc.lineAt(d),b=u+g.length*f,E=Math.max(o,e-b/2);return new BlockInfo(g.from,g.length,E,b,0)}else{let d=Math.max(0,Math.min(c-l,Math.floor((e-o)/u))),{from:g,length:b}=s.doc.line(l+d);return new BlockInfo(g,b,o+u*d,u,0)}}lineAt(e,s,o,a,l){if(s==QueryType$1.ByHeight)return this.blockAt(e,o,a,l);if(s==QueryType$1.ByPosNoHeight){let{from:B,to:V}=o.doc.lineAt(e);return new BlockInfo(B,V-B,0,0,0)}let{firstLine:c,perLine:u,perChar:f}=this.heightMetrics(o,l),d=o.doc.lineAt(e),g=u+d.length*f,b=d.number-c,E=a+u*b+f*(d.from-l-b);return new BlockInfo(d.from,d.length,Math.max(a,Math.min(E,a+this.height-g)),g,0)}forEachLine(e,s,o,a,l,c){e=Math.max(e,l),s=Math.min(s,l+this.length);let{firstLine:u,perLine:f,perChar:d}=this.heightMetrics(o,l);for(let g=e,b=a;g<=s;){let E=o.doc.lineAt(g);if(g==e){let V=E.number-u;b+=f*V+d*(e-l-V)}let B=f+d*E.length;c(new BlockInfo(E.from,E.length,b,B,0)),b+=B,g=E.to+1}}replace(e,s,o){let a=this.length-s;if(a>0){let l=o[o.length-1];l instanceof HeightMapGap?o[o.length-1]=new HeightMapGap(l.length+a):o.push(null,new HeightMapGap(a-1))}if(e>0){let l=o[0];l instanceof HeightMapGap?o[0]=new HeightMapGap(e+l.length):o.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(o)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,o=!1,a){let l=s+this.length;if(a&&a.from<=s+this.length&&a.more){let c=[],u=Math.max(s,a.from),f=-1;for(a.from>s&&c.push(new HeightMapGap(a.from-s-1).updateHeight(e,s));u<=l&&a.more;){let g=e.doc.lineAt(u).length;c.length&&c.push(null);let b=a.heights[a.index++];f==-1?f=b:Math.abs(b-f)>=Epsilon&&(f=-2);let E=new HeightMapText(g,b);E.outdated=!1,c.push(E),u+=g+1}u<=l&&c.push(null,new HeightMapGap(l-u).updateHeight(e,u));let d=HeightMap.of(c);return(f<0||Math.abs(d.height-this.height)>=Epsilon||Math.abs(f-this.heightMetrics(e,s).perLine)>=Epsilon)&&(e.heightChanged=!0),d}else(o||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,o){super(e.length+s+o.length,e.height+o.height,s|(e.outdated||o.outdated?2:0)),this.left=e,this.right=o,this.size=e.size+o.size}get break(){return this.flags&1}blockAt(e,s,o,a){let l=o+this.left.height;return eu))return d;let g=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return f?d.join(this.right.lineAt(u,g,o,c,u)):this.left.lineAt(u,g,o,a,l).join(d)}forEachLine(e,s,o,a,l,c){let u=a+this.left.height,f=l+this.left.length+this.break;if(this.break)e=f&&this.right.forEachLine(e,s,o,u,f,c);else{let d=this.lineAt(f,QueryType$1.ByPos,o,a,l);e=e&&d.from<=s&&c(d),s>d.to&&this.right.forEachLine(d.to+1,s,o,u,f,c)}}replace(e,s,o){let a=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-a,s-a,o));let l=[];e>0&&this.decomposeLeft(e,l);let c=l.length;for(let u of o)l.push(u);if(e>0&&mergeGaps(l,c-1),s=o&&s.push(null)),e>o&&this.right.decomposeLeft(e-o,s)}decomposeRight(e,s){let o=this.left.length,a=o+this.break;if(e>=a)return this.right.decomposeRight(e-a,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,o=!1,a){let{left:l,right:c}=this,u=s+l.length+this.break,f=null;return a&&a.from<=s+l.length&&a.more?f=l=l.updateHeight(e,s,o,a):l.updateHeight(e,s,o),a&&a.from<=u+c.length&&a.more?f=c=c.updateHeight(e,u,o,a):c.updateHeight(e,u,o),f?this.balanced(l,c):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(n,e){let s,o;n[e]==null&&(s=n[e-1])instanceof HeightMapGap&&(o=n[e+1])instanceof HeightMapGap&&n.splice(e-1,3,new HeightMapGap(s.length+1+o.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,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,s){if(this.lineStart>-1){let o=Math.min(s,this.lineEnd),a=this.nodes[this.nodes.length-1];a instanceof HeightMapText?a.length+=o-this.pos:(o>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(o-this.pos,-1)),this.writtenTo=o,s>o&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,o){if(e=relevantWidgetHeight)&&this.addLineDeco(a,l,c)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let o=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(o.flags|=4),o}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){var s;this.enterLine();let o=(s=e.deco)===null||s===void 0?void 0:s.type;o==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,o!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s,o){let a=this.ensureLine();a.length+=o,a.collapsed+=o,a.widgetHeight=Math.max(a.widgetHeight,e),a.breaks+=s,this.writtenTo=this.pos=this.pos+o}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTog.clientHeight||g.scrollWidth>g.clientWidth)&&b.overflow!="visible"){let E=g.getBoundingClientRect();l=Math.max(l,E.left),c=Math.min(c,E.right),u=Math.max(u,E.top),f=d==n.parentNode?E.bottom:Math.min(f,E.bottom)}d=b.position=="absolute"||b.position=="fixed"?g.offsetParent:g.parentNode}else if(d.nodeType==11)d=d.host;else break;return{left:l-s.left,right:Math.max(l,c)-s.left,top:u-(s.top+e),bottom:Math.max(u,f)-(s.top+e)}}function fullPixelRange(n,e){let s=n.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,o){this.from=e,this.to=s,this.size=o}static same(e,s){if(e.length!=s.length)return!1;for(let o=0;otypeof o!="function"&&o.class=="cm-lineWrapping");this.heightOracle=new HeightOracle(s),this.stateDeco=e.facet(decorations).filter(o=>typeof o!="function"),this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(e.doc),[new ChangedRange(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Decoration.set(this.lineGaps.map(o=>o.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let o=0;o<=1;o++){let a=o?s.head:s.anchor;if(!e.some(({from:l,to:c})=>a>=l&&a<=c)){let{from:l,to:c}=this.lineBlockAt(a);e.push(new Viewport(l,c))}}this.viewports=e.sort((o,a)=>o.from-a.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){this.state=e.state;let o=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(g=>typeof g!="function");let a=e.changedRanges,l=ChangedRange.extendWithRanges(a,heightRelevantDecoChanges(o,this.stateDeco,e?e.changes:ChangeSet.empty(this.state.doc.length))),c=this.heightMap.height,u=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),l),this.heightMap.height!=c&&(e.flags|=2),u?(this.scrollAnchorPos=e.changes.mapPos(u.from,-1),this.scrollAnchorHeight=u.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let f=l.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headf.to)||!this.viewportIsAppropriate(f))&&(f=this.getViewport(0,s));let d=!e.changes.empty||e.flags&2||f.from!=this.viewport.from||f.to!=this.viewport.to;this.viewport=f,this.updateForViewport(),d&&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(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(nativeSelectionHidden)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,o=window.getComputedStyle(s),a=this.heightOracle,l=o.whiteSpace;this.defaultTextDirection=o.direction=="rtl"?Direction.RTL:Direction.LTR;let c=this.heightOracle.mustRefreshForWrapping(l),u=s.getBoundingClientRect(),f=c||this.mustMeasureContent||this.contentDOMHeight!=u.height;this.contentDOMHeight=u.height,this.mustMeasureContent=!1;let d=0,g=0,b=parseInt(o.paddingTop)||0,E=parseInt(o.paddingBottom)||0;(this.paddingTop!=b||this.paddingBottom!=E)&&(this.paddingTop=b,this.paddingBottom=E,d|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(a.lineWrapping&&(f=!0),this.editorWidth=e.scrollDOM.clientWidth,d|=8),this.scrollTop!=e.scrollDOM.scrollTop&&(this.scrollAnchorHeight=-1,this.scrollTop=e.scrollDOM.scrollTop),this.scrolledToBottom=isScrolledToBottom(e.scrollDOM);let B=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),V=B.top-this.pixelViewport.top,D=B.bottom-this.pixelViewport.bottom;this.pixelViewport=B;let X=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(X!=this.inView&&(this.inView=X,X&&(f=!0)),!this.inView&&!this.scrollTarget)return 0;let q=u.width;if((this.contentDOMWidth!=q||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=u.width,this.editorHeight=e.scrollDOM.clientHeight,d|=8),f){let oe=e.docView.measureVisibleLineHeights(this.viewport);if(a.mustRefreshForHeights(oe)&&(c=!0),c||a.lineWrapping&&Math.abs(q-this.contentDOMWidth)>a.charWidth){let{lineHeight:j,charWidth:ue,textHeight:fe}=e.docView.measureTextSize();c=j>0&&a.refresh(l,j,ue,fe,q/ue,oe),c&&(e.docView.minWidth=0,d|=8)}V>0&&D>0?g=Math.max(V,D):V<0&&D<0&&(g=Math.min(V,D)),a.heightChanged=!1;for(let j of this.viewports){let ue=j.from==this.viewport.from?oe:e.docView.measureVisibleLineHeights(j);this.heightMap=(c?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(a,0,c,new MeasuredHeights(j.from,ue))}a.heightChanged&&(d|=2)}let z=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return z&&(this.viewport=this.getViewport(g,this.scrollTarget)),this.updateForViewport(),(d&2||z)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(c?[]:this.lineGaps,e)),d|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let o=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),a=this.heightMap,l=this.heightOracle,{visibleTop:c,visibleBottom:u}=this,f=new Viewport(a.lineAt(c-o*1e3,QueryType$1.ByHeight,l,0,0).from,a.lineAt(u+(1-o)*1e3,QueryType$1.ByHeight,l,0,0).to);if(s){let{head:d}=s.range;if(df.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),b=a.lineAt(d,QueryType$1.ByPos,l,0,0),E;s.y=="center"?E=(b.top+b.bottom)/2-g/2:s.y=="start"||s.y=="nearest"&&d=u+Math.max(10,Math.min(o,250)))&&a>c-2*1e3&&l>1,c=a<<1;if(this.defaultTextDirection!=Direction.LTR&&!o)return[];let u=[],f=(d,g,b,E)=>{if(g-dd&&XX.from>=b.from&&X.to<=b.to&&Math.abs(X.from-d)X.fromq));if(!D){if(gX.from<=g&&X.to>=g)){let X=s.moveToLineBoundary(EditorSelection.cursor(g),!1,!0).head;X>d&&(g=X)}D=new LineGap(d,g,this.gapSize(b,d,g,E))}u.push(D)};for(let d of this.viewportLines){if(d.lengthd.from&&f(d.from,E,d,g),Bs.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(a,l){s.push({from:a,to:l})},point(){}},20);let o=s.length!=this.visibleRanges.length||this.visibleRanges.some((a,l)=>a.from!=s[l].from||a.to!=s[l].to);return this.visibleRanges=s,o?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let s=this.lineBlockAtHeight(e+8);return s.from>=this.viewport.from||this.viewportLines[0].top-e>200?s:this.viewportLines[0]}elementAtHeight(e){return scaleBlock(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}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(n,e,s){let o=[],a=n,l=0;return RangeSet.spans(s,n,e,{span(){},point(c,u){c>a&&(o.push({from:a,to:c}),l+=c-a),a=u}},20),a=1)return e[e.length-1].to;let o=Math.floor(n*s);for(let a=0;;a++){let{from:l,to:c}=e[a],u=c-l;if(o<=u)return l+o;o-=u}}function findFraction(n,e){let s=0;for(let{from:o,to:a}of n.ranges){if(e<=a){s+=e-o;break}s+=a-o}return s/n.total}function find(n,e){for(let s of n)if(e(s))return s}const IdScaler={toDOM(n){return n},fromDOM(n){return n},scale:1};class BigScaler{constructor(e,s,o){let a=0,l=0,c=0;this.viewports=o.map(({from:u,to:f})=>{let d=s.lineAt(u,QueryType$1.ByPos,e,0,0).top,g=s.lineAt(f,QueryType$1.ByPos,e,0,0).bottom;return a+=g-d,{from:u,to:f,top:d,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(s.height-a);for(let u of this.viewports)u.domTop=c+(u.top-l)*this.scale,c=u.domBottom=u.domTop+(u.bottom-u.top),l=u.bottom}toDOM(e){for(let s=0,o=0,a=0;;s++){let l=sscaleBlock(a,e)):n._content)}const theme=Facet.define({combine:n=>n.join(" ")}),darkTheme=Facet.define({combine:n=>n.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(n,e,s){return new StyleModule(e,{finish(o){return/&/.test(o)?o.replace(/&\w*/,a=>{if(a=="&")return n;if(!s||!s[a])throw new RangeError(`Unsupported selector: ${a}`);return s[a]}):n+" "+o}})}const baseTheme$1$2=buildTheme("."+baseThemeID,{"&":{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},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",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":{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:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&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",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&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},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".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"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".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"}},lightDarkIDs);class DOMChange{constructor(e,s,o,a){this.typeOver=a,this.bounds=null,this.text="";let{impreciseHead:l,impreciseAnchor:c}=e.docView;if(e.state.readOnly&&s>-1)this.newSel=null;else if(s>-1&&(this.bounds=e.docView.domBoundsAround(s,o,0))){let u=l||c?[]:selectionPoints(e),f=new DOMReader(u,e.state);f.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=f.text,this.newSel=selectionFromPoints(u,this.bounds.from)}else{let u=e.observer.selectionRange,f=l&&l.node==u.focusNode&&l.offset==u.focusOffset||!contains(e.contentDOM,u.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(u.focusNode,u.focusOffset),d=c&&c.node==u.anchorNode&&c.offset==u.anchorOffset||!contains(e.contentDOM,u.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(u.anchorNode,u.anchorOffset);this.newSel=EditorSelection.single(d,f)}}}function applyDOMChange(n,e){let s,{newSel:o}=e,a=n.state.selection.main,l=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:c,to:u}=e.bounds,f=a.from,d=null;(l===8||browser.android&&e.text.length=a.from&&s.to<=a.to&&(s.from!=a.from||s.to!=a.to)&&a.to-a.from-(s.to-s.from)<=4?s={from:a.from,to:a.to,insert:n.state.doc.slice(a.from,s.from).append(s.insert).append(n.state.doc.slice(s.to,a.to))}:(browser.mac||browser.android)&&s&&s.from==s.to&&s.from==a.head-1&&/^\. ?$/.test(s.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(o&&s.insert.length==2&&(o=EditorSelection.single(o.main.anchor-1,o.main.head-1)),s={from:a.from,to:a.to,insert:Text.of([" "])}):browser.chrome&&s&&s.from==s.to&&s.from==a.head&&s.insert.toString()==` + `&&n.lineWrapping&&(o&&(o=EditorSelection.single(o.main.anchor-1,o.main.head-1)),s={from:a.from,to:a.to,insert:Text.of([" "])}),s){let c=n.state;if(browser.ios&&n.inputState.flushIOSKey(n)||browser.android&&(s.from==a.from&&s.to==a.to&&s.insert.length==1&&s.insert.lines==2&&dispatchKey(n.contentDOM,"Enter",13)||(s.from==a.from-1&&s.to==a.to&&s.insert.length==0||l==8&&s.insert.lengthg(n,s.from,s.to,u)))return!0;n.inputState.composing>=0&&n.inputState.composing++;let f;if(s.from>=a.from&&s.to<=a.to&&s.to-s.from>=(a.to-a.from)/3&&(!o||o.main.empty&&o.main.from==s.from+s.insert.length)&&n.inputState.composing<0){let g=a.froms.to?c.sliceDoc(s.to,a.to):"";f=c.replaceSelection(n.state.toText(g+s.insert.sliceString(0,void 0,n.state.lineBreak)+b))}else{let g=c.changes(s),b=o&&o.main.to<=g.newLength?o.main:void 0;if(c.selection.ranges.length>1&&n.inputState.composing>=0&&s.to<=a.to&&s.to>=a.to-10){let E=n.state.sliceDoc(s.from,s.to),B=findCompositionNode(n)||n.state.doc.lineAt(a.head),V=a.to-s.to,D=a.to-a.from;f=c.changeByRange(X=>{if(X.from==a.from&&X.to==a.to)return{changes:g,range:b||X.map(g)};let q=X.to-V,z=q-E.length;if(X.to-X.from!=D||n.state.sliceDoc(z,q)!=E||B&&X.to>=B.from&&X.from<=B.to)return{range:X};let oe=c.changes({from:z,to:q,insert:s.insert}),j=X.to-a.to;return{changes:oe,range:b?EditorSelection.range(Math.max(0,b.anchor+j),Math.max(0,b.head+j)):X.map(oe)}})}else f={changes:g,selection:b&&c.selection.replaceRange(b)}}let d="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,d+=".compose",n.inputState.compositionFirstChange&&(d+=".start",n.inputState.compositionFirstChange=!1)),n.dispatch(f,{scrollIntoView:!0,userEvent:d}),!0}else if(o&&!o.main.eq(a)){let c=!1,u="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(c=!0),u=n.inputState.lastSelectionOrigin),n.dispatch({selection:o,scrollIntoView:c,userEvent:u}),!0}else return!1}function findDiff(n,e,s,o){let a=Math.min(n.length,e.length),l=0;for(;l0&&u>0&&n.charCodeAt(c-1)==e.charCodeAt(u-1);)c--,u--;if(o=="end"){let f=Math.max(0,l-Math.min(c,u));s-=c+f-l}if(c=c?l-s:0;l-=f,u=l+(u-c),c=l}else if(u=u?l-s:0;l-=f,c=l+(c-u),u=l}return{from:l,toA:c,toB:u}}function selectionPoints(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:s,anchorOffset:o,focusNode:a,focusOffset:l}=n.observer.selectionRange;return s&&(e.push(new DOMPoint(s,o)),(a!=s||l!=o)&&e.push(new DOMPoint(a,l))),e}function selectionFromPoints(n,e){if(n.length==0)return null;let s=n[0].pos,o=n.length==2?n[1].pos:s;return s>-1&&o>-1?EditorSelection.single(s+e,o+e):null}const observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(e){this.view=e,this.active=!1,this.selectionRange=new DOMSelectionState,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.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(s=>{for(let o of s)this.queue.push(o);(browser.ie&&browser.ie_version<=11||browser.ios&&e.composing)&&s.some(o=>o.type=="childList"&&o.removedNodes.length||o.type=="characterData"&&o.oldValue.length>o.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=s=>{this.queue.push({target:s.target,type:"characterData",oldValue:s.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),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var s;((s=this.view.docView)===null||s===void 0?void 0:s.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(s=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),s.length>0&&s[s.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(s=>{s.length>0&&s[s.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){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((s,o)=>s!=e[o]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){let s=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:o}=this,a=this.selectionRange;if(o.state.facet(editable)?o.root.activeElement!=this.dom:!hasSelection(o.dom,a))return;let l=a.anchorNode&&o.docView.nearest(a.anchorNode);if(l&&l.ignoreEvent(e)){s||(this.selectionChanged=!1);return}(browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!o.state.selection.main.empty&&a.focusNode&&isEquivalentPosition(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,s=browser.safari&&e.root.nodeType==11&&deepActiveElement(this.dom.ownerDocument)==this.dom&&safariSelectionRangeHack(this.view)||getSelection(e.root);if(!s||this.selectionRange.eq(s))return!1;let o=hasSelection(this.dom,s);return o&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let l=this.delayedAndroidKey;l&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=l.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&l.force&&dispatchKey(this.dom,l.key,l.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(a)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s,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 s=-1,o=-1,a=!1;for(let l of e){let c=this.readMutation(l);c&&(c.typeOver&&(a=!0),s==-1?{from:s,to:o}=c:(s=Math.min(c.from,s),o=Math.max(c.to,o)))}return{from:s,to:o,typeOver:a}}readChange(){let{from:e,to:s,typeOver:o}=this.processRecords(),a=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);return e<0&&!a?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new DOMChange(this.view,e,s,o))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let s=this.readChange();if(!s)return!1;let o=this.view.state,a=applyDOMChange(this.view,s);return this.view.state==o&&this.view.update([]),a}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.flags|=4),e.type=="childList"){let o=findChild(s,e.previousSibling||e.target.previousSibling,-1),a=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:o?s.posAfter(o):s.posAtStart,to:a?s.posBefore(a):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.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),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),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,s,o,a;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(o=this.resizeScroll)===null||o===void 0||o.disconnect(),(a=this.resizeContent)===null||a===void 0||a.disconnect();for(let l of this.scrollTargets)l.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function findChild(n,e,s){for(;e;){let o=ContentView.get(e);if(o&&o.parent==n)return o;let a=e.parentNode;e=a!=n.dom?a:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(n){let e=null;function s(f){f.preventDefault(),f.stopImmediatePropagation(),e=f.getTargetRanges()[0]}if(n.contentDOM.addEventListener("beforeinput",s,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let o=e.startContainer,a=e.startOffset,l=e.endContainer,c=e.endOffset,u=n.docView.domAtPos(n.state.selection.main.anchor);return isEquivalentPosition(u.node,u.offset,l,c)&&([o,a,l,c]=[l,c,o,a]),{anchorNode:o,anchorOffset:a,focusNode:l,focusOffset:c}}class EditorView{constructor(e={}){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.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this),this.inputState=new InputState(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}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.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){let s=e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e);this._dispatch(s,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,o=!1,a,l=this.state;for(let E of e){if(E.startState!=l)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");l=E.state}if(this.destroyed){this.viewState.state=l;return}let c=this.hasFocus,u=0,f=null;e.some(E=>E.annotation(isFocusChange))?(this.inputState.notifiedFocused=c,u=1):c!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=c,f=focusChangeTransaction(l,c),f||(u=1));let d=this.observer.delayedAndroidKey,g=null;if(d?(this.observer.clearDelayedAndroidKey(),g=this.observer.readChange(),(g&&!this.state.doc.eq(l.doc)||!this.state.selection.eq(l.selection))&&(g=null)):this.observer.clear(),l.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(l);a=ViewUpdate.create(this,l,e),a.flags|=u;let b=this.viewState.scrollTarget;try{this.updateState=2;for(let E of e){if(b&&(b=b.map(E.changes)),E.scrollIntoView){let{main:B}=E.state.selection;b=new ScrollTarget(B.empty?B:EditorSelection.cursor(B.head,B.head>B.anchor?-1:1))}for(let B of E.effects)B.is(scrollIntoView$1)&&(b=B.value)}this.viewState.update(a,b),this.bidiCache=CachedOrder.update(this.bidiCache,a.changes),a.empty||(this.updatePlugins(a),this.inputState.update(a)),s=this.docView.update(a),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),o=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(E=>E.isUserEvent("select.pointer")))}finally{this.updateState=0}if(a.startState.facet(theme)!=a.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||o||b||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!a.empty)for(let E of this.state.facet(updateListener))E(a);(f||g)&&Promise.resolve().then(()=>{f&&this.state==f.startState&&this.dispatch(f),g&&!applyDOMChange(this,g)&&d.force&&dispatchKey(this.contentDOM,d.key,d.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 s=this.hasFocus;try{for(let o of this.plugins)o.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(o=>new PluginInstance(o)),this.pluginMap.clear();for(let o of this.plugins)o.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),o=e.state.facet(viewPlugin);if(s!=o){let a=[];for(let l of o){let c=s.indexOf(l);if(c<0)a.push(new PluginInstance(l));else{let u=this.plugins[c];u.mustUpdate=e,a.push(u)}}for(let l of this.plugins)l.mustUpdate!=e&&l.destroy(this);this.plugins=a,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let a of this.plugins)a.mustUpdate=e;for(let a=0;a-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let s=null,o=this.scrollDOM,{scrollTop:a}=o,{scrollAnchorPos:l,scrollAnchorHeight:c}=this.viewState;a!=this.viewState.scrollTop&&(c=-1),this.viewState.scrollAnchorHeight=-1;try{for(let u=0;;u++){if(c<0)if(isScrolledToBottom(o))l=-1,c=this.viewState.heightMap.height;else{let B=this.viewState.scrollAnchorAt(a);l=B.from,c=B.top}this.updateState=1;let f=this.viewState.measure(this);if(!f&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(u>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];f&4||([this.measureRequests,d]=[d,this.measureRequests]);let g=d.map(B=>{try{return B.read(this)}catch(V){return logException(this.state,V),BadMeasure}}),b=ViewUpdate.create(this,this.state,[]),E=!1;b.flags|=f,s?s.flags|=f:s=b,this.updateState=2,b.empty||(this.updatePlugins(b),this.inputState.update(b),this.updateAttrs(),E=this.docView.update(b));for(let B=0;B1||V<-1){a=o.scrollTop=a+V,c=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let u of this.state.facet(updateListener))u(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s);let o=this.observer.ignore(()=>{let a=updateAttrs(this.contentDOM,this.contentAttrs,s),l=updateAttrs(this.dom,this.editorAttrs,e);return a||l});return this.editorAttrs=e,this.contentAttrs=s,o}showAnnouncements(e){let s=!0;for(let o of e)for(let a of o.effects)if(a.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let l=this.announceDOM.appendChild(document.createElement("div"));l.textContent=a.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$2).reverse())}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 s=0;so.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}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,s,o){return skipAtoms(this,e,moveByChar(this,e,s,o))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,o=>byGroup(this,e.head,o)))}moveToLineBoundary(e,s,o=!0){return moveToLineBoundary(this,e,s,o)}moveVertically(e,s,o){return skipAtoms(this,e,moveVertically(this,e,s,o))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let o=this.docView.coordsAt(e,s);if(!o||o.left==o.right)return o;let a=this.state.doc.lineAt(e),l=this.bidiSpans(a),c=l[BidiSpan.find(l,e-a.from,-1,s)];return flattenRect(o,c.dir==Direction.LTR==s>0)}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(perLineTextDirection)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirectionAt(e.from);for(let a of this.bidiCache)if(a.from==e.from&&a.dir==s)return a.order;let o=computeOrder(e.text,s);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,o)),o}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(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(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let o=StyleModule.newName(),a=[theme.of(o),styleModule.of(buildTheme(`.${o}`,e))];return s&&s.dark&&a.push(darkTheme.of(!0)),a}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var s;let o=e.querySelector(".cm-content"),a=o&&ContentView.get(o)||ContentView.get(e);return((s=a==null?void 0:a.rootView)===null||s===void 0?void 0:s.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,s,o,a){this.from=e,this.to=s,this.dir=o,this.order=a}static update(e,s){if(s.empty)return e;let o=[],a=e.length?e[e.length-1].dir:Direction.LTR;for(let l=Math.max(0,e.length-10);l=0;a--){let l=o[a],c=typeof l=="function"?l(n):l;c&&combineAttrs(c,s)}return s}const currentPlatform=browser.mac?"mac":browser.windows?"win":browser.linux?"linux":"key";function normalizeKeyName(n,e){const s=n.split(/-(?!$)/);let o=s[s.length-1];o=="Space"&&(o=" ");let a,l,c,u;for(let f=0;fo.concat(a),[]))),s}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(n,e=currentPlatform){let s=Object.create(null),o=Object.create(null),a=(c,u)=>{let f=o[c];if(f==null)o[c]=u;else if(f!=u)throw new Error("Key binding "+c+" is used both as a regular binding and as a multi-stroke prefix")},l=(c,u,f,d,g)=>{var b,E;let B=s[c]||(s[c]=Object.create(null)),V=u.split(/ (?!$)/).map(q=>normalizeKeyName(q,e));for(let q=1;q{let j=storedPrefix={view:oe,prefix:z,scope:c};return setTimeout(()=>{storedPrefix==j&&(storedPrefix=null)},PrefixTimeout),!0}]})}let D=V.join(" ");a(D,!1);let X=B[D]||(B[D]={preventDefault:!1,stopPropagation:!1,run:((E=(b=B._any)===null||b===void 0?void 0:b.run)===null||E===void 0?void 0:E.slice())||[]});f&&X.run.push(f),d&&(X.preventDefault=!0),g&&(X.stopPropagation=!0)};for(let c of n){let u=c.scope?c.scope.split(" "):["editor"];if(c.any)for(let d of u){let g=s[d]||(s[d]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let b in g)g[b].run.push(c.any)}let f=c[e]||c.key;if(f)for(let d of u)l(d,f,c.run,c.preventDefault,c.stopPropagation),c.shift&&l(d,"Shift-"+f,c.shift,c.preventDefault,c.stopPropagation)}return s}function runHandlers(n,e,s,o){let a=keyName(e),l=codePointAt(a,0),c=codePointSize(l)==a.length&&a!=" ",u="",f=!1,d=!1,g=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==o&&(u=storedPrefix.prefix+" ",modifierCodes.indexOf(e.keyCode)<0&&(d=!0,storedPrefix=null));let b=new Set,E=X=>{if(X){for(let q of X.run)if(!b.has(q)&&(b.add(q),q(s,e)))return X.stopPropagation&&(g=!0),!0;X.preventDefault&&(X.stopPropagation&&(g=!0),d=!0)}return!1},B=n[o],V,D;return B&&(E(B[u+modifiers(a,e,!c)])?f=!0:c&&(e.altKey||e.metaKey||e.ctrlKey)&&!(browser.windows&&e.ctrlKey&&e.altKey)&&(V=base[e.keyCode])&&V!=a?(E(B[u+modifiers(V,e,!0)])||e.shiftKey&&(D=shift[e.keyCode])!=a&&D!=V&&E(B[u+modifiers(D,e,!1)]))&&(f=!0):c&&e.shiftKey&&E(B[u+modifiers(a,e,!0)])&&(f=!0),!f&&E(B._any)&&(f=!0)),d&&(f=!0),f&&g&&e.stopPropagation(),f}class RectangleMarker{constructor(e,s,o,a,l){this.className=e,this.left=s,this.top=o,this.width=a,this.height=l}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,s){return s.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,s,o){if(o.empty){let a=e.coordsAtPos(o.head,o.assoc||1);if(!a)return[];let l=getBase$1(e);return[new RectangleMarker(s,a.left-l.left,a.top-l.top,null,a.bottom-a.top)]}else return rectanglesForRange(e,s,o)}}function getBase$1(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==Direction.LTR?e.left:e.right-n.scrollDOM.clientWidth)-n.scrollDOM.scrollLeft,top:e.top-n.scrollDOM.scrollTop}}function wrappedLine(n,e,s){let o=EditorSelection.cursor(e);return{from:Math.max(s.from,n.moveToLineBoundary(o,!1,!0).from),to:Math.min(s.to,n.moveToLineBoundary(o,!0,!0).from),type:BlockType.Text}}function rectanglesForRange(n,e,s){if(s.to<=n.viewport.from||s.from>=n.viewport.to)return[];let o=Math.max(s.from,n.viewport.from),a=Math.min(s.to,n.viewport.to),l=n.textDirection==Direction.LTR,c=n.contentDOM,u=c.getBoundingClientRect(),f=getBase$1(n),d=c.querySelector(".cm-line"),g=d&&window.getComputedStyle(d),b=u.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),E=u.right-(g?parseInt(g.paddingRight):0),B=blockAt(n,o),V=blockAt(n,a),D=B.type==BlockType.Text?B:null,X=V.type==BlockType.Text?V:null;if(D&&(n.lineWrapping||B.widgetLineBreaks)&&(D=wrappedLine(n,o,D)),X&&(n.lineWrapping||V.widgetLineBreaks)&&(X=wrappedLine(n,a,X)),D&&X&&D.from==X.from)return z(oe(s.from,s.to,D));{let ue=D?oe(s.from,null,D):j(B,!1),fe=X?oe(null,s.to,X):j(V,!0),xe=[];return(D||B).to<(X||V).from-(D&&X?1:0)||B.widgetLineBreaks>1&&ue.bottom+n.defaultLineHeight/2Ie&&De.from=Ne)break;$e>Te&&Me(Math.max(Ee,Te),ue==null&&Ee<=Ie,Math.min($e,Ne),fe==null&&$e>=Ze,Fe.dir)}if(Te=qe.to+1,Te>=Ne)break}return Qe.length==0&&Me(Ie,ue==null,Ze,fe==null,n.textDirection),{top:Se,bottom:ge,horizontal:Qe}}function j(ue,fe){let xe=u.top+(fe?ue.top:ue.bottom);return{top:xe,bottom:xe,horizontal:[]}}}function sameMarker(n,e){return n.constructor==e.constructor&&n.eq(e)}class LayerView{constructor(e,s){this.view=e,this.layer=s,this.drawn=[],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"),s.above&&this.dom.classList.add("cm-layer-above"),s.class&&this.dom.classList.add(s.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),s.mount&&s.mount(this.dom,e)}update(e){e.startState.facet(layerOrder)!=e.state.facet(layerOrder)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let s=0,o=e.facet(layerOrder);for(;s!sameMarker(s,this.drawn[o]))){let s=this.dom.firstChild,o=0;for(let a of e)a.update&&s&&a.constructor&&this.drawn[o].constructor&&a.update(s,this.drawn[o])?(s=s.nextSibling,o++):this.dom.insertBefore(a.draw(),s);for(;s;){let a=s.nextSibling;s.remove(),s=a}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const layerOrder=Facet.define();function layer(n){return[ViewPlugin.define(e=>new LayerView(e,n)),layerOrder.of(n)]}const CanHidePrimary=!browser.ios,selectionConfig=Facet.define({combine(n){return combineConfig(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(n={}){return[selectionConfig.of(n),cursorLayer,selectionLayer,hideNativeSelection$1,nativeSelectionHidden.of(!0)]}function configChanged(n){return n.startState.facet(selectionConfig)!=n.state.facet(selectionConfig)}const cursorLayer=layer({above:!0,markers(n){let{state:e}=n,s=e.facet(selectionConfig),o=[];for(let a of e.selection.ranges){let l=a==e.selection.main;if(a.empty?!l||CanHidePrimary:s.drawRangeCursor){let c=l?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",u=a.empty?a:EditorSelection.cursor(a.head,a.head>a.anchor?-1:1);for(let f of RectangleMarker.forRange(n,c,u))o.push(f)}}return o},update(n,e){n.transactions.some(o=>o.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let s=configChanged(n);return s&&setBlinkRate(n.state,e),n.docChanged||n.selectionSet||s},mount(n,e){setBlinkRate(e.state,n)},class:"cm-cursorLayer"});function setBlinkRate(n,e){e.style.animationDuration=n.facet(selectionConfig).cursorBlinkRate+"ms"}const selectionLayer=layer({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:RectangleMarker.forRange(n,"cm-selectionBackground",e)).reduce((e,s)=>e.concat(s))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||configChanged(n)},class:"cm-selectionLayer"}),themeSpec$1={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec$1[".cm-line"].caretColor="transparent !important");const hideNativeSelection$1=Prec.highest(EditorView.theme(themeSpec$1)),setDropCursorPos=StateEffect.define({map(n,e){return n==null?null:e.mapPos(n)}}),dropCursorPos=StateField.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((s,o)=>o.is(setDropCursorPos)?o.value:s,n)}}),drawDropCursor=ViewPlugin.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let s=n.state.field(dropCursorPos);s==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"),(n.startState.field(dropCursorPos)!=s||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let n=this.view.state.field(dropCursorPos),e=n!=null&&this.view.coordsAtPos(n);if(!e)return null;let s=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-s.left+this.view.scrollDOM.scrollLeft,top:e.top-s.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(n){this.cursor&&(n?(this.cursor.style.left=n.left+"px",this.cursor.style.top=n.top+"px",this.cursor.style.height=n.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(dropCursorPos)!=n&&this.view.dispatch({effects:setDropCursorPos.of(n)})}},{eventHandlers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function dropCursor(){return[dropCursorPos,drawDropCursor]}function iterMatches(n,e,s,o,a){e.lastIndex=0;for(let l=n.iterRange(s,o),c=s,u;!l.next().done;c+=l.value.length)if(!l.lineBreak)for(;u=e.exec(l.value);)a(c+u.index,u)}function matchRanges(n,e){let s=n.visibleRanges;if(s.length==1&&s[0].from==n.viewport.from&&s[0].to==n.viewport.to)return s;let o=[];for(let{from:a,to:l}of s)a=Math.max(n.state.doc.lineAt(a).from,a-e),l=Math.min(n.state.doc.lineAt(l).to,l+e),o.length&&o[o.length-1].to>=a?o[o.length-1].to=l:o.push({from:a,to:l});return o}class MatchDecorator{constructor(e){const{regexp:s,decoration:o,decorate:a,boundary:l,maxLength:c=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=s,a)this.addMatch=(u,f,d,g)=>a(g,d,d+u[0].length,u,f);else if(typeof o=="function")this.addMatch=(u,f,d,g)=>{let b=o(u,f,d);b&&g(d,d+u[0].length,b)};else if(o)this.addMatch=(u,f,d,g)=>g(d,d+u[0].length,o);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=l,this.maxLength=c}createDeco(e){let s=new RangeSetBuilder,o=s.add.bind(s);for(let{from:a,to:l}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,a,l,(c,u)=>this.addMatch(u,e,c,o));return s.finish()}updateDeco(e,s){let o=1e9,a=-1;return e.docChanged&&e.changes.iterChanges((l,c,u,f)=>{f>e.view.viewport.from&&u1e3?this.createDeco(e.view):a>-1?this.updateRange(e.view,s.map(e.changes),o,a):s}updateRange(e,s,o,a){for(let l of e.visibleRanges){let c=Math.max(l.from,o),u=Math.min(l.to,a);if(u>c){let f=e.state.doc.lineAt(c),d=f.tof.from;c--)if(this.boundary.test(f.text[c-1-f.from])){g=c;break}for(;uE.push(q.range(D,X));if(f==d)for(this.regexp.lastIndex=g-f.from;(B=this.regexp.exec(f.text))&&B.indexthis.addMatch(X,e,D,V));s=s.update({filterFrom:g,filterTo:b,filter:(D,X)=>Db,add:E})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,UnicodeRegexpSupport),Names={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"};let _supportsTabSize=null;function supportsTabSize(){var n;if(_supportsTabSize==null&&typeof document<"u"&&document.body){let e=document.body.style;_supportsTabSize=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(n){let e=combineConfig(n,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(n={}){return[specialCharConfig.of(n),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(n){this.view=n,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new MatchDecorator({regexp:n.specialChars,decoration:(e,s,o)=>{let{doc:a}=s.state,l=codePointAt(e[0],0);if(l==9){let c=a.lineAt(o),u=s.state.tabSize,f=countColumn(c.text,u,o-c.from);return Decoration.replace({widget:new TabWidget((u-f%u)*this.view.defaultCharacterWidth)})}return this.decorationCache[l]||(this.decorationCache[l]=Decoration.replace({widget:new SpecialCharWidget(n,l)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(specialCharConfig);n.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const DefaultPlaceholder="•";function placeholder$1(n){return n>=32?DefaultPlaceholder:n==10?"␤":String.fromCharCode(9216+n)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),o=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),a=this.options.render&&this.options.render(this.code,o,s);if(a)return a;let l=document.createElement("span");return l.textContent=s,l.title=o,l.setAttribute("aria-label",o),l.className="cm-specialChar",l}ignoreEvent(){return!1}}class TabWidget extends WidgetType{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 highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,s=[];for(let o of n.state.selection.ranges){let a=n.lineBlockAt(o.head);a.from>e&&(s.push(lineDeco.range(a.from)),e=a.from)}return Decoration.set(s)}},{decorations:n=>n.decorations}),MaxOff=2e3;function rectangleFor(n,e,s){let o=Math.min(e.line,s.line),a=Math.max(e.line,s.line),l=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let c=Math.min(e.off,s.off),u=Math.max(e.off,s.off);for(let f=o;f<=a;f++){let d=n.doc.line(f);d.length<=u&&l.push(EditorSelection.range(d.from+c,d.to+u))}}else{let c=Math.min(e.col,s.col),u=Math.max(e.col,s.col);for(let f=o;f<=a;f++){let d=n.doc.line(f),g=findColumn(d.text,c,n.tabSize,!0);if(g<0)l.push(EditorSelection.cursor(d.to));else{let b=findColumn(d.text,u,n.tabSize);l.push(EditorSelection.range(d.from+g,d.from+b))}}}return l}function absoluteColumn(n,e){let s=n.coordsAtPos(n.viewport.from);return s?Math.round(Math.abs((s.left-e)/n.defaultCharacterWidth)):-1}function getPos(n,e){let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1),o=n.state.doc.lineAt(s),a=s-o.from,l=a>MaxOff?-1:a==o.length?absoluteColumn(n,e.clientX):countColumn(o.text,n.state.tabSize,s-o.from);return{line:o.number,col:l,off:a}}function rectangleSelectionStyle(n,e){let s=getPos(n,e),o=n.state.selection;return s?{update(a){if(a.docChanged){let l=a.changes.mapPos(a.startState.doc.line(s.line).from),c=a.state.doc.lineAt(l);s={line:c.number,col:s.col,off:Math.min(s.off,c.length)},o=o.map(a.changes)}},get(a,l,c){let u=getPos(n,a);if(!u)return o;let f=rectangleFor(n.state,s,u);return f.length?c?EditorSelection.create(f.concat(o.ranges)):EditorSelection.create(f):o}}:null}function rectangularSelection(n){let e=(n==null?void 0:n.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,o)=>e(o)?rectangleSelectionStyle(s,o):null)}const keys$1={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},showCrosshair={style:"cursor: crosshair"};function crosshairCursor(n={}){let[e,s]=keys$1[n.key||"Alt"],o=ViewPlugin.fromClass(class{constructor(a){this.view=a,this.isDown=!1}set(a){this.isDown!=a&&(this.isDown=a,this.view.update([]))}},{eventHandlers:{keydown(a){this.set(a.keyCode==e||s(a))},keyup(a){(a.keyCode==e||!s(a))&&this.set(!1)},mousemove(a){this.set(s(a))}}});return[o,EditorView.contentAttributes.of(a=>{var l;return!((l=a.plugin(o))===null||l===void 0)&&l.isDown?showCrosshair:null})]}const Outside="-10000px";class TooltipViewManager{constructor(e,s,o){this.facet=s,this.createTooltipView=o,this.input=e.state.facet(s),this.tooltips=this.input.filter(a=>a),this.tooltipViews=this.tooltips.map(o)}update(e){var s;let o=e.state.facet(this.facet),a=o.filter(c=>c);if(o===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let l=[];for(let c=0;c{var e,s,o;return{position:browser.ios?"absolute":((e=n.find(a=>a.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=n.find(a=>a.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((o=n.find(a=>a.tooltipSpace))===null||o===void 0?void 0:o.tooltipSpace)||windowSpace}}}),knownHeight=new WeakMap,tooltipPlugin=ViewPlugin.fromClass(class{constructor(n){this.view=n,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(tooltipConfig);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(n,showTooltip,s=>this.createTooltip(s)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(s=>{Date.now()>this.lastTransaction-50&&s.length>0&&s[s.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.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 n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n);e&&this.observeIntersection();let s=e||n.geometryChanged,o=n.state.facet(tooltipConfig);if(o.position!=this.position){this.position=o.position;for(let a of this.manager.tooltipViews)a.dom.style.position=this.position;s=!0}if(o.parent!=this.parent){this.parent&&this.container.remove(),this.parent=o.parent,this.createContainer();for(let a of this.manager.tooltipViews)this.container.appendChild(a.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(n){let e=n.create(this.view);if(e.dom.classList.add("cm-tooltip"),n.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var n,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let s of this.manager.tooltipViews)s.dom.remove(),(n=s.destroy)===null||n===void 0||n.call(s);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=this.view.dom.getBoundingClientRect();return{editor:n,parent:this.parent?this.container.getBoundingClientRect():n,pos:this.manager.tooltips.map((e,s)=>{let o=this.manager.tooltipViews[s];return o.getCoords?o.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(n){var e;let{editor:s,space:o}=n,a=[];for(let l=0;l=Math.min(s.bottom,o.bottom)||d.rightMath.min(s.right,o.right)+.1){f.style.top=Outside;continue}let b=c.arrow?u.dom.querySelector(".cm-tooltip-arrow"):null,E=b?7:0,B=g.right-g.left,V=(e=knownHeight.get(u))!==null&&e!==void 0?e:g.bottom-g.top,D=u.offset||noOffset,X=this.view.textDirection==Direction.LTR,q=g.width>o.right-o.left?X?o.left:o.right-g.width:X?Math.min(d.left-(b?14:0)+D.x,o.right-B):Math.max(o.left,d.left-B+(b?14:0)-D.x),z=!!c.above;!c.strictSide&&(z?d.top-(g.bottom-g.top)-D.yo.bottom)&&z==o.bottom-d.bottom>d.top-o.top&&(z=!z);let oe=(z?d.top-o.top:o.bottom-d.bottom)-E;if(oeq&&fe.topj&&(j=z?fe.top-V-2-E:fe.bottom+E+2);this.position=="absolute"?(f.style.top=j-n.parent.top+"px",f.style.left=q-n.parent.left+"px"):(f.style.top=j+"px",f.style.left=q+"px"),b&&(b.style.left=`${d.left+(X?D.x:-D.x)-(q+14-7)}px`),u.overlap!==!0&&a.push({left:q,top:j,right:ue,bottom:j+V}),f.classList.toggle("cm-tooltip-above",z),f.classList.toggle("cm-tooltip-below",!z),u.positioned&&u.positioned(n.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 n of this.manager.tooltipViews)n.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$3=EditorView.baseTheme({".cm-tooltip":{zIndex:100,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:`${7*2}px`,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"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$3]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(e){for(let s of this.manager.tooltipViews)s.positioned&&s.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let s of this.manager.tooltipViews)(e=s.destroy)===null||e===void 0||e.call(s)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],n=>{let e=n.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,o,a,l){this.view=e,this.source=s,this.field=o,this.setHover=a,this.hoverTime=l,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(){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)return;let e=Date.now()-this.lastMove.time;eo.bottom||e.xo.right+this.view.defaultCharacterWidth)return;let a=this.view.bidiSpans(this.view.state.doc.lineAt(s)).find(u=>u.from<=s&&u.to>=s),l=a&&a.dir==Direction.RTL?-1:1,c=this.source(this.view,s,e.x{this.pending==u&&(this.pending=null,f&&this.view.dispatch({effects:this.setHover.of(f)}))},f=>logException(this.view.state,f,"hover tooltip"))}else c&&this.view.dispatch({effects:this.setHover.of(c)})}mousemove(e){var s;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 o=this.active;if(o&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:a}=o||this.pending,l=(s=o==null?void 0:o.end)!==null&&s!==void 0?s:a;(a==l?this.view.posAtCoords(this.lastMove)!=a:!isOverRange(this.view,a,l,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!isInTooltip(e.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(n){for(let e=n;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(n,e,s,o,a,l){let c=document.createRange(),u=n.domAtPos(e),f=n.domAtPos(s);c.setEnd(f.node,f.offset),c.setStart(u.node,u.offset);let d=c.getClientRects();c.detach();for(let g=0;gshowHoverTooltip.from(a)});return[o,ViewPlugin.define(a=>new HoverPlugin(a,n,o,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(n,e){let s=n.plugin(tooltipPlugin);if(!s)return null;let o=s.manager.tooltips.indexOf(e);return o<0?null:s.manager.tooltipViews[o]}const closeHoverTooltipEffect=StateEffect.define(),panelConfig=Facet.define({combine(n){let e,s;for(let o of n)e=e||o.topContainer,s=s||o.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(n,e){let s=n.plugin(panelPlugin),o=s?s.specs.indexOf(e):-1;return o>-1?s.panels[o]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(n){this.input=n.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(n));let e=n.state.facet(panelConfig);this.top=new PanelGroup(n,!0,e.topContainer),this.bottom=new PanelGroup(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(n){let e=n.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=n.state.facet(showPanel);if(s!=this.input){let o=s.filter(f=>f),a=[],l=[],c=[],u=[];for(let f of o){let d=this.specs.indexOf(f),g;d<0?(g=f(n.view),u.push(g)):(g=this.panels[d],g.update&&g.update(n)),a.push(g),(g.top?l:c).push(g)}this.specs=o,this.panels=a,this.top.sync(l),this.bottom.sync(c);for(let f of u)f.dom.classList.add("cm-panel"),f.mount&&f.mount()}else for(let o of this.panels)o.update&&o.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>EditorView.scrollMargins.of(e=>{let s=e.plugin(n);return s&&{top:s.top.scrollMargin(),bottom:s.bottom.scrollMargin()}})});class PanelGroup{constructor(e,s,o){this.view=e,this.top=s,this.container=o,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.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",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(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 rm(n){let e=n.nextSibling;return n.remove(),e}const showPanel=Facet.define({enables:panelPlugin});class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),activeGutters=Facet.define(),unfixGutters=Facet.define({combine:n=>n.some(e=>e)});function gutters(n){let e=[gutterView];return n&&n.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(n){this.view=n,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=n.state.facet(activeGutters).map(e=>new SingleGutterView(n,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!n.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}update(n){if(this.updateGutters(n)){let e=this.prevViewport,s=n.view.viewport,o=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(o<(s.to-s.from)*.8)}n.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),o=[],a=this.gutters.map(l=>new UpdateContext(l,this.view.viewport,-this.view.documentPadding.top));for(let l of this.view.viewportLineBlocks)if(o.length&&(o=[]),Array.isArray(l.type)){let c=!0;for(let u of l.type)if(u.type==BlockType.Text&&c){advanceCursor(s,o,u.from);for(let f of a)f.line(this.view,u,o);c=!1}else if(u.widget)for(let f of a)f.widget(this.view,u)}else if(l.type==BlockType.Text){advanceCursor(s,o,l.from);for(let c of a)c.line(this.view,l,o)}for(let l of a)l.finish();n&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(n){let e=n.startState.facet(activeGutters),s=n.state.facet(activeGutters),o=n.docChanged||n.heightChanged||n.viewportChanged||!RangeSet.eq(n.startState.facet(gutterLineClass),n.state.facet(gutterLineClass),n.view.viewport.from,n.view.viewport.to);if(e==s)for(let a of this.gutters)a.update(n)&&(o=!0);else{o=!0;let a=[];for(let l of s){let c=e.indexOf(l);c<0?a.push(new SingleGutterView(this.view,l)):(this.gutters[c].update(n),a.push(this.gutters[c]))}for(let l of this.gutters)l.dom.remove(),a.indexOf(l)<0&&l.destroy();for(let l of a)this.dom.appendChild(l.dom);this.gutters=a}return o}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove()}},{provide:n=>EditorView.scrollMargins.of(e=>{let s=e.plugin(n);return!s||s.gutters.length==0||!s.fixed?null:e.textDirection==Direction.LTR?{left:s.dom.offsetWidth}:{right:s.dom.offsetWidth}})});function asArray(n){return Array.isArray(n)?n:[n]}function advanceCursor(n,e,s){for(;n.value&&n.from<=s;)n.from==s&&e.push(n.value),n.next()}class UpdateContext{constructor(e,s,o){this.gutter=e,this.height=o,this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}addElement(e,s,o){let{gutter:a}=this,l=s.top-this.height;if(this.i==a.elements.length){let c=new GutterElement(e,s.height,l,o);a.elements.push(c),a.dom.appendChild(c.dom)}else a.elements[this.i].update(e,s.height,l,o);this.height=s.bottom,this.i++}line(e,s,o){let a=[];advanceCursor(this.cursor,a,s.from),o.length&&(a=a.concat(o));let l=this.gutter.config.lineMarker(e,s,a);l&&a.unshift(l);let c=this.gutter;a.length==0&&!c.config.renderEmptyElements||this.addElement(e,s,a)}widget(e,s){let o=this.gutter.config.widgetMarker(e,s.widget,s);o&&this.addElement(e,s,[o])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let o in s.domEventHandlers)this.dom.addEventListener(o,a=>{let l=a.target,c;if(l!=this.dom&&this.dom.contains(l)){for(;l.parentNode!=this.dom;)l=l.parentNode;let f=l.getBoundingClientRect();c=(f.top+f.bottom)/2}else c=a.clientY;let u=e.lineBlockAtHeight(c-e.documentTop);s.domEventHandlers[o](e,u,a)&&a.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let a=this.config.updateSpacer(this.spacer.markers[0],e);a!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[a])}let o=e.view.viewport;return!RangeSet.eq(this.markers,s,o.from,o.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,o,a){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,s,o,a)}update(e,s,o,a){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=o&&(this.dom.style.marginTop=(this.above=o)?o+"px":""),sameMarkers(this.markers,a)||this.setMarkers(e,a)}setMarkers(e,s){let o="cm-gutterElement",a=this.dom.firstChild;for(let l=0,c=0;;){let u=c,f=ll(u,f,d)||c(u,f,d):c}return o}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(n,e){return n.state.facet(lineNumberConfig).formatNumber(e,n.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,o){return o.some(a=>a.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let o=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return o==e.number?e:new NumberMarker(o)},domEventHandlers:n.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(n={}){return[lineNumberConfig.of(n),gutters(),lineNumberGutter]}function maxLineNumber(n){let e=9;for(;e{let e=[],s=-1;for(let o of n.selection.ranges){let a=n.doc.lineAt(o.head).from;a>s&&(s=a,e.push(activeLineGutterMarker.range(a)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0;class Range{constructor(e,s){this.from=e,this.to=s}}class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let o=e(s);return o===void 0?null:[this,o]}}}NodeProp.closedBy=new NodeProp({deserialize:n=>n.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:n=>n.split(" ")});NodeProp.group=new NodeProp({deserialize:n=>n.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});class MountedTree{constructor(e,s,o){this.tree=e,this.overlay=s,this.parser=o}}const noProps=Object.create(null);class NodeType{constructor(e,s,o,a=0){this.name=e,this.props=s,this.id=o,this.flags=a}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,o=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),a=new NodeType(e.name||"",s,e.id,o);if(e.props){for(let l of e.props)if(Array.isArray(l)||(l=l(a)),l){if(l[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[l[0].id]=l[1]}}return a}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 s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let o in e)for(let a of o.split(" "))s[a]=e[o];return o=>{for(let a=o.prop(NodeProp.group),l=-1;l<(a?a.length:0);l++){let c=s[l<0?o.name:a[l]];if(c)return c}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s0;for(let f=this.cursor(c|IterMode.IncludeAnonymous);;){let d=!1;if(f.from<=l&&f.to>=a&&(!u&&f.type.isAnonymous||s(f)!==!1)){if(f.firstChild())continue;d=!0}for(;d&&o&&(u||!f.type.isAnonymous)&&o(f),!f.nextSibling();){if(!f.parent())return;d=!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 s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,o,a)=>new Tree(this.type,s,o,a,this.propValues),e.makeTree||((s,o,a)=>new Tree(NodeType.none,s,o,a)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}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 FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,o){this.buffer=e,this.length=s,this.set=o}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));f=c[f+3]);return u}slice(e,s,o){let a=this.buffer,l=new Uint16Array(s-e),c=0;for(let u=e,f=0;u=e&&se;case 1:return s<=e&&o>e;case 2:return o>e;case 4:return!0}}function enterUnfinishedNodesBefore(n,e){let s=n.childBefore(e);for(;s;){let o=s.lastChild;if(!o||o.to!=s.to)break;o.type.isError&&o.from==o.to?(n=s,s=o.prevSibling):s=o}return n}function resolveNode(n,e,s,o){for(var a;n.from==n.to||(s<1?n.from>=e:n.from>e)||(s>-1?n.to<=e:n.to0?u.length:-1;e!=d;e+=s){let g=u[e],b=f[e]+c.from;if(checkSide(a,o,b,b+g.length)){if(g instanceof TreeBuffer){if(l&IterMode.ExcludeBuffers)continue;let E=g.findChild(0,g.buffer.length,s,o-b,a);if(E>-1)return new BufferNode(new BufferContext(c,g,e,b),null,E)}else if(l&IterMode.IncludeAnonymous||!g.type.isAnonymous||hasChild(g)){let E;if(!(l&IterMode.IgnoreMounts)&&g.props&&(E=g.prop(NodeProp.mounted))&&!E.overlay)return new TreeNode(E.tree,b,e,c);let B=new TreeNode(g,b,e,c);return l&IterMode.IncludeAnonymous||!B.type.isAnonymous?B:B.nextChild(s<0?g.children.length-1:0,s,o,a)}}}if(l&IterMode.IncludeAnonymous||!c.type.isAnonymous||(c.index>=0?e=c.index+s:e=s<0?-1:c._parent._tree.children.length,c=c._parent,!c))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)}enter(e,s,o=0){let a;if(!(o&IterMode.IgnoreOverlays)&&(a=this._tree.prop(NodeProp.mounted))&&a.overlay){let l=e-this.from;for(let{from:c,to:u}of a.overlay)if((s>0?c<=l:c=l:u>l))return new TreeNode(a.tree,a.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,o)}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}cursor(e=0){return new TreeCursor(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,o=null){let a=getChildren(this,e,s,o);return a.length?a[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}function getChildren(n,e,s,o){let a=n.cursor(),l=[];if(!a.firstChild())return l;if(s!=null){for(;!a.type.is(s);)if(!a.nextSibling())return l}for(;;){if(o!=null&&a.type.is(o))return l;if(a.type.is(e)&&l.push(a.node),!a.nextSibling())return o==null?l:[]}}function matchNodeContext(n,e,s=e.length-1){for(let o=n.parent;s>=0;o=o.parent){if(!o)return!1;if(!o.type.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}class BufferContext{constructor(e,s,o,a){this.parent=e,this.buffer=s,this.index=o,this.start=a}}class BufferNode{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,s,o){this.context=e,this._parent=s,this.index=o,this.type=e.buffer.set.types[e.buffer.buffer[o]]}child(e,s,o){let{buffer:a}=this.context,l=a.findChild(this.index+4,a.buffer[this.index+3],e,s-this.context.start,o);return l<0?null:new BufferNode(this.context,this,l)}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)}enter(e,s,o=0){if(o&IterMode.ExcludeBuffers)return null;let{buffer:a}=this.context,l=a.findChild(this.index+4,a.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return l<0?null:new BufferNode(this.context,this,l)}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,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}cursor(e=0){return new TreeCursor(this,e)}get tree(){return null}toTree(){let e=[],s=[],{buffer:o}=this.context,a=this.index+4,l=o.buffer[this.index+3];if(l>a){let c=o.buffer[this.index+1];e.push(o.slice(a,l,c)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,o=null){let a=getChildren(this,e,s,o);return a.length?a[0]:null}getChildren(e,s=null,o=null){return getChildren(this,e,s,o)}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}class TreeCursor{get name(){return this.type.name}constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let o=e._parent;o;o=o._parent)this.stack.unshift(o.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,s){this.index=e;let{start:o,buffer:a}=this.buffer;return this.type=s||a.set.types[a.buffer[e]],this.from=o+a.buffer[e+1],this.to=o+a.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(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,s,o){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,s,o,this.mode));let{buffer:a}=this.buffer,l=a.findChild(this.index+4,a.buffer[this.index+3],e,s-this.buffer.start,o);return l<0?!1:(this.stack.push(this.index),this.yieldBuf(l))}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,s,o=this.mode){return this.buffer?o&IterMode.ExcludeBuffers?!1:this.enterChild(1,e,s):this.yield(this._tree.enter(e,s,o))}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&IterMode.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:s}=this.buffer,o=this.stack.length-1;if(e<0){let a=o<0?0:this.stack[o]+4;if(this.index!=a)return this.yieldBuf(s.findChild(a,this.index,-1,0,4))}else{let a=s.buffer[this.index+3];if(a<(o<0?s.buffer.length:s.buffer[this.stack[o]+3]))return this.yieldBuf(a)}return o<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 s,o,{buffer:a}=this;if(a){if(e>0){if(this.index-1)for(let l=s+e,c=e<0?-1:o._tree.children.length;l!=c;l+=e){let u=o._tree.children[l];if(this.mode&IterMode.IncludeAnonymous||u instanceof TreeBuffer||!u.type.isAnonymous||hasChild(u))return!1}return!0}move(e,s){if(s&&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,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let c=e;c;c=c._parent)if(c.index==a){if(a==this.index)return c;s=c,o=l+1;break e}a=this.stack[--l]}for(let a=o;a=0;l--){if(l<0)return matchNodeContext(this.node,e,a);let c=o[s.buffer[this.stack[l]]];if(!c.isAnonymous){if(e[a]&&e[a]!=c.name)return!1;a--}}return!0}}function hasChild(n){return n.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(n){var e;let{buffer:s,nodeSet:o,maxBufferLength:a=DefaultBufferLength,reused:l=[],minRepeatType:c=o.types.length}=n,u=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,f=o.types,d=0,g=0;function b(j,ue,fe,xe,Se){let{id:ge,start:Qe,end:Me,size:Ie}=u,Ze=g;for(;Ie<0;)if(u.next(),Ie==-1){let Fe=l[ge];fe.push(Fe),xe.push(Qe-j);return}else if(Ie==-3){d=ge;return}else if(Ie==-4){g=ge;return}else throw new RangeError(`Unrecognized record size: ${Ie}`);let De=f[ge],Te,Ne,qe=Qe-j;if(Me-Qe<=a&&(Ne=D(u.pos-ue,Se))){let Fe=new Uint16Array(Ne.size-Ne.skip),Ee=u.pos-Ne.size,$e=Fe.length;for(;u.pos>Ee;)$e=X(Ne.start,Fe,$e);Te=new TreeBuffer(Fe,Me-Ne.start,o),qe=Ne.start-j}else{let Fe=u.pos-Ie;u.next();let Ee=[],$e=[],ze=ge>=c?ge:-1,je=0,Je=Me;for(;u.pos>Fe;)ze>=0&&u.id==ze&&u.size>=0?(u.end<=Je-a&&(B(Ee,$e,Qe,je,u.end,Je,ze,Ze),je=Ee.length,Je=u.end),u.next()):b(Qe,Fe,Ee,$e,ze);if(ze>=0&&je>0&&je-1&&je>0){let it=E(De);Te=balanceRange(De,Ee,$e,0,Ee.length,0,Me-Qe,it,it)}else Te=V(De,Ee,$e,Me-Qe,Ze-Me)}fe.push(Te),xe.push(qe)}function E(j){return(ue,fe,xe)=>{let Se=0,ge=ue.length-1,Qe,Me;if(ge>=0&&(Qe=ue[ge])instanceof Tree){if(!ge&&Qe.type==j&&Qe.length==xe)return Qe;(Me=Qe.prop(NodeProp.lookAhead))&&(Se=fe[ge]+Qe.length+Me)}return V(j,ue,fe,xe,Se)}}function B(j,ue,fe,xe,Se,ge,Qe,Me){let Ie=[],Ze=[];for(;j.length>xe;)Ie.push(j.pop()),Ze.push(ue.pop()+fe-Se);j.push(V(o.types[Qe],Ie,Ze,ge-Se,Me-ge)),ue.push(Se-fe)}function V(j,ue,fe,xe,Se=0,ge){if(d){let Qe=[NodeProp.contextHash,d];ge=ge?[Qe].concat(ge):[Qe]}if(Se>25){let Qe=[NodeProp.lookAhead,Se];ge=ge?[Qe].concat(ge):[Qe]}return new Tree(j,ue,fe,xe,ge)}function D(j,ue){let fe=u.fork(),xe=0,Se=0,ge=0,Qe=fe.end-a,Me={size:0,start:0,skip:0};e:for(let Ie=fe.pos-j;fe.pos>Ie;){let Ze=fe.size;if(fe.id==ue&&Ze>=0){Me.size=xe,Me.start=Se,Me.skip=ge,ge+=4,xe+=4,fe.next();continue}let De=fe.pos-Ze;if(Ze<0||De=c?4:0,Ne=fe.start;for(fe.next();fe.pos>De;){if(fe.size<0)if(fe.size==-3)Te+=4;else break e;else fe.id>=c&&(Te+=4);fe.next()}Se=Ne,xe+=Ze,ge+=Te}return(ue<0||xe==j)&&(Me.size=xe,Me.start=Se,Me.skip=ge),Me.size>4?Me:void 0}function X(j,ue,fe){let{id:xe,start:Se,end:ge,size:Qe}=u;if(u.next(),Qe>=0&&xe4){let Ie=u.pos-(Qe-4);for(;u.pos>Ie;)fe=X(j,ue,fe)}ue[--fe]=Me,ue[--fe]=ge-j,ue[--fe]=Se-j,ue[--fe]=xe}else Qe==-3?d=xe:Qe==-4&&(g=xe);return fe}let q=[],z=[];for(;u.pos>0;)b(n.start||0,n.bufferStart||0,q,z,-1);let oe=(e=n.length)!==null&&e!==void 0?e:q.length?z[0]+q[0].length:0;return new Tree(f[n.topID],q.reverse(),z.reverse(),oe)}const nodeSizeCache=new WeakMap;function nodeSize(n,e){if(!n.isAnonymous||e instanceof TreeBuffer||e.type!=n)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let o of e.children){if(o.type!=n||!(o instanceof Tree)){s=1;break}s+=nodeSize(n,o)}nodeSizeCache.set(e,s)}return s}function balanceRange(n,e,s,o,a,l,c,u,f){let d=0;for(let V=o;V=g)break;fe+=xe}if(oe==j+1){if(fe>g){let xe=V[j];B(xe.children,xe.positions,0,xe.children.length,D[j]+z);continue}b.push(V[j])}else{let xe=D[oe-1]+V[oe-1].length-ue;b.push(balanceRange(n,V,D,j,oe,ue,xe,null,f))}E.push(ue+z-l)}}return B(e,s,o,a,0),(u||f)(b,E,c)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,s,o){let a=this.map.get(e);a||this.map.set(e,a=new Map),a.set(s,o)}getBuffer(e,s){let o=this.map.get(e);return o&&o.get(s)}set(e,s){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,s):e instanceof TreeNode&&this.map.set(e.tree,s)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,s){e.buffer?this.setBuffer(e.buffer.buffer,e.index,s):this.map.set(e.tree,s)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,s,o,a,l=!1,c=!1){this.from=e,this.to=s,this.tree=o,this.offset=a,this.open=(l?1:0)|(c?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],o=!1){let a=[new TreeFragment(0,e.length,e,0,!1,o)];for(let l of s)l.to>e.length&&a.push(l);return a}static applyChanges(e,s,o=128){if(!s.length)return e;let a=[],l=1,c=e.length?e[0]:null;for(let u=0,f=0,d=0;;u++){let g=u=o)for(;c&&c.from=E.from||b<=E.to||d){let B=Math.max(E.from,f)-d,V=Math.min(E.to,b)-d;E=B>=V?null:new TreeFragment(B,V,E.tree,E.offset+d,u>0,!!g)}if(E&&a.push(E),c.to>b)break;c=lnew Range(a.from,a.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],o)}parse(e,s,o){let a=this.startParse(e,s,o);for(;;){let l=a.advance();if(l)return l}}};class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}function parseMixed(n){return(e,s,o,a)=>new MixedParse(e,n,s,o,a)}class InnerParse{constructor(e,s,o,a,l){if(this.parser=e,this.parse=s,this.overlay=o,this.target=a,this.ranges=l,!l.length||l.some(c=>c.from>=c.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(l))}}class ActiveOverlay{constructor(e,s,o,a,l,c,u){this.parser=e,this.predicate=s,this.mounts=o,this.index=a,this.start=l,this.target=c,this.prev=u,this.depth=0,this.ranges=[]}}const stoppedInner=new NodeProp({perNode:!0});class MixedParse{constructor(e,s,o,a,l){this.nest=s,this.input=o,this.fragments=a,this.ranges=l,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let o=this.baseParse.advance();if(!o)return null;if(this.baseParse=null,this.baseTree=o,this.startInner(),this.stoppedAt!=null)for(let a of this.inner)a.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let o=this.baseTree;return this.stoppedAt!=null&&(o=new Tree(o.type,o.children,o.positions,o.length,o.propValues.concat([[stoppedInner,this.stoppedAt]]))),o}let e=this.inner[this.innerDone],s=e.parse.advance();if(s){this.innerDone++;let o=Object.assign(Object.create(null),e.target.props);o[NodeProp.mounted.id]=new MountedTree(s,e.overlay,e.parser),e.target.props=o}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let s=this.innerDone;sg.frag.from<=a.from&&g.frag.to>=a.to&&g.mount.overlay);if(d)for(let g of d.mount.overlay){let b=g.from+d.pos,E=g.to+d.pos;b>=a.from&&E<=a.to&&!s.ranges.some(B=>B.fromb)&&s.ranges.push({from:b,to:E})}}u=!1}else if(o&&(c=checkCover(o.ranges,a.from,a.to)))u=c!=2;else if(!a.type.isAnonymous&&a.fromnew Range(b.from-a.from,b.to-a.from)):null,a.tree,g)),l.overlay?g.length&&(o={ranges:g,depth:0,prev:o}):u=!1}}else s&&(f=s.predicate(a))&&(f===!0&&(f=new Range(a.from,a.to)),f.fromnew Range(g.from-s.start,g.to-s.start)),s.target,d)),s=s.prev}o&&!--o.depth&&(o=o.prev)}}}}function checkCover(n,e,s){for(let o of n){if(o.from>=s)break;if(o.to>e)return o.from<=e&&o.to>=s?2:1}return 0}function sliceBuf(n,e,s,o,a,l){if(e=e.to);o++);let c=a.children[o],u=c.buffer;function f(d,g,b,E,B){let V=d;for(;u[V+2]+l<=e.from;)V=u[V+3];let D=[],X=[];sliceBuf(c,d,V,D,X,E);let q=u[V+1],z=u[V+2],oe=q+l==e.from&&z+l==e.to&&u[V]==e.type.id;return D.push(oe?e.toTree():f(V+4,u[V+3],c.set.types[u[V]],q,z-q)),X.push(q-E),sliceBuf(c,u[V+3],g,D,X,E),new Tree(b,D,X,B)}a.children[o]=f(0,u.length,NodeType.none,0,c.length);for(let d=0;d<=s;d++)n.childAfter(e.from)}class StructureCursor{constructor(e,s){this.offset=s,this.done=!1,this.cursor=e.cursor(IterMode.IncludeAnonymous|IterMode.IgnoreMounts)}moveTo(e){let{cursor:s}=this,o=e-this.offset;for(;!this.done&&s.from=e&&s.enter(o,1,IterMode.IgnoreOverlays|IterMode.ExcludeBuffers)||s.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let s=this.cursor.tree;;){if(s==e.tree)return!0;if(s.children.length&&s.positions[0]==0&&s.children[0]instanceof Tree)s=s.children[0];else break}return!1}}let FragmentCursor$2=class{constructor(e){var s;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let o=this.curFrag=e[0];this.curTo=(s=o.tree.prop(stoppedInner))!==null&&s!==void 0?s:o.to,this.inner=new StructureCursor(o.tree,-o.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 s=this.curFrag=this.fragments[this.fragI];this.curTo=(e=s.tree.prop(stoppedInner))!==null&&e!==void 0?e:s.to,this.inner=new StructureCursor(s.tree,-s.offset)}}findMounts(e,s){var o;let a=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let l=this.inner.cursor.node;l;l=l.parent){let c=(o=l.tree)===null||o===void 0?void 0:o.prop(NodeProp.mounted);if(c&&c.parser==s)for(let u=this.fragI;u=l.to)break;f.tree==this.curFrag.tree&&a.push({frag:f,pos:l.from-f.offset,mount:c})}}}return a}};function punchRanges(n,e){let s=null,o=e;for(let a=1,l=0;a=u)break;f.to<=c||(s||(o=s=e.slice()),f.fromu&&s.splice(l+1,0,new Range(u,f.to))):f.to>u?s[l--]=new Range(u,f.to):s.splice(l--,1))}}return o}function findCoverChanges(n,e,s,o){let a=0,l=0,c=!1,u=!1,f=-1e9,d=[];for(;;){let g=a==n.length?1e9:c?n[a].to:n[a].from,b=l==e.length?1e9:u?e[l].to:e[l].from;if(c!=u){let E=Math.max(f,s),B=Math.min(g,b,o);Enew Range(E.from+o,E.to+o)),b=findCoverChanges(e,g,f,d);for(let E=0,B=f;;E++){let V=E==b.length,D=V?d:b[E].from;if(D>B&&s.push(new TreeFragment(B,D,a.tree,-c,l.from>=B||l.openStart,l.to<=D||l.openEnd)),V)break;B=b[E].to}}else s.push(new TreeFragment(f,d,a.tree,-c,l.from>=c||l.openStart,l.to<=u||l.openEnd))}return s}let nextTagID=0;class Tag{constructor(e,s,o){this.set=e,this.base=s,this.modified=o,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let o of e.set)s.set.push(o);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((o,a)=>o.id-a.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let o=s[0].instances.find(u=>u.base==e&&sameArray(s,u.modified));if(o)return o;let a=[],l=new Tag(a,e,s);for(let u of s)u.instances.push(l);let c=powerSet(s);for(let u of e.set)if(!u.modified.length)for(let f of c)a.push(Modifier.get(u,f));return l}}function sameArray(n,e){return n.length==e.length&&n.every((s,o)=>s==e[o])}function powerSet(n){let e=[[]];for(let s=0;so.length-s.length)}function styleTags(n){let e=Object.create(null);for(let s in n){let o=n[s];Array.isArray(o)||(o=[o]);for(let a of s.split(" "))if(a){let l=[],c=2,u=a;for(let b=0;;){if(u=="..."&&b>0&&b+3==a.length){c=1;break}let E=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(u);if(!E)throw new RangeError("Invalid path: "+a);if(l.push(E[0]=="*"?"":E[0][0]=='"'?JSON.parse(E[0]):E[0]),b+=E[0].length,b==a.length)break;let B=a[b++];if(b==a.length&&B=="!"){c=0;break}if(B!="/")throw new RangeError("Invalid path: "+a);u=a.slice(b)}let f=l.length-1,d=l[f];if(!d)throw new RangeError("Invalid path: "+a);let g=new Rule(o,c,f>0?l.slice(0,f):null);e[d]=g.sort(e[d])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp;class Rule{constructor(e,s,o,a){this.tags=e,this.mode=s,this.context=o,this.next=a}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let c=a;for(let u of l)for(let f of u.set){let d=s[f.id];if(d){c=c?c+" "+d:d;break}}return c},scope:o}}function highlightTags(n,e){let s=null;for(let o of n){let a=o.style(e);a&&(s=s?s+" "+a:a)}return s}function highlightTree(n,e,s,o=0,a=n.length){let l=new HighlightBuilder(o,Array.isArray(e)?e:[e],s);l.highlightRange(n.cursor(),o,a,"",l.highlighters),l.flush(a)}class HighlightBuilder{constructor(e,s,o){this.at=e,this.highlighters=s,this.span=o,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,o,a,l){let{type:c,from:u,to:f}=e;if(u>=o||f<=s)return;c.isTop&&(l=this.highlighters.filter(B=>!B.scope||B.scope(c)));let d=a,g=getStyleTags(e)||Rule.empty,b=highlightTags(l,g.tags);if(b&&(d&&(d+=" "),d+=b,g.mode==1&&(a+=(a?" ":"")+b)),this.startSpan(Math.max(s,u),d),g.opaque)return;let E=e.tree&&e.tree.prop(NodeProp.mounted);if(E&&E.overlay){let B=e.node.enter(E.overlay[0].from+u,1),V=this.highlighters.filter(X=>!X.scope||X.scope(E.tree.type)),D=e.firstChild();for(let X=0,q=u;;X++){let z=X=oe||!e.nextSibling())););if(!z||oe>o)break;q=z.to+u,q>s&&(this.highlightRange(B.cursor(),Math.max(s,z.from+u),Math.min(o,q),"",V),this.startSpan(Math.min(o,q),d))}D&&e.parent()}else if(e.firstChild()){E&&(a="");do if(!(e.to<=s)){if(e.from>=o)break;this.highlightRange(e,s,o,a,l),this.startSpan(Math.min(o,e.to),d)}while(e.nextSibling());e.parent()}}}function getStyleTags(n){let e=n.type.prop(ruleNodeProp);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal$1=t(),string=t(literal$1),number=t(literal$1),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags$1={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal$1,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal$1),regexp:t(literal$1),escape:t(literal$1),color:t(literal$1),url:t(literal$1),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};tagHighlighter([{tag:tags$1.link,class:"tok-link"},{tag:tags$1.heading,class:"tok-heading"},{tag:tags$1.emphasis,class:"tok-emphasis"},{tag:tags$1.strong,class:"tok-strong"},{tag:tags$1.keyword,class:"tok-keyword"},{tag:tags$1.atom,class:"tok-atom"},{tag:tags$1.bool,class:"tok-bool"},{tag:tags$1.url,class:"tok-url"},{tag:tags$1.labelName,class:"tok-labelName"},{tag:tags$1.inserted,class:"tok-inserted"},{tag:tags$1.deleted,class:"tok-deleted"},{tag:tags$1.literal,class:"tok-literal"},{tag:tags$1.string,class:"tok-string"},{tag:tags$1.number,class:"tok-number"},{tag:[tags$1.regexp,tags$1.escape,tags$1.special(tags$1.string)],class:"tok-string2"},{tag:tags$1.variableName,class:"tok-variableName"},{tag:tags$1.local(tags$1.variableName),class:"tok-variableName tok-local"},{tag:tags$1.definition(tags$1.variableName),class:"tok-variableName tok-definition"},{tag:tags$1.special(tags$1.variableName),class:"tok-variableName2"},{tag:tags$1.definition(tags$1.propertyName),class:"tok-propertyName tok-definition"},{tag:tags$1.typeName,class:"tok-typeName"},{tag:tags$1.namespace,class:"tok-namespace"},{tag:tags$1.className,class:"tok-className"},{tag:tags$1.macroName,class:"tok-macroName"},{tag:tags$1.propertyName,class:"tok-propertyName"},{tag:tags$1.operator,class:"tok-operator"},{tag:tags$1.comment,class:"tok-comment"},{tag:tags$1.meta,class:"tok-meta"},{tag:tags$1.invalid,class:"tok-invalid"},{tag:tags$1.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(n){return Facet.define({combine:n?e=>e.concat(n):void 0})}const sublanguageProp=new NodeProp;class Language{constructor(e,s,o=[],a=""){this.data=e,this.name=a,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((l,c,u)=>{let f=topNodeAt(l,c,u),d=f.type.prop(languageDataProp);if(!d)return[];let g=l.facet(d),b=f.type.prop(sublanguageProp);if(b){let E=f.resolve(c-f.from,u);for(let B of b)if(B.test(E,l)){let V=l.facet(B.facet);return B.type=="replace"?V:V.concat(g)}}return g})].concat(o)}isActiveAt(e,s,o=-1){return topNodeAt(e,s,o).type.prop(languageDataProp)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let o=[],a=(l,c)=>{if(l.prop(languageDataProp)==this.data){o.push({from:c,to:c+l.length});return}let u=l.prop(NodeProp.mounted);if(u){if(u.tree.prop(languageDataProp)==this.data){if(u.overlay)for(let f of u.overlay)o.push({from:f.from+c,to:f.to+c});else o.push({from:c,to:c+l.length});return}else if(u.overlay){let f=o.length;if(a(u.tree,u.overlay[0].from+c),o.length>f)return}}for(let f=0;fo.isTop?s:void 0)]}),e.name)}configure(e,s){return new LRLanguage(this.data,this.parser.configure(e),s||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(n){let e=n.field(Language.state,!1);return e?e.tree:Tree.empty}function ensureSyntaxTree(n,e,s=50){var o;let a=(o=n.field(Language.state,!1))===null||o===void 0?void 0:o.context;if(!a)return null;let l=a.viewport;a.updateViewport({from:0,to:e});let c=a.isDone(e)||a.work(s,e)?a.tree:null;return a.updateViewport(l),c}class DocInput{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,s){let o=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-o,s-o)}}let currentContext=null;class ParseContext{constructor(e,s,o=[],a,l,c,u,f){this.parser=e,this.state=s,this.fragments=o,this.tree=a,this.treeLen=l,this.viewport=c,this.skipped=u,this.scheduleOn=f,this.parse=null,this.tempSkipped=[]}static create(e,s,o){return new ParseContext(e,s,[],Tree.empty,0,o,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var o;if(typeof e=="number"){let a=Date.now()+e;e=()=>Date.now()>a}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:o,tree:a,treeLen:l,viewport:c,skipped:u}=this;if(this.takeTree(),!e.empty){let f=[];if(e.iterChangedRanges((d,g,b,E)=>f.push({fromA:d,toA:g,fromB:b,toB:E})),o=TreeFragment.applyChanges(o,f),a=Tree.empty,l=0,c={from:e.mapPos(c.from,-1),to:e.mapPos(c.to,1)},this.skipped.length){u=[];for(let d of this.skipped){let g=e.mapPos(d.from,1),b=e.mapPos(d.to,-1);ge.from&&(this.fragments=cutFragments(this.fragments,a,l),this.skipped.splice(o--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser$1{createParse(s,o,a){let l=a[0].from,c=a[a.length-1].to;return{parsedPos:l,advance(){let f=currentContext;if(f){for(let d of a)f.tempSkipped.push(d);e&&(f.scheduleOn=f.scheduleOn?Promise.all([f.scheduleOn,e]):e)}return this.parsedPos=c,new Tree(NodeType.none,[],[],c-l)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(n,e,s){return TreeFragment.applyChanges(n,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),o=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,o)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),o=ParseContext.create(e.facet(language).parser,e,{from:0,to:s});return o.work(20,s)||o.takeTree(),new LanguageState(o)}}Language.state=StateField.define({create:LanguageState.init,update(n,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):n.apply(e)}});let requestIdle=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(requestIdle=n=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(n,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator<"u"&&(!((_a=navigator.scheduling)===null||_a===void 0)&&_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.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 s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEnda+1e3,f=l.context.work(()=>isInputPending&&isInputPending()||Date.now()>c,a+(u?0:1e5));this.chunkBudget-=Date.now()-s,(f||this.chunkBudget<=0)&&(l.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(l.context))})),this.chunkBudget>0&&!(f&&!u)&&this.scheduleWork(),this.checkAsyncSchedule(l.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(n){return n.length?n[0]:null},enables:n=>[Language.state,parseWorker,EditorView.contentAttributes.compute([n],e=>{let s=e.facet(n);return s&&s.name?{"data-language":s.name}:{}})]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}class LanguageDescription{constructor(e,s,o,a,l,c=void 0){this.name=e,this.alias=s,this.extensions=o,this.filename=a,this.loadFunc=l,this.support=c,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:s,support:o}=e;if(!s){if(!o)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");s=()=>Promise.resolve(o)}return new LanguageDescription(e.name,(e.alias||[]).concat(e.name).map(a=>a.toLowerCase()),e.extensions||[],e.filename,s,o)}static matchFilename(e,s){for(let a of e)if(a.filename&&a.filename.test(s))return a;let o=/\.([^.]+)$/.exec(s);if(o){for(let a of e)if(a.extensions.indexOf(o[1])>-1)return a}return null}static matchLanguageName(e,s,o=!0){s=s.toLowerCase();for(let a of e)if(a.alias.some(l=>l==s))return a;if(o)for(let a of e)for(let l of a.alias){let c=s.indexOf(l);if(c>-1&&(l.length>2||!/\w/.test(s[c-1])&&!/\w/.test(s[c+l.length])))return a}return null}}const indentService=Facet.define(),indentUnit=Facet.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(s=>s!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function getIndentUnit(n){let e=n.facet(indentUnit);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function indentString(n,e){let s="",o=n.tabSize,a=n.facet(indentUnit)[0];if(a==" "){for(;e>=o;)s+=" ",e-=o;a=" "}for(let l=0;l=o.from&&a<=o.to?l&&a==e?{text:"",from:e}:(s<0?a-1&&(l+=c-this.countColumn(o,o.search(/\S|$/))),l}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:o,from:a}=this.lineAt(e,s),l=this.options.overrideIndentation;if(l){let c=l(a);if(c>-1)return c}return this.countColumn(o,o.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(n,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,n)}function ignoreClosed(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function indentStrategy(n){let e=n.type.prop(indentNodeProp);if(e)return e;let s=n.firstChild,o;if(s&&(o=s.type.prop(NodeProp.closedBy))){let a=n.lastChild,l=a&&o.indexOf(a.name)>-1;return c=>delimitedStrategy(c,!0,1,void 0,l&&!ignoreClosed(c)?a.from:void 0)}return n.parent==null?topIndent:null}function indentFrom(n,e,s){for(;n;n=n.parent){let o=indentStrategy(n);if(o)return o(TreeIndentContext.create(s,e,n))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,o){super(e.state,e.options),this.base=e,this.pos=s,this.node=o}static create(e,s,o){return new TreeIndentContext(e,s,o)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let s=this.state.doc.lineAt(e.from);for(;;){let o=e.resolve(s.from);for(;o.parent&&o.parent.from==o.from;)o=o.parent;if(isParent(o,e))break;s=this.state.doc.lineAt(o.from)}return this.lineIndent(s.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(n,e){for(let s=e;s;s=s.parent)if(n==s)return!0;return!1}function bracketedAligned(n){let e=n.node,s=e.childAfter(e.from),o=e.lastChild;if(!s)return null;let a=n.options.simulateBreak,l=n.state.doc.lineAt(s.from),c=a==null||a<=l.from?l.to:Math.min(l.to,a);for(let u=s.to;;){let f=e.childAfter(u);if(!f||f==o)return null;if(!f.type.isSkipped)return f.fromdelimitedStrategy(o,e,s,n)}function delimitedStrategy(n,e,s,o,a){let l=n.textAfter,c=l.match(/^\s*/)[0].length,u=o&&l.slice(c,c+o.length)==o||a==n.pos+c,f=e?bracketedAligned(n):null;return f?u?n.column(f.from):n.column(f.to):n.baseIndent+(u?0:n.unit*s)}const flatIndent=n=>n.baseIndent;function continuedIndent({except:n,units:e=1}={}){return s=>{let o=n&&n.test(s.textAfter);return s.baseIndent+(o?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let s=n.newDoc,{head:o}=n.newSelection.main,a=s.lineAt(o);if(o>a.from+DontIndentBeyond)return n;let l=s.sliceString(a.from,o);if(!e.some(d=>d.test(l)))return n;let{state:c}=n,u=-1,f=[];for(let{head:d}of c.selection.ranges){let g=c.doc.lineAt(d);if(g.from==u)continue;u=g.from;let b=getIndentation(c,g.from);if(b==null)continue;let E=/^\s*/.exec(g.text)[0],B=indentString(c,b);E!=B&&f.push({from:g.from,to:g.from+E.length,insert:B})}return f.length?[n,{changes:f,sequential:!0}]:n})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(n){let e=n.firstChild,s=n.lastChild;return e&&e.tos)continue;if(l&&c.from=e&&f.to>s&&(l=f)}}return l}function isUnfinished(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function foldable(n,e,s){for(let o of n.facet(foldService)){let a=o(n,e,s);if(a)return a}return syntaxFolding(n,e,s)}function mapRange(n,e){let s=e.mapPos(n.from,1),o=e.mapPos(n.to,-1);return s>=o?void 0:{from:s,to:o}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(n){let e=[];for(let{head:s}of n.state.selection.ranges)e.some(o=>o.from<=s&&o.to>=s)||e.push(n.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(n,e){n=n.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(n,s.value.from,s.value.to)?n=n.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(n=n.update({filter:(o,a)=>s.value.from!=o||s.value.to!=a,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:o}=e.selection.main;n.between(o,o,(a,l)=>{ao&&(s=!0)}),s&&(n=n.update({filterFrom:o,filterTo:o,filter:(a,l)=>l<=o||a>=o}))}return n},provide:n=>EditorView.decorations.from(n),toJSON(n,e){let s=[];return n.between(0,e.doc.length,(o,a)=>{s.push(o,a)}),s},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let s=0;s{(!a||a.from>l)&&(a={from:l,to:c})}),a}function foldExists(n,e,s){let o=!1;return n.between(e,e,(a,l)=>{a==e&&l==s&&(o=!0)}),o}function maybeEnable(n,e){return n.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=n=>{for(let e of selectedLines(n)){let s=foldable(n.state,e.from,e.to);if(s)return n.dispatch({effects:maybeEnable(n.state,[foldEffect.of(s),announceFold(n,s)])}),!0}return!1};function announceFold(n,e,s=!0){let o=n.state.doc.lineAt(e.from).number,a=n.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${n.state.phrase(s?"Folded lines":"Unfolded lines")} ${o} ${n.state.phrase("to")} ${a}.`)}const defaultConfig={placeholderDOM:null,placeholderText:"…"},foldConfig=Facet.define({combine(n){return combineConfig(n,defaultConfig)}});function codeFolding(n){let e=[foldState,baseTheme$1$1];return n&&e.push(foldConfig.of(n)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(n){let{state:e}=n,s=e.facet(foldConfig),o=l=>{let c=n.lineBlockAt(n.posAtDOM(l.target)),u=findFold(n.state,c.from,c.to);u&&n.dispatch({effects:unfoldEffect.of(u)}),l.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(n,o);let a=document.createElement("span");return a.textContent=s.placeholderText,a.setAttribute("aria-label",e.phrase("folded code")),a.title=e.phrase("unfold"),a.className="cm-foldPlaceholder",a.onclick=o,a}}}),baseTheme$1$1=EditorView.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"}});class HighlightStyle{constructor(e,s){this.specs=e;let o;function a(u){let f=StyleModule.newName();return(o||(o=Object.create(null)))["."+f]=u,f}const l=typeof s.all=="string"?s.all:s.all?a(s.all):void 0,c=s.scope;this.scope=c instanceof Language?u=>u.prop(languageDataProp)==c.data:c?u=>u==c:void 0,this.style=tagHighlighter(e.map(u=>({tag:u.tag,class:u.class||a(Object.assign({},u,{tag:null}))})),{all:l}).style,this.module=o?new StyleModule(o):null,this.themeType=s.themeType}static define(e,s){return new HighlightStyle(e,s||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(n){return n.length?[n[0]]:null}});function getHighlighters(n){let e=n.facet(highlighterFacet);return e.length?e:n.facet(fallbackHighlighter)}function syntaxHighlighting(n,e){let s=[treeHighlighter],o;return n instanceof HighlightStyle&&(n.module&&s.push(EditorView.styleModule.of(n.module)),o=n.themeType),e!=null&&e.fallback?s.push(fallbackHighlighter.of(n)):o?s.push(highlighterFacet.computeN([EditorView.darkTheme],a=>a.facet(EditorView.darkTheme)==(o=="dark")?[n]:[])):s.push(highlighterFacet.of(n)),s}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state))}update(e){let s=syntaxTree(e.state),o=getHighlighters(e.state),a=o!=getHighlighters(e.startState);s.length{o.add(c,u,this.markCache[f]||(this.markCache[f]=Decoration.mark({class:f})))},a,l);return o.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:n=>n.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags$1.meta,color:"#404740"},{tag:tags$1.link,textDecoration:"underline"},{tag:tags$1.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags$1.emphasis,fontStyle:"italic"},{tag:tags$1.strong,fontWeight:"bold"},{tag:tags$1.strikethrough,textDecoration:"line-through"},{tag:tags$1.keyword,color:"#708"},{tag:[tags$1.atom,tags$1.bool,tags$1.url,tags$1.contentSeparator,tags$1.labelName],color:"#219"},{tag:[tags$1.literal,tags$1.inserted],color:"#164"},{tag:[tags$1.string,tags$1.deleted],color:"#a11"},{tag:[tags$1.regexp,tags$1.escape,tags$1.special(tags$1.string)],color:"#e40"},{tag:tags$1.definition(tags$1.variableName),color:"#00f"},{tag:tags$1.local(tags$1.variableName),color:"#30a"},{tag:[tags$1.typeName,tags$1.namespace],color:"#085"},{tag:tags$1.className,color:"#167"},{tag:[tags$1.special(tags$1.variableName),tags$1.macroName],color:"#256"},{tag:tags$1.definition(tags$1.propertyName),color:"#00c"},{tag:tags$1.comment,color:"#940"},{tag:tags$1.invalid,color:"#f00"}]),baseTheme$2=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(n){return combineConfig(n,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(n){let e=[],s=n.matched?matchingMark:nonmatchingMark;return e.push(s.range(n.start.from,n.start.to)),n.end&&e.push(s.range(n.end.from,n.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let s=[],o=e.state.facet(bracketMatchingConfig);for(let a of e.state.selection.ranges){if(!a.empty)continue;let l=matchBrackets(e.state,a.head,-1,o)||a.head>0&&matchBrackets(e.state,a.head-1,1,o)||o.afterCursor&&(matchBrackets(e.state,a.head,1,o)||a.headEditorView.decorations.from(n)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$2];function bracketMatching(n={}){return[bracketMatchingConfig.of(n),bracketMatchingUnique]}const bracketMatchingHandle=new NodeProp;function matchingNodes(n,e,s){let o=n.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(o)return o;if(n.name.length==1){let a=s.indexOf(n.name);if(a>-1&&a%2==(e<0?1:0))return[s[a+e]]}return null}function findHandle(n){let e=n.type.prop(bracketMatchingHandle);return e?e(n.node):n}function matchBrackets(n,e,s,o={}){let a=o.maxScanDistance||DefaultScanDist,l=o.brackets||DefaultBrackets,c=syntaxTree(n),u=c.resolveInner(e,s);for(let f=u;f;f=f.parent){let d=matchingNodes(f.type,s,l);if(d&&f.from0?e>=g.from&&eg.from&&e<=g.to))return matchMarkedBrackets(n,e,s,f,g,d,l)}}return matchPlainBrackets(n,e,s,c,u.type,a,l)}function matchMarkedBrackets(n,e,s,o,a,l,c){let u=o.parent,f={from:a.from,to:a.to},d=0,g=u==null?void 0:u.cursor();if(g&&(s<0?g.childBefore(o.from):g.childAfter(o.to)))do if(s<0?g.to<=o.from:g.from>=o.to){if(d==0&&l.indexOf(g.type.name)>-1&&g.from0)return null;let d={from:s<0?e-1:e,to:s>0?e+1:e},g=n.doc.iterRange(e,s>0?n.doc.length:0),b=0;for(let E=0;!g.next().done&&E<=l;){let B=g.value;s<0&&(E+=B.length);let V=e+E*s;for(let D=s>0?0:B.length-1,X=s>0?B.length:-1;D!=X;D+=s){let q=c.indexOf(B[D]);if(!(q<0||o.resolveInner(V+D,1).type!=a))if(q%2==0==s>0)b++;else{if(b==1)return{start:d,end:{from:V+D,to:V+D+1},matched:q>>1==f>>1};b--}}s>0&&(E+=B.length)}return g.done?{start:d,matched:!1}:null}function countCol(n,e,s,o=0,a=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let l=a;for(let c=o;c=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.poss}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 s=this.string.indexOf(e,this.pos);if(s>-1)return this.pos=s,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPoso?c.toLowerCase():c,l=this.string.substr(this.pos,e.length);return a(l)==a(e)?(s!==!1&&(this.pos+=e.length),!0):null}else{let a=this.string.slice(this.pos).match(e);return a&&a.index>0?null:(a&&s!==!1&&(this.pos+=a[0].length),a)}}current(){return this.string.slice(this.start,this.pos)}}const noTokens=Object.create(null),typeArray=[NodeType.none],warned=[],defaultTable=Object.create(null);for(let[n,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"]])defaultTable[n]=createTokenType(noTokens,e);function warnForPart(n,e){warned.indexOf(n)>-1||(warned.push(n),console.warn(e))}function createTokenType(n,e){let s=null;for(let l of e.split(".")){let c=n[l]||tags$1[l];c?typeof c=="function"?s?s=c(s):warnForPart(l,`Modifier ${l} used at start of tag`):s?warnForPart(l,`Tag ${l} used as modifier`):s=c:warnForPart(l,`Unknown highlighting tag ${l}`)}if(!s)return 0;let o=e.replace(/ /g,"_"),a=NodeType.define({id:typeArray.length,name:o,props:[styleTags({[o]:s})]});return typeArray.push(a),a.id}const toggleComment=n=>{let{state:e}=n,s=e.doc.lineAt(e.selection.main.from),o=getConfig(n.state,s.from);return o.line?toggleLineComment(n):o.block?toggleBlockCommentByLine(n):!1};function command(n,e){return({state:s,dispatch:o})=>{if(s.readOnly)return!1;let a=n(e,s);return a?(o(s.update(a)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((n,e)=>changeBlockComment(n,e,selectedLineRanges(e)),0);function getConfig(n,e){let s=n.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(n,{open:e,close:s},o,a){let l=n.sliceDoc(o-SearchMargin,o),c=n.sliceDoc(a,a+SearchMargin),u=/\s*$/.exec(l)[0].length,f=/^\s*/.exec(c)[0].length,d=l.length-u;if(l.slice(d-e.length,d)==e&&c.slice(f,f+s.length)==s)return{open:{pos:o-u,margin:u&&1},close:{pos:a+f,margin:f&&1}};let g,b;a-o<=2*SearchMargin?g=b=n.sliceDoc(o,a):(g=n.sliceDoc(o,o+SearchMargin),b=n.sliceDoc(a-SearchMargin,a));let E=/^\s*/.exec(g)[0].length,B=/\s*$/.exec(b)[0].length,V=b.length-B-s.length;return g.slice(E,E+e.length)==e&&b.slice(V,V+s.length)==s?{open:{pos:o+E+e.length,margin:/\s/.test(g.charAt(E+e.length))?1:0},close:{pos:a-B-s.length,margin:/\s/.test(b.charAt(V-1))?1:0}}:null}function selectedLineRanges(n){let e=[];for(let s of n.selection.ranges){let o=n.doc.lineAt(s.from),a=s.to<=o.to?o:n.doc.lineAt(s.to),l=e.length-1;l>=0&&e[l].to>o.from?e[l].to=a.to:e.push({from:o.from+/^\s*/.exec(o.text)[0].length,to:a.to})}return e}function changeBlockComment(n,e,s=e.selection.ranges){let o=s.map(l=>getConfig(e,l.from).block);if(!o.every(l=>l))return null;let a=s.map((l,c)=>findBlockComment(e,o[c],l.from,l.to));if(n!=2&&!a.every(l=>l))return{changes:e.changes(s.map((l,c)=>a[c]?[]:[{from:l.from,insert:o[c].open+" "},{from:l.to,insert:" "+o[c].close}]))};if(n!=1&&a.some(l=>l)){let l=[];for(let c=0,u;ca&&(l==c||c>b.from)){a=b.from;let E=/^\s*/.exec(b.text)[0].length,B=E==b.length,V=b.text.slice(E,E+d.length)==d?E:-1;El.comment<0&&(!l.empty||l.single))){let l=[];for(let{line:u,token:f,indent:d,empty:g,single:b}of o)(b||!g)&&l.push({from:u.from+d,insert:f+" "});let c=e.changes(l);return{changes:c,selection:e.selection.map(c,1)}}else if(n!=1&&o.some(l=>l.comment>=0)){let l=[];for(let{line:c,comment:u,token:f}of o)if(u>=0){let d=c.from+u,g=d+f.length;c.text[g-c.from]==" "&&g++,l.push({from:d,to:g})}return{changes:l}}return null}const fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(n){return combineConfig(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,s)=>s},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,s)=>(o,a)=>e(o,a)||s(o,a)})}});function changeEnd(n){let e=0;return n.iterChangedRanges((s,o)=>e=o),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(n,e){let s=e.state.facet(historyConfig),o=e.annotation(fromHistory);if(o){let f=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,d=HistEvent.fromTransaction(e,f),g=o.side,b=g==0?n.undone:n.done;return d?b=updateBranch(b,b.length,s.minDepth,d):b=addSelection(b,e.startState.selection),new HistoryState(g==0?o.rest:b,g==0?b:o.rest)}let a=e.annotation(isolateHistory);if((a=="full"||a=="before")&&(n=n.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let l=HistEvent.fromTransaction(e),c=e.annotation(Transaction.time),u=e.annotation(Transaction.userEvent);return l?n=n.addChanges(l,c,u,s,e):e.selection&&(n=n.addSelection(e.startState.selection,c,u,s.newGroupDelay)),(a=="full"||a=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new HistoryState(n.done.map(HistEvent.fromJSON),n.undone.map(HistEvent.fromJSON))}});function history(n={}){return[historyField_,historyConfig.of(n),EditorView.domEventHandlers({beforeinput(e,s){let o=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return o?(e.preventDefault(),o(s)):!1}})]}function cmd(n,e){return function({state:s,dispatch:o}){if(!e&&s.readOnly)return!1;let a=s.field(historyField_,!1);if(!a)return!1;let l=a.pop(n,s,e);return l?(o(l),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,o,a,l){this.changes=e,this.effects=s,this.mapped=o,this.startSelection=a,this.selectionsAfter=l}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,o;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(o=this.startSelection)===null||o===void 0?void 0:o.toJSON(),selectionsAfter:this.selectionsAfter.map(a=>a.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let o=none$2;for(let a of e.startState.facet(invertedEffects)){let l=a(e);l.length&&(o=o.concat(l))}return!o.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),o,void 0,s||e.startState.selection,none$2)}static selection(e){return new HistEvent(void 0,none$2,void 0,void 0,e)}}function updateBranch(n,e,s,o){let a=e+1>s+20?e-s-1:0,l=n.slice(a,e);return l.push(o),l}function isAdjacent(n,e){let s=[],o=!1;return n.iterChangedRanges((a,l)=>s.push(a,l)),e.iterChangedRanges((a,l,c,u)=>{for(let f=0;f=d&&c<=g&&(o=!0)}}),o}function eqSelectionShape(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((s,o)=>s.empty!=e.ranges[o].empty).length===0}function conc(n,e){return n.length?e.length?n.concat(e):n:e}const none$2=[],MaxSelectionsPerEvent=200;function addSelection(n,e){if(n.length){let s=n[n.length-1],o=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return o.length&&o[o.length-1].eq(e)?n:(o.push(e),updateBranch(n,n.length-1,1e9,s.setSelAfter(o)))}else return[HistEvent.selection([e])]}function popSelection(n){let e=n[n.length-1],s=n.slice();return s[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(n,e){if(!n.length)return n;let s=n.length,o=none$2;for(;s;){let a=mapEvent(n[s-1],e,o);if(a.changes&&!a.changes.empty||a.effects.length){let l=n.slice(0,s);return l[s-1]=a,l}else e=a.mapped,s--,o=a.selectionsAfter}return o.length?[HistEvent.selection(o)]:none$2}function mapEvent(n,e,s){let o=conc(n.selectionsAfter.length?n.selectionsAfter.map(u=>u.map(e)):none$2,s);if(!n.changes)return HistEvent.selection(o);let a=n.changes.map(e),l=e.mapDesc(n.changes,!0),c=n.mapped?n.mapped.composeDesc(l):l;return new HistEvent(a,StateEffect.mapEffects(n.effects,e),c,n.startSelection.map(l),o)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,o=0,a=void 0){this.done=e,this.undone=s,this.prevTime=o,this.prevUserEvent=a}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,o,a,l){let c=this.done,u=c[c.length-1];return u&&u.changes&&!u.changes.empty&&e.changes&&(!o||joinableUserEvent.test(o))&&(!u.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTimes.empty?n.moveByChar(s,e):rangeEnd(s,e))}function ltrAtCursor(n){return n.textDirectionAt(n.state.selection.main.head)==Direction.LTR}const cursorCharLeft=n=>cursorByChar(n,!ltrAtCursor(n)),cursorCharRight=n=>cursorByChar(n,ltrAtCursor(n)),cursorCharBackward=n=>cursorByChar(n,!1);function cursorByGroup(n,e){return moveSel(n,s=>s.empty?n.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=n=>cursorByGroup(n,!ltrAtCursor(n)),cursorGroupRight=n=>cursorByGroup(n,ltrAtCursor(n));function interestingNode(n,e,s){if(e.type.prop(s))return!0;let o=e.to-e.from;return o&&(o>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(n,e,s){let o=syntaxTree(n).resolveInner(e.head),a=s?NodeProp.closedBy:NodeProp.openedBy;for(let f=e.head;;){let d=s?o.childAfter(f):o.childBefore(f);if(!d)break;interestingNode(n,d,a)?o=d:f=s?d.to:d.from}let l=o.type.prop(a),c,u;return l&&(c=s?matchBrackets(n,o.from,1):matchBrackets(n,o.to,-1))&&c.matched?u=s?c.end.to:c.end.from:u=s?o.to:o.from,EditorSelection.cursor(u,s?-1:1)}const cursorSyntaxLeft=n=>moveSel(n,e=>moveBySyntax(n.state,e,!ltrAtCursor(n))),cursorSyntaxRight=n=>moveSel(n,e=>moveBySyntax(n.state,e,ltrAtCursor(n)));function cursorByLine(n,e){return moveSel(n,s=>{if(!s.empty)return rangeEnd(s,e);let o=n.moveVertically(s,e);return o.head!=s.head?o:n.moveToLineBoundary(s,e)})}const cursorLineUp=n=>cursorByLine(n,!1),cursorLineDown=n=>cursorByLine(n,!0);function pageInfo(n){let e=n.scrollDOM.clientHeightc.empty?n.moveVertically(c,e,s.height):rangeEnd(c,e));if(a.eq(o.selection))return!1;let l;if(s.selfScroll){let c=n.coordsAtPos(o.selection.main.head),u=n.scrollDOM.getBoundingClientRect(),f=u.top+s.marginTop,d=u.bottom-s.marginBottom;c&&c.top>f&&c.bottomcursorByPage(n,!1),cursorPageDown=n=>cursorByPage(n,!0);function moveByLineBoundary(n,e,s){let o=n.lineBlockAt(e.head),a=n.moveToLineBoundary(e,s);if(a.head==e.head&&a.head!=(s?o.to:o.from)&&(a=n.moveToLineBoundary(e,s,!1)),!s&&a.head==o.from&&o.length){let l=/^\s*/.exec(n.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;l&&e.head!=o.from+l&&(a=EditorSelection.cursor(o.from+l))}return a}const cursorLineBoundaryForward=n=>moveSel(n,e=>moveByLineBoundary(n,e,!0)),cursorLineBoundaryBackward=n=>moveSel(n,e=>moveByLineBoundary(n,e,!1)),cursorLineBoundaryLeft=n=>moveSel(n,e=>moveByLineBoundary(n,e,!ltrAtCursor(n))),cursorLineBoundaryRight=n=>moveSel(n,e=>moveByLineBoundary(n,e,ltrAtCursor(n))),cursorLineStart=n=>moveSel(n,e=>EditorSelection.cursor(n.lineBlockAt(e.head).from,1)),cursorLineEnd=n=>moveSel(n,e=>EditorSelection.cursor(n.lineBlockAt(e.head).to,-1));function toMatchingBracket(n,e,s){let o=!1,a=updateSel(n.selection,l=>{let c=matchBrackets(n,l.head,-1)||matchBrackets(n,l.head,1)||l.head>0&&matchBrackets(n,l.head-1,1)||l.headtoMatchingBracket(n,e,!1);function extendSel(n,e){let s=updateSel(n.state.selection,o=>{let a=e(o);return EditorSelection.range(o.anchor,a.head,a.goalColumn,a.bidiLevel||void 0)});return s.eq(n.state.selection)?!1:(n.dispatch(setSel(n.state,s)),!0)}function selectByChar(n,e){return extendSel(n,s=>n.moveByChar(s,e))}const selectCharLeft=n=>selectByChar(n,!ltrAtCursor(n)),selectCharRight=n=>selectByChar(n,ltrAtCursor(n));function selectByGroup(n,e){return extendSel(n,s=>n.moveByGroup(s,e))}const selectGroupLeft=n=>selectByGroup(n,!ltrAtCursor(n)),selectGroupRight=n=>selectByGroup(n,ltrAtCursor(n)),selectSyntaxLeft=n=>extendSel(n,e=>moveBySyntax(n.state,e,!ltrAtCursor(n))),selectSyntaxRight=n=>extendSel(n,e=>moveBySyntax(n.state,e,ltrAtCursor(n)));function selectByLine(n,e){return extendSel(n,s=>n.moveVertically(s,e))}const selectLineUp=n=>selectByLine(n,!1),selectLineDown=n=>selectByLine(n,!0);function selectByPage(n,e){return extendSel(n,s=>n.moveVertically(s,e,pageInfo(n).height))}const selectPageUp=n=>selectByPage(n,!1),selectPageDown=n=>selectByPage(n,!0),selectLineBoundaryForward=n=>extendSel(n,e=>moveByLineBoundary(n,e,!0)),selectLineBoundaryBackward=n=>extendSel(n,e=>moveByLineBoundary(n,e,!1)),selectLineBoundaryLeft=n=>extendSel(n,e=>moveByLineBoundary(n,e,!ltrAtCursor(n))),selectLineBoundaryRight=n=>extendSel(n,e=>moveByLineBoundary(n,e,ltrAtCursor(n))),selectLineStart=n=>extendSel(n,e=>EditorSelection.cursor(n.lineBlockAt(e.head).from)),selectLineEnd=n=>extendSel(n,e=>EditorSelection.cursor(n.lineBlockAt(e.head).to)),cursorDocStart=({state:n,dispatch:e})=>(e(setSel(n,{anchor:0})),!0),cursorDocEnd=({state:n,dispatch:e})=>(e(setSel(n,{anchor:n.doc.length})),!0),selectDocStart=({state:n,dispatch:e})=>(e(setSel(n,{anchor:n.selection.main.anchor,head:0})),!0),selectDocEnd=({state:n,dispatch:e})=>(e(setSel(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),selectAll=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),selectLine=({state:n,dispatch:e})=>{let s=selectedLineBlocks(n).map(({from:o,to:a})=>EditorSelection.range(o,Math.min(a+1,n.doc.length)));return e(n.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:n,dispatch:e})=>{let s=updateSel(n.selection,o=>{var a;let l=syntaxTree(n).resolveInner(o.head,1);for(;!(l.from=o.to||l.to>o.to&&l.from<=o.from||!(!((a=l.parent)===null||a===void 0)&&a.parent));)l=l.parent;return EditorSelection.range(l.to,l.from)});return e(setSel(n,s)),!0},simplifySelection=({state:n,dispatch:e})=>{let s=n.selection,o=null;return s.ranges.length>1?o=EditorSelection.create([s.main]):s.main.empty||(o=EditorSelection.create([EditorSelection.cursor(s.main.head)])),o?(e(setSel(n,o)),!0):!1};function deleteBy(n,e){if(n.state.readOnly)return!1;let s="delete.selection",{state:o}=n,a=o.changeByRange(l=>{let{from:c,to:u}=l;if(c==u){let f=e(c);fc&&(s="delete.forward",f=skipAtomic(n,f,!0)),c=Math.min(c,f),u=Math.max(u,f)}else c=skipAtomic(n,c,!1),u=skipAtomic(n,u,!0);return c==u?{range:l}:{changes:{from:c,to:u},range:EditorSelection.cursor(c)}});return a.changes.empty?!1:(n.dispatch(o.update(a,{scrollIntoView:!0,userEvent:s,effects:s=="delete.selection"?EditorView.announce.of(o.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(n,e,s){if(n instanceof EditorView)for(let o of n.state.facet(EditorView.atomicRanges).map(a=>a(n)))o.between(e,e,(a,l)=>{ae&&(e=s?l:a)});return e}const deleteByChar=(n,e)=>deleteBy(n,s=>{let{state:o}=n,a=o.doc.lineAt(s),l,c;if(!e&&s>a.from&&sdeleteByChar(n,!1),deleteCharForward=n=>deleteByChar(n,!0),deleteByGroup=(n,e)=>deleteBy(n,s=>{let o=s,{state:a}=n,l=a.doc.lineAt(o),c=a.charCategorizer(o);for(let u=null;;){if(o==(e?l.to:l.from)){o==s&&l.number!=(e?a.doc.lines:1)&&(o+=e?1:-1);break}let f=findClusterBreak(l.text,o-l.from,e)+l.from,d=l.text.slice(Math.min(o,f)-l.from,Math.max(o,f)-l.from),g=c(d);if(u!=null&&g!=u)break;(d!=" "||o!=s)&&(u=g),o=f}return o}),deleteGroupBackward=n=>deleteByGroup(n,!1),deleteGroupForward=n=>deleteByGroup(n,!0),deleteToLineEnd=n=>deleteBy(n,e=>{let s=n.lineBlockAt(e).to;return edeleteBy(n,e=>{let s=n.lineBlockAt(e).from;return e>s?s:Math.max(0,e-1)}),splitLine=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let s=n.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:Text.of(["",""])},range:EditorSelection.cursor(o.from)}));return e(n.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let s=n.changeByRange(o=>{if(!o.empty||o.from==0||o.from==n.doc.length)return{range:o};let a=o.from,l=n.doc.lineAt(a),c=a==l.from?a-1:findClusterBreak(l.text,a-l.from,!1)+l.from,u=a==l.to?a+1:findClusterBreak(l.text,a-l.from,!0)+l.from;return{changes:{from:c,to:u,insert:n.doc.slice(a,u).append(n.doc.slice(c,a))},range:EditorSelection.cursor(u)}});return s.changes.empty?!1:(e(n.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(n){let e=[],s=-1;for(let o of n.selection.ranges){let a=n.doc.lineAt(o.from),l=n.doc.lineAt(o.to);if(!o.empty&&o.to==l.from&&(l=n.doc.lineAt(o.to-1)),s>=a.number){let c=e[e.length-1];c.to=l.to,c.ranges.push(o)}else e.push({from:a.from,to:l.to,ranges:[o]});s=l.number+1}return e}function moveLine(n,e,s){if(n.readOnly)return!1;let o=[],a=[];for(let l of selectedLineBlocks(n)){if(s?l.to==n.doc.length:l.from==0)continue;let c=n.doc.lineAt(s?l.to+1:l.from-1),u=c.length+1;if(s){o.push({from:l.to,to:c.to},{from:l.from,insert:c.text+n.lineBreak});for(let f of l.ranges)a.push(EditorSelection.range(Math.min(n.doc.length,f.anchor+u),Math.min(n.doc.length,f.head+u)))}else{o.push({from:c.from,to:l.from},{from:l.to,insert:n.lineBreak+c.text});for(let f of l.ranges)a.push(EditorSelection.range(f.anchor-u,f.head-u))}}return o.length?(e(n.update({changes:o,scrollIntoView:!0,selection:EditorSelection.create(a,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:n,dispatch:e})=>moveLine(n,e,!1),moveLineDown=({state:n,dispatch:e})=>moveLine(n,e,!0);function copyLine(n,e,s){if(n.readOnly)return!1;let o=[];for(let a of selectedLineBlocks(n))s?o.push({from:a.from,insert:n.doc.slice(a.from,a.to)+n.lineBreak}):o.push({from:a.to,insert:n.lineBreak+n.doc.slice(a.from,a.to)});return e(n.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:n,dispatch:e})=>copyLine(n,e,!1),copyLineDown=({state:n,dispatch:e})=>copyLine(n,e,!0),deleteLine=n=>{if(n.state.readOnly)return!1;let{state:e}=n,s=e.changes(selectedLineBlocks(e).map(({from:a,to:l})=>(a>0?a--:ln.moveVertically(a,!0)).map(s);return n.dispatch({changes:s,selection:o,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(n).resolveInner(e),o=s.childBefore(e),a=s.childAfter(e),l;return o&&a&&o.to<=e&&a.from>=e&&(l=o.type.prop(NodeProp.closedBy))&&l.indexOf(a.name)>-1&&n.doc.lineAt(o.to).from==n.doc.lineAt(a.from).from?{from:o.to,to:a.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(n){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let o=e.changeByRange(a=>{let{from:l,to:c}=a,u=e.doc.lineAt(l),f=!n&&l==c&&isBetweenBrackets(e,l);n&&(l=c=(c<=u.to?u:e.doc.lineAt(c)).to);let d=new IndentContext(e,{simulateBreak:l,simulateDoubleBreak:!!f}),g=getIndentation(d,l);for(g==null&&(g=/^\s*/.exec(e.doc.lineAt(l).text)[0].length);cu.from&&l{let a=[];for(let c=o.from;c<=o.to;){let u=n.doc.lineAt(c);u.number>s&&(o.empty||o.to>u.from)&&(e(u,a,o),s=u.number),c=u.to+1}let l=n.changes(a);return{changes:a,range:EditorSelection.range(l.mapPos(o.anchor,1),l.mapPos(o.head,1))}})}const indentSelection=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let s=Object.create(null),o=new IndentContext(n,{overrideIndentation:l=>{let c=s[l];return c??-1}}),a=changeBySelectedLine(n,(l,c,u)=>{let f=getIndentation(o,l.from);if(f==null)return;/\S/.test(l.text)||(f=0);let d=/^\s*/.exec(l.text)[0],g=indentString(n,f);(d!=g||u.fromn.readOnly?!1:(e(n.update(changeBySelectedLine(n,(s,o)=>{o.push({from:s.from,insert:n.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(changeBySelectedLine(n,(s,o)=>{let a=/^\s*/.exec(s.text)[0];if(!a)return;let l=countColumn(a,n.tabSize),c=0,u=indentString(n,Math.max(0,l-getIndentUnit(n)));for(;c({mac:n.key,run:n.run,shift:n.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}].concat(standardKeymap);function crelt(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var o in s)if(Object.prototype.hasOwnProperty.call(s,o)){var a=s[o];typeof a=="string"?n.setAttribute(o,a):a!=null&&(n[o]=a)}e++}for(;en.normalize("NFKD"):n=>n;class SearchCursor{constructor(e,s,o=0,a=e.length,l,c){this.test=c,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(o,a),this.bufferStart=o,this.normalize=l?u=>l(basicNormalize(u)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),o=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let a=this.normalize(s);for(let l=0,c=o;;l++){let u=a.charCodeAt(l),f=this.match(u,c);if(f)return this.value=f,this;if(l==a.length-1)break;c==o&&lthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let o=this.curLineStart+s.index,a=o+s[0].length;if(this.matchPos=toCharEnd(this.text,a+(o==a?1:0)),o==this.curLineStart+this.curLine.length&&this.nextLine(),(othis.value.to)&&(!this.test||this.test(o,a,s)))return this.value={from:o,to:a,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=o||a.to<=s){let u=new FlattenedDoc(s,e.sliceString(s,o));return flattened.set(e,u),u}if(a.from==s&&a.to==o)return a;let{text:l,from:c}=a;return c>s&&(l=e.sliceString(s,c)+l,c=s),a.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s){let o=this.flat.from+s.index,a=o+s[0].length;if((this.flat.to>=this.to||s.index+s[0].length<=this.flat.text.length-10)&&(!this.test||this.test(o,a,s)))return this.value={from:o,to:a,match:s},this.matchPos=toCharEnd(this.text,a+(o==a?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(n){try{return new RegExp(n,baseFlags),!0}catch{return!1}}function toCharEnd(n,e){if(e>=n.length)return e;let s=n.lineAt(e),o;for(;e=56320&&o<57344;)e++;return e}const defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},highlightConfig=Facet.define({combine(n){return combineConfig(n,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(n){let e=[defaultTheme,matchHighlighter];return n&&e.push(highlightConfig.of(n)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(n,e,s,o){return(s==0||n(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(o==e.doc.length||n(e.sliceDoc(o,o+1))!=CharCategory.Word)}function insideWord(n,e,s,o){return n(e.sliceDoc(s,s+1))==CharCategory.Word&&n(e.sliceDoc(o-1,o))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(highlightConfig),{state:s}=n,o=s.selection;if(o.ranges.length>1)return Decoration.none;let a=o.main,l,c=null;if(a.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let f=s.wordAt(a.head);if(!f)return Decoration.none;c=s.charCategorizer(a.head),l=s.sliceDoc(f.from,f.to)}else{let f=a.to-a.from;if(f200)return Decoration.none;if(e.wholeWords){if(l=s.sliceDoc(a.from,a.to),c=s.charCategorizer(a.head),!(insideWordBoundaries(c,s,a.from,a.to)&&insideWord(c,s,a.from,a.to)))return Decoration.none}else if(l=s.sliceDoc(a.from,a.to).trim(),!l)return Decoration.none}let u=[];for(let f of n.visibleRanges){let d=new SearchCursor(s.doc,l,f.from,f.to);for(;!d.next().done;){let{from:g,to:b}=d.value;if((!c||insideWordBoundaries(c,s,g,b))&&(a.empty&&g<=a.from&&b>=a.to?u.push(mainMatchDeco.range(g,b)):(g>=a.to||b<=a.from)&&u.push(matchDeco.range(g,b)),u.length>e.maxMatches))return Decoration.none}}return Decoration.set(u)}},{decorations:n=>n.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(s,o)=>o=="n"?` +`:o=="r"?"\r":o=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,o){let a=e.doc?e:EditorState.create({doc:e});return o==null&&(o=a.doc.length),this.regexp?regexpCursor(this,a,s,o):stringCursor(this,a,s,o)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(n,e,s,o){return new SearchCursor(e.doc,n.unquoted,s,o,n.caseSensitive?void 0:a=>a.toLowerCase(),n.wholeWord?stringWordTest(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function stringWordTest(n,e){return(s,o,a,l)=>((l>s||l+a.length=s)return null;a.push(o.value)}return a}highlight(e,s,o,a){let l=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(o+this.spec.unquoted.length,e.doc.length));for(;!l.next().done;)a(l.value.from,l.value.to)}}function regexpCursor(n,e,s,o){return new RegExpCursor(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:n.wholeWord?regexpWordTest(e.charCategorizer(e.selection.main.head)):void 0},s,o)}function charBefore(n,e){return n.slice(findClusterBreak(n,e,!1),e)}function charAfter(n,e){return n.slice(e,findClusterBreak(n,e))}function regexpWordTest(n){return(e,s,o)=>!o[0].length||(n(charBefore(o.input,o.index))!=CharCategory.Word||n(charAfter(o.input,o.index))!=CharCategory.Word)&&(n(charAfter(o.input,o.index+o[0].length))!=CharCategory.Word||n(charBefore(o.input,o.index+o[0].length))!=CharCategory.Word)}class RegExpQuery extends QueryType{nextMatch(e,s,o){let a=regexpCursor(this.spec,e,o,e.doc.length).next();return a.done&&(a=regexpCursor(this.spec,e,0,s).next()),a.done?null:a.value}prevMatchInRange(e,s,o){for(let a=1;;a++){let l=Math.max(s,o-a*1e4),c=regexpCursor(this.spec,e,l,o),u=null;for(;!c.next().done;)u=c.value;if(u&&(l==s||u.from>l+10))return u;if(l==s)return null}}prevMatch(e,s,o){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,o,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(s,o)=>o=="$"?"$":o=="&"?e.match[0]:o!="0"&&+o=s)return null;a.push(o.value)}return a}highlight(e,s,o,a){let l=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(o+250,e.doc.length));for(;!l.next().done;)a(l.value.from,l.value.to)}}const setSearchQuery=StateEffect.define();class CompletionContext{constructor(e,s,o){this.state=e,this.pos=s,this.explicit=o,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),o=Math.max(s.from,this.pos-250),a=s.text.slice(o-s.from,this.pos-s.from),l=a.search(ensureAnchor(e,!1));return l<0?null:{from:o+l,to:this.pos,text:a.slice(l)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(n){let e=Object.keys(n).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(n){let e=Object.create(null),s=Object.create(null);for(let{label:a}of n){e[a[0]]=!0;for(let l=1;ltypeof a=="string"?{label:a}:a),[s,o]=e.every(a=>/^\w+$/.test(a.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return a=>{let l=a.matchBefore(o);return l||a.explicit?{from:l?l.from:a.pos,options:e,validFor:s}:null}}function ifNotIn(n,e){return s=>{for(let o=syntaxTree(s.state).resolveInner(s.pos,-1);o;o=o.parent){if(n.indexOf(o.name)>-1)return null;if(o.type.isTop)break}return e(s)}}class Option{constructor(e,s,o,a){this.completion=e,this.source=s,this.match=o,this.score=a}}function cur(n){return n.selection.main.from}function ensureAnchor(n,e){var s;let{source:o}=n,a=e&&o[0]!="^",l=o[o.length-1]!="$";return!a&&!l?n:new RegExp(`${a?"^":""}(?:${o})${l?"$":""}`,(s=n.flags)!==null&&s!==void 0?s:n.ignoreCase?"i":"")}const pickedCompletion=Annotation.define();function insertCompletionText(n,e,s,o){let{main:a}=n.selection,l=s-a.from,c=o-a.from;return Object.assign(Object.assign({},n.changeByRange(u=>u!=a&&s!=o&&n.sliceDoc(u.from+l,u.from+c)!=n.sliceDoc(s,o)?{range:u}:{changes:{from:u.from+l,to:o==a.from?u.to:u.from+c,insert:e},range:EditorSelection.cursor(u.from+l+e.length)})),{userEvent:"input.complete"})}const SourceCache=new WeakMap;function asSource(n){if(!Array.isArray(n))return n;let e=SourceCache.get(n);return e||SourceCache.set(n,e=completeFromList(n)),e}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define();class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let s=0;s=48&&ue<=57||ue>=97&&ue<=122?2:ue>=65&&ue<=90?1:0:(fe=fromCodePoint(ue))!=fe.toLowerCase()?1:fe!=fe.toUpperCase()?2:0;(!z||xe==1&&X||j==0&&xe!=0)&&(s[b]==ue||o[b]==ue&&(E=!0)?c[b++]=z:c.length&&(q=!1)),j=xe,z+=codePointSize(ue)}return b==f&&c[0]==0&&q?this.result(-100+(E?-200:0),c,e):B==f&&V==0?this.ret(-200-e.length+(D==e.length?0:-100),[0,D]):u>-1?this.ret(-700-e.length,[u,u+this.pattern.length]):B==f?this.ret(-200+-700-e.length,[V,D]):b==f?this.result(-100+(E?-200:0)+-700+(q?0:-1100),c,e):s.length==2?!1:this.result((a[0]?-700:0)+-200+-1100,a,e)}result(e,s,o){let a=[],l=0;for(let c of s){let u=c+(this.astral?codePointSize(codePointAt(o,c)):1);l&&a[l-1]==c?a[l-1]=u:(a[l++]=c,a[l++]=u)}return this.ret(e-o.length,a)}}const completionConfig=Facet.define({combine(n){return combineConfig(n,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:defaultPositionInfo,compareCompletions:(e,s)=>e.label.localeCompare(s.label),interactionDelay:75},{defaultKeymap:(e,s)=>e&&s,closeOnBlur:(e,s)=>e&&s,icons:(e,s)=>e&&s,tooltipClass:(e,s)=>o=>joinClass(e(o),s(o)),optionClass:(e,s)=>o=>joinClass(e(o),s(o)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(n,e){return n?e?n+" "+e:n:e}function defaultPositionInfo(n,e,s,o,a){let l=n.textDirection==Direction.RTL,c=l,u=!1,f="top",d,g,b=e.left-a.left,E=a.right-e.right,B=o.right-o.left,V=o.bottom-o.top;if(c&&b=V||D>e.top?d=s.bottom-e.top:(f="bottom",d=e.bottom-s.top)}return{style:`${f}: ${d}px; max-width: ${g}px`,class:"cm-completionInfo-"+(u?l?"left-narrow":"right-narrow":c?"left":"right")}}function optionContent(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(s){let o=document.createElement("div");return o.classList.add("cm-completionIcon"),s.type&&o.classList.add(...s.type.split(/\s+/g).map(a=>"cm-completionIcon-"+a)),o.setAttribute("aria-hidden","true"),o},position:20}),e.push({render(s,o,a){let l=document.createElement("span");l.className="cm-completionLabel";let c=s.displayLabel||s.label,u=0;for(let f=0;fu&&l.appendChild(document.createTextNode(c.slice(u,d)));let b=l.appendChild(document.createElement("span"));b.appendChild(document.createTextNode(c.slice(d,g))),b.className="cm-completionMatchedText",u=g}return us.position-o.position).map(s=>s.render)}function rangeAroundSelected(n,e,s){if(n<=s)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let a=Math.floor(e/s);return{from:a*s,to:(a+1)*s}}let o=Math.floor((n-e)/s);return{from:n-(o+1)*s,to:n-o*s}}class CompletionTooltip{constructor(e,s,o){this.view=e,this.stateField=s,this.applyCompletion=o,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:f=>this.placeInfo(f),key:this},this.space=null,this.currentClass="";let a=e.state.field(s),{options:l,selected:c}=a.open,u=e.state.facet(completionConfig);this.optionContent=optionContent(u),this.optionClass=u.optionClass,this.tooltipClass=u.tooltipClass,this.range=rangeAroundSelected(l.length,c,u.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",f=>{for(let d=f.target,g;d&&d!=this.dom;d=d.parentNode)if(d.nodeName=="LI"&&(g=/-(\d+)$/.exec(d.id))&&+g[1]{let d=e.state.field(this.stateField,!1);d&&d.tooltip&&e.state.facet(completionConfig).closeOnBlur&&f.relatedTarget!=e.contentDOM&&e.dispatch({effects:closeCompletionEffect.of(null)})}),this.list=this.dom.appendChild(this.createListBox(l,a.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}mount(){this.updateSel()}update(e){var s,o,a;let l=e.state.field(this.stateField),c=e.startState.field(this.stateField);this.updateTooltipClass(e.state),l!=c&&(this.updateSel(),((s=l.open)===null||s===void 0?void 0:s.disabled)!=((o=c.open)===null||o===void 0?void 0:o.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((a=l.open)===null||a===void 0)&&a.disabled)))}updateTooltipClass(e){let s=this.tooltipClass(e);if(s!=this.currentClass){for(let o of this.currentClass.split(" "))o&&this.dom.classList.remove(o);for(let o of s.split(" "))o&&this.dom.classList.add(o);this.currentClass=s}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected>-1&&s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})),this.updateSelectedOption(s.selected)){this.destroyInfo();let{completion:o}=s.options[s.selected],{info:a}=o;if(!a)return;let l=typeof a=="string"?document.createTextNode(a):a(o);if(!l)return;"then"in l?l.then(c=>{c&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(c,o)}).catch(c=>logException(this.view.state,c,"completion info")):this.addInfoPane(l,o)}}addInfoPane(e,s){this.destroyInfo();let o=this.info=document.createElement("div");if(o.className="cm-tooltip cm-completionInfo",e.nodeType!=null)o.appendChild(e),this.infoDestroy=null;else{let{dom:a,destroy:l}=e;o.appendChild(a),this.infoDestroy=l||null}this.dom.appendChild(o),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let s=null;for(let o=this.list.firstChild,a=this.range.from;o;o=o.nextSibling,a++)o.nodeName!="LI"||!o.id?a--:a==e?o.hasAttribute("aria-selected")||(o.setAttribute("aria-selected","true"),s=o):o.hasAttribute("aria-selected")&&o.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),o=this.info.getBoundingClientRect(),a=e.getBoundingClientRect(),l=this.space;if(!l){let c=this.dom.ownerDocument.defaultView||window;l={left:0,top:0,right:c.innerWidth,bottom:c.innerHeight}}return a.top>Math.min(l.bottom,s.bottom)-10||a.bottomo.from||o.from==0))if(l=E,typeof d!="string"&&d.header)a.appendChild(d.header(d));else{let B=a.appendChild(document.createElement("completion-section"));B.textContent=E}}const g=a.appendChild(document.createElement("li"));g.id=s+"-"+c,g.setAttribute("role","option");let b=this.optionClass(u);b&&(g.className=b);for(let E of this.optionContent){let B=E(u,this.view.state,f);B&&g.appendChild(B)}}return o.from&&a.classList.add("cm-completionListIncompleteTop"),o.tonew CompletionTooltip(s,n,e)}function scrollIntoView(n,e){let s=n.getBoundingClientRect(),o=e.getBoundingClientRect();o.tops.bottom&&(n.scrollTop+=o.bottom-s.bottom)}function score(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function sortOptions(n,e){let s=[],o=null,a=f=>{s.push(f);let{section:d}=f.completion;if(d){o||(o=[]);let g=typeof d=="string"?d:d.name;o.some(b=>b.name==g)||o.push(typeof d=="string"?{name:g}:d)}};for(let f of n)if(f.hasResult()){let d=f.result.getMatch;if(f.result.filter===!1)for(let g of f.result.options)a(new Option(g,f.source,d?d(g):[],1e9-s.length));else{let g=new FuzzyMatcher(e.sliceDoc(f.from,f.to));for(let b of f.result.options)if(g.match(b.label)){let E=b.displayLabel?d?d(b,g.matched):[]:g.matched;a(new Option(b,f.source,E,g.score+(b.boost||0)))}}}if(o){let f=Object.create(null),d=0,g=(b,E)=>{var B,V;return((B=b.rank)!==null&&B!==void 0?B:1e9)-((V=E.rank)!==null&&V!==void 0?V:1e9)||(b.nameg.score-d.score||u(d.completion,g.completion))){let d=f.completion;!c||c.label!=d.label||c.detail!=d.detail||c.type!=null&&d.type!=null&&c.type!=d.type||c.apply!=d.apply||c.boost!=d.boost?l.push(f):score(f.completion)>score(c)&&(l[l.length-1]=f),c=f.completion}return l}class CompletionDialog{constructor(e,s,o,a,l,c){this.options=e,this.attrs=s,this.tooltip=o,this.timestamp=a,this.selected=l,this.disabled=c}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,s,o,a,l){let c=sortOptions(e,s);if(!c.length)return a&&e.some(f=>f.state==1)?new CompletionDialog(a.options,a.attrs,a.tooltip,a.timestamp,a.selected,!0):null;let u=s.facet(completionConfig).selectOnOpen?0:-1;if(a&&a.selected!=u&&a.selected!=-1){let f=a.options[a.selected].completion;for(let d=0;dd.hasResult()?Math.min(f,d.from):f,1e8),create:completionTooltip(completionState,applyCompletion),above:l.aboveCursor},a?a.timestamp:Date.now(),u,!1)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class CompletionState{constructor(e,s,o){this.active=e,this.id=s,this.open=o}static start(){return new CompletionState(none$1,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,o=s.facet(completionConfig),l=(o.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(u=>(this.active.find(d=>d.source==u)||new ActiveSource(u,this.active.some(d=>d.state!=0)?1:0)).update(e,o));l.length==this.active.length&&l.every((u,f)=>u==this.active[f])&&(l=this.active);let c=this.open;c&&e.docChanged&&(c=c.map(e.changes)),e.selection||l.some(u=>u.hasResult()&&e.changes.touchesRange(u.from,u.to))||!sameResults(l,this.active)?c=CompletionDialog.build(l,s,this.id,c,o):c&&c.disabled&&!l.some(u=>u.state==1)&&(c=null),!c&&l.every(u=>u.state!=1)&&l.some(u=>u.hasResult())&&(l=l.map(u=>u.hasResult()?new ActiveSource(u.source,0):u));for(let u of e.effects)u.is(setSelectedEffect)&&(c=c&&c.setSelected(u.value,this.id));return l==this.active&&c==this.open?this:new CompletionState(l,this.id,c)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(n,e){if(n==e)return!0;for(let s=0,o=0;;){for(;s-1&&(s["aria-activedescendant"]=n+"-"+e),s}const none$1=[];function getUserEvent(n){return n.isUserEvent("input.type")?"input":n.isUserEvent("delete.backward")?"delete":null}class ActiveSource{constructor(e,s,o=-1){this.source=e,this.state=s,this.explicitPos=o}hasResult(){return!1}update(e,s){let o=getUserEvent(e),a=this;o?a=a.handleUserEvent(e,o,s):e.docChanged?a=a.handleChange(e):e.selection&&a.state!=0&&(a=new ActiveSource(a.source,0));for(let l of e.effects)if(l.is(startCompletionEffect))a=new ActiveSource(a.source,1,l.value?cur(e.state):-1);else if(l.is(closeCompletionEffect))a=new ActiveSource(a.source,0);else if(l.is(setActiveEffect))for(let c of l.value)c.source==a.source&&(a=c);return a}handleUserEvent(e,s,o){return s=="delete"||!o.activateOnTyping?this.map(e.changes):new ActiveSource(this.source,1)}handleChange(e){return e.changes.touchesRange(cur(e.startState))?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ActiveSource(this.source,this.state,e.mapPos(this.explicitPos))}}class ActiveResult extends ActiveSource{constructor(e,s,o,a,l){super(e,2,s),this.result=o,this.from=a,this.to=l}hasResult(){return!0}handleUserEvent(e,s,o){var a;let l=e.changes.mapPos(this.from),c=e.changes.mapPos(this.to,1),u=cur(e.state);if((this.explicitPos<0?u<=l:uc||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&o.activateOnTyping?1:0);let f=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),d;return checkValid(this.result.validFor,e.state,l,c)?new ActiveResult(this.source,f,this.result,l,c):this.result.update&&(d=this.result.update(this.result,l,c,new CompletionContext(e.state,u,f>=0)))?new ActiveResult(this.source,f,d,d.from,(a=d.to)!==null&&a!==void 0?a:cur(e.state)):new ActiveSource(this.source,1,f)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function checkValid(n,e,s,o){if(!n)return!1;let a=e.sliceDoc(s,o);return typeof n=="function"?n(a,s,o,e):ensureAnchor(n,!0).test(a)}const setActiveEffect=StateEffect.define({map(n,e){return n.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(n,e){return n.update(e)},provide:n=>[showTooltip.from(n,e=>e.tooltip),EditorView.contentAttributes.from(n,e=>e.attrs)]});function applyCompletion(n,e){const s=e.completion.apply||e.completion.label;let o=n.state.field(completionState).active.find(a=>a.source==e.source);return o instanceof ActiveResult?(typeof s=="string"?n.dispatch(Object.assign(Object.assign({},insertCompletionText(n.state,s,o.from,o.to)),{annotations:pickedCompletion.of(e.completion)})):s(n,e.completion,o.from,o.to),!0):!1}function moveCompletionSelection(n,e="option"){return s=>{let o=s.state.field(completionState,!1);if(!o||!o.open||o.open.disabled||Date.now()-o.open.timestamp-1?o.open.selected+a*(n?1:-1):n?0:c-1;return u<0?u=e=="page"?0:c-1:u>=c&&(u=e=="page"?c-1:0),s.dispatch({effects:setSelectedEffect.of(u)}),!0}}const acceptCompletion=n=>{let e=n.state.field(completionState,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(completionState,!1)?(n.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=n=>{let e=n.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(n.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of n.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(n){let e=n.state.field(completionState);if(!n.selectionSet&&!n.docChanged&&n.startState.field(completionState)==e)return;let s=n.transactions.some(o=>(o.selection||o.docChanged)&&!getUserEvent(o));for(let o=0;oMaxUpdateCount&&Date.now()-a.time>MinAbortTime){for(let l of a.context.abortListeners)try{l()}catch(c){logException(this.view.state,c)}a.context.abortListeners=null,this.running.splice(o--,1)}else a.updates.push(...n.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(o=>o.state==1&&!this.running.some(a=>a.active.source==o.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let o of n.transactions)getUserEvent(o)=="input"?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:n}=this.view,e=n.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(o=>o.active.source==s.source)&&this.startQuery(s)}startQuery(n){let{state:e}=this.view,s=cur(e),o=new CompletionContext(e,s,n.explicitPos==s),a=new RunningQuery(n,o);this.running.push(a),Promise.resolve(n.source(o)).then(l=>{a.context.aborted||(a.done=l||null,this.scheduleAccept())},l=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,l)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let o=0;oc.source==a.active.source);if(l&&l.state==1)if(a.done==null){let c=new ActiveSource(a.active.source,0);for(let u of a.updates)c=c.update(u,s);c.state!=1&&e.push(c)}else this.startQuery(l)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(completionState,!1);if(e&&e.tooltip&&this.view.state.facet(completionConfig).closeOnBlur){let s=e.open&&getTooltip(this.view,e.open.tooltip);(!s||!s.dom.contains(n.relatedTarget))&&this.view.dispatch({effects:closeCompletionEffect.of(null)})}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.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:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".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:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,o,a){this.field=e,this.line=s,this.from=o,this.to=a}}class FieldRange{constructor(e,s,o){this.field=e,this.from=s,this.to=o}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),o=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||o==null?null:new FieldRange(this.field,s,o)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let o=[],a=[s],l=e.doc.lineAt(s),c=/^\s*/.exec(l.text)[0];for(let f of this.lines){if(o.length){let d=c,g=/^\t*/.exec(f)[0].length;for(let b=0;bnew FieldRange(f.field,a[f.line]+f.from,a[f.line]+f.to));return{text:o,ranges:u}}static parse(e){let s=[],o=[],a=[],l;for(let c of e.split(/\r\n?|\n/)){for(;l=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(c);){let u=l[1]?+l[1]:null,f=l[2]||l[3]||"",d=-1;for(let g=0;g=d&&b.field++}a.push(new FieldPos(d,o.length,l.index,l.index+f.length)),c=c.slice(0,l.index)+f+c.slice(l.index+l[0].length)}for(let u;u=/\\([{}])/.exec(c);){c=c.slice(0,u.index)+u[1]+c.slice(u.index+u[0].length);for(let f of a)f.line==o.length&&f.from>u.index&&(f.from--,f.to--)}o.push(c)}return new Snippet(o,a)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let n=document.createElement("span");return n.className="cm-snippetFieldPosition",n}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(o=>(o.from==o.to?fieldMarker:fieldRange).range(o.from,o.to)))}map(e){let s=[];for(let o of this.ranges){let a=o.map(e);if(!a)return null;s.push(a)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(o=>o.field==this.active&&o.from<=s.from&&o.to>=s.to))}}const setActive=StateEffect.define({map(n,e){return n&&n.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(n,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&n)return new ActiveSnippet(n.ranges,s.value)}return n&&e.docChanged&&(n=n.map(e.changes)),n&&e.selection&&!n.selectionInsideField(e.selection)&&(n=null),n},provide:n=>EditorView.decorations.from(n,e=>e?e.deco:Decoration.none)});function fieldSelection(n,e){return EditorSelection.create(n.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(n){let e=Snippet.parse(n);return(s,o,a,l)=>{let{text:c,ranges:u}=e.instantiate(s.state,a),f={changes:{from:a,to:l,insert:Text.of(c)},scrollIntoView:!0,annotations:o?pickedCompletion.of(o):void 0};if(u.length&&(f.selection=fieldSelection(u,0)),u.length>1){let d=new ActiveSnippet(u,0),g=f.effects=[setActive.of(d)];s.state.field(snippetState,!1)===void 0&&g.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(f))}}function moveField(n){return({state:e,dispatch:s})=>{let o=e.field(snippetState,!1);if(!o||n<0&&o.active==0)return!1;let a=o.active+n,l=n>0&&!o.ranges.some(c=>c.field==a+n);return s(e.update({selection:fieldSelection(o.ranges,a),effects:setActive.of(l?null:new ActiveSnippet(o.ranges,a))})),!0}}const clearSnippet=({state:n,dispatch:e})=>n.field(snippetState,!1)?(e(n.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(n){return n.length?n[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],n=>n.facet(snippetKeymap)));function snippetCompletion(n,e){return Object.assign(Object.assign({},e),{apply:snippet(n)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(n,e){let s=e.state.field(snippetState,!1),o;if(!s||(o=e.posAtCoords({x:n.clientX,y:n.clientY}))==null)return!1;let a=s.ranges.find(l=>l.from<=o&&l.to>=o);return!a||a.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,a.field),effects:setActive.of(s.ranges.some(l=>l.field>a.field)?new ActiveSnippet(s.ranges,a.field):null)}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},closeBracketEffect=StateEffect.define({map(n,e){let s=e.mapPos(n,-1,MapMode.TrackAfter);return s??void 0}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(n,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,o=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(o,-1)&&(n=RangeSet.empty)}n=n.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)&&(n=n.update({add:[closedBracket.range(s.value,s.value+1)]}));return n}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(n){for(let e=0;e{if((android$1?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let a=n.state.selection.main;if(o.length>2||o.length==2&&codePointSize(codePointAt(o,0))==1||e!=a.from||s!=a.to)return!1;let l=insertBracket(n.state,o);return l?(n.dispatch(l),!0):!1}),deleteBracketPair=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let o=config(n,n.selection.main.head).brackets||defaults.brackets,a=null,l=n.changeByRange(c=>{if(c.empty){let u=prevChar(n.doc,c.head);for(let f of o)if(f==u&&nextChar(n.doc,c.head)==closing(codePointAt(f,0)))return{changes:{from:c.head-f.length,to:c.head+f.length},range:EditorSelection.cursor(c.head-f.length)}}return{range:a=c}});return a||e(n.update(l,{scrollIntoView:!0,userEvent:"delete.backward"})),!a},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(n,e){let s=config(n,n.selection.main.head),o=s.brackets||defaults.brackets;for(let a of o){let l=closing(codePointAt(a,0));if(e==a)return l==a?handleSame(n,a,o.indexOf(a+a+a)>-1,s):handleOpen(n,a,l,s.before||defaults.before);if(e==l&&closedBracketAt(n,n.selection.main.from))return handleClose(n,a,l)}return null}function closedBracketAt(n,e){let s=!1;return n.field(bracketState).between(0,n.doc.length,o=>{o==e&&(s=!0)}),s}function nextChar(n,e){let s=n.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(n,e){let s=n.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(n,e,s,o){let a=null,l=n.changeByRange(c=>{if(!c.empty)return{changes:[{insert:e,from:c.from},{insert:s,from:c.to}],effects:closeBracketEffect.of(c.to+e.length),range:EditorSelection.range(c.anchor+e.length,c.head+e.length)};let u=nextChar(n.doc,c.head);return!u||/\s/.test(u)||o.indexOf(u)>-1?{changes:{insert:e+s,from:c.head},effects:closeBracketEffect.of(c.head+e.length),range:EditorSelection.cursor(c.head+e.length)}:{range:a=c}});return a?null:n.update(l,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(n,e,s){let o=null,a=n.changeByRange(l=>l.empty&&nextChar(n.doc,l.head)==s?{changes:{from:l.head,to:l.head+s.length,insert:s},range:EditorSelection.cursor(l.head+s.length)}:o={range:l});return o?null:n.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function handleSame(n,e,s,o){let a=o.stringPrefixes||defaults.stringPrefixes,l=null,c=n.changeByRange(u=>{if(!u.empty)return{changes:[{insert:e,from:u.from},{insert:e,from:u.to}],effects:closeBracketEffect.of(u.to+e.length),range:EditorSelection.range(u.anchor+e.length,u.head+e.length)};let f=u.head,d=nextChar(n.doc,f),g;if(d==e){if(nodeStart(n,f))return{changes:{insert:e+e,from:f},effects:closeBracketEffect.of(f+e.length),range:EditorSelection.cursor(f+e.length)};if(closedBracketAt(n,f)){let E=s&&n.sliceDoc(f,f+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:f,to:f+E.length,insert:E},range:EditorSelection.cursor(f+E.length)}}}else{if(s&&n.sliceDoc(f-2*e.length,f)==e+e&&(g=canStartStringAt(n,f-2*e.length,a))>-1&&nodeStart(n,g))return{changes:{insert:e+e+e+e,from:f},effects:closeBracketEffect.of(f+e.length),range:EditorSelection.cursor(f+e.length)};if(n.charCategorizer(f)(d)!=CharCategory.Word&&canStartStringAt(n,f,a)>-1&&!probablyInString(n,f,e,a))return{changes:{insert:e+e,from:f},effects:closeBracketEffect.of(f+e.length),range:EditorSelection.cursor(f+e.length)}}return{range:l=u}});return l?null:n.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(n,e){let s=syntaxTree(n).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(n,e,s,o){let a=syntaxTree(n).resolveInner(e,-1),l=o.reduce((c,u)=>Math.max(c,u.length),0);for(let c=0;c<5;c++){let u=n.sliceDoc(a.from,Math.min(a.to,a.from+s.length+l)),f=u.indexOf(s);if(!f||f>-1&&o.indexOf(u.slice(0,f))>-1){let g=a.firstChild;for(;g&&g.from==a.from&&g.to-g.from>s.length+f;){if(n.sliceDoc(g.to-s.length,g.to)==s)return!1;g=g.firstChild}return!0}let d=a.to==e&&a.parent;if(!d)break;a=d}return!1}function canStartStringAt(n,e,s){let o=n.charCategorizer(e);if(o(n.sliceDoc(e-1,e))!=CharCategory.Word)return e;for(let a of s){let l=e-a.length;if(n.sliceDoc(l,e)==a&&o(n.sliceDoc(l-1,l))!=CharCategory.Word)return l}return-1}function autocompletion(n={}){return[completionState,completionConfig.of(n),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],n=>n.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));class SelectedDiagnostic{constructor(e,s,o){this.from=e,this.to=s,this.diagnostic=o}}class LintState{constructor(e,s,o){this.diagnostics=e,this.panel=s,this.selected=o}static init(e,s,o){let a=e,l=o.facet(lintConfig).markerFilter;l&&(a=l(a));let c=Decoration.set(a.map(u=>u.from==u.to||u.from==u.to-1&&o.doc.lineAt(u.from).to==u.from?Decoration.widget({widget:new DiagnosticWidget(u),diagnostic:u}).range(u.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+u.severity+(u.markClass?" "+u.markClass:"")},diagnostic:u}).range(u.from,u.to)),!0);return new LintState(c,s,findDiagnostic(c))}}function findDiagnostic(n,e=null,s=0){let o=null;return n.between(s,1e9,(a,l,{spec:c})=>{if(!(e&&c.diagnostic!=e))return o=new SelectedDiagnostic(a,l,c.diagnostic),!1}),o}function hideTooltip(n,e){let s=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(setDiagnosticsEffect))||n.changes.touchesRange(s.from,s.to))}function maybeEnableLint(n,e){return n.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of(lintExtensions))}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(n,e){if(e.docChanged){let s=n.diagnostics.map(e.changes),o=null;if(n.selected){let a=e.changes.mapPos(n.selected.from,1);o=findDiagnostic(s,n.selected.diagnostic,a)||findDiagnostic(s,null,a)}n=new LintState(s,n.panel,o)}for(let s of e.effects)s.is(setDiagnosticsEffect)?n=LintState.init(s.value,n.panel,e.state):s.is(togglePanel)?n=new LintState(n.diagnostics,s.value?LintPanel.open:null,n.selected):s.is(movePanelSelection)&&(n=new LintState(n.diagnostics,n.panel,s.value));return n},provide:n=>[showPanel.from(n,e=>e.panel),EditorView.decorations.from(n,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(n,e,s){let{diagnostics:o}=n.state.field(lintState),a=[],l=2e8,c=0;o.between(e-(s<0?1:0),e+(s>0?1:0),(f,d,{spec:g})=>{e>=f&&e<=d&&(f==d||(e>f||s>0)&&(erenderDiagnostic(n,s,!1)))}const openLintPanel=n=>{let e=n.state.field(lintState,!1);(!e||!e.panel)&&n.dispatch({effects:maybeEnableLint(n.state,[togglePanel.of(!0)])});let s=getPanel(n,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=n=>{let e=n.state.field(lintState,!1);return!e||!e.panel?!1:(n.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=n=>{let e=n.state.field(lintState,!1);if(!e)return!1;let s=n.state.selection.main,o=e.diagnostics.iter(s.to+1);return!o.value&&(o=e.diagnostics.iter(0),!o.value||o.from==s.from&&o.to==s.to)?!1:(n.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel,preventDefault:!0},{key:"F8",run:nextDiagnostic}],lintConfig=Facet.define({combine(n){return Object.assign({sources:n.map(e=>e.source)},combineConfig(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,s)=>e?s?o=>e(o)||s(o):e:s}))}});function assignKeys(n){let e=[];if(n)e:for(let{name:s}of n){for(let o=0;ol.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function renderDiagnostic(n,e,s){var o;let a=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(o=e.actions)===null||o===void 0?void 0:o.map((l,c)=>{let u=!1,f=E=>{if(E.preventDefault(),u)return;u=!0;let B=findDiagnostic(n.state.field(lintState).diagnostics,e);B&&l.apply(n,B.from,B.to)},{name:d}=l,g=a[c]?d.indexOf(a[c]):-1,b=g<0?d:[d.slice(0,g),crelt("u",d.slice(g,g+1)),d.slice(g+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:f,onmousedown:f,"aria-label":` Action: ${d}${g<0?"":` (access key "${a[c]})"`}.`},b)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=a=>{if(a.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:l}=this.items[this.selectedIndex],c=assignKeys(l.actions);for(let u=0;u{for(let l=0;lcloseLintPanel(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let d=-1,g;for(let b=o;bo&&(this.items.splice(o,d-o),a=!0)),s&&g.diagnostic==s.diagnostic?g.dom.hasAttribute("aria-selected")||(g.dom.setAttribute("aria-selected","true"),l=g):g.dom.hasAttribute("aria-selected")&&g.dom.removeAttribute("aria-selected"),o++});o({sel:l.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:c,panel:u})=>{c.topu.bottom&&(this.list.scrollTop+=c.bottom-u.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function s(){let o=e;e=o.nextSibling,o.remove()}for(let o of this.items)if(o.dom.parentNode==this.list){for(;e!=o.dom;)s();e=o.dom.nextSibling}else this.list.insertBefore(o.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),o=findDiagnostic(s.diagnostics,this.items[e].diagnostic);o&&this.view.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:movePanelSelection.of(o)})}static open(e){return new LintPanel(e)}}function svg(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}function underline(n){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-hint":{backgroundImage:underline("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),lintExtensions=[lintState,EditorView.decorations.compute([lintState],n=>{let{selected:e,panel:s}=n.field(lintState);return!e||!s||e.from==e.to?Decoration.none:Decoration.set([activeMark.range(e.from,e.to)])}),hoverTooltip(lintTooltip,{hideOn:hideTooltip}),baseTheme],editorSetup=(()=>[highlightActiveLineGutter(),highlightSpecialChars(),history(),drawSelection(),dropCursor(),EditorState.allowMultipleSelections.of(!0),indentOnInput(),syntaxHighlighting(defaultHighlightStyle,{fallback:!0}),bracketMatching(),closeBrackets(),autocompletion(),rectangularSelection(),crosshairCursor(),highlightActiveLine(),highlightSelectionMatches(),keymap.of([...closeBracketsKeymap,...defaultKeymap,...historyKeymap,...lintKeymap])])();class Stack{constructor(e,s,o,a,l,c,u,f,d,g=0,b){this.p=e,this.stack=s,this.state=o,this.reducePos=a,this.pos=l,this.score=c,this.buffer=u,this.bufferBase=f,this.curContext=d,this.lookAhead=g,this.parent=b}toString(){return`[${this.stack.filter((e,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,o=0){let a=e.parser.context;return new Stack(e,[],s,o,o,0,[],0,a?new StackContext(a,a.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var s;let o=e>>19,a=e&65535,{parser:l}=this.p,c=l.dynamicPrecedence(a);if(c&&(this.score+=c),o==0){this.pushState(l.getGoto(this.state,a,!0),this.reducePos),a=2e3&&!(!((s=this.p.parser.nodeSet.types[a])===null||s===void 0)&&s.isAnonymous)&&(f==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=d):this.p.lastBigReductionSizeu;)this.stack.pop();this.reduceContext(a,f)}storeNode(e,s,o,a=4,l=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&c.buffer[u-4]==0&&c.buffer[u-1]>-1){if(s==o)return;if(c.buffer[u-2]>=s){c.buffer[u-2]=o;return}}}if(!l||this.pos==o)this.buffer.push(e,s,o,a);else{let c=this.buffer.length;if(c>0&&this.buffer[c-4]!=0)for(;c>0&&this.buffer[c-2]>o;)this.buffer[c]=this.buffer[c-4],this.buffer[c+1]=this.buffer[c-3],this.buffer[c+2]=this.buffer[c-2],this.buffer[c+3]=this.buffer[c-1],c-=4,a>4&&(a-=4);this.buffer[c]=e,this.buffer[c+1]=s,this.buffer[c+2]=o,this.buffer[c+3]=a}}shift(e,s,o){let a=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=o,this.shiftContext(s,a),s<=this.p.parser.maxNode&&this.buffer.push(s,a,o,4);else{let l=e,{parser:c}=this.p;(o>this.pos||s<=c.maxNode)&&(this.pos=o,c.stateFlag(l,1)||(this.reducePos=o)),this.pushState(l,a),this.shiftContext(s,a),s<=c.maxNode&&this.buffer.push(s,a,o,4)}}apply(e,s,o){e&65536?this.reduce(e):this.shift(e,s,o)}useNode(e,s){let o=this.p.reused.length-1;(o<0||this.p.reused[o]!=e)&&(this.p.reused.push(e),o++);let a=this.pos;this.reducePos=this.pos=a+e.length,this.pushState(s,a),this.buffer.push(o,a,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let o=e.buffer.slice(s),a=e.bufferBase+s;for(;e&&a==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,o,a,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let o=e<=this.p.parser.maxNode;o&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,o?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let o=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if(o==0)return!1;if(!(o&65536))return!0;s.reduce(o)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>8||this.stack.length>=120){let a=[];for(let l=0,c;lf&1&&u==c)||a.push(s[l],c)}s=a}let o=[];for(let a=0;a>19,a=s&65535,l=this.stack.length-o*3;if(l<0||e.getGoto(this.stack[l],a,!1)<0){let c=this.findForcedReduction();if(c==null)return!1;s=c}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(s),!0}findForcedReduction(){let{parser:e}=this.p,s=[],o=(a,l)=>{if(!s.includes(a))return s.push(a),e.allActions(a,c=>{if(!(c&393216))if(c&65536){let u=(c>>19)-l;if(u>1){let f=c&65535,d=this.stack.length-u*3;if(d>=0&&e.getGoto(this.stack[d],f,!1)>=0)return u<<19|65536|f}}else{let u=o(c,l+1);if(u!=null)return u}})};return o(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,o=e>>19;o==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(o-1)*3;let a=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=a}}class StackBufferCursor{constructor(e,s,o){this.stack=e,this.pos=s,this.index=o,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}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]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}function decodeArray(n,e=Uint16Array){if(typeof n!="string")return n;let s=null;for(let o=0,a=0;o=92&&c--,c>=34&&c--;let f=c-32;if(f>=46&&(f-=46,u=!0),l+=f,u)break;l*=46}s?s[a++]=l:s=new e(l)}return s}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let o=this.range,a=this.rangeIndex,l=this.pos+e;for(;lo.to:l>=o.to;){if(a==this.ranges.length-1)return null;let c=this.ranges[++a];l+=c.from-o.to,o=c}return l}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,s.from);return this.end}peek(e){let s=this.chunkOff+e,o,a;if(s>=0&&s=this.chunk2Pos&&ou.to&&(this.chunk2=this.chunk2.slice(0,u.to-o)),a=this.chunk2.charCodeAt(0)}}return o>=this.token.lookAhead&&(this.token.lookAhead=o+1),a}acceptToken(e,s=0){let o=s?this.resolveOffset(s,-1):this.pos;if(o==null||o=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let o="";for(let a of this.ranges){if(a.from>=s)break;a.to>e&&(o+=this.input.read(Math.max(a.from,e),Math.min(a.to,s)))}return o}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){let{parser:o}=s.p;readToken(this.data,e,s,this.id,o.data,o.tokenPrecTable)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class LocalTokenGroup{constructor(e,s,o){this.precTable=s,this.elseToken=o,this.data=typeof e=="string"?decodeArray(e):e}token(e,s){let o=e.pos,a=0;for(;;){let l=e.next<0,c=e.resolveOffset(1,1);if(readToken(this.data,e,s,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(l||a++,c==null)break;e.reset(c,e.token)}a&&(e.reset(o,e.token),e.acceptToken(this.elseToken,a))}}LocalTokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(n,e,s,o,a,l){let c=0,u=1<0){let V=n[B];if(f.allows(V)&&(e.token.value==-1||e.token.value==V||overrides(V,e.token.value,a,l))){e.acceptToken(V);break}}let g=e.next,b=0,E=n[c+2];if(e.next<0&&E>b&&n[d+E*3-3]==65535&&n[d+E*3-3]==65535){c=n[d+E*3-1];continue e}for(;b>1,V=d+B+(B<<1),D=n[V],X=n[V+1]||65536;if(g=X)b=B+1;else{c=n[V+2],e.advance();continue e}}break}}function findOffset(n,e,s){for(let o=e,a;(a=n[o])!=65535;o++)if(a==s)return o-e;return-1}function overrides(n,e,s,o){let a=findOffset(s,o,e);return a<0||findOffset(s,o,n)e)&&!o.type.isError)return s<0?Math.max(0,Math.min(o.to-1,e-25)):Math.min(n.length,Math.max(o.from+1,e+25));if(s<0?o.prevSibling():o.nextSibling())break;if(!o.parent())return s<0?0:n.length}}let FragmentCursor$1=class{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=c,null;if(l instanceof Tree){if(c==e){if(c=Math.max(this.safeFrom,e)&&(this.trees.push(l),this.start.push(c),this.index.push(0))}else this.index[s]++,this.nextStart=c+l.length}}};class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(o=>new CachedToken)}getActions(e){let s=0,o=null,{parser:a}=e.p,{tokenizers:l}=a,c=a.stateSlot(e.state,3),u=e.curContext?e.curContext.hash:0,f=0;for(let d=0;db.end+25&&(f=Math.max(b.lookAhead,f)),b.value!=0)){let E=s;if(b.extended>-1&&(s=this.addActions(e,b.extended,b.end,s)),s=this.addActions(e,b.value,b.end,s),!g.extend&&(o=b,s>E))break}}for(;this.actions.length>s;)this.actions.pop();return f&&e.setLookAhead(f),!o&&e.pos==this.stream.end&&(o=new CachedToken,o.value=e.p.parser.eofTerm,o.start=o.end=e.pos,s=this.addActions(e,o.value,o.end,s)),this.mainToken=o,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:o,p:a}=e;return s.start=o,s.end=Math.min(o+1,a.stream.end),s.value=o==a.stream.end?a.parser.eofTerm:0,s}updateCachedToken(e,s,o){let a=this.stream.clipPos(o.pos);if(s.token(this.stream.reset(a,e),o),e.value>-1){let{parser:l}=o.p;for(let c=0;c=0&&o.p.parser.dialect.allows(u>>1)){u&1?e.extended=u>>1:e.value=u>>1;break}}}else e.value=0,e.end=this.stream.clipPos(a+1)}putAction(e,s,o,a){for(let l=0;le.bufferLength*4?new FragmentCursor$1(o,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,o=this.stacks=[],a,l;if(this.bigReductionCount>300&&e.length==1){let[c]=e;for(;c.forceReduce()&&c.stack.length&&c.stack[c.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let c=0;cs)o.push(u);else{if(this.advanceStack(u,o,e))continue;{a||(a=[],l=[]),a.push(u);let f=this.tokens.getMainToken(u);l.push(f.value,f.end)}}break}}if(!o.length){let c=a&&findFinished(a);if(c)return this.stackToTree(c);if(this.parser.strict)throw verbose&&a&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&a){let c=this.stoppedAt!=null&&a[0].pos>this.stoppedAt?a[0]:this.runRecovery(a,l,o);if(c)return this.stackToTree(c.forceAll())}if(this.recovering){let c=this.recovering==1?1:this.recovering*3;if(o.length>c)for(o.sort((u,f)=>f.score-u.score);o.length>c;)o.pop();o.some(u=>u.reducePos>s)&&this.recovering--}else if(o.length>1){e:for(let c=0;c500&&d.buffer.length>500)if((u.score-d.score||u.buffer.length-d.buffer.length)>0)o.splice(f--,1);else{o.splice(c--,1);continue e}}}o.length>12&&o.splice(12,o.length-12)}this.minStackPos=o[0].pos;for(let c=1;c ":"";if(this.stoppedAt!=null&&a>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let d=e.curContext&&e.curContext.tracker.strict,g=d?e.curContext.hash:0;for(let b=this.fragments.nodeAt(a);b;){let E=this.parser.nodeSet.types[b.type.id]==b.type?l.getGoto(e.state,b.type.id):-1;if(E>-1&&b.length&&(!d||(b.prop(NodeProp.contextHash)||0)==g))return e.useNode(b,E),verbose&&console.log(c+this.stackID(e)+` (via reuse of ${l.getName(b.type.id)})`),!0;if(!(b instanceof Tree)||b.children.length==0||b.positions[0]>0)break;let B=b.children[0];if(B instanceof Tree&&b.positions[0]==0)b=B;else break}}let u=l.stateSlot(e.state,4);if(u>0)return e.reduce(u),verbose&&console.log(c+this.stackID(e)+` (via always-reduce ${l.getName(u&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let f=this.tokens.getActions(e);for(let d=0;da?s.push(V):o.push(V)}return!1}advanceFully(e,s){let o=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>o)return pushStackDedup(e,s),!0}}runRecovery(e,s,o){let a=null,l=!1;for(let c=0;c ":"";if(u.deadEnd&&(l||(l=!0,u.restart(),verbose&&console.log(g+this.stackID(u)+" (restarted)"),this.advanceFully(u,o))))continue;let b=u.split(),E=g;for(let B=0;b.forceReduce()&&B<10&&(verbose&&console.log(E+this.stackID(b)+" (via force-reduce)"),!this.advanceFully(b,o));B++)verbose&&(E=this.stackID(b)+" -> ");for(let B of u.recoverByInsert(f))verbose&&console.log(g+this.stackID(B)+" (via recover-insert)"),this.advanceFully(B,o);this.stream.end>u.pos?(d==u.pos&&(d++,f=0),u.recoverByDelete(f,d),verbose&&console.log(g+this.stackID(u)+` (via recover-delete ${this.parser.getName(f)})`),pushStackDedup(u,o)):(!a||a.scoren;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id$1,this.reduce=e.reduce||id$1,this.reuse=e.reuse||id$1,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser$1{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let u=0;ue.topRules[u][1]),a=[];for(let u=0;u=0)l(g,f,u[d++]);else{let b=u[d+-g];for(let E=-g;E>0;E--)l(u[d++],f,b);d++}}}this.nodeSet=new NodeSet(s.map((u,f)=>NodeType.define({name:f>=this.minRepeatTerm?void 0:u,id:f,props:a[f],top:o.indexOf(f)>-1,error:f==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(f)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=DefaultBufferLength;let c=decodeArray(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let u=0;utypeof u=="number"?new TokenGroup(c,u):u),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,o){let a=new Parse(this,e,s,o);for(let l of this.wrappers)a=l(a,e,s,o);return a}getGoto(e,s,o=!1){let a=this.goto;if(s>=a[0])return-1;for(let l=a[s+1];;){let c=a[l++],u=c&1,f=a[l++];if(u&&o)return f;for(let d=l+(c>>1);l0}validAction(e,s){return!!this.allActions(e,o=>o==s?!0:null)}allActions(e,s){let o=this.stateSlot(e,4),a=o?s(o):void 0;for(let l=this.stateSlot(e,1);a==null;l+=3){if(this.data[l]==65535)if(this.data[l+1]==1)l=pair(this.data,l+2);else break;a=s(pair(this.data,l+1))}return a}nextStates(e){let s=[];for(let o=this.stateSlot(e,1);;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=pair(this.data,o+2);else break;if(!(this.data[o+2]&1)){let a=this.data[o+1];s.some((l,c)=>c&1&&l==a)||s.push(this.data[o],a)}}return s}configure(e){let s=Object.assign(Object.create(LRParser.prototype),this);if(e.props&&(s.nodeSet=this.nodeSet.extend(...e.props)),e.top){let o=this.topRules[e.top];if(!o)throw new RangeError(`Invalid top rule name ${e.top}`);s.top=o}return e.tokenizers&&(s.tokenizers=this.tokenizers.map(o=>{let a=e.tokenizers.find(l=>l.from==o);return a?a.to:o})),e.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((o,a)=>{let l=e.specializers.find(u=>u.from==o.external);if(!l)return o;let c=Object.assign(Object.assign({},o),{external:l.to});return s.specializers[a]=getSpecializer(c),c})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),o=s.map(()=>!1);if(e)for(let l of e.split(" ")){let c=s.indexOf(l);c>=0&&(o[c]=!0)}let a=null;for(let l=0;lo)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.scoren.external(s,o)<<1|e}return n.get}const noSemi=303,incdec=1,incdecPrefix=2,insertSemi=304,spaces=306,newline=307,LineComment=3,BlockComment=4,space$2=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],braceR=125,semicolon=59,slash$1=47,star=42,plus=43,minus=45,trackNewline=new ContextTracker({start:!1,shift(n,e){return e==LineComment||e==BlockComment||e==spaces?n:e==newline},strict:!1}),insertSemicolon=new ExternalTokenizer((n,e)=>{let{next:s}=n;(s==braceR||s==-1||e.context)&&n.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((n,e)=>{let{next:s}=n,o;space$2.indexOf(s)>-1||s==slash$1&&((o=n.peek(1))==slash$1||o==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&n.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((n,e)=>{let{next:s}=n;if((s==plus||s==minus)&&(n.advance(),s==n.next)){n.advance();let o=!e.context&&e.canShift(incdec);n.acceptToken(o?incdec:incdecPrefix)}},{contextual:!0}),jsHighlight=styleTags({"get set async static":tags$1.modifier,"for while do if else switch try catch finally return throw break continue default case":tags$1.controlKeyword,"in of await yield void typeof delete instanceof":tags$1.operatorKeyword,"let var const function class extends":tags$1.definitionKeyword,"import export from":tags$1.moduleKeyword,"with debugger as new":tags$1.keyword,TemplateString:tags$1.special(tags$1.string),super:tags$1.atom,BooleanLiteral:tags$1.bool,this:tags$1.self,null:tags$1.null,Star:tags$1.modifier,VariableName:tags$1.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags$1.function(tags$1.variableName),VariableDefinition:tags$1.definition(tags$1.variableName),Label:tags$1.labelName,PropertyName:tags$1.propertyName,PrivatePropertyName:tags$1.special(tags$1.propertyName),"CallExpression/MemberExpression/PropertyName":tags$1.function(tags$1.propertyName),"FunctionDeclaration/VariableDefinition":tags$1.function(tags$1.definition(tags$1.variableName)),"ClassDeclaration/VariableDefinition":tags$1.definition(tags$1.className),PropertyDefinition:tags$1.definition(tags$1.propertyName),PrivatePropertyDefinition:tags$1.definition(tags$1.special(tags$1.propertyName)),UpdateOp:tags$1.updateOperator,LineComment:tags$1.lineComment,BlockComment:tags$1.blockComment,Number:tags$1.number,String:tags$1.string,Escape:tags$1.escape,ArithOp:tags$1.arithmeticOperator,LogicOp:tags$1.logicOperator,BitOp:tags$1.bitwiseOperator,CompareOp:tags$1.compareOperator,RegExp:tags$1.regexp,Equals:tags$1.definitionOperator,Arrow:tags$1.function(tags$1.punctuation),": Spread":tags$1.punctuation,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace,"InterpolationStart InterpolationEnd":tags$1.special(tags$1.brace),".":tags$1.derefOperator,", ;":tags$1.separator,"@":tags$1.meta,TypeName:tags$1.typeName,TypeDefinition:tags$1.definition(tags$1.typeName),"type enum interface implements namespace module declare":tags$1.definitionKeyword,"abstract global Privacy readonly override":tags$1.modifier,"is keyof unique infer":tags$1.operatorKeyword,JSXAttributeValue:tags$1.attributeValue,JSXText:tags$1.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags$1.angleBracket,"JSXIdentifier JSXNameSpacedName":tags$1.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags$1.attributeName,"JSXBuiltin/JSXIdentifier":tags$1.standard(tags$1.tagName)}),spec_identifier$1={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:221,private:221,protected:221,readonly:223,instanceof:242,satisfies:245,in:246,const:248,import:280,keyof:335,unique:339,infer:345,is:381,abstract:401,implements:403,type:405,let:408,var:410,using:413,interface:419,enum:423,namespace:429,module:431,declare:435,global:439,for:458,of:467,while:470,with:474,do:478,if:482,else:484,switch:488,case:494,try:500,catch:504,finally:508,return:512,throw:516,break:520,continue:524,debugger:528},spec_word={__proto__:null,async:117,get:119,set:121,declare:181,public:183,private:183,protected:183,static:185,abstract:187,override:189,readonly:195,accessor:197,new:385},spec_LessThan={__proto__:null,"<":137},parser$3=LRParser.deserialize({version:14,states:"$6tO`QUOOO%TQUOOO'WQWOOP(eOSOOO*sQ(CjO'#CfO*zOpO'#CgO+YO!bO'#CgO+hO07`O'#DZO-yQUO'#DaO.ZQUO'#DlO%TQUO'#DvO0_QUO'#EOOOQ(CY'#EW'#EWO0xQSO'#ETOOQO'#Ei'#EiOOQO'#Ic'#IcO1QQSO'#GkO1]QSO'#EhO1bQSO'#EhO3dQ(CjO'#JdO6TQ(CjO'#JeO6qQSO'#FWO6vQ#tO'#FoOOQ(CY'#F`'#F`O7RO&jO'#F`O7aQ,UO'#FvO8wQSO'#FuOOQ(CY'#Je'#JeOOQ(CW'#Jd'#JdO8|QSO'#GoOOQQ'#KP'#KPO9XQSO'#IPO9^Q(C[O'#IQOOQQ'#JQ'#JQOOQQ'#IU'#IUQ`QUOOO%TQUO'#DnO9fQUO'#DzO9mQUO'#D|O9SQSO'#GkO9tQ,UO'#ClO:SQSO'#EgO:_QSO'#ErO:dQ,UO'#F_O;RQSO'#GkOOQO'#KQ'#KQO;WQSO'#KQO;fQSO'#GsO;fQSO'#GtO;fQSO'#GvO9SQSO'#GyO<]QSO'#G|O=tQSO'#CbO>UQSO'#HYO>^QSO'#H`O>^QSO'#HbO`QUO'#HdO>^QSO'#HfO>^QSO'#HiO>cQSO'#HoO>hQ(C]O'#HuO%TQUO'#HwO>sQ(C]O'#HyO?OQ(C]O'#H{O9^Q(C[O'#H}O?ZQ(CjO'#CfO@]QWO'#DfQOQSOOO%TQUO'#D|O@sQSO'#EPO9tQ,UO'#EgOAOQSO'#EgOAZQ`O'#F_OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jh'#JhO%TQUO'#JhOOQO'#Jl'#JlOOQO'#I`'#I`OBZQWO'#E`OOQ(CW'#E_'#E_OCVQ(C`O'#E`OCaQWO'#ESOOQO'#Jk'#JkOCuQWO'#JlOESQWO'#ESOCaQWO'#E`PEaO?MpO'#C`POOO)CDo)CDoOOOO'#IV'#IVOElOpO,59ROOQ(CY,59R,59ROOOO'#IW'#IWOEzO!bO,59RO%TQUO'#D]OOOO'#IY'#IYOFYO07`O,59uOOQ(CY,59u,59uOFhQUO'#IZOF{QSO'#JfOH}QbO'#JfO+vQUO'#JfOIUQSO,59{OIlQSO'#EiOIyQSO'#JtOJUQSO'#JsOJUQSO'#JsOJ^QSO,5;VOJcQSO'#JrOOQ(CY,5:W,5:WOJjQUO,5:WOLkQ(CjO,5:bOM[QSO,5:jOMuQ(C[O'#JqOM|QSO'#JpO8|QSO'#JpONbQSO'#JpONjQSO,5;UONoQSO'#JpO!!wQbO'#JeOOQ(CY'#Cf'#CfO%TQUO'#EOO!#gQ`O,5:oOOQO'#Jm'#JmOOQO-EkOOQQ'#JY'#JYOOQQ,5>l,5>lOOQQ-EqQ(CjO,5:hOOQO,5@l,5@lO!?bQ,UO,5=VO!?pQ(C[O'#JZO8wQSO'#JZO!@RQ(C[O,59WO!@^QWO,59WO!@fQ,UO,59WO9tQ,UO,59WO!@qQSO,5;SO!@yQSO'#HXO!A[QSO'#KUO%TQUO,5;wO!7[QWO,5;yO!AdQSO,5=rO!AiQSO,5=rO!AnQSO,5=rO9^Q(C[O,5=rO;fQSO,5=bOOQO'#Cr'#CrO!A|QWO,5=_O!BUQ,UO,5=`O!BaQSO,5=bO!BfQ`O,5=eO!BnQSO'#KQO>cQSO'#HOO9SQSO'#HQO!BsQSO'#HQO9tQ,UO'#HSO!BxQSO'#HSOOQQ,5=h,5=hO!B}QSO'#HTO!CVQSO'#ClO!C[QSO,58|O!CfQSO,58|O!EkQUO,58|OOQQ,58|,58|O!E{Q(C[O,58|O%TQUO,58|O!HWQUO'#H[OOQQ'#H]'#H]OOQQ'#H^'#H^O`QUO,5=tO!HnQSO,5=tO`QUO,5=zO`QUO,5=|O!HsQSO,5>OO`QUO,5>QO!HxQSO,5>TO!H}QUO,5>ZOOQQ,5>a,5>aO%TQUO,5>aO9^Q(C[O,5>cOOQQ,5>e,5>eO!MXQSO,5>eOOQQ,5>g,5>gO!MXQSO,5>gOOQQ,5>i,5>iO!M^QWO'#DXO%TQUO'#JhO!M{QWO'#JhO!NjQWO'#DgO!N{QWO'#DgO##^QUO'#DgO##eQSO'#JgO##mQSO,5:QO##rQSO'#EmO#$QQSO'#JuO#$YQSO,5;WO#$_QWO'#DgO#$lQWO'#EROOQ(CY,5:k,5:kO%TQUO,5:kO#$sQSO,5:kO>cQSO,5;RO!@^QWO,5;RO!@fQ,UO,5;RO9tQ,UO,5;RO#${QSO,5@SO#%QQ!LQO,5:oOOQO-E<^-E<^O#&WQ(C`O,5:zOCaQWO,5:nO#&bQWO,5:nOCaQWO,5:zO!@RQ(C[O,5:nOOQ(CW'#Ec'#EcOOQO,5:z,5:zO%TQUO,5:zO#&oQ(C[O,5:zO#&zQ(C[O,5:zO!@^QWO,5:nOOQO,5;Q,5;QO#'YQ(C[O,5:zPOOO'#IT'#ITP#'nO?MpO,58zPOOO,58z,58zOOOO-EuO+vQUO,5>uOOQO,5>{,5>{O#(YQUO'#IZOOQO-E^QSO1G3jO$.VQUO1G3lO$2ZQUO'#HkOOQQ1G3o1G3oO$2hQSO'#HqO>cQSO'#HsOOQQ1G3u1G3uO$2pQUO1G3uO9^Q(C[O1G3{OOQQ1G3}1G3}OOQ(CW'#GW'#GWO9^Q(C[O1G4PO9^Q(C[O1G4RO$6wQSO,5@SO!){QUO,5;XO8|QSO,5;XO>cQSO,5:RO!){QUO,5:RO!@^QWO,5:RO$6|Q$IUO,5:ROOQO,5;X,5;XO$7WQWO'#I[O$7nQSO,5@ROOQ(CY1G/l1G/lO$7vQWO'#IbO$8QQSO,5@aOOQ(CW1G0r1G0rO!N{QWO,5:ROOQO'#I_'#I_O$8YQWO,5:mOOQ(CY,5:m,5:mO#$vQSO1G0VOOQ(CY1G0V1G0VO%TQUO1G0VOOQ(CY1G0m1G0mO>cQSO1G0mO!@^QWO1G0mO!@fQ,UO1G0mOOQ(CW1G5n1G5nO!@RQ(C[O1G0YOOQO1G0f1G0fO%TQUO1G0fO$8aQ(C[O1G0fO$8lQ(C[O1G0fO!@^QWO1G0YOCaQWO1G0YO$8zQ(C[O1G0fOOQO1G0Y1G0YO$9`Q(CjO1G0fPOOO-EuO$9|QSO1G5lO$:UQSO1G5yO$:^QbO1G5zO8|QSO,5>{O$:hQ(CjO1G5wO%TQUO1G5wO$:xQ(C[O1G5wO$;ZQSO1G5vO$;ZQSO1G5vO8|QSO1G5vO$;cQSO,5?OO8|QSO,5?OOOQO,5?O,5?OO$;wQSO,5?OO$$XQSO,5?OOOQO-ExQ(CjO,5VOOQQ,5>V,5>VO%TQUO'#HlO%(dQSO'#HnOOQQ,5>],5>]O8|QSO,5>]OOQQ,5>_,5>_OOQQ7+)a7+)aOOQQ7+)g7+)gOOQQ7+)k7+)kOOQQ7+)m7+)mO%(iQWO1G5nO%(}Q$IUO1G0sO%)XQSO1G0sOOQO1G/m1G/mO%)dQ$IUO1G/mO>cQSO1G/mO!){QUO'#DgOOQO,5>v,5>vOOQO-E|,5>|OOQO-E<`-E<`O!@^QWO1G/mOOQO-E<]-E<]OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO#$vQSO7+%qOOQ(CY7+&X7+&XO>cQSO7+&XO!@^QWO7+&XOOQO7+%t7+%tO$9`Q(CjO7+&QOOQO7+&Q7+&QO%TQUO7+&QO%)nQ(C[O7+&QO!@RQ(C[O7+%tO!@^QWO7+%tO%)yQ(C[O7+&QO%*XQ(CjO7++cO%TQUO7++cO%*iQSO7++bO%*iQSO7++bOOQO1G4j1G4jO8|QSO1G4jO%*qQSO1G4jOOQO7+%y7+%yO#$vQSO<wOOQO-ExO%TQUO,5>xOOQO-E<[-E<[O%2qQSO1G5pOOQ(CY<bQ$IUO1G0xO%>iQ$IUO1G0xO%@aQ$IUO1G0xO%@tQ(CjO<WOOQQ,5>Y,5>YO%N_QSO1G3wO8|QSO7+&_O!){QUO7+&_OOQO7+%X7+%XO%NdQ$IUO1G5zO>cQSO7+%XOOQ(CY<cQSO<cQSO7+)cO&5{QSO<zAN>zO%TQUOAN?WOOQO<TQSO<= cOOQQG27jG27jO9^Q(C[OG27jO!){QUO1G4uO&>]QSO7++tO%LpQSOANAxOOQQANAxANAxO!&VQ,UOANAxO&>eQSOANAxOOQQANAzANAzO9^Q(C[OANAzO#MzQSOANAzOOQO'#HV'#HVOOQO7+*d7+*dOOQQG22tG22tOOQQANEOANEOOOQQANEPANEPOOQQANBSANBSO&>mQSOANBSOOQQ<rQSOLD,iO&>zQ$IUO7+'sO&@pQ$IUO7+'uO&BfQ,UOG26{OOQO<ROPYXXYXkYXyYXzYX|YX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(SYX(cYX(jYX(kYX!VYX!WYX~O#yYX~P#@lOP$[OX:XOk9{Oy#xOz#yO|#zO!e9}O!f#vO!h#wO!l$[O#g9yO#h9zO#i9zO#j9zO#k9|O#l9}O#m9}O#n:WO#o9}O#q:OO#s:QO#u:SO#v:TO(SVO(c$YO(j#{O(k#|O~O#y.hO~P#ByO#X:YO#{:YO#y(XX!W(XX~PN}O^'Za!V'Za'l'Za'j'Za!g'Za!S'Zao'Za!X'Za%a'Za!a'Za~P!7sOP#fiX#fi^#fik#fiz#fi!V#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'l#fi(S#fi(c#fi'j#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#,`O^#zi!V#zi'l#zi'j#zi!S#zi!g#zio#zi!X#zi%a#zi!a#zi~P!7sO$W.mO$Y.mO~O$W.nO$Y.nO~O!a)^O#X.oO!X$^X$T$^X$W$^X$Y$^X$a$^X~O!U.pO~O!X)aO$T.rO$W)`O$Y)`O$a.sO~O!V:UO!W(WX~P#ByO!W.tO~O!a)^O$a(lX~O$a.vO~Oq)pO(T)qO(U.yO~Ol.|O!S.}O'wTO'zUO~O!VcX!acX!gcX!g$sX(ccX~P!/ZO!g/TO~P#,`O!V/UO!a#tO(c'fO!g(pX~O!g/ZO~O!U*RO'u%_O!g(pP~O#d/]O~O!S$sX!V$sX!a$zX~P!/ZO!V/^O!S(qX~P#,`O!a/`O~O!S/bO~Ok/fO!a#tO!h%]O(O%QO(c'fO~O'u/hO~O!a+XO~O^%fO!V/lO'l%fO~O!W/nO~P!3XO!]/oO!^/oO'v!kO(V!lO~O|/qO(V!lO~O#T/rO~O'u&POd'`X!V'`X~O!V*kOd(Pa~Od/wO~Oy/xOz/xO|/yOgva(jva(kva!Vva#Xva~Odva#yva~P$ hOy)uO|)vOg$la(j$la(k$la!V$la#X$la~Od$la#y$la~P$!^Oy)uO|)vOg$na(j$na(k$na!V$na#X$na~Od$na#y$na~P$#PO#d/{O~Od$|a!V$|a#X$|a#y$|a~P!0dO!a#tO~O#d0OO~O!V*|O^(ua'l(ua~Oy#xOz#yO|#zO!f#vO!h#wO(SVOP!niX!nik!ni!V!ni!e!ni!l!ni#g!ni#h!ni#i!ni#j!ni#k!ni#l!ni#m!ni#n!ni#o!ni#q!ni#s!ni#u!ni#v!ni(c!ni(j!ni(k!ni~O^!ni'l!ni'j!ni!S!ni!g!nio!ni!X!ni%a!ni!a!ni~P$$nOg.TO!X'UO%a.SO~Oi0YO'u0XO~P!1UO!a+XO^'}a!X'}a'l'}a!V'}a~O#d0`O~OXYX!VcX!WcX~O!V0aO!W(yX~O!W0cO~OX0dO~O'u+aO'wTO'zUO~O!X%vO'u%_O]'hX!V'hX~O!V+fO](xa~O!g0iO~P!7sOX0lO~O]0mO~O#X0pO~Og0sO!X${O~O(V(sO!W(vP~Og0|O!X0yO%a0{O(O%QO~OX1WO!V1UO!W(wX~O!W1XO~O]1ZO^%fO'l%fO~O'u#lO'wTO'zUO~O#X$dO#{$dOP(XXX(XXk(XXy(XXz(XX|(XX!V(XX!e(XX!h(XX!l(XX#g(XX#h(XX#i(XX#j(XX#k(XX#l(XX#m(XX#n(XX#q(XX#s(XX#u(XX#v(XX(S(XX(c(XX(j(XX(k(XX~O#o1^O&R1_O^(XX!f(XX~P$+dO#X$dO#o1^O&R1_O~O^1aO~P%TO^1cO~O&[1fOP&YiQ&YiV&Yi^&Yia&Yib&Yii&Yik&Yil&Yim&Yis&Yiu&Yiw&Yi|&Yi!Q&Yi!R&Yi!X&Yi!c&Yi!h&Yi!k&Yi!l&Yi!m&Yi!o&Yi!q&Yi!t&Yi!x&Yi#p&Yi$Q&Yi$U&Yi%`&Yi%b&Yi%d&Yi%e&Yi%f&Yi%i&Yi%k&Yi%n&Yi%o&Yi%q&Yi%}&Yi&T&Yi&V&Yi&X&Yi&Z&Yi&^&Yi&d&Yi&j&Yi&l&Yi&n&Yi&p&Yi&r&Yi'j&Yi'u&Yi'w&Yi'z&Yi(S&Yi(b&Yi(o&Yi!W&Yi_&Yi&a&Yi~O_1lO!W1jO&a1kO~P`O!XXO!h1nO~O&h,iOP&ciQ&ciV&ci^&cia&cib&cii&cik&cil&cim&cis&ciu&ciw&ci|&ci!Q&ci!R&ci!X&ci!c&ci!h&ci!k&ci!l&ci!m&ci!o&ci!q&ci!t&ci!x&ci#p&ci$Q&ci$U&ci%`&ci%b&ci%d&ci%e&ci%f&ci%i&ci%k&ci%n&ci%o&ci%q&ci%}&ci&T&ci&V&ci&X&ci&Z&ci&^&ci&d&ci&j&ci&l&ci&n&ci&p&ci&r&ci'j&ci'u&ci'w&ci'z&ci(S&ci(b&ci(o&ci!W&ci&[&ci_&ci&a&ci~O!S1tO~O!V!Za!W!Za~P#ByOl!mO|!nO!U1zO(V!lO!V'OX!W'OX~P?wO!V,yO!W(Za~O!V'UX!W'UX~P!6{O!V,|O!W(ia~O!W2RO~P'WO^%fO#X2[O'l%fO~O^%fO!a#tO#X2[O'l%fO~O^%fO!a#tO!l2`O#X2[O'l%fO(c'fO~O^%fO'l%fO~P!7sO!V$`Oo$ka~O!S&}i!V&}i~P!7sO!V'zO!S(Yi~O!V(RO!S(gi~O!S(hi!V(hi~P!7sO!V(ei!g(ei^(ei'l(ei~P!7sO#X2bO!V(ei!g(ei^(ei'l(ei~O!V(_O!g(di~O|%`O!X%aO!x]O#b2gO#c2fO'u%_O~O|%`O!X%aO#c2fO'u%_O~Og2nO!X'UO%a2mO~Og2nO!X'UO%a2mO(O%QO~O#dvaPvaXva^vakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva'lva(Sva(cva!gva!Sva'jvaova!Xva%ava!ava~P$ hO#d$laP$laX$la^$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la'l$la(S$la(c$la!g$la!S$la'j$lao$la!X$la%a$la!a$la~P$!^O#d$naP$naX$na^$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na'l$na(S$na(c$na!g$na!S$na'j$nao$na!X$na%a$na!a$na~P$#PO#d$|aP$|aX$|a^$|ak$|az$|a!V$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a'l$|a(S$|a(c$|a!g$|a!S$|a'j$|a#X$|ao$|a!X$|a%a$|a!a$|a~P#,`O^#[q!V#[q'l#[q'j#[q!S#[q!g#[qo#[q!X#[q%a#[q!a#[q~P!7sOd'PX!V'PX~P!'oO!V.^Od(]a~O!U2vO!V'QX!g'QX~P%TO!V.aO!g(^a~O!V.aO!g(^a~P!7sO!S2yO~O#y!ja!W!ja~PJqO#y!ba!V!ba!W!ba~P#ByO#y!na!W!na~P!:^O#y!pa!W!pa~P!pO^#wy!V#wy'l#wy'j#wy!S#wy!g#wyo#wy!X#wy%a#wy!a#wy~P!7sOg;lOy)uO|)vO(j)xO(k)zO~OP#fiX#fik#fiz#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(S#fi(c#fi!V#fi!W#fi~P%AhO!f#vOP(RXX(RXg(RXk(RXy(RXz(RX|(RX!e(RX!h(RX!l(RX#g(RX#h(RX#i(RX#j(RX#k(RX#l(RX#m(RX#n(RX#o(RX#q(RX#s(RX#u(RX#v(RX#y(RX(S(RX(c(RX(j(RX(k(RX!V(RX!W(RX~O#y#zi!V#zi!W#zi~P#ByO#y!ni!W!ni~P$$nO!W6_O~O!V'Za!W'Za~P#ByO!a#tO(c'fO!V'[a!g'[a~O!V/UO!g(pi~O!V/UO!a#tO!g(pi~Od$uq!V$uq#X$uq#y$uq~P!0dO!S'^a!V'^a~P#,`O!a6fO~O!V/^O!S(qi~P#,`O!V/^O!S(qi~O!S6jO~O!a#tO#o6oO~Ok6pO!a#tO(c'fO~O!S6rO~Od$wq!V$wq#X$wq#y$wq~P!0dO^$iy!V$iy'l$iy'j$iy!S$iy!g$iyo$iy!X$iy%a$iy!a$iy~P!7sO!a5jO~O!V4VO!X(ra~O^#[y!V#[y'l#[y'j#[y!S#[y!g#[yo#[y!X#[y%a#[y!a#[y~P!7sOX6wO~O!V0aO!W(yi~O]6}O~O(V(sO!V'cX!W'cX~O!V4mO!W(va~OikO'u7UO~P.bO!W7XO~P%$wOl!mO|7YO'wTO'zUO(V!lO(b!rO~O!X0yO~O!X0yO%a7[O~Og7_O!X0yO%a7[O~OX7dO!V'fa!W'fa~O!V1UO!W(wi~O!g7hO~O!g7iO~O!g7lO~O!g7lO~P%TO^7nO~O!a7oO~O!g7pO~O!V(hi!W(hi~P#ByO^%fO#X7xO'l%fO~O!V(ey!g(ey^(ey'l(ey~P!7sO!V(_O!g(dy~O!X'UO%a7{O~O#d$uqP$uqX$uq^$uqk$uqz$uq!V$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq'l$uq(S$uq(c$uq!g$uq!S$uq'j$uq#X$uqo$uq!X$uq%a$uq!a$uq~P#,`O#d$wqP$wqX$wq^$wqk$wqz$wq!V$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq'l$wq(S$wq(c$wq!g$wq!S$wq'j$wq#X$wqo$wq!X$wq%a$wq!a$wq~P#,`O!V'Qi!g'Qi~P!7sO#y#[q!V#[q!W#[q~P#ByOy/xOz/xO|/yOPvaXvagvakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva#yva(Sva(cva(jva(kva!Vva!Wva~Oy)uO|)vOP$laX$lag$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la#y$la(S$la(c$la(j$la(k$la!V$la!W$la~Oy)uO|)vOP$naX$nag$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na#y$na(S$na(c$na(j$na(k$na!V$na!W$na~OP$|aX$|ak$|az$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a#y$|a(S$|a(c$|a!V$|a!W$|a~P%AhO#y$hq!V$hq!W$hq~P#ByO#y$iq!V$iq!W$iq~P#ByO!W8VO~O#y8WO~P!0dO!a#tO!V'[i!g'[i~O!a#tO(c'fO!V'[i!g'[i~O!V/UO!g(pq~O!S'^i!V'^i~P#,`O!V/^O!S(qq~O!S8^O~P#,`O!S8^O~Od(Qy!V(Qy~P!0dO!V'aa!X'aa~P#,`O^%Tq!X%Tq'l%Tq!V%Tq~P#,`OX8cO~O!V0aO!W(yq~O#X8gO!V'ca!W'ca~O!V4mO!W(vi~P#ByOPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(SYX(cYX(jYX(kYX~O!a%RX#o%RX~P&2hO!X0yO%a8kO~O'wTO'zUO(V8pO~O!V1UO!W(wq~O!g8sO~O!g8tO~O!g8uO~O!g8uO~P%TO#X8xO!V#ay!W#ay~O!V#ay!W#ay~P#ByO!X'UO%a8}O~O#y#wy!V#wy!W#wy~P#ByOP$uiX$uik$uiz$ui!e$ui!f$ui!h$ui!l$ui#g$ui#h$ui#i$ui#j$ui#k$ui#l$ui#m$ui#n$ui#o$ui#q$ui#s$ui#u$ui#v$ui#y$ui(S$ui(c$ui!V$ui!W$ui~P%AhOy)uO|)vO(k)zOP%XiX%Xig%Xik%Xiz%Xi!e%Xi!f%Xi!h%Xi!l%Xi#g%Xi#h%Xi#i%Xi#j%Xi#k%Xi#l%Xi#m%Xi#n%Xi#o%Xi#q%Xi#s%Xi#u%Xi#v%Xi#y%Xi(S%Xi(c%Xi(j%Xi!V%Xi!W%Xi~Oy)uO|)vOP%ZiX%Zig%Zik%Ziz%Zi!e%Zi!f%Zi!h%Zi!l%Zi#g%Zi#h%Zi#i%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#q%Zi#s%Zi#u%Zi#v%Zi#y%Zi(S%Zi(c%Zi(j%Zi(k%Zi!V%Zi!W%Zi~O#y$iy!V$iy!W$iy~P#ByO#y#[y!V#[y!W#[y~P#ByO!a#tO!V'[q!g'[q~O!V/UO!g(py~O!S'^q!V'^q~P#,`O!S9UO~P#,`O!V0aO!W(yy~O!V4mO!W(vq~O!X0yO%a9]O~O!g9`O~O!X'UO%a9eO~OP$uqX$uqk$uqz$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq#y$uq(S$uq(c$uq!V$uq!W$uq~P%AhOP$wqX$wqk$wqz$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq#y$wq(S$wq(c$wq!V$wq!W$wq~P%AhOd%]!Z!V%]!Z#X%]!Z#y%]!Z~P!0dO!V'cq!W'cq~P#ByO!V#a!Z!W#a!Z~P#ByO#d%]!ZP%]!ZX%]!Z^%]!Zk%]!Zz%]!Z!V%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z'l%]!Z(S%]!Z(c%]!Z!g%]!Z!S%]!Z'j%]!Z#X%]!Zo%]!Z!X%]!Z%a%]!Z!a%]!Z~P#,`OP%]!ZX%]!Zk%]!Zz%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z#y%]!Z(S%]!Z(c%]!Z!V%]!Z!W%]!Z~P%AhOo(WX~P1jO'v!kO~P!){O!ScX!VcX#XcX~P&2hOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#XYX#XcX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(SYX(cYX(jYX(kYX~O!acX!gYX!gcX(ccX~P&HOOP9pOQ9pOa;aOb!hOikOk9pOlkOmkOskOu9pOw9pO|WO!QkO!RkO!XXO!c9sO!hZO!k9pO!l9pO!m9pO!o9tO!q9wO!t!gO$Q!jO$UfO'u)TO'wTO'zUO(SVO(b[O(o;_O~O!V:UO!W$ka~Oi%ROk$sOl$rOm$rOs%SOu%TOw:[O|$zO!X${O!c;fO!h$wO#c:bO$Q%XO$m:^O$o:`O$r%YO'u(kO'wTO'zUO(O%QO(S$tO~O#p)[O~P&LtO!WYX!WcX~P&HOO#d9xO~O!a#tO#d9xO~O#X:YO~O#o9}O~O#X:dO!V(hX!W(hX~O#X:YO!V(fX!W(fX~O#d:eO~Od:gO~P!0dO#d:lO~O#d:mO~O!a#tO#d:nO~O!a#tO#d:eO~O#y:oO~P#ByO#d:pO~O#d:qO~O#d:rO~O#d:sO~O#d:tO~O#d:uO~O#y:vO~P!0dO#y:wO~P!0dO$U~!f!|!}#P#Q#T#b#c#n(o$m$o$r%U%`%a%b%i%k%n%o%q%s~'pR$U(o#h!R'n'v#il#g#jky'o(V'o'u$W$Y$W~",goto:"$&O(}PPPP)OP)RP)cP*r.uPPPP5WPP5mP;h>mP?QP?QPPP?QP@pP?QP?QP?QP@tPP@yPAdPFZPPPF_PPPPF_I_PPPIeJ`PF_PLmPPPPN{F_PPPF_PF_P!#ZF_P!&n!'p!'yP!(l!(p!(lPPPPP!+z!'pPP!,h!-bP!0UF_F_!0Z!3d!7x!7x!;mPPP!;tF_PPPPPPPPPPP!?QP!@cPPF_!ApPF_PF_F_F_F_PF_!CSPP!FZP!I^P!Ib!Il!Ip!IpP!FWP!It!ItP!LwP!L{F_F_!MR#!T?QP?QP?Q?QP##_?Q?Q#%X?Q#'f?Q#)Y?Q?Q#)v#+r#+r#+v#,O#+r#,WP#+rP?Q#,p?Q#-x?Q?Q5WPPP#/TPPP#/m#/mP#/mP#0S#/mPP#0YP#0PP#0P#0l#0P#1W#1^5T)R#1a)RP#1h#1h#1hP)RP)RP)RP)RPP)RP#1n#1qP#1q)RP#1uP#1xP)RP)RP)RP)RP)RP)R)RPP#2O#2U#2`#2f#2l#2r#2x#3W#3^#3d#3n#3t#4O#4_#4e#5U#5h#5n#5t#6S#6i#7y#8X#8_#8e#8k#8q#8{#9R#9X#9c#9u#9{PPPPPPPPPP#:RPPPPPPP#:u#=|P#?]#?d#?lPPPP#Cv#Fl#MS#MV#MY#NR#NU#NX#N`#NhPP#Nn#Nr$ j$!i$!m$#RPP$#V$#]$#aP$#d$#h$#k$$a$$w$%_$%c$%f$%i$%o$%r$%v$%zR!zRmqOXs!Y#b%e&h&j&k&m,a,f1f1iY!tQ'U-R0y4tQ%kuQ%sxQ%z{Q&`!US&|!d,yQ'[!hS'b!q!wS*^${*cQ+_%tQ+l%|Q,Q&YQ-P'TQ-Z']Q-c'cQ/o*eQ1T,RR:c9t$|dOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{,^,a,f-V-_-m-s.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2v4q4{5]5^5a5t7Y7_7n7xS#o]9q!r)V$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bQ*n%UQ+d%vQ,S&]Q,Z&eQ.W:ZQ0V+VQ0Z+XQ0f+eQ1],XQ2j.TQ4_0aQ5S1UQ6Q2nQ6W:[Q6y4`R8O6R&zkOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bt!mQ!q!t!w!x&|'T'U'b'c'd,y-P-R-c0y4t4v$Y$ri#t#v$b$c$w$z%V%W%[)p)y){)|*T*Z*i*j+U+X+p+s.S.^/]/^/`/{0p0s0{2m3e3o3w3}4V4X4z6O6f6o7[7{8W8k8}9]9e:W:X:]:^:_:`:a:b:h:i:j:k:l:m:p:q:r:s:v:w;_;g;h;k;lQ%}{Q&z!dS'Q%a,|Q+d%vS.|)v/OQ/z*rQ0f+eQ0k+kQ1[,WQ1],XQ4_0aQ4h0mQ5V1WQ5W1ZQ6y4`Q6|4eQ7g5YQ8f6}R8q7dpnOXs!U!Y#b%e&_&h&j&k&m,a,f1f1iR,U&a&t^OPXYstuvy!Y!_!f!i!n#Q#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y'W'h'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;a;b[#ZWZ#U#X&}'x!S%bm#f#g#j%]%`(R(](^(_*y*z*|,],s-q-w-x-y-{1n2f2g5j5{Q%nwQ%rxS%w{%|Q&T!SQ'X!gQ'Z!hQ(f#qS*Q$w*US+^%s%tQ+b%vQ+{&WQ,P&YS-Y'[']Q.V(gQ/Y*RQ0_+_Q0e+eQ0g+fQ0j+jQ1O+|S1S,Q,RQ2W-ZQ3f/UQ4^0aQ4b0dQ4g0lQ5R1TQ6c3gQ6x4`Q6{4dQ8b6wR9W8cv$yi#v%V%W%[)y){*T*i*j.^/]/{3e3}8W;_;g;h!S%px!h!s%r%s%t&{'Z'[']'a'k*]+^+_,v-Y-Z-b/g0_2P2W2_3yQ+W%nQ+q&QQ+t&RQ,O&YQ.U(fQ0}+{U1R,P,Q,RQ2o.VQ4|1OS5Q1S1TQ7c5R!z;c#t$b$c$w$z)p)|*Z+U+X+p+s.S/^/`0p0s0{2m3o3w4V4X4z6O6f6o7[7{8k8}9]9e:]:_:a:h:j:l:p:r:v;k;lg;d:W:X:^:`:b:i:k:m:q:s:wW%Oi%Q*k;_S&Q!P&_Q&R!QQ&S!RR+o&O$Z$}i#t#v$b$c$w$z%V%W%[)p)y){)|*T*Z*i*j+U+X+p+s.S.^/]/^/`/{0p0s0{2m3e3o3w3}4V4X4z6O6f6o7[7{8W8k8}9]9e:W:X:]:^:_:`:a:b:h:i:j:k:l:m:p:q:r:s:v:w;_;g;h;k;lT)q$t)rV*o%U:Z:[U'Q!d%a,|S(t#x#yQ+i%yS.O(b(cQ0t+uQ4O/xR7R4m&zkOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;b$i$_c#W#c%i%j%l'w'}(i(p(x(y(z({(|(})O)P)Q)R)S)U)X)])g+S+h,w-f-k-p-r.].c.g.i.j.k.z/|1u1x2Y2a2u2z2{2|2}3O3P3Q3R3S3T3U3V3W3Z3[3a4S4[5m5s5x6U6V6[6]7T7r7v8P8T8U8z9Y9a9r;UT#RV#S&{kOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bQ'O!dR1{,yv!mQ!d!q!t!w!x&|'T'U'b'c'd,y-P-R-c0y4t4vS*]${*cS/g*^*eQ/p*fQ0v+wQ3y/oR3|/rlqOXs!Y#b%e&h&j&k&m,a,f1f1iQ&o!]Q'l!vS(h#s9xQ+[%qQ+y&TQ+z&VQ-W'YQ-e'eS.[(m:eS/}*w:nQ0]+]Q0x+xQ1m,hQ1o,iQ1w,tQ2U-XQ2X-]S4T0O:tQ4Y0^S4]0`:uQ5l1yQ5p2VQ5u2^Q6v4ZQ7s5nQ7t5qQ7w5vR8w7p$d$^c#W#c%j%l'w'}(i(p(x(y(z({(|(})O)P)Q)R)S)U)X)])g+S+h,w-f-k-p-r.].c.g.j.k.z/|1u1x2Y2a2u2z2{2|2}3O3P3Q3R3S3T3U3V3W3Z3[3a4S4[5m5s5x6U6V6[6]7T7r7v8P8T8U8z9Y9a9r;US(e#n'_U*h$|(l3YS+R%i.iQ2k0VQ5}2jQ7}6QR9O8O$d$]c#W#c%j%l'w'}(i(p(x(y(z({(|(})O)P)Q)R)S)U)X)])g+S+h,w-f-k-p-r.].c.g.j.k.z/|1u1x2Y2a2u2z2{2|2}3O3P3Q3R3S3T3U3V3W3Z3[3a4S4[5m5s5x6U6V6[6]7T7r7v8P8T8U8z9Y9a9r;US(d#n'_S(v#y$^S+Q%i.iS.P(c(eQ.l)WQ0S+RR2h.Q&zkOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bS#o]9qQ&j!WQ&k!XQ&m!ZQ&n![R1e,dQ'V!gQ+T%nQ-U'XS.R(f+WQ2S-TW2l.U.V0U0WQ5o2TU5|2i2k2oS7z5}6PS8|7|7}S9c8{9OQ9k9dR9n9lU!uQ'U-RT4r0y4t!O_OXZ`s!U!Y#b#f%]%e&_&a&h&j&k&m(_,a,f-x1f1i]!oQ!q'U-R0y4tT#o]9q%WzOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&e&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{+V,^,a,f-V-_-m-s.T.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2n2v4q4{5]5^5a5t6R7Y7_7n7xS(t#x#yS.O(b(c!s:{$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bY!sQ'U-R0y4tQ'a!qS'k!t!wS'm!x4vS-b'b'cQ-d'dR2_-cQ'j!sS(Z#e1`S-a'a'mQ/X*QQ/e*]Q2`-dQ3k/YS3t/f/pQ6b3fS6m3z3|Q8Y6cR8a6pQ#ubQ'i!sS(Y#e1`S([#k*vQ*x%^Q+Y%oQ+`%uU-`'a'j'mQ-t(ZQ/W*QQ/d*]Q/j*`Q0[+ZQ1P+}S2]-a-dQ2e-|S3j/X/YS3s/e/pQ3v/iQ3x/kQ5O1QQ5w2`Q6a3fQ6e3kS6i3t3|Q6n3{Q7a5PS8X6b6cQ8]6jQ8_6mQ8n7bQ9S8YQ9T8^Q9V8aQ9_8oQ9g9UQ;O:yQ;Z;SR;[;TV!uQ'U-R%WaOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&e&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{+V,^,a,f-V-_-m-s.T.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2n2v4q4{5]5^5a5t6R7Y7_7n7xS#uy!i!r:x$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bR;O;a%WbOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&e&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{+V,^,a,f-V-_-m-s.T.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2n2v4q4{5]5^5a5t6R7Y7_7n7xQ%^j!S%ox!h!s%r%s%t&{'Z'[']'a'k*]+^+_,v-Y-Z-b/g0_2P2W2_3yS%uy!iQ+Z%pQ+}&YW1Q,O,P,Q,RU5P1R1S1TS7b5Q5RQ8o7c!r:y$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bQ;S;`R;T;a$zeOPXYstuv!Y!_!f!n#Q#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&h&j&k&m&q&y'W'h'z(Q(X(m(q(u)t*w*{+V,^,a,f-V-_-m-s.T.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2n2v4q4{5]5^5a5t6R7Y7_7n7xY#`WZ#U#X'x!S%bm#f#g#j%]%`(R(](^(_*y*z*|,],s-q-w-x-y-{1n2f2g5j5{Q,[&e!p:z$Z$l)i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bR:}&}S'R!d%aR1},|$|dOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{,^,a,f-V-_-m-s.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2v4q4{5]5^5a5t7Y7_7n7x!r)V$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bQ,Z&eQ0V+VQ2j.TQ6Q2nR8O6R!f$Tc#W%i'w'}(i(p)P)Q)R)S)X)]+h-f-k-p-r.].c.z/|2Y2a2u3W4S4[5s5x6U7v8z9r!T:P)U)g,w.i1u1x2z3S3T3U3V3Z3a5m6V6[6]7T7r8P8T8U9Y9a;U!b$Vc#W%i'w'}(i(p)R)S)X)]+h-f-k-p-r.].c.z/|2Y2a2u3W4S4[5s5x6U7v8z9r!P:R)U)g,w.i1u1x2z3U3V3Z3a5m6V6[6]7T7r8P8T8U9Y9a;U!^$Zc#W%i'w'}(i(p)X)]+h-f-k-p-r.].c.z/|2Y2a2u3W4S4[5s5x6U7v8z9rQ3e/Sz;b)U)g,w.i1u1x2z3Z3a5m6V6[6]7T7r8P8T8U9Y9a;UQ;g;iR;h;j&zkOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bS$mh$nR3^.o'RgOPWXYZhstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l$n%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.o.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bT$if$oQ$gfS)`$j)dR)l$oT$hf$oT)b$j)d'RhOPWXYZhstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$Z$`$d$l$n%e%k%x&a&d&e&h&j&k&m&q&y&}'W'h'x'z(Q(X(m(q(u)i)t*w*{+V,^,a,f,r,u-V-_-m-s.T.a.h.o.p/y0O0`0|1^1_1a1c1f1i1k1z2[2b2n2v3]4o4q4{5]5^5a5k5t6R7Y7_7n7x8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;bT$mh$nQ$phR)k$n%WjOPWXYZstuv!Y!_!f!n#Q#U#X#b#m#s#w#z#}$O$P$Q$R$S$T$U$V$W$X$`$d%e%k%x&a&d&e&h&j&k&m&q&y'W'h'x'z(Q(X(m(q(u)t*w*{+V,^,a,f-V-_-m-s.T.a.h/y0O0`0|1^1_1a1c1f1i1k2[2b2n2v4q4{5]5^5a5t6R7Y7_7n7x!s;`$Z$l&})i,r,u.p1z3]4o5k8g8x9p9s9t9w9x9y9z9{9|9}:O:P:Q:R:S:T:U:Y:c:d:e:g:n:o:t:u;b#alOPXZs!Y!_!n#Q#b#m#z$l%e&a&d&e&h&j&k&m&q&y'W(u)i*{+V,^,a,f-V.T.p/y0|1^1_1a1c1f1i1k2n3]4q4{5]5^5a6R7Y7_7nv$|i#v%V%W%[)y){*T*i*j.^/]/{3e3}8W;_;g;h!z(l#t$b$c$w$z)p)|*Z+U+X+p+s.S/^/`0p0s0{2m3o3w4V4X4z6O6f6o7[7{8k8}9]9e:]:_:a:h:j:l:p:r:v;k;lQ*s%YQ.{)ug3Y:W:X:^:`:b:i:k:m:q:s:wv$xi#v%V%W%[)y){*T*i*j.^/]/{3e3}8W;_;g;hQ*V$yS*`${*cQ*t%ZQ/k*a!z;Q#t$b$c$w$z)p)|*Z+U+X+p+s.S/^/`0p0s0{2m3o3w4V4X4z6O6f6o7[7{8k8}9]9e:]:_:a:h:j:l:p:r:v;k;lf;R:W:X:^:`:b:i:k:m:q:s:wQ;V;cQ;W;dQ;X;eR;Y;fv$|i#v%V%W%[)y){*T*i*j.^/]/{3e3}8W;_;g;h!z(l#t$b$c$w$z)p)|*Z+U+X+p+s.S/^/`0p0s0{2m3o3w4V4X4z6O6f6o7[7{8k8}9]9e:]:_:a:h:j:l:p:r:v;k;lg3Y:W:X:^:`:b:i:k:m:q:s:wloOXs!Y#b%e&h&j&k&m,a,f1f1iQ*Y$zQ,o&tQ,p&vR3n/^$Y$}i#t#v$b$c$w$z%V%W%[)p)y){)|*T*Z*i*j+U+X+p+s.S.^/]/^/`/{0p0s0{2m3e3o3w3}4V4X4z6O6f6o7[7{8W8k8}9]9e:W:X:]:^:_:`:a:b:h:i:j:k:l:m:p:q:r:s:v:w;_;g;h;k;lQ+r&RQ0r+tQ4k0qR7Q4lT*b${*cS*b${*cT4s0y4tS/i*_4qT3{/q7YQ+Y%oQ/j*`Q0[+ZQ1P+}Q5O1QQ7a5PQ8n7bR9_8on)y$u(n*u/[/s/t2s3l4R6`6q9R;P;];^!W:h(j)Z*P*X.Z.w/S/a0T0o0q2r3m3q4j4l6S6T6g6k6s6u8[8`9f;i;j]:i3X6Z8Q9P9Q9op){$u(n*u/Q/[/s/t2s3l4R6`6q9R;P;];^!Y:j(j)Z*P*X.Z.w/S/a0T0o0q2p2r3m3q4j4l6S6T6g6k6s6u8[8`9f;i;j_:k3X6Z8Q8R9P9Q9opnOXs!U!Y#b%e&_&h&j&k&m,a,f1f1iQ&[!TR,^&epnOXs!U!Y#b%e&_&h&j&k&m,a,f1f1iR&[!TQ+v&SR0n+oqnOXs!U!Y#b%e&_&h&j&k&m,a,f1f1iQ0z+{S4y0}1OU7Z4w4x4|S8j7]7^S9Z8i8lQ9h9[R9m9iQ&c!UR,V&_R5V1WS%w{%|R0g+fQ&h!VR,a&iR,g&nT1g,f1iR,k&oQ,j&oR1p,kQ'o!yR-g'oQsOQ#bXT%hs#bQ!|TR'q!|Q#PUR's#PQ)r$tR.x)rQ#SVR'u#SQ#VWU'{#V'|-nQ'|#WR-n'}Q,z'OR1|,zQ._(nR2t._Q.b(pS2w.b2xR2x.cQ-R'UR2Q-RY!qQ'U-R0y4tR'`!qS#]W%`U(S#](T-oQ(T#^R-o(OQ,}'RR2O,}r`OXs!U!Y#b%e&_&a&h&j&k&m,a,f1f1iS#fZ%]U#p`#f-xR-x(_Q(`#hQ-u([W-}(`-u2c5yQ2c-vR5y2dQ)d$jR.q)dQ$nhR)j$nQ$acU)Y$a-j:VQ-j9rR:V)gQ/V*QW3h/V3i6d8ZU3i/W/X/YS6d3j3kR8Z6e#m)w$u(j(n)Z*P*X*p*q*u.X.Y.Z.w/Q/R/S/[/a/s/t0T0o0q2p2q2r2s3X3l3m3q4R4j4l6S6T6X6Y6Z6`6g6k6q6s6u8Q8R8S8[8`9P9Q9R9f9o;P;];^;i;jQ/_*XU3p/_3r6hQ3r/aR6h3qQ*c${R/m*cQ*l%PR/v*lQ4W0TR6t4WQ*}%cR0R*}Q4n0tS7S4n8hR8h7TQ+x&TR0w+xQ4t0yR7W4tQ1V,SS5T1V7eR7e5VQ0b+bW4a0b4c6z8dQ4c0eQ6z4bR8d6{Q+g%wR0h+gQ1i,fR5e1iWrOXs#bQ&l!YQ+P%eQ,`&hQ,b&jQ,c&kQ,e&mQ1d,aS1g,f1iR5d1fQ%gpQ&p!^Q&s!`Q&u!aQ&w!bQ'g!sQ+O%dQ+[%qQ+n%}Q,U&cQ,m&rW-^'a'i'j'mQ-e'eQ/l*bQ0]+]S1Y,V,YQ1q,lQ1r,oQ1s,pQ2X-]W2Z-`-a-d-fQ4Y0^Q4f0kQ4i0oQ4}1PQ5X1[Q5c1eU5r2Y2]2`Q5u2^Q6v4ZQ7O4hQ7P4jQ7V4sQ7`5OQ7f5WS7u5s5wQ7w5vQ8e6|Q8m7aQ8r7gQ8y7vQ9X8fQ9^8nQ9b8zR9j9_Q%qxQ'Y!hQ'e!sU+]%r%s%tQ,t&{U-X'Z'[']S-]'a'kQ/c*]S0^+^+_Q1y,vS2V-Y-ZQ2^-bQ3u/gQ4Z0_Q5n2PQ5q2WQ5v2_R6l3yS$vi;_R*m%QU%Pi%Q;_R/u*kQ$uiS(j#t+XQ(n#vS)Z$b$cQ*P$wQ*X$zQ*p%VQ*q%WQ*u%[Q.X:]Q.Y:_Q.Z:aQ.w)pQ/Q)yQ/R){Q/S)|Q/[*TQ/a*ZQ/s*iQ/t*jh0T+U.S0{2m4z6O7[7{8k8}9]9eQ0o+pQ0q+sQ2p:hQ2q:jQ2r:lQ2s.^S3X:W:XQ3l/]Q3m/^Q3q/`Q4R/{Q4j0pQ4l0sQ6S:pQ6T:rQ6X:^Q6Y:`Q6Z:bQ6`3eQ6g3oQ6k3wQ6q3}Q6s4VQ6u4XQ8Q:mQ8R:iQ8S:kQ8[6fQ8`6oQ9P:qQ9Q:sQ9R8WQ9f:vQ9o:wQ;P;_Q;];gQ;^;hQ;i;kR;j;llpOXs!Y#b%e&h&j&k&m,a,f1f1iQ!ePS#dZ#mQ&r!_U'^!n4q7YQ't#QQ(w#zQ)h$lS,Y&a&dQ,_&eQ,l&qQ,q&yQ-T'WQ.e(uQ.u)iQ0P*{Q0W+VQ1b,^Q2T-VQ2k.TQ3`.pQ4P/yQ4x0|Q5Z1^Q5[1_Q5`1aQ5b1cQ5g1kQ5}2nQ6^3]Q7^4{Q7j5]Q7k5^Q7m5aQ7}6RQ8l7_R8v7n#UcOPXZs!Y!_!n#b#m#z%e&a&d&e&h&j&k&m&q&y'W(u*{+V,^,a,f-V.T/y0|1^1_1a1c1f1i1k2n4q4{5]5^5a6R7Y7_7nQ#WWQ#cYQ%itQ%juS%lv!fS'w#U'zQ'}#XQ(i#sQ(p#wQ(x#}Q(y$OQ(z$PQ({$QQ(|$RQ(}$SQ)O$TQ)P$UQ)Q$VQ)R$WQ)S$XQ)U$ZQ)X$`Q)]$dW)g$l)i.p3]Q+S%kQ+h%xS,w&}1zQ-f'hS-k'x-mQ-p(QQ-r(XQ.](mQ.c(qQ.g9pQ.i9sQ.j9tQ.k9wQ.z)tQ/|*wQ1u,rQ1x,uQ2Y-_Q2a-sQ2u.aQ2z9xQ2{9yQ2|9zQ2}9{Q3O9|Q3P9}Q3Q:OQ3R:PQ3S:QQ3T:RQ3U:SQ3V:TQ3W.hQ3Z:YQ3[:cQ3a:UQ4S0OQ4[0`Q5m:dQ5s2[Q5x2bQ6U2vQ6V:eQ6[:gQ6]:nQ7T4oQ7r5kQ7v5tQ8P:oQ8T:tQ8U:uQ8z7xQ9Y8gQ9a8xQ9r#QR;U;bR#YWR'P!dY!sQ'U-R0y4tS&{!d,yQ'a!qS'k!t!wS'm!x4vS,v&|'TS-b'b'cQ-d'dQ2P-PR2_-cR(o#vR(r#wQ!eQT-Q'U-R]!pQ!q'U-R0y4tQ#n]R'_9qT#iZ%]S#hZ%]S%cm,]U([#f#g#jS-v(](^Q-z(_Q0Q*|Q2d-wU2e-x-y-{S5z2f2gR7y5{`#[W#U#X%`'x(R*y-qr#eZm#f#g#j%](](^(_*|-w-x-y-{2f2g5{Q1`,]Q1v,sQ5i1nQ7q5jT:|&}*zT#_W%`S#^W%`S'y#U(RS(O#X*yS,x&}*zT-l'x-qT'S!d%aQ$jfR)n$oT)c$j)dR3_.oT*S$w*UR*[$zQ0U+UQ2i.SQ4w0{Q6P2mQ7]4zQ7|6OQ8i7[Q8{7{Q9[8kQ9d8}Q9i9]R9l9elqOXs!Y#b%e&h&j&k&m,a,f1f1iQ&b!UR,U&_rmOXs!T!U!Y#b%e&_&h&j&k&m,a,f1f1iR,]&eT%dm,]R0u+uR,T&]Q%{{R+m%|R+c%vT&f!V&iT&g!V&iT1h,f1i",nodeNames:"⚠ ArithOp ArithOp LineComment BlockComment Script ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:366,context:trackNewline,nodeProps:[["group",-26,6,14,16,62,199,203,207,208,210,213,216,226,228,234,236,238,240,243,249,255,257,259,261,263,265,266,"Statement",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,103,104,113,114,131,134,136,137,138,139,141,142,162,163,165,"Expression",-23,24,26,30,34,36,38,166,168,170,171,173,174,175,177,178,179,181,182,183,193,195,197,198,"Type",-3,84,96,102,"ClassItem"],["openedBy",31,"InterpolationStart",50,"[",54,"{",69,"(",143,"JSXStartTag",155,"JSXStartTag JSXStartCloseTag"],["closedBy",33,"InterpolationEnd",44,"]",55,"}",70,")",144,"JSXSelfCloseEndTag JSXEndTag",160,"JSXEndTag"]],propSources:[jsHighlight],skippedNodes:[0,3,4,269],repeatNodeCount:33,tokenData:"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$d&j'xp'{!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$d&j'{!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'{!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$d&j'xpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'xpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'xp'{!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$d&j'xp'{!b'n(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'y#S$d&j'o(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$d&j'xp'{!b'o(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$d&j!l$Ip'xp'{!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#q$Id$d&j'xp'{!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#q$Id$d&j'xp'{!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'w$(n$d&j'{!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$d&j'{!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$d&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$_#t$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$_#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$_#t$d&j'{!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'{!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$_#t'{!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$d&j'xp'{!bOY%ZYZ&cZr%Zrs&}st%Ztu`k$d&j'xp'{!b(V!LY'u&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$d&j'xp'{!b$W#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$d&j'xp'{!b#i$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$d&j#{$Id'xp'{!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(k%Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$d&j'xp'{!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$d&j#y%Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$d&j'xp'{!b'o(;d(V!LY'u&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P",tokenizers:[noSemicolon,incdecToken,2,3,4,5,6,7,8,9,10,11,12,13,insertSemicolon,new LocalTokenGroup("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(U~~",141,327),new LocalTokenGroup("j~RQYZXz{^~^O'r~~aP!P!Qd~iO's~~",25,309)],topRules:{Script:[0,5],SingleExpression:[1,267],SingleClassItem:[2,268]},dialects:{jsx:12810,ts:12812},dynamicPrecedences:{76:1,78:1,163:1,191:1},specialized:[{term:313,get:n=>spec_identifier$1[n]||-1},{term:329,get:n=>spec_word[n]||-1},{term:67,get:n=>spec_LessThan[n]||-1}],tokenPrec:12836}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),snippetCompletion("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),snippetCompletion(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),snippetCompletion(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),snippetCompletion(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],cache=new NodeWeakMap,ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function defID(n){return(e,s)=>{let o=e.node.getChild("VariableDefinition");return o&&s(o,n),!0}}const functionContext=["FunctionDeclaration"],gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>!0,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(n,e){n.matchContext(functionContext)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function getScope(n,e){let s=cache.get(e);if(s)return s;let o=[],a=!0;function l(c,u){let f=n.sliceString(c.from,c.to);o.push({label:f,type:u})}return e.cursor(IterMode.IncludeAnonymous).iterate(c=>{if(a)a=!1;else if(c.name){let u=gatherCompletions[c.name];if(u&&u(c,l)||ScopeNodes.has(c.name))return!1}else if(c.to-c.from>8192){for(let u of getScope(n,c.node))o.push(u);return!1}}),cache.set(e,o),o}const Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function localCompletionSource(n){let e=syntaxTree(n.state).resolveInner(n.pos,-1);if(dontComplete.indexOf(e.name)>-1)return null;let s=e.name=="VariableName"||e.to-e.from<20&&Identifier.test(n.state.sliceDoc(e.from,e.to));if(!s&&!n.explicit)return null;let o=[];for(let a=e;a;a=a.parent)ScopeNodes.has(a.name)&&(o=o.concat(getScope(n.state.doc,a)));return{options:o,from:s?e.from:n.pos,validFor:Identifier}}const javascriptLanguage=LRLanguage.define({name:"javascript",parser:parser$3.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:n=>{let e=n.textAfter,s=/^\s*\}/.test(e),o=/^\s*(case|default)\b/.test(e);return n.baseIndent+(s?0:o?1:2)*n.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:n=>n.baseIndent+n.unit,"TemplateString BlockComment":()=>null,"Statement Property":continuedIndent({except:/^{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":foldInside,BlockComment(n){return{from:n.from+2,to:n.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),jsxSublanguage={test:n=>/^JSX/.test(n.name),facet:defineLanguageFacet({commentTokens:{block:{open:"{/*",close:"*/}"}}})},typescriptLanguage=javascriptLanguage.configure({dialect:"ts"},"typescript"),jsxLanguage=javascriptLanguage.configure({dialect:"jsx",props:[sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts",props:[sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]},"typescript"),keywords$2="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(n=>({label:n,type:"keyword"}));function javascript(n={}){let e=n.jsx?n.typescript?tsxLanguage:jsxLanguage:n.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords$2)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),n.jsx?autoCloseTags$1:[]])}function findOpenTag(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}function elementName$1(n,e,s=n.length){for(let o=e==null?void 0:e.firstChild;o;o=o.nextSibling)if(o.name=="JSXIdentifier"||o.name=="JSXBuiltin"||o.name=="JSXNamespacedName"||o.name=="JSXMemberExpression")return n.sliceString(o.from,Math.min(o.to,s));return""}function isEndTag(n){return n&&(n.name=="JSXEndTag"||n.name=="JSXSelfCloseEndTag")}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),autoCloseTags$1=EditorView.inputHandler.of((n,e,s,o)=>{if((android?n.composing:n.compositionStarted)||n.state.readOnly||e!=s||o!=">"&&o!="/"||!javascriptLanguage.isActiveAt(n.state,e,-1))return!1;let{state:a}=n,l=a.changeByRange(c=>{var u;let{head:f}=c,d=syntaxTree(a).resolveInner(f,-1),g;if(d.name=="JSXStartTag"&&(d=d.parent),!(d.name=="JSXAttributeValue"&&d.to>f)){if(o==">"&&d.name=="JSXFragmentTag")return{range:EditorSelection.cursor(f+1),changes:{from:f,insert:">"}};if(o=="/"&&d.name=="JSXFragmentTag"){let b=d.parent,E=b==null?void 0:b.parent;if(b.from==f-1&&((u=E.lastChild)===null||u===void 0?void 0:u.name)!="JSXEndTag"&&(g=elementName$1(a.doc,E==null?void 0:E.firstChild,f))){let B=`/${g}>`;return{range:EditorSelection.cursor(f+B.length),changes:{from:f,insert:B}}}}else if(o==">"){let b=findOpenTag(d);if(b&&!isEndTag(b.lastChild)&&a.sliceDoc(f,f+2)!="`}}}}return{range:c}});return l.changes.empty?!1:(n.dispatch(l,{userEvent:"input.type",scrollIntoView:!0}),!0)});class CompositeBlock{static create(e,s,o,a,l){let c=a+(a<<8)+e+(s<<4)|0;return new CompositeBlock(e,s,o,c,l,[],[])}constructor(e,s,o,a,l,c,u){this.type=e,this.value=s,this.from=o,this.hash=a,this.end=l,this.children=c,this.positions=u,this.hashProp=[[NodeProp.contextHash,a]]}addChild(e,s){e.prop(NodeProp.contextHash)!=this.hash&&(e=new Tree(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(s)}toTree(e,s=this.end){let o=this.children.length-1;return o>=0&&(s=Math.max(s,this.positions[o]+this.children[o].length+this.from)),new Tree(e.types[this.type],this.children,this.positions,s-this.from).balance({makeTree:(a,l,c)=>new Tree(NodeType.none,a,l,c,this.hashProp)})}}var Type;(function(n){n[n.Document=1]="Document",n[n.CodeBlock=2]="CodeBlock",n[n.FencedCode=3]="FencedCode",n[n.Blockquote=4]="Blockquote",n[n.HorizontalRule=5]="HorizontalRule",n[n.BulletList=6]="BulletList",n[n.OrderedList=7]="OrderedList",n[n.ListItem=8]="ListItem",n[n.ATXHeading1=9]="ATXHeading1",n[n.ATXHeading2=10]="ATXHeading2",n[n.ATXHeading3=11]="ATXHeading3",n[n.ATXHeading4=12]="ATXHeading4",n[n.ATXHeading5=13]="ATXHeading5",n[n.ATXHeading6=14]="ATXHeading6",n[n.SetextHeading1=15]="SetextHeading1",n[n.SetextHeading2=16]="SetextHeading2",n[n.HTMLBlock=17]="HTMLBlock",n[n.LinkReference=18]="LinkReference",n[n.Paragraph=19]="Paragraph",n[n.CommentBlock=20]="CommentBlock",n[n.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",n[n.Escape=22]="Escape",n[n.Entity=23]="Entity",n[n.HardBreak=24]="HardBreak",n[n.Emphasis=25]="Emphasis",n[n.StrongEmphasis=26]="StrongEmphasis",n[n.Link=27]="Link",n[n.Image=28]="Image",n[n.InlineCode=29]="InlineCode",n[n.HTMLTag=30]="HTMLTag",n[n.Comment=31]="Comment",n[n.ProcessingInstruction=32]="ProcessingInstruction",n[n.URL=33]="URL",n[n.HeaderMark=34]="HeaderMark",n[n.QuoteMark=35]="QuoteMark",n[n.ListMark=36]="ListMark",n[n.LinkMark=37]="LinkMark",n[n.EmphasisMark=38]="EmphasisMark",n[n.CodeMark=39]="CodeMark",n[n.CodeText=40]="CodeText",n[n.CodeInfo=41]="CodeInfo",n[n.LinkTitle=42]="LinkTitle",n[n.LinkLabel=43]="LinkLabel"})(Type||(Type={}));class LeafBlock{constructor(e,s){this.start=e,this.content=s,this.marks=[],this.parsers=[]}}class Line{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return skipSpace(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,s=0,o=0){for(let a=s;a=e.stack[s.depth+1].value+s.baseIndent)return!0;if(s.indent>=s.baseIndent+4)return!1;let o=(n.type==Type.OrderedList?isOrderedList:isBulletList)(s,e,!1);return o>0&&(n.type!=Type.BulletList||isHorizontalRule(s,e,!1)<0)&&s.text.charCodeAt(s.pos+o-1)==n.value}const DefaultSkipMarkup={[Type.Blockquote](n,e,s){return s.next!=62?!1:(s.markers.push(elt(Type.QuoteMark,e.lineStart+s.pos,e.lineStart+s.pos+1)),s.moveBase(s.pos+(space$1(s.text.charCodeAt(s.pos+1))?2:1)),n.end=e.lineStart+s.text.length,!0)},[Type.ListItem](n,e,s){return s.indent-1?!1:(s.moveBaseColumn(s.baseIndent+n.value),!0)},[Type.OrderedList]:skipForList,[Type.BulletList]:skipForList,[Type.Document](){return!0}};function space$1(n){return n==32||n==9||n==10||n==13}function skipSpace(n,e=0){for(;es&&space$1(n.charCodeAt(e-1));)e--;return e}function isFencedCode(n){if(n.next!=96&&n.next!=126)return-1;let e=n.pos+1;for(;e-1&&n.depth==e.stack.length||o<3?-1:1}function inList(n,e){for(let s=n.stack.length-1;s>=0;s--)if(n.stack[s].type==e)return!0;return!1}function isBulletList(n,e,s){return(n.next==45||n.next==43||n.next==42)&&(n.pos==n.text.length-1||space$1(n.text.charCodeAt(n.pos+1)))&&(!s||inList(e,Type.BulletList)||n.skipSpace(n.pos+2)=48&&a<=57;){o++;if(o==n.text.length)return-1;a=n.text.charCodeAt(o)}return o==n.pos||o>n.pos+9||a!=46&&a!=41||on.pos+1||n.next!=49)?-1:o+1-n.pos}function isAtxHeading(n){if(n.next!=35)return-1;let e=n.pos+1;for(;e6?-1:s}function isSetextUnderline(n){if(n.next!=45&&n.next!=61||n.indent>=n.baseIndent+4)return-1;let e=n.pos+1;for(;e/,ProcessingEnd=/\?>/,HTMLBlockStyle=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(o);if(l)return n.append(elt(Type.Comment,s,s+1+l[0].length));let c=/^\?[^]*?\?>/.exec(o);if(c)return n.append(elt(Type.ProcessingInstruction,s,s+1+c[0].length));let u=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(o);return u?n.append(elt(Type.HTMLTag,s,s+1+u[0].length)):-1},Emphasis(n,e,s){if(e!=95&&e!=42)return-1;let o=s+1;for(;n.char(o)==e;)o++;let a=n.slice(s-1,s),l=n.slice(o,o+1),c=Punctuation.test(a),u=Punctuation.test(l),f=/\s|^$/.test(a),d=/\s|^$/.test(l),g=!d&&(!u||f||c),b=!f&&(!c||d||u),E=g&&(e==42||!b||c),B=b&&(e==42||!g||u);return n.append(new InlineDelimiter(e==95?EmphasisUnderscore:EmphasisAsterisk,s,o,(E?1:0)|(B?2:0)))},HardBreak(n,e,s){if(e==92&&n.char(s+1)==10)return n.append(elt(Type.HardBreak,s,s+2));if(e==32){let o=s+1;for(;n.char(o)==32;)o++;if(n.char(o)==10&&o>=s+2)return n.append(elt(Type.HardBreak,s,o+1))}return-1},Link(n,e,s){return e==91?n.append(new InlineDelimiter(LinkStart,s,s+1,1)):-1},Image(n,e,s){return e==33&&n.char(s+1)==91?n.append(new InlineDelimiter(ImageStart,s,s+2,1)):-1},LinkEnd(n,e,s){if(e!=93)return-1;for(let o=n.parts.length-1;o>=0;o--){let a=n.parts[o];if(a instanceof InlineDelimiter&&(a.type==LinkStart||a.type==ImageStart)){if(!a.side||n.skipSpace(a.to)==s&&!/[(\[]/.test(n.slice(s+1,s+2)))return n.parts[o]=null,-1;let l=n.takeContent(o),c=n.parts[o]=finishLink(n,l,a.type==LinkStart?Type.Link:Type.Image,a.from,s+1);if(a.type==LinkStart)for(let u=0;ue?elt(Type.URL,e+s,l+s):l==n.length?null:!1}}function parseLinkTitle(n,e,s){let o=n.charCodeAt(e);if(o!=39&&o!=34&&o!=40)return!1;let a=o==40?41:o;for(let l=e+1,c=!1;l=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,s){return this.text.slice(e-this.offset,s-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,s,o,a,l){return this.append(new InlineDelimiter(e,s,o,(a?1:0)|(l?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let o=e;o=e;f--){let D=this.parts[f];if(D instanceof InlineDelimiter&&D.side&1&&D.type==a.type&&!(l&&(a.side&1||D.side&2)&&(D.to-D.from+c)%3==0&&((D.to-D.from)%3||c%3))){u=D;break}}if(!u)continue;let d=a.type.resolve,g=[],b=u.from,E=a.to;if(l){let D=Math.min(2,u.to-u.from,c);b=u.to-D,E=a.from+D,d=D==1?"Emphasis":"StrongEmphasis"}u.type.mark&&g.push(this.elt(u.type.mark,b,u.to));for(let D=f+1;D=0;s--){let o=this.parts[s];if(o instanceof InlineDelimiter&&o.type==e)return s}return null}takeContent(e){let s=this.resolveMarkers(e);return this.parts.length=e,s}skipSpace(e){return skipSpace(this.text,e-this.offset)+this.offset}elt(e,s,o,a){return typeof e=="string"?elt(this.parser.getNodeType(e),s,o,a):new TreeElement(e,s)}}function injectMarks(n,e){if(!e.length)return n;if(!n.length)return e;let s=n.slice(),o=0;for(let a of e){for(;o(e?e-1:0))return!1;if(this.fragmentEnd<0){let l=this.fragment.to;for(;l>0&&this.input.read(l-1,l)!=` +`;)l--;this.fragmentEnd=l?l-1:0}let o=this.cursor;o||(o=this.cursor=this.fragment.tree.cursor(),o.firstChild());let a=e+this.fragment.offset;for(;o.to<=a;)if(!o.parent())return!1;for(;;){if(o.from>=a)return this.fragment.from<=s;if(!o.childAfter(a))return!1}}matches(e){let s=this.cursor.tree;return s&&s.prop(NodeProp.contextHash)==e}takeNodes(e){let s=this.cursor,o=this.fragment.offset,a=this.fragmentEnd-(this.fragment.openEnd?1:0),l=e.absoluteLineStart,c=l,u=e.block.children.length,f=c,d=u;for(;;){if(s.to-o>a){if(s.type.isAnonymous&&s.firstChild())continue;break}let g=toRelative(s.from-o,e.ranges);if(s.to-o<=e.ranges[e.rangeI].to)e.addNode(s.tree,g);else{let b=new Tree(e.parser.nodeSet.types[Type.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(b,s.tree),e.addNode(b,g)}if(s.type.is("Block")&&(NotLast.indexOf(s.type.id)<0?(c=s.to-o,u=e.block.children.length):(c=f,u=d,f=s.to-o,d=e.block.children.length)),!s.nextSibling())break}for(;e.block.children.length>u;)e.block.children.pop(),e.block.positions.pop();return c-l}}function toRelative(n,e){let s=n;for(let o=1;oDefaultBlockParsers[n]),Object.keys(DefaultBlockParsers).map(n=>DefaultLeafBlocks[n]),Object.keys(DefaultBlockParsers),DefaultEndLeaf,DefaultSkipMarkup,Object.keys(DefaultInline).map(n=>DefaultInline[n]),Object.keys(DefaultInline),[]);function leftOverSpace(n,e,s){let o=[];for(let a=n.firstChild,l=e;;a=a.nextSibling){let c=a?a.from:s;if(c>l&&o.push({from:l,to:c}),!a)break;l=a.to}return o}function parseCode(n){let{codeParser:e,htmlParser:s}=n;return{wrap:parseMixed((a,l)=>{let c=a.type.id;if(e&&(c==Type.CodeBlock||c==Type.FencedCode)){let u="";if(c==Type.FencedCode){let d=a.node.getChild(Type.CodeInfo);d&&(u=l.read(d.from,d.to))}let f=e(u);if(f)return{parser:f,overlay:d=>d.type.id==Type.CodeText}}else if(s&&(c==Type.HTMLBlock||c==Type.HTMLTag))return{parser:s,overlay:leftOverSpace(a.node,a.from,a.to)};return null})}}const StrikethroughDelim={resolve:"Strikethrough",mark:"StrikethroughMark"},Strikethrough={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":tags$1.strikethrough}},{name:"StrikethroughMark",style:tags$1.processingInstruction}],parseInline:[{name:"Strikethrough",parse(n,e,s){if(e!=126||n.char(s+1)!=126||n.char(s+2)==126)return-1;let o=n.slice(s-1,s),a=n.slice(s+2,s+3),l=/\s|^$/.test(o),c=/\s|^$/.test(a),u=Punctuation.test(o),f=Punctuation.test(a);return n.addDelimiter(StrikethroughDelim,s,s+2,!c&&(!f||l||u),!l&&(!u||c||f))},after:"Emphasis"}]};function parseRow(n,e,s=0,o,a=0){let l=0,c=!0,u=-1,f=-1,d=!1,g=()=>{o.push(n.elt("TableCell",a+u,a+f,n.parser.parseInline(e.slice(u,f),a+u)))};for(let b=s;b-1)&&l++,c=!1,o&&(u>-1&&g(),o.push(n.elt("TableDelimiter",b+a,b+a+1))),u=f=-1):(d||E!=32&&E!=9)&&(u<0&&(u=b),f=b+1),d=!d&&E==92}return u>-1&&(l++,o&&g()),l}function hasPipe(n,e){for(let s=e;sa instanceof TableParser)||!hasPipe(e.text,e.basePos))return!1;let o=n.scanLine(n.absoluteLineEnd+1).text;return delimiterLine.test(o)&&parseRow(n,e.text,e.basePos)==parseRow(n,o,e.basePos)},before:"SetextHeading"}]};class TaskParser{nextLine(){return!1}finish(e,s){return e.addLeafElement(s,e.elt("Task",s.start,s.start+s.content.length,[e.elt("TaskMarker",s.start,s.start+3),...e.parser.parseInline(s.content.slice(3),s.start+3)])),!0}}const TaskList={defineNodes:[{name:"Task",block:!0,style:tags$1.list},{name:"TaskMarker",style:tags$1.atom}],parseBlock:[{name:"TaskList",leaf(n,e){return/^\[[ xX]\][ \t]/.test(e.content)&&n.parentType().name=="ListItem"?new TaskParser:null},after:"SetextHeading"}]},autolinkRE=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,urlRE=/[\w-]+(\.\w+(\.\w+)?)(\/[^\s<]*)?/gy,emailRE=/[\w.+-]+@[\w-]+\.[\w.-]+/gy,xmppResourceRE=/\/[a-zA-Z\d@.]+/gy;function count(n,e,s,o){let a=0;for(let l=e;lcount(n,e,o,"("))o--;else if(a==";"&&(l=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(n.slice(e,o))))o=e+l.index;else break}return o}function autolinkEmailEnd(n,e){emailRE.lastIndex=e;let s=emailRE.exec(n);if(!s)return-1;let o=s[0][s[0].length-1];return o=="_"||o=="-"?-1:e+s[0].length-(o=="."?1:0)}const Autolink={parseInline:[{name:"Autolink",parse(n,e,s){let o=s-n.offset;autolinkRE.lastIndex=o;let a=autolinkRE.exec(n.text),l=-1;return!a||(a[1]||a[2]?l=autolinkURLEnd(n.text,o+a[0].length):a[3]?l=autolinkEmailEnd(n.text,o):(l=autolinkEmailEnd(n.text,o+a[0].length),l>-1&&a[0]=="xmpp:"&&(xmppResourceRE.lastIndex=l,a=xmppResourceRE.exec(n.text),a&&(l=a.index+a[0].length))),l<0)?-1:(n.addElement(n.elt("URL",s,l+n.offset)),l+n.offset)}}]},GFM=[Table,TaskList,Strikethrough,Autolink];function parseSubSuper(n,e,s){return(o,a,l)=>{if(a!=n||o.char(l+1)==n)return-1;let c=[o.elt(s,l,l+1)];for(let u=l+1;u=65&&n<=90||n==95||n>=97&&n<=122||n>=161}function isSpace(n){return n==9||n==10||n==13||n==32}let cachedName=null,cachedInput=null,cachedPos=0;function tagNameAfter(n,e){let s=n.pos+e;if(cachedPos==s&&cachedInput==n)return cachedName;let o=n.peek(e);for(;isSpace(o);)o=n.peek(++e);let a="";for(;nameChar(o);)a+=String.fromCharCode(o),o=n.peek(++e);return cachedInput=n,cachedPos=s,cachedName=a?a.toLowerCase():o==question||o==bang?void 0:null}const lessThan=60,greaterThan=62,slash=47,question=63,bang=33,dash$1=45;function ElementContext(n,e){this.name=n,this.parent=e,this.hash=e?e.hash:0;for(let s=0;s-1?new ElementContext(tagNameAfter(o,1)||"",n):n},reduce(n,e){return e==Element&&n?n.parent:n},reuse(n,e,s,o){let a=e.type.id;return a==StartTag||a==OpenTag?new ElementContext(tagNameAfter(o,1)||"",n):n},hash(n){return n?n.hash:0},strict:!1}),tagStart=new ExternalTokenizer((n,e)=>{if(n.next!=lessThan){n.next<0&&e.context&&n.acceptToken(missingCloseTag);return}n.advance();let s=n.next==slash;s&&n.advance();let o=tagNameAfter(n,0);if(o===void 0)return;if(!o)return n.acceptToken(s?IncompleteCloseTag:StartTag);let a=e.context?e.context.name:null;if(s){if(o==a)return n.acceptToken(StartCloseTag);if(a&&implicitlyClosed[a])return n.acceptToken(missingCloseTag,-2);if(e.dialectEnabled(Dialect_noMatch))return n.acceptToken(NoMatchStartCloseTag);for(let l=e.context;l;l=l.parent)if(l.name==o)return;n.acceptToken(MismatchedStartCloseTag)}else{if(o=="script")return n.acceptToken(StartScriptTag);if(o=="style")return n.acceptToken(StartStyleTag);if(o=="textarea")return n.acceptToken(StartTextareaTag);if(selfClosers$1.hasOwnProperty(o))return n.acceptToken(StartSelfClosingTag);a&&closeOnOpen[a]&&closeOnOpen[a][o]?n.acceptToken(missingCloseTag,-1):n.acceptToken(StartTag)}},{contextual:!0}),commentContent=new ExternalTokenizer(n=>{for(let e=0,s=0;;s++){if(n.next<0){s&&n.acceptToken(commentContent$1);break}if(n.next==dash$1)e++;else if(n.next==greaterThan&&e>=2){s>3&&n.acceptToken(commentContent$1,-2);break}else e=0;n.advance()}});function inForeignElement(n){for(;n;n=n.parent)if(n.name=="svg"||n.name=="math")return!0;return!1}const endTag=new ExternalTokenizer((n,e)=>{if(n.next==slash&&n.peek(1)==greaterThan){let s=e.dialectEnabled(Dialect_selfClosing)||inForeignElement(e.context);n.acceptToken(s?SelfClosingEndTag:EndTag,2)}else n.next==greaterThan&&n.acceptToken(EndTag,1)});function contentTokenizer(n,e,s){let o=2+n.length;return new ExternalTokenizer(a=>{for(let l=0,c=0,u=0;;u++){if(a.next<0){u&&a.acceptToken(e);break}if(l==0&&a.next==lessThan||l==1&&a.next==slash||l>=2&&lc?a.acceptToken(e,-c):a.acceptToken(s,-(c-2));break}else if((a.next==10||a.next==13)&&u){a.acceptToken(e,1);break}else l=c=0;a.advance()}})}const scriptTokens=contentTokenizer("script",scriptText,StartCloseScriptTag),styleTokens=contentTokenizer("style",styleText,StartCloseStyleTag),textareaTokens=contentTokenizer("textarea",textareaText,StartCloseTextareaTag),htmlHighlighting=styleTags({"Text RawText":tags$1.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":tags$1.angleBracket,TagName:tags$1.tagName,"MismatchedCloseTag/TagName":[tags$1.tagName,tags$1.invalid],AttributeName:tags$1.attributeName,"AttributeValue UnquotedAttributeValue":tags$1.attributeValue,Is:tags$1.definitionOperator,"EntityReference CharacterReference":tags$1.character,Comment:tags$1.blockComment,ProcessingInst:tags$1.processingInstruction,DoctypeDecl:tags$1.documentMeta}),parser$1=LRParser.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:elementContext,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[htmlHighlighting],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let d=u.type.id;if(d==ScriptText)return maybeNest(u,f,s);if(d==StyleText)return maybeNest(u,f,o);if(d==TextareaText)return maybeNest(u,f,a);if(d==Element&&l.length){let g=u.node,b=g.firstChild,E=b&&findTagName(b,f),B;if(E){for(let V of l)if(V.tag==E&&(!V.attrs||V.attrs(B||(B=getAttrs(g,f))))){let D=g.lastChild;return{parser:V.parser,overlay:[{from:b.to,to:D.type.id==CloseTag?D.from:g.to}]}}}}if(c&&d==Attribute){let g=u.node,b;if(b=g.firstChild){let E=c[f.read(b.from,b.to)];if(E)for(let B of E){if(B.tagName&&B.tagName!=findTagName(g.parent,f))continue;let V=g.lastChild;if(V.type.id==AttributeValue){let D=V.from+1,X=V.lastChild,q=V.to-(X&&X.isError?0:1);if(q>D)return{parser:B.parser,overlay:[{from:D,to:q}]}}else if(V.type.id==UnquotedAttributeValue)return{parser:B.parser,overlay:[{from:V.from,to:V.to}]}}}}return null})}const descendantOp=96,Unit=1,callee=97,identifier$2=98,VariableName=2,space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],colon=58,parenL=40,underscore=95,bracketL=91,dash=45,period=46,hash=35,percent=37;function isAlpha(n){return n>=65&&n<=90||n>=97&&n<=122||n>=161}function isDigit(n){return n>=48&&n<=57}const identifiers=new ExternalTokenizer((n,e)=>{for(let s=!1,o=0,a=0;;a++){let{next:l}=n;if(isAlpha(l)||l==dash||l==underscore||s&&isDigit(l))!s&&(l!=dash||a>0)&&(s=!0),o===a&&l==dash&&o++,n.advance();else{s&&n.acceptToken(l==parenL?callee:o==2&&e.canShift(VariableName)?VariableName:identifier$2);break}}}),descendant=new ExternalTokenizer(n=>{if(space.includes(n.peek(-1))){let{next:e}=n;(isAlpha(e)||e==underscore||e==hash||e==period||e==bracketL||e==colon||e==dash)&&n.acceptToken(descendantOp)}}),unitToken=new ExternalTokenizer(n=>{if(!space.includes(n.peek(-1))){let{next:e}=n;if(e==percent&&(n.advance(),n.acceptToken(Unit)),isAlpha(e)){do n.advance();while(isAlpha(n.next));n.acceptToken(Unit)}}}),cssHighlighting=styleTags({"AtKeyword import charset namespace keyframes media supports":tags$1.definitionKeyword,"from to selector":tags$1.keyword,NamespaceName:tags$1.namespace,KeyframeName:tags$1.labelName,KeyframeRangeName:tags$1.operatorKeyword,TagName:tags$1.tagName,ClassName:tags$1.className,PseudoClassName:tags$1.constant(tags$1.className),IdName:tags$1.labelName,"FeatureName PropertyName":tags$1.propertyName,AttributeName:tags$1.attributeName,NumberLiteral:tags$1.number,KeywordQuery:tags$1.keyword,UnaryQueryOp:tags$1.operatorKeyword,"CallTag ValueName":tags$1.atom,VariableName:tags$1.variableName,Callee:tags$1.operatorKeyword,Unit:tags$1.unit,"UniversalSelector NestingSelector":tags$1.definitionOperator,MatchOp:tags$1.compareOperator,"ChildOp SiblingOp, LogicOp":tags$1.logicOperator,BinOp:tags$1.arithmeticOperator,Important:tags$1.modifier,Comment:tags$1.blockComment,ColorLiteral:tags$1.color,"ParenthesizedContent StringLiteral":tags$1.string,":":tags$1.punctuation,"PseudoOp #":tags$1.derefOperator,"; ,":tags$1.separator,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace}),spec_callee={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},spec_AtKeyword={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},spec_identifier={__proto__:null,not:128,only:128},parser=LRParser.deserialize({version:14,states:"9bQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DPO$vQ[O'#DTOOQP'#Ej'#EjO${QdO'#DeO%gQ[O'#DrO${QdO'#DtO%xQ[O'#DvO&TQ[O'#DyO&]Q[O'#EPO&kQ[O'#EROOQS'#Ei'#EiOOQS'#EU'#EUQYQ[OOO&rQXO'#CdO'gQWO'#DaO'lQWO'#EpO'wQ[O'#EpQOQWOOP(RO#tO'#C_POOO)C@X)C@XOOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(^Q[O'#EXO(xQWO,58{O)QQ[O,59SO$qQ[O,59kO$vQ[O,59oO(^Q[O,59sO(^Q[O,59uO(^Q[O,59vO)]Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)dQWO,59SO)iQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)nQ`O,59oOOQS'#Cp'#CpO${QdO'#CqO)vQvO'#CsO+TQtO,5:POOQO'#Cx'#CxO)iQWO'#CwO+iQWO'#CyOOQS'#Em'#EmOOQO'#Dh'#DhO+nQ[O'#DoO+|QWO'#EqO&]Q[O'#DmO,[QWO'#DpOOQO'#Er'#ErO({QWO,5:^O,aQpO,5:`OOQS'#Dx'#DxO,iQWO,5:bO,nQ[O,5:bOOQO'#D{'#D{O,vQWO,5:eO,{QWO,5:kO-TQWO,5:mOOQS-E8S-E8SO${QdO,59{O-]Q[O'#EZO-jQWO,5;[O-jQWO,5;[POOO'#ET'#ETP-uO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.lQXO,5:sOOQO-E8V-E8VOOQS1G.g1G.gOOQP1G.n1G.nO)dQWO1G.nO)iQWO1G.nOOQP1G/V1G/VO.yQ`O1G/ZO/dQXO1G/_O/zQXO1G/aO0bQXO1G/bO0xQWO,59zO0}Q[O'#DOO1UQdO'#CoOOQP1G/Z1G/ZO${QdO1G/ZO1]QpO,59]OOQS,59_,59_O${QdO,59aO1eQWO1G/kOOQS,59c,59cO1jQ!bO,59eO1rQWO'#DhO1}QWO,5:TO2SQWO,5:ZO&]Q[O,5:VO&]Q[O'#E[O2[QWO,5;]O2gQWO,5:XO(^Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2xQWO1G/|O2}QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO3YQtO1G/gOOQO,5:u,5:uO3pQ[O,5:uOOQO-E8X-E8XO3}QWO1G0vPOOO-E8R-E8RPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$u7+$uO${QdO7+$uOOQS1G/f1G/fO4YQXO'#EoO4aQWO,59jO4fQtO'#EVO5ZQdO'#ElO5eQWO,59ZO5jQpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5rQWO1G/PO${QdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5wQWO,5:vOOQO-E8Y-E8YO6VQXO1G/vOOQS7+%h7+%hO6^QYO'#CsOOQO'#EO'#EOO6iQ`O'#D}OOQO'#D}'#D}O6tQWO'#E]O6|QdO,5:hOOQS,5:h,5:hO7XQtO'#EYO${QdO'#EYO8VQdO7+%ROOQO7+%R7+%ROOQO1G0a1G0aO8jQpO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#b[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSp^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#_QOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#X~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#b[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!W^Oy%^z;'S%^;'S;=`%o<%lO%^dCoSzSOy%^z;'S%^;'S;=`%o<%lO%^bDQU|QOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS|Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[!YQo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bFfSxQOy%^z;'S%^;'S;=`%o<%lO%^lFwSv[Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!`Qo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!RUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!Q^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!PQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[descendant,unitToken,identifiers,1,2,3,4,new LocalTokenGroup("m~RRYZ[z{a~~g~aO#Z~~dP!P!Qg~lO#[~~",28,102)],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:97,get:n=>spec_callee[n]||-1},{term:56,get:n=>spec_AtKeyword[n]||-1},{term:98,get:n=>spec_identifier[n]||-1}],tokenPrec:1169});let _properties=null;function properties(){if(!_properties&&typeof document=="object"&&document.body){let{style:n}=document.body,e=[],s=new Set;for(let o in n)o!="cssText"&&o!="cssFloat"&&typeof n[o]=="string"&&(/[A-Z]/.test(o)&&(o=o.replace(/[A-Z]/g,a=>"-"+a.toLowerCase())),s.has(o)||(e.push(o),s.add(o)));_properties=e.sort().map(o=>({type:"property",label:o}))}return _properties||[]}const pseudoClasses=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(n=>({type:"class",label:n})),values=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(n=>({type:"keyword",label:n})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(n=>({type:"constant",label:n}))),tags=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(n=>({type:"type",label:n})),identifier$1=/^(\w[\w-]*|-\w[\w-]*|)$/,variable=/^-(-[\w-]*)?$/;function isVarArg(n,e){var s;if((n.name=="("||n.type.isError)&&(n=n.parent||n),n.name!="ArgList")return!1;let o=(s=n.parent)===null||s===void 0?void 0:s.firstChild;return(o==null?void 0:o.name)!="Callee"?!1:e.sliceString(o.from,o.to)=="var"}const VariablesByNode=new NodeWeakMap,declSelector=["Declaration"];function astTop(n){for(let e=n;;){if(e.type.isTop)return e;if(!(e=e.parent))return n}}function variableNames(n,e,s){if(e.to-e.from>4096){let o=VariablesByNode.get(e);if(o)return o;let a=[],l=new Set,c=e.cursor(IterMode.IncludeAnonymous);if(c.firstChild())do for(let u of variableNames(n,c.node,s))l.has(u.label)||(l.add(u.label),a.push(u));while(c.nextSibling());return VariablesByNode.set(e,a),a}else{let o=[],a=new Set;return e.cursor().iterate(l=>{var c;if(s(l)&&l.matchContext(declSelector)&&((c=l.node.nextSibling)===null||c===void 0?void 0:c.name)==":"){let u=n.sliceString(l.from,l.to);a.has(u)||(a.add(u),o.push({label:u,type:"variable"}))}}),o}}const defineCSSCompletionSource=n=>e=>{let{state:s,pos:o}=e,a=syntaxTree(s).resolveInner(o,-1),l=a.type.isError&&a.from==a.to-1&&s.doc.sliceString(a.from,a.to)=="-";if(a.name=="PropertyName"||(l||a.name=="TagName")&&/^(Block|Styles)$/.test(a.resolve(a.to).name))return{from:a.from,options:properties(),validFor:identifier$1};if(a.name=="ValueName")return{from:a.from,options:values,validFor:identifier$1};if(a.name=="PseudoClassName")return{from:a.from,options:pseudoClasses,validFor:identifier$1};if(n(a)||(e.explicit||l)&&isVarArg(a,s.doc))return{from:n(a)||l?a.from:o,options:variableNames(s.doc,astTop(a),n),validFor:variable};if(a.name=="TagName"){for(let{parent:f}=a;f;f=f.parent)if(f.name=="Block")return{from:a.from,options:properties(),validFor:identifier$1};return{from:a.from,options:tags,validFor:identifier$1}}if(!e.explicit)return null;let c=a.resolve(o),u=c.childBefore(o);return u&&u.name==":"&&c.name=="PseudoClassSelector"?{from:o,options:pseudoClasses,validFor:identifier$1}:u&&u.name==":"&&c.name=="Declaration"||c.name=="ArgList"?{from:o,options:values,validFor:identifier$1}:c.name=="Block"||c.name=="Styles"?{from:o,options:properties(),validFor:identifier$1}:null},cssCompletionSource=defineCSSCompletionSource(n=>n.name=="VariableName"),cssLanguage=LRLanguage.define({name:"css",parser:parser.configure({props:[indentNodeProp.add({Declaration:continuedIndent()}),foldNodeProp.add({Block:foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function css(){return new LanguageSupport(cssLanguage,cssLanguage.data.of({autocomplete:cssCompletionSource}))}const Targets=["_blank","_self","_top","_parent"],Charsets=["ascii","utf-8","utf-16","latin1","latin1"],Methods=["get","post","put","delete"],Encs=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Bool=["true","false"],S={},Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:Targets}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Charsets,autocomplete:["on","off"],enctype:Encs,method:Methods,novalidate:["novalidate"],target:Targets}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Charsets,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Bool,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Bool,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Bool,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Bool,"aria-hidden":Bool,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Bool,"aria-multiselectable":Bool,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Bool,"aria-relevant":null,"aria-required":Bool,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},eventAttributes="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(n=>"on"+n);for(let n of eventAttributes)GlobalAttrs[n]=null;class Schema{constructor(e,s){this.tags=Object.assign(Object.assign({},Tags),e),this.globalAttrs=Object.assign(Object.assign({},GlobalAttrs),s),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Schema.default=new Schema;function elementName(n,e,s=n.length){if(!e)return"";let o=e.firstChild,a=o&&o.getChild("TagName");return a?n.sliceString(a.from,Math.min(a.to,s)):""}function findParentElement(n,e=!1){for(;n;n=n.parent)if(n.name=="Element")if(e)e=!1;else return n;return null}function allowedChildren(n,e,s){let o=s.tags[elementName(n,findParentElement(e))];return(o==null?void 0:o.children)||s.allTags}function openTags(n,e){let s=[];for(let o=findParentElement(e);o&&!o.type.isTop;o=findParentElement(o.parent)){let a=elementName(n,o);if(a&&o.lastChild.name=="CloseTag")break;a&&s.indexOf(a)<0&&(e.name=="EndTag"||e.from>=o.firstChild.to)&&s.push(a)}return s}const identifier=/^[:\-\.\w\u00b7-\uffff]*$/;function completeTag(n,e,s,o,a){let l=/\s*>/.test(n.sliceDoc(a,a+5))?"":">",c=findParentElement(s,!0);return{from:o,to:a,options:allowedChildren(n.doc,c,e).map(u=>({label:u,type:"type"})).concat(openTags(n.doc,s).map((u,f)=>({label:"/"+u,apply:"/"+u+l,type:"type",boost:99-f}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeCloseTag(n,e,s,o){let a=/\s*>/.test(n.sliceDoc(o,o+5))?"":">";return{from:s,to:o,options:openTags(n.doc,e).map((l,c)=>({label:l,apply:l+a,type:"type",boost:99-c})),validFor:identifier}}function completeStartTag(n,e,s,o){let a=[],l=0;for(let c of allowedChildren(n.doc,s,e))a.push({label:"<"+c,type:"type"});for(let c of openTags(n.doc,s))a.push({label:"",type:"type",boost:99-l++});return{from:o,to:o,options:a,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeAttrName(n,e,s,o,a){let l=findParentElement(s),c=l?e.tags[elementName(n.doc,l)]:null,u=c&&c.attrs?Object.keys(c.attrs):[],f=c&&c.globalAttrs===!1?u:u.length?u.concat(e.globalAttrNames):e.globalAttrNames;return{from:o,to:a,options:f.map(d=>({label:d,type:"property"})),validFor:identifier}}function completeAttrValue(n,e,s,o,a){var l;let c=(l=s.parent)===null||l===void 0?void 0:l.getChild("AttributeName"),u=[],f;if(c){let d=n.sliceDoc(c.from,c.to),g=e.globalAttrs[d];if(!g){let b=findParentElement(s),E=b?e.tags[elementName(n.doc,b)]:null;g=(E==null?void 0:E.attrs)&&E.attrs[d]}if(g){let b=n.sliceDoc(o,a).toLowerCase(),E='"',B='"';/^['"]/.test(b)?(f=b[0]=='"'?/^[^"]*$/:/^[^']*$/,E="",B=n.sliceDoc(a,a+1)==b[0]?"":b[0],b=b.slice(1),o++):f=/^[^\s<>='"]*$/;for(let V of g)u.push({label:V,apply:E+V+B,type:"constant"})}}return{from:o,to:a,options:u,validFor:f}}function htmlCompletionFor(n,e){let{state:s,pos:o}=e,a=syntaxTree(s).resolveInner(o,-1),l=a.resolve(o);for(let c=o,u;l==a&&(u=a.childBefore(c));){let f=u.lastChild;if(!f||!f.type.isError||f.fromhtmlCompletionFor(o,a)}const defaultNesting=[{tag:"script",attrs:n=>n.type=="text/typescript"||n.lang=="ts",parser:typescriptLanguage.parser},{tag:"script",attrs:n=>n.type=="text/babel"||n.type=="text/jsx",parser:jsxLanguage.parser},{tag:"script",attrs:n=>n.type=="text/typescript-jsx",parser:tsxLanguage.parser},{tag:"script",attrs(n){return!n.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(n.type)},parser:javascriptLanguage.parser},{tag:"style",attrs(n){return(!n.lang||n.lang=="css")&&(!n.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(n.type))},parser:cssLanguage.parser}],defaultAttrs=[{name:"style",parser:cssLanguage.parser.configure({top:"Styles"})}].concat(eventAttributes.map(n=>({name:n,parser:javascriptLanguage.parser}))),htmlPlain=LRLanguage.define({name:"html",parser:parser$1.configure({props:[indentNodeProp.add({Element(n){let e=/^(\s*)(<\/)?/.exec(n.textAfter);return n.node.to<=n.pos+e[0].length?n.continue():n.lineIndent(n.node.from)+(e[2]?0:n.unit)},"OpenTag CloseTag SelfClosingTag"(n){return n.column(n.node.from)+n.unit},Document(n){if(n.pos+/\s*/.exec(n.textAfter)[0].lengthn.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),htmlLanguage=htmlPlain.configure({wrap:configureNesting(defaultNesting,defaultAttrs)});function html(n={}){let e="",s;n.matchClosingTags===!1&&(e="noMatch"),n.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(n.nestedLanguages&&n.nestedLanguages.length||n.nestedAttributes&&n.nestedAttributes.length)&&(s=configureNesting((n.nestedLanguages||[]).concat(defaultNesting),(n.nestedAttributes||[]).concat(defaultAttrs)));let o=s?htmlPlain.configure({wrap:s,dialect:e}):e?htmlLanguage.configure({dialect:e}):htmlLanguage;return new LanguageSupport(o,[htmlLanguage.data.of({autocomplete:htmlCompletionSourceWith(n)}),n.autoCloseTags!==!1?autoCloseTags:[],javascript().support,css().support])}const selfClosers=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),autoCloseTags=EditorView.inputHandler.of((n,e,s,o)=>{if(n.composing||n.state.readOnly||e!=s||o!=">"&&o!="/"||!htmlLanguage.isActiveAt(n.state,e,-1))return!1;let{state:a}=n,l=a.changeByRange(c=>{var u,f,d;let{head:g}=c,b=syntaxTree(a).resolveInner(g,-1),E;if((b.name=="TagName"||b.name=="StartTag")&&(b=b.parent),o==">"&&b.name=="OpenTag"){if(((f=(u=b.parent)===null||u===void 0?void 0:u.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(E=elementName(a.doc,b.parent,g))&&!selfClosers.has(E)){let B=n.state.doc.sliceString(g,g+1)===">",V=`${B?"":">"}`;return{range:EditorSelection.cursor(g+1),changes:{from:g+(B?1:0),insert:V}}}}else if(o=="/"&&b.name=="OpenTag"){let B=b.parent,V=B==null?void 0:B.parent;if(B.from==g-1&&((d=V.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(E=elementName(a.doc,V,g))&&!selfClosers.has(E)){let D=n.state.doc.sliceString(g,g+1)===">",X=`/${E}${D?"":">"}`,q=g+X.length+(D?1:0);return{range:EditorSelection.cursor(q),changes:{from:g,insert:X}}}}return{range:c}});return l.changes.empty?!1:(n.dispatch(l,{userEvent:"input.type",scrollIntoView:!0}),!0)}),data$1=defineLanguageFacet({commentTokens:{block:{open:""}}}),headingProp=new NodeProp,commonmark=parser$2.configure({props:[foldNodeProp.add(n=>!n.is("Block")||n.is("Document")||isHeading(n)!=null?void 0:(e,s)=>({from:s.doc.lineAt(e.from).to,to:e.to})),headingProp.add(isHeading),indentNodeProp.add({Document:()=>null}),languageDataProp.add({Document:data$1})]});function isHeading(n){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(n.name);return e?+e[1]:void 0}function findSectionEnd(n,e){let s=n;for(;;){let o=s.nextSibling,a;if(!o||(a=isHeading(o.type))!=null&&a<=e)break;s=o}return s.to}const headerIndent=foldService.of((n,e,s)=>{for(let o=syntaxTree(n).resolveInner(s,-1);o&&!(o.froms)return{from:s,to:l}}return null});function mkLang(n){return new Language(data$1,n,[headerIndent],"markdown")}const commonmarkLanguage=mkLang(commonmark),extended=commonmark.configure([GFM,Subscript,Superscript,Emoji]),markdownLanguage=mkLang(extended);function getCodeParser(n,e){return s=>{if(s&&n){let o=null;if(s=/\S*/.exec(s)[0],typeof n=="function"?o=n(s):o=LanguageDescription.matchLanguageName(n,s,!0),o instanceof LanguageDescription)return o.support?o.support.language.parser:ParseContext.getSkippingParser(o.load());if(o)return o.parser}return e?e.parser:null}}class Context{constructor(e,s,o,a,l,c,u){this.node=e,this.from=s,this.to=o,this.spaceBefore=a,this.spaceAfter=l,this.type=c,this.item=u}blank(e,s=!0){let o=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;o.length0;a--)o+=" ";return o+(s?this.spaceAfter:"")}}marker(e,s){let o=this.node.name=="OrderedList"?String(+itemNumber(this.item,e)[2]+s):"";return this.spaceBefore+o+this.type+this.spaceAfter}}function getContext(n,e){let s=[];for(let a=n;a&&a.name!="Document";a=a.parent)(a.name=="ListItem"||a.name=="Blockquote"||a.name=="FencedCode")&&s.push(a);let o=[];for(let a=s.length-1;a>=0;a--){let l=s[a],c,u=e.lineAt(l.from),f=l.from-u.from;if(l.name=="FencedCode")o.push(new Context(l,f,f,"","","",null));else if(l.name=="Blockquote"&&(c=/^[ \t]*>( ?)/.exec(u.text.slice(f))))o.push(new Context(l,f,f+c[0].length,"",c[1],">",null));else if(l.name=="ListItem"&&l.parent.name=="OrderedList"&&(c=/^([ \t]*)\d+([.)])([ \t]*)/.exec(u.text.slice(f)))){let d=c[3],g=c[0].length;d.length>=4&&(d=d.slice(0,d.length-4),g-=4),o.push(new Context(l.parent,f,f+g,c[1],d,c[2],l))}else if(l.name=="ListItem"&&l.parent.name=="BulletList"&&(c=/^([ \t]*)([-+*])([ \t]{1,4}\[[ xX]\])?([ \t]+)/.exec(u.text.slice(f)))){let d=c[4],g=c[0].length;d.length>4&&(d=d.slice(0,d.length-4),g-=4);let b=c[2];c[3]&&(b+=c[3].replace(/[xX]/," ")),o.push(new Context(l.parent,f,f+g,c[1],d,b,l))}}return o}function itemNumber(n,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(n.from,n.from+10))}function renumberList(n,e,s,o=0){for(let a=-1,l=n;;){if(l.name=="ListItem"){let u=itemNumber(l,e),f=+u[2];if(a>=0){if(f!=a+1)return;s.push({from:l.from+u[1].length,to:l.from+u[0].length,insert:String(a+2+o)})}a=f}let c=l.nextSibling;if(!c)break;l=c}}const insertNewlineContinueMarkup=({state:n,dispatch:e})=>{let s=syntaxTree(n),{doc:o}=n,a=null,l=n.changeByRange(c=>{if(!c.empty||!markdownLanguage.isActiveAt(n,c.from))return a={range:c};let u=c.from,f=o.lineAt(u),d=getContext(s.resolveInner(u,-1),o);for(;d.length&&d[d.length-1].from>u-f.from;)d.pop();if(!d.length)return a={range:c};let g=d[d.length-1];if(g.to-g.spaceAfter.length>u-f.from)return a={range:c};let b=u>=g.to-g.spaceAfter.length&&!/\S/.test(f.text.slice(g.to));if(g.item&&b)if(g.node.firstChild.to>=u||f.from>0&&!/[^\s>]/.test(o.lineAt(f.from-1).text)){let X=d.length>1?d[d.length-2]:null,q,z="";X&&X.item?(q=f.from+X.from,z=X.marker(o,1)):q=f.from+(X?X.to:0);let oe=[{from:q,to:u,insert:z}];return g.node.name=="OrderedList"&&renumberList(g.item,o,oe,-2),X&&X.node.name=="OrderedList"&&renumberList(X.item,o,oe),{range:EditorSelection.cursor(q+z.length),changes:oe}}else{let X="";for(let q=0,z=d.length-2;q<=z;q++)X+=d[q].blank(q\s*$/.exec(X.text);if(q&&q.index==g.from){let z=n.changes([{from:X.from+q.index,to:X.to},{from:f.from+g.from,to:f.to}]);return{range:c.map(z),changes:z}}}let E=[];g.node.name=="OrderedList"&&renumberList(g.item,o,E);let B=g.item&&g.item.from]*/.exec(f.text)[0].length>=g.to)for(let X=0,q=d.length-1;X<=q;X++)V+=X==q&&!B?d[X].marker(o,1):d[X].blank(Xf.from&&/\s/.test(f.text.charAt(D-f.from-1));)D--;return V=n.lineBreak+V,E.push({from:D,to:u,insert:V}),{range:EditorSelection.cursor(D+V.length),changes:E}});return a?!1:(e(n.update(l,{scrollIntoView:!0,userEvent:"input"})),!0)};function isMark(n){return n.name=="QuoteMark"||n.name=="ListMark"}function contextNodeForDelete(n,e){let s=n.resolveInner(e,-1),o=e;isMark(s)&&(o=s.from,s=s.parent);for(let a;a=s.childBefore(o);)if(isMark(a))o=a.from;else if(a.name=="OrderedList"||a.name=="BulletList")s=a.lastChild,o=s.to;else break;return s}const deleteMarkupBackward=({state:n,dispatch:e})=>{let s=syntaxTree(n),o=null,a=n.changeByRange(l=>{let c=l.from,{doc:u}=n;if(l.empty&&markdownLanguage.isActiveAt(n,l.from)){let f=u.lineAt(c),d=getContext(contextNodeForDelete(s,c),u);if(d.length){let g=d[d.length-1],b=g.to-g.spaceAfter.length+(g.spaceAfter?1:0);if(c-f.from>b&&!/\S/.test(f.text.slice(b,c-f.from)))return{range:EditorSelection.cursor(f.from+b),changes:{from:f.from+b,to:c}};if(c-f.from==b&&(!g.item||f.from<=g.item.from||!/\S/.test(f.text.slice(0,g.to)))){let E=f.from+g.from;if(g.item&&g.node.from .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:ivory},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:background,color:stone,border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),oneDarkHighlightStyle=HighlightStyle.define([{tag:tags$1.keyword,color:violet},{tag:[tags$1.name,tags$1.deleted,tags$1.character,tags$1.propertyName,tags$1.macroName],color:coral},{tag:[tags$1.function(tags$1.variableName),tags$1.labelName],color:malibu},{tag:[tags$1.color,tags$1.constant(tags$1.name),tags$1.standard(tags$1.name)],color:whiskey},{tag:[tags$1.definition(tags$1.name),tags$1.separator],color:ivory},{tag:[tags$1.typeName,tags$1.className,tags$1.number,tags$1.changed,tags$1.annotation,tags$1.modifier,tags$1.self,tags$1.namespace],color:chalky},{tag:[tags$1.operator,tags$1.operatorKeyword,tags$1.url,tags$1.escape,tags$1.regexp,tags$1.link,tags$1.special(tags$1.string)],color:cyan},{tag:[tags$1.meta,tags$1.comment],color:stone},{tag:tags$1.strong,fontWeight:"bold"},{tag:tags$1.emphasis,fontStyle:"italic"},{tag:tags$1.strikethrough,textDecoration:"line-through"},{tag:tags$1.link,color:stone,textDecoration:"underline"},{tag:tags$1.heading,fontWeight:"bold",color:coral},{tag:[tags$1.atom,tags$1.bool,tags$1.special(tags$1.variableName)],color:whiskey},{tag:[tags$1.processingInstruction,tags$1.string,tags$1.inserted],color:sage},{tag:tags$1.invalid,color:invalid}]),oneDark=[oneDarkTheme,syntaxHighlighting(oneDarkHighlightStyle)];function initVim(n){var e=n.Pos;function s(p,m){var v=p.state.vim;if(!v||v.insertMode)return m.head;var T=v.sel.head;if(!T)return m.head;if(!(v.visualBlock&&m.head.line!=T.line))return m.from()==m.anchor&&!m.empty()&&m.head.line==T.line&&m.head.ch!=T.ch?new e(m.head.line,m.head.ch-1):m.head}function o(p,m,v){if(m.line===v.line&&m.ch>=v.ch-1){var T=p.getLine(m.line),A=T.charCodeAt(m.ch);55296<=A&&A<=55551&&(v.ch+=1)}return{start:m,end:v}}var a=[{keys:"",type:"keyToKey",toKeys:"h"},{keys:"",type:"keyToKey",toKeys:"l"},{keys:"",type:"keyToKey",toKeys:"k"},{keys:"",type:"keyToKey",toKeys:"j"},{keys:"g",type:"keyToKey",toKeys:"gk"},{keys:"g",type:"keyToKey",toKeys:"gj"},{keys:"",type:"keyToKey",toKeys:"l"},{keys:"",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"",type:"keyToKey",toKeys:"x",context:"normal"},{keys:"",type:"keyToKey",toKeys:"W"},{keys:"",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"",type:"keyToKey",toKeys:"w"},{keys:"",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"",type:"keyToKey",toKeys:"j"},{keys:"",type:"keyToKey",toKeys:"k"},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:"",context:"insert"},{keys:"",type:"keyToKey",toKeys:"",context:"insert"},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:"",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"",type:"keyToKey",toKeys:"0"},{keys:"",type:"keyToKey",toKeys:"$"},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:""},{keys:"",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"",type:"keyToKey",toKeys:"i",context:"normal"},{keys:"",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"(",type:"motion",motion:"moveBySentence",motionArgs:{forward:!1}},{keys:")",type:"motion",motion:"moveBySentence",motionArgs:{forward:!0}},{keys:"",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"g$",type:"motion",motion:"moveToEndOfDisplayLine"},{keys:"g^",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"g0",type:"motion",motion:"moveToStartOfDisplayLine"},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:"=",type:"operator",operator:"indentAuto"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"gn",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!0}},{keys:"gN",type:"motion",motion:"findAndSelectNextInclusive",motionArgs:{forward:!1}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"",type:"operatorMotion",operator:"delete",motion:"moveToStartOfLine",context:"insert"},{keys:"",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"",type:"idle",context:"normal"},{keys:"",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"gi",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"lastEdit"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"gI",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"bol"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"gJ",type:"action",action:"joinLines",actionArgs:{keepSpaces:!0},isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r",type:"action",action:"replace",isEdit:!0},{keys:"@",type:"action",action:"replayMacro"},{keys:"q",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0},context:"normal"},{keys:"R",type:"operator",operator:"change",operatorArgs:{linewise:!0,fullLine:!0},context:"visual",exitVisualBlock:!0},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"",type:"action",action:"redo"},{keys:"m",type:"action",action:"setMark"},{keys:'"',type:"action",action:"setRegister"},{keys:"",type:"action",action:"insertRegister",context:"insert",isEdit:!0},{keys:"",type:"action",action:"oneNormalCommand",context:"insert"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a",type:"motion",motion:"textObjectManipulation"},{keys:"i",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],l=a.length,c=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"omap",shortName:"om"},{name:"noremap",shortName:"no"},{name:"nnoremap",shortName:"nn"},{name:"vnoremap",shortName:"vn"},{name:"inoremap",shortName:"ino"},{name:"onoremap",shortName:"ono"},{name:"unmap"},{name:"mapclear",shortName:"mapc"},{name:"nmapclear",shortName:"nmapc"},{name:"vmapclear",shortName:"vmapc"},{name:"imapclear",shortName:"imapc"},{name:"omapclear",shortName:"omapc"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"vglobal",shortName:"v"},{name:"delete",shortName:"d"},{name:"join",shortName:"j"},{name:"normal",shortName:"norm"},{name:"global",shortName:"g"}];function u(p){p.setOption("disableInput",!0),p.setOption("showCursorWhenSelecting",!1),n.signal(p,"vim-mode-change",{mode:"normal"}),p.on("cursorActivity",Pi),yt(p),n.on(p.getInputField(),"paste",X(p))}function f(p){p.setOption("disableInput",!1),p.off("cursorActivity",Pi),n.off(p.getInputField(),"paste",X(p)),p.state.vim=null,Wt&&clearTimeout(Wt)}function d(p,m){this==n.keyMap.vim&&(p.options.$customCursor=null,n.rmClass(p.getWrapperElement(),"cm-fat-cursor")),(!m||m.attach!=g)&&f(p)}function g(p,m){this==n.keyMap.vim&&(p.curOp&&(p.curOp.selectionChanged=!0),p.options.$customCursor=s,n.addClass(p.getWrapperElement(),"cm-fat-cursor")),(!m||m.attach!=g)&&u(p)}n.defineOption("vimMode",!1,function(p,m,v){m&&p.getOption("keyMap")!="vim"?p.setOption("keyMap","vim"):!m&&v!=n.Init&&/^vim/.test(p.getOption("keyMap"))&&p.setOption("keyMap","default")});function b(p,m){if(m){if(this[p])return this[p];var v=D(p);if(!v)return!1;var T=rt.findKey(m,v);return typeof T=="function"&&n.signal(m,"vim-keypress",v),T}}var E={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A",CapsLock:""},B={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"},V={};"Left|Right|Up|Down|End|Home".split("|").concat(Object.keys(B)).forEach(function(p){V[(B[p]||"").toLowerCase()]=V[p.toLowerCase()]=p});function D(p){if(p.charAt(0)=="'")return p.charAt(1);var m=p.split(/-(?!$)/),v=m[m.length-1];if(m.length==1&&m[0].length==1)return!1;if(m.length==2&&m[0]=="Shift"&&v.length==1)return!1;for(var T=!1,A=0;A"):!1}function X(p){var m=p.state.vim;return m.onPasteFn||(m.onPasteFn=function(){m.insertMode||(p.setCursor(nt(p.getCursor(),0,1)),_t.enterInsertMode(p,{},m))}),m.onPasteFn}var q=/[\d]/,z=[n.isWordChar,function(p){return p&&!n.isWordChar(p)&&!/\s/.test(p)}],oe=[function(p){return/\S/.test(p)}];function j(p,m){for(var v=[],T=p;T"]),ge=[].concat(ue,fe,xe,["-",'"',".",":","_","/","+"]),Qe;try{Qe=new RegExp("^[\\p{Lu}]$","u")}catch{Qe=/^[A-Z]$/}function Me(p,m){return m>=p.firstLine()&&m<=p.lastLine()}function Ie(p){return/^[a-z]$/.test(p)}function Ze(p){return"()[]{}".indexOf(p)!=-1}function De(p){return q.test(p)}function Te(p){return Qe.test(p)}function Ne(p){return/^\s*$/.test(p)}function qe(p){return".?!".indexOf(p)!=-1}function Fe(p,m){for(var v=0;vv?m=v:m0?1:-1,de,K=Z.getCursor();do if(m+=le,F=A[(p+m)%p],F&&(de=F.find())&&!Ot(K,de))break;while(mT)}return F}function U(Z,Y){var F=m,le=N(Z,Y);return m=F,le&&le.find()}return{cachedCursor:void 0,add:R,find:U,move:N}},it=function(p){return p?{changes:p.changes,expectCursorActivityForChange:p.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};function Tt(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=it()}Tt.prototype={exitMacroRecordMode:function(){var p=Pe.macroModeState;p.onRecordingDone&&p.onRecordingDone(),p.onRecordingDone=void 0,p.isRecording=!1},enterMacroRecordMode:function(p,m){var v=Pe.registerController.getRegister(m);if(v){if(v.clear(),this.latestRegister=m,p.openDialog){var T=At("span",{class:"cm-vim-message"},"recording @"+m);this.onRecordingDone=p.openDialog(T,null,{bottom:!0})}this.isRecording=!0}}};function yt(p){return p.state.vim||(p.state.vim={inputState:new Nt,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},insertMode:!1,insertModeReturn:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),p.state.vim}var Pe;function St(){Pe={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:Je(),macroModeState:new Tt,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new ti({}),searchHistoryController:new qt,exCommandHistoryController:new qt};for(var p in Ee){var m=Ee[p];m.value=m.defaultValue}}var dt,rt={enterVimMode:u,leaveVimMode:f,buildKeyMap:function(){},getRegisterController:function(){return Pe.registerController},resetVimGlobalState_:St,getVimGlobalState_:function(){return Pe},maybeInitVimState_:yt,suppressErrorLogging:!1,InsertModeKey:Kt,map:function(p,m,v){bt.map(p,m,v)},unmap:function(p,m){return bt.unmap(p,m)},noremap:function(p,m,v){bt.map(p,m,v,!0)},mapclear:function(p){var m=a.length,v=l,T=a.slice(0,m-v);if(a=a.slice(m-v),p)for(var A=T.length-1;A>=0;A--){var R=T[A];if(p!==R.context)if(R.context)this._mapCommand(R);else{var N=["normal","insert","visual"];for(var U in N)if(N[U]!==p){var Z={};for(var Y in R)Z[Y]=R[Y];Z.context=N[U],this._mapCommand(Z)}}}},setOption:ze,getOption:je,defineOption:$e,defineEx:function(p,m,v){if(!m)m=p;else if(p.indexOf(m)!==0)throw new Error('(Vim.defineEx) "'+m+'" is not a prefix of "'+p+'", command not registered');ki[p]=v,bt.commandMap_[m]={name:p,shortName:m,type:"api"}},handleKey:function(p,m,v){var T=this.findKey(p,m,v);if(typeof T=="function")return T()},multiSelectHandleKey:kr,findKey:function(p,m,v){var T=yt(p);function A(){var Y=Pe.macroModeState;if(Y.isRecording){if(m=="q")return Y.exitMacroRecordMode(),ct(p),!0;v!="mapping"&&br(Y,m)}}function R(){if(m==""){if(T.visualMode)wt(p);else if(T.insertMode)Mt(p);else return;return ct(p),!0}}function N(){if(R())return!0;T.inputState.keyBuffer.push(m);var Y=T.inputState.keyBuffer.join(""),F=m.length==1,le=Lt.matchCommand(Y,a,T.inputState,"insert"),de=T.inputState.changeQueue;if(le.type=="none")return ct(p),!1;if(le.type=="partial"){if(dt&&window.clearTimeout(dt),dt=F&&window.setTimeout(function(){T.insertMode&&T.inputState.keyBuffer.length&&ct(p)},je("insertModeEscKeysTimeout")),F){var K=p.listSelections();(!de||de.removed.length!=K.length)&&(de=T.inputState.changeQueue=new Li),de.inserted+=m;for(var H=0;H|./gi,R;R=A.exec(m);){var N=R[0],U=T.insertMode,Z=rt.handleKey(p,N,"mapping");if(!Z&&U&&T.insertMode){if(N[0]=="<"){var F=N.toLowerCase().slice(1,-1),Y=F.split("-"),F=Y.pop();if(F=="lt")N="<";else if(F=="space")N=" ";else if(F=="cr")N=` +`;else if(V.hasOwnProperty(F)){N=V[F],Ai(p,N);continue}else N=N[0],A.lastIndex=R.index+1}p.replaceSelection(N)}}}finally{Qt=!1,kt.length=0}}function Nt(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null,this.changeQueue=null}Nt.prototype.pushRepeatDigit=function(p){this.operator?this.motionRepeat=this.motionRepeat.concat(p):this.prefixRepeat=this.prefixRepeat.concat(p)},Nt.prototype.getRepeat=function(){var p=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(p=1,this.prefixRepeat.length>0&&(p*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(p*=parseInt(this.motionRepeat.join(""),10))),p};function ct(p,m){p.state.vim.inputState=new Nt,n.signal(p,"vim-command-done",m)}function Li(){this.removed=[],this.inserted=""}function vt(p,m,v){this.clear(),this.keyBuffer=[p||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!m,this.blockwise=!!v}vt.prototype={setText:function(p,m,v){this.keyBuffer=[p||""],this.linewise=!!m,this.blockwise=!!v},pushText:function(p,m){m&&(this.linewise||this.keyBuffer.push(` +`),this.linewise=!0),this.keyBuffer.push(p)},pushInsertModeChanges:function(p){this.insertModeChanges.push(it(p))},pushSearchQuery:function(p){this.searchQueries.push(p)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}};function _i(p,m){var v=Pe.registerController.registers;if(!p||p.length!=1)throw Error("Register name must be 1 character");if(v[p])throw Error("Register already defined "+p);v[p]=m,ge.push(p)}function ti(p){this.registers=p,this.unnamedRegister=p['"']=new vt,p["."]=new vt,p[":"]=new vt,p["/"]=new vt,p["+"]=new vt}ti.prototype={pushText:function(p,m,v,T,A){if(p!=="_"){T&&v.charAt(v.length-1)!==` +`&&(v+=` +`);var R=this.isValidRegister(p)?this.getRegister(p):null;if(!R){switch(m){case"yank":this.registers[0]=new vt(v,T,A);break;case"delete":case"change":v.indexOf(` +`)==-1?this.registers["-"]=new vt(v,T):(this.shiftNumericRegisters_(),this.registers[1]=new vt(v,T));break}this.unnamedRegister.setText(v,T,A);return}var N=Te(p);N?R.pushText(v,T):R.setText(v,T,A),p==="+"&&navigator.clipboard.writeText(v),this.unnamedRegister.setText(R.toString(),T)}},getRegister:function(p){return this.isValidRegister(p)?(p=p.toLowerCase(),this.registers[p]||(this.registers[p]=new vt),this.registers[p]):this.unnamedRegister},isValidRegister:function(p){return p&&Fe(p,ge)},shiftNumericRegisters_:function(){for(var p=9;p>=2;p--)this.registers[p]=this.getRegister(""+(p-1))}};function qt(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}qt.prototype={nextMatch:function(p,m){var v=this.historyBuffer,T=m?-1:1;this.initialPrefix===null&&(this.initialPrefix=p);for(var A=this.iterator+T;m?A>=0:A=v.length)return this.iterator=v.length,this.initialPrefix;if(A<0)return p},pushInput:function(p){var m=this.historyBuffer.indexOf(p);m>-1&&this.historyBuffer.splice(m,1),p.length&&this.historyBuffer.push(p)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var Lt={matchCommand:function(p,m,v,T){var A=Ni(p,m,T,v);if(!A.full&&!A.partial)return{type:"none"};if(!A.full&&A.partial)return{type:"partial"};for(var R,N=0;N"){var Z=Di(p);if(!Z||Z.length>1)return{type:"clear"};v.selectedCharacter=Z}return{type:"full",command:R}},processCommand:function(p,m,v){switch(m.inputState.repeatOverride=v.repeatOverride,v.type){case"motion":this.processMotion(p,m,v);break;case"operator":this.processOperator(p,m,v);break;case"operatorMotion":this.processOperatorMotion(p,m,v);break;case"action":this.processAction(p,m,v);break;case"search":this.processSearch(p,m,v);break;case"ex":case"keyToEx":this.processEx(p,m,v);break}},processMotion:function(p,m,v){m.inputState.motion=v.motion,m.inputState.motionArgs=Xt(v.motionArgs),this.evalInput(p,m)},processOperator:function(p,m,v){var T=m.inputState;if(T.operator)if(T.operator==v.operator){T.motion="expandToLine",T.motionArgs={linewise:!0},this.evalInput(p,m);return}else ct(p);T.operator=v.operator,T.operatorArgs=Xt(v.operatorArgs),v.keys.length>1&&(T.operatorShortcut=v.keys),v.exitVisualBlock&&(m.visualBlock=!1,It(p)),m.visualMode&&this.evalInput(p,m)},processOperatorMotion:function(p,m,v){var T=m.visualMode,A=Xt(v.operatorMotionArgs);A&&T&&A.visualLine&&(m.visualLine=!0),this.processOperator(p,m,v),T||this.processMotion(p,m,v)},processAction:function(p,m,v){var T=m.inputState,A=T.getRepeat(),R=!!A,N=Xt(v.actionArgs)||{};T.selectedCharacter&&(N.selectedCharacter=T.selectedCharacter),v.operator&&this.processOperator(p,m,v),v.motion&&this.processMotion(p,m,v),(v.motion||v.operator)&&this.evalInput(p,m),N.repeat=A||1,N.repeatIsExplicit=R,N.registerName=T.registerName,ct(p),m.lastMotion=null,v.isEdit&&this.recordLastEdit(m,T,v),_t[v.action](p,N,m)},processSearch:function(p,m,v){if(!p.getSearchCursor)return;var T=v.searchArgs.forward,A=v.searchArgs.wholeWordOnly;xt(p).setReversed(!T);var R=T?"/":"?",N=xt(p).getQuery(),U=p.getScrollInfo();function Z(ve,Le,_e){Pe.searchHistoryController.pushInput(ve),Pe.searchHistoryController.reset();try{Vt(p,ve,Le,_e)}catch{Ye(p,"Invalid regex: "+ve),ct(p);return}Lt.processMotion(p,m,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:v.searchArgs.toJumplist}})}function Y(ve){p.scrollTo(U.left,U.top),Z(ve,!0,!0);var Le=Pe.macroModeState;Le.isRecording&&xr(Le,ve)}function F(ve,Le,_e){var Ae=n.keyName(ve),Ke,ut;Ae=="Up"||Ae=="Down"?(Ke=Ae=="Up",ut=ve.target?ve.target.selectionEnd:0,Le=Pe.searchHistoryController.nextMatch(Le,Ke)||"",_e(Le),ut&&ve.target&&(ve.target.selectionEnd=ve.target.selectionStart=Math.min(ut,ve.target.value.length))):Ae!="Left"&&Ae!="Right"&&Ae!="Ctrl"&&Ae!="Alt"&&Ae!="Shift"&&Pe.searchHistoryController.reset();var tt;try{tt=Vt(p,Le,!0,!0)}catch{}tt?p.scrollIntoView(bi(p,!T,tt),30):(Ht(p),p.scrollTo(U.left,U.top))}function le(ve,Le,_e){var Ae=n.keyName(ve);Ae=="Esc"||Ae=="Ctrl-C"||Ae=="Ctrl-["||Ae=="Backspace"&&Le==""?(Pe.searchHistoryController.pushInput(Le),Pe.searchHistoryController.reset(),Vt(p,N),Ht(p),p.scrollTo(U.left,U.top),n.e_stop(ve),ct(p),_e(),p.focus()):Ae=="Up"||Ae=="Down"?n.e_stop(ve):Ae=="Ctrl-U"&&(n.e_stop(ve),_e(""))}switch(v.searchArgs.querySrc){case"prompt":var de=Pe.macroModeState;if(de.isPlaying){var ke=de.replaySearchQueries.shift();Z(ke,!0,!1)}else Zt(p,{onClose:Y,prefix:R,desc:"(JavaScript regexp)",onKeyUp:F,onKeyDown:le});break;case"wordUnderCursor":var K=Dt(p,!1,!1,!1,!0),H=!0;if(K||(K=Dt(p,!1,!1,!1,!1),H=!1),!K)return;var ke=p.getLine(K.start.line).substring(K.start.ch,K.end.ch);H&&A?ke="\\b"+ke+"\\b":ke=Zi(ke),Pe.jumpList.cachedCursor=p.getCursor(),p.setCursor(K.start),Z(ke,!0,!1);break}},processEx:function(p,m,v){function T(R){Pe.exCommandHistoryController.pushInput(R),Pe.exCommandHistoryController.reset(),bt.processCommand(p,R),p.state.vim&&ct(p)}function A(R,N,U){var Z=n.keyName(R),Y,F;(Z=="Esc"||Z=="Ctrl-C"||Z=="Ctrl-["||Z=="Backspace"&&N=="")&&(Pe.exCommandHistoryController.pushInput(N),Pe.exCommandHistoryController.reset(),n.e_stop(R),ct(p),U(),p.focus()),Z=="Up"||Z=="Down"?(n.e_stop(R),Y=Z=="Up",F=R.target?R.target.selectionEnd:0,N=Pe.exCommandHistoryController.nextMatch(N,Y)||"",U(N),F&&R.target&&(R.target.selectionEnd=R.target.selectionStart=Math.min(F,R.target.value.length))):Z=="Ctrl-U"?(n.e_stop(R),U("")):Z!="Left"&&Z!="Right"&&Z!="Ctrl"&&Z!="Alt"&&Z!="Shift"&&Pe.exCommandHistoryController.reset()}v.type=="keyToEx"?bt.processCommand(p,v.exArgs.input):m.visualMode?Zt(p,{onClose:T,prefix:":",value:"'<,'>",onKeyDown:A,selectValueOnOpen:!1}):Zt(p,{onClose:T,prefix:":",onKeyDown:A})},evalInput:function(p,m){var v=m.inputState,T=v.motion,A=v.motionArgs||{},R=v.operator,N=v.operatorArgs||{},U=v.registerName,Z=m.sel,Y=He(m.visualMode?ft(p,Z.head):p.getCursor("head")),F=He(m.visualMode?ft(p,Z.anchor):p.getCursor("anchor")),le=He(Y),de=He(F),K,H,ke;if(R&&this.recordLastEdit(m,v),v.repeatOverride!==void 0?ke=v.repeatOverride:ke=v.getRepeat(),ke>0&&A.explicitRepeat?A.repeatIsExplicit=!0:(A.noRepeat||!A.explicitRepeat&&ke===0)&&(ke=1,A.repeatIsExplicit=!1),v.selectedCharacter&&(A.selectedCharacter=N.selectedCharacter=v.selectedCharacter),A.repeat=ke,ct(p),T){var ve=Ct[T](p,Y,A,m,v);if(m.lastMotion=Ct[T],!ve)return;if(A.toJumplist){var Le=Pe.jumpList,_e=Le.cachedCursor;_e?(li(p,_e,ve),delete Le.cachedCursor):li(p,Y,ve)}ve instanceof Array?(H=ve[0],K=ve[1]):K=ve,K||(K=He(Y)),m.visualMode?(m.visualBlock&&K.ch===1/0||(K=ft(p,K,le)),H&&(H=ft(p,H)),H=H||de,Z.anchor=H,Z.head=K,It(p),Pt(p,m,"<",et(H,K)?H:K),Pt(p,m,">",et(H,K)?K:H)):R||(K=ft(p,K,le),p.setCursor(K.line,K.ch))}if(R){if(N.lastSel){H=de;var Ae=N.lastSel,Ke=Math.abs(Ae.head.line-Ae.anchor.line),ut=Math.abs(Ae.head.ch-Ae.anchor.ch);Ae.visualLine?K=new e(de.line+Ke,de.ch):Ae.visualBlock?K=new e(de.line+Ke,de.ch+ut):Ae.head.line==Ae.anchor.line?K=new e(de.line,de.ch+ut):K=new e(de.line+Ke,de.ch),m.visualMode=!0,m.visualLine=Ae.visualLine,m.visualBlock=Ae.visualBlock,Z=m.sel={anchor:H,head:K},It(p)}else m.visualMode&&(N.lastSel={anchor:He(Z.anchor),head:He(Z.head),visualBlock:m.visualBlock,visualLine:m.visualLine});var tt,at,We,Ue,pt;if(m.visualMode){tt=mt(Z.head,Z.anchor),at=Et(Z.head,Z.anchor),We=m.visualLine||N.linewise,Ue=m.visualBlock?"block":We?"line":"char";var st=o(p,tt,at);if(pt=zt(p,{anchor:st.start,head:st.end},Ue),We){var ot=pt.ranges;if(Ue=="block")for(var Rt=0;RtU:F.lineY&&A.line==Y?ui(p,m,v,T,!0):(v.toFirstChar&&(R=$t(p.getLine(U)),T.lastHPos=R),T.lastHSPos=p.charCoords(new e(U,R),"div").left,new e(U,R))},moveByDisplayLines:function(p,m,v,T){var A=m;switch(T.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:T.lastHSPos=p.charCoords(A,"div").left}var R=v.repeat,N=p.findPosV(A,v.forward?R:-R,"line",T.lastHSPos);if(N.hitSide)if(v.forward)var U=p.charCoords(N,"div"),Z={top:U.top+8,left:T.lastHSPos},N=p.coordsChar(Z,"div");else{var Y=p.charCoords(new e(p.firstLine(),0),"div");Y.left=T.lastHSPos,N=p.coordsChar(Y,"div")}return T.lastHPos=N.ch,N},moveByPage:function(p,m,v){var T=m,A=v.repeat;return p.findPosV(T,v.forward?A:-A,"page")},moveByParagraph:function(p,m,v){var T=v.forward?1:-1;return fi(p,m,v.repeat,T)},moveBySentence:function(p,m,v){var T=v.forward?1:-1;return rr(p,m,v.repeat,T)},moveByScroll:function(p,m,v,T){var A=p.getScrollInfo(),R=null,N=v.repeat;N||(N=A.clientHeight/(2*p.defaultTextHeight()));var U=p.charCoords(m,"local");if(v.repeat=N,R=Ct.moveByDisplayLines(p,m,v,T),!R)return null;var Z=p.charCoords(R,"local");return p.scrollTo(null,A.top+Z.top-U.top),R},moveByWords:function(p,m,v){return er(p,m,v.repeat,!!v.forward,!!v.wordEnd,!!v.bigWord)},moveTillCharacter:function(p,m,v){var T=v.repeat,A=jt(p,T,v.forward,v.selectedCharacter,m),R=v.forward?-1:1;return hi(R,v),A?(A.ch+=R,A):null},moveToCharacter:function(p,m,v){var T=v.repeat;return hi(0,v),jt(p,T,v.forward,v.selectedCharacter,m)||m},moveToSymbol:function(p,m,v){var T=v.repeat;return Ki(p,T,v.forward,v.selectedCharacter)||m},moveToColumn:function(p,m,v,T){var A=v.repeat;return T.lastHPos=A-1,T.lastHSPos=p.charCoords(m,"div").left,tr(p,A)},moveToEol:function(p,m,v,T){return ui(p,m,v,T,!1)},moveToFirstNonWhiteSpaceCharacter:function(p,m){var v=m;return new e(v.line,$t(p.getLine(v.line)))},moveToMatchedSymbol:function(p,m){for(var v=m,T=v.line,A=v.ch,R=p.getLine(T),N;A"?/[(){}[\]<>]/:/[(){}[\]]/,Y=p.findMatchingBracket(new e(T,A),{bracketRegex:Z});return Y.to}else return v},moveToStartOfLine:function(p,m){return new e(m.line,0)},moveToLineOrEdgeOfDocument:function(p,m,v){var T=v.forward?p.lastLine():p.firstLine();return v.repeatIsExplicit&&(T=v.repeat-p.getOption("firstLineNumber")),new e(T,$t(p.getLine(T)))},moveToStartOfDisplayLine:function(p){return p.execCommand("goLineLeft"),p.getCursor()},moveToEndOfDisplayLine:function(p){p.execCommand("goLineRight");var m=p.getCursor();return m.sticky=="before"&&m.ch--,m},textObjectManipulation:function(p,m,v,T){var A={"(":")",")":"(","{":"}","}":"{","[":"]","]":"[","<":">",">":"<"},R={"'":!0,'"':!0,"`":!0},N=v.selectedCharacter;N=="b"?N="(":N=="B"&&(N="{");var U=!v.textObjectInner,Z,Y;if(A[N]){if(Y=!0,Z=di(p,m,N,U),!Z){var F=p.getSearchCursor(new RegExp("\\"+N,"g"),m);F.find()&&(Z=di(p,F.from(),N,U))}}else if(R[N])Y=!0,Z=nr(p,m,N,U);else if(N==="W")Z=Dt(p,U,!U,!0);else if(N==="w")Z=Dt(p,U,!U,!1);else if(N==="p")if(Z=fi(p,m,v.repeat,0,U),v.linewise=!0,T.visualMode)T.visualLine||(T.visualLine=!0);else{var le=T.inputState.operatorArgs;le&&(le.linewise=!0),Z.end.line--}else if(N==="t")Z=Hi(p,m,U);else if(N==="s"){var de=p.getLine(m.line);m.ch>0&&qe(de[m.ch])&&(m.ch-=1);var K=pi(p,m,v.repeat,1,U),H=pi(p,m,v.repeat,-1,U);Ne(p.getLine(H.line)[H.ch])&&Ne(p.getLine(K.line)[K.ch-1])&&(H={line:H.line,ch:H.ch+1}),Z={start:H,end:K}}return Z?p.state.vim.visualMode?Fi(p,Z.start,Z.end,Y):[Z.start,Z.end]:null},repeatLastCharacterSearch:function(p,m,v){var T=Pe.lastCharacterSearch,A=v.repeat,R=v.forward===T.forward,N=(T.increment?1:0)*(R?-1:1);p.moveH(-N,"char"),v.inclusive=!!R;var U=jt(p,A,R,T.selectedCharacter);return U?(U.ch+=N,U):(p.moveH(N,"char"),m)}};function Ii(p,m){Ct[p]=m}function ii(p,m){for(var v=[],T=0;Tp.lastLine()&&m.linewise&&!le?p.replaceRange("",F,U):p.replaceRange("",N,U),m.linewise&&(le||(p.setCursor(F),n.commands.newlineAndIndent(p)),N.ch=Number.MAX_VALUE),T=N}Pe.registerController.pushText(m.registerName,"change",A,m.linewise,v.length>1),_t.enterInsertMode(p,{head:T},p.state.vim)},delete:function(p,m,v){var T,A,R=p.state.vim;if(R.visualBlock){A=p.getSelection();var Z=ii("",v.length);p.replaceSelections(Z),T=mt(v[0].head,v[0].anchor)}else{var N=v[0].anchor,U=v[0].head;m.linewise&&U.line!=p.firstLine()&&N.line==p.lastLine()&&N.line==U.line-1&&(N.line==p.firstLine()?N.ch=0:N=new e(N.line-1,ht(p,N.line-1))),A=p.getRange(N,U),p.replaceRange("",N,U),T=N,m.linewise&&(T=Ct.moveToFirstNonWhiteSpaceCharacter(p,N))}return Pe.registerController.pushText(m.registerName,"delete",A,m.linewise,R.visualBlock),ft(p,T)},indent:function(p,m,v){var T=p.state.vim;if(p.indentMore)for(var A=T.visualMode?m.repeat:1,R=0;RY.top?(Z.line+=(U-Y.top)/A,Z.line=Math.ceil(Z.line),p.setCursor(Z),Y=p.charCoords(Z,"local"),p.scrollTo(null,Y.top)):p.scrollTo(null,U);else{var F=U+p.getScrollInfo().clientHeight;F=A.anchor.line?R=nt(A.head,0,1):R=new e(A.anchor.line,0)}else if(T=="inplace"){if(v.visualMode)return}else T=="lastEdit"&&(R=wi(p)||R);p.setOption("disableInput",!1),m&&m.replace?(p.toggleOverwrite(!0),p.setOption("keyMap","vim-replace"),n.signal(p,"vim-mode-change",{mode:"replace"})):(p.toggleOverwrite(!1),p.setOption("keyMap","vim-insert"),n.signal(p,"vim-mode-change",{mode:"insert"})),Pe.macroModeState.isPlaying||(p.on("change",$i),v.insertEnd&&v.insertEnd.clear(),v.insertEnd=p.setBookmark(R,{insertLeft:!0}),n.on(p.getInputField(),"keydown",Qi)),v.visualMode&&wt(p),oi(p,R,N)}},toggleVisualMode:function(p,m,v){var T=m.repeat,A=p.getCursor(),R;if(v.visualMode)v.visualLine^m.linewise||v.visualBlock^m.blockwise?(v.visualLine=!!m.linewise,v.visualBlock=!!m.blockwise,n.signal(p,"vim-mode-change",{mode:"visual",subMode:v.visualLine?"linewise":v.visualBlock?"blockwise":""}),It(p)):wt(p);else{v.visualMode=!0,v.visualLine=!!m.linewise,v.visualBlock=!!m.blockwise,R=ft(p,new e(A.line,A.ch+T-1));var N=o(p,A,R);v.sel={anchor:N.start,head:N.end},n.signal(p,"vim-mode-change",{mode:"visual",subMode:v.visualLine?"linewise":v.visualBlock?"blockwise":""}),It(p),Pt(p,v,"<",mt(A,R)),Pt(p,v,">",Et(A,R))}},reselectLastSelection:function(p,m,v){var T=v.lastSelection;if(v.visualMode&&ai(p,v),T){var A=T.anchorMark.find(),R=T.headMark.find();if(!A||!R)return;v.sel={anchor:A,head:R},v.visualMode=!0,v.visualLine=T.visualLine,v.visualBlock=T.visualBlock,It(p),Pt(p,v,"<",mt(A,R)),Pt(p,v,">",Et(A,R)),n.signal(p,"vim-mode-change",{mode:"visual",subMode:v.visualLine?"linewise":v.visualBlock?"blockwise":""})}},joinLines:function(p,m,v){var T,A;if(v.visualMode){if(T=p.getCursor("anchor"),A=p.getCursor("head"),et(A,T)){var R=A;A=T,T=R}A.ch=ht(p,A.line)-1}else{var N=Math.max(m.repeat,2);T=p.getCursor(),A=ft(p,new e(T.line+N-1,1/0))}for(var U=0,Z=T.line;Z{this.continuePaste(p,m,v,R,T)});else{var A=T.toString();this.continuePaste(p,m,v,A,T)}},continuePaste:function(p,m,v,T,A){var R=He(p.getCursor());if(T){if(m.matchIndent){var N=p.getOption("tabSize"),U=function(st){var ot=st.split(" ").length-1,Rt=st.split(" ").length-1;return ot*N+Rt*1},Z=p.getLine(p.getCursor().line),Y=U(Z.match(/^\s*/)[0]),F=T.replace(/\n$/,""),le=T!==F,de=U(T.match(/^\s*/)[0]),T=F.replace(/^\s*/gm,function(st){var ot=Y+(U(st)-de);if(ot<0)return"";if(p.getOption("indentWithTabs")){var Rt=Math.floor(ot/N);return Array(Rt+1).join(" ")}else return Array(ot+1).join(" ")});T+=le?` +`:""}if(m.repeat>1)var T=Array(m.repeat+1).join(T);var K=A.linewise,H=A.blockwise;if(H){T=T.split(` +`),K&&T.pop();for(var ke=0;kep.lastLine()&&p.replaceRange(` +`,new e(We,0));var Ue=ht(p,We);UeZ.length&&(R=Z.length),N=new e(A.line,R)}var Y=o(p,A,N);if(A=Y.start,N=Y.end,T==` +`)v.visualMode||p.replaceRange("",A,N),(n.commands.newlineAndIndentContinueComment||n.commands.newlineAndIndent)(p);else{var F=p.getRange(A,N);if(F=F.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,T),F=F.replace(/[^\n]/g,T),v.visualBlock){var le=new Array(p.getOption("tabSize")+1).join(" ");F=p.getSelection(),F=F.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,T),F=F.replace(/\t/g,le).replace(/[^\n]/g,T).split(` +`),p.replaceSelections(F)}else p.replaceRange(F,A,N);v.visualMode?(A=et(U[0].anchor,U[0].head)?U[0].anchor:U[0].head,p.setCursor(A),wt(p,!1)):p.setCursor(nt(N,0,-1))}},incrementNumberToken:function(p,m){for(var v=p.getCursor(),T=p.getLine(v.line),A=/(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi,R,N,U,Z;(R=A.exec(T))!==null&&(N=R.index,U=N+R[0].length,!(v.chZ&&(F=-1),Z+=F,Z>U&&(Z-=2)}return new e(R,Z)}function Xt(p){var m={};for(var v in p)p.hasOwnProperty(v)&&(m[v]=p[v]);return m}function nt(p,m,v){return typeof m=="object"&&(v=m.ch,m=m.line),new e(p.line+m,p.ch+v)}function Ni(p,m,v,T){for(var A=T.operator,R,N=[],U=[],Z=Qt?m.length-l:0,Y=Z;Y"){var v=m.length-11,T=p.slice(0,v),A=m.slice(0,v);return T==A&&p.length>v?"full":A.indexOf(T)==0?"partial":!1}else return p==m?"full":m.indexOf(p)==0?"partial":!1}function Di(p){var m=/^.*(<[^>]+>)$/.exec(p),v=m?m[1]:p.slice(-1);if(v.length>1)switch(v){case"":v=` +`;break;case"":v=" ";break;default:v="";break}return v}function ri(p,m,v){return function(){for(var T=0;T2&&(m=mt.apply(void 0,Array.prototype.slice.call(arguments,1))),et(p,m)?p:m}function Et(p,m){return arguments.length>2&&(m=Et.apply(void 0,Array.prototype.slice.call(arguments,1))),et(p,m)?m:p}function ni(p,m,v){var T=et(p,m),A=et(m,v);return T&&A}function ht(p,m){return p.getLine(m).length}function Yt(p){return p.trim?p.trim():p.replace(/^\s+|\s+$/g,"")}function Zi(p){return p.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function Wi(p,m,v){var T=ht(p,m),A=new Array(v-T+1).join(" ");p.setCursor(new e(m,T)),p.replaceRange(A,p.getCursor())}function si(p,m){var v=[],T=p.listSelections(),A=He(p.clipPos(m)),R=!Ot(m,A),N=p.getCursor("head"),U=Ui(T,N),Z=Ot(T[U].head,T[U].anchor),Y=T.length-1,F=Y-U>U?Y:0,le=T[F].anchor,de=Math.min(le.line,A.line),K=Math.max(le.line,A.line),H=le.ch,ke=A.ch,ve=T[F].head.ch-H,Le=ke-H;ve>0&&Le<=0?(H++,R||ke--):ve<0&&Le>=0?(H--,Z||ke++):ve<0&&Le==-1&&(H--,ke++);for(var _e=de;_e<=K;_e++){var Ae={anchor:new e(_e,H),head:new e(_e,ke)};v.push(Ae)}return p.setSelections(v),m.ch=ke,le.ch=H,le}function oi(p,m,v){for(var T=[],A=0;AZ&&(A.line=Z),A.ch=ht(p,A.line)}return{ranges:[{anchor:R,head:A}],primary:0}}else if(v=="block"){var Y=Math.min(R.line,A.line),F=R.ch,le=Math.max(R.line,A.line),de=A.ch;F0&&R&&Ne(R);R=A.pop())v.line--,v.ch=0;R?(v.line--,v.ch=ht(p,v.line)):v.ch=0}}function ji(p,m,v){m.ch=0,v.ch=0,v.line++}function $t(p){if(!p)return 0;var m=p.search(/\S/);return m==-1?p.length:m}function Dt(p,m,v,T,A){var R=Yi(p),N=p.getLine(R.line),U=R.ch,Z=A?z[0]:oe[0];if(v&&/\s/.test(N.charAt(U)))Z=function(K){return/\s/.test(K)};else{for(;!Z(N.charAt(U));)if(U++,U>=N.length)return null;T?Z=oe[0]:(Z=z[0],Z(N.charAt(U))||(Z=z[1]))}for(var Y=U,F=U;Z(N.charAt(Y))&&Y=0;)F--;if(F++,m){for(var le=Y;/\s/.test(N.charAt(Y))&&Y0;)F--;F||(F=de)}}return{start:new e(R.line,F),end:new e(R.line,Y)}}function Hi(p,m,v){var T=m;if(!n.findMatchingTag||!n.findEnclosingTag)return{start:T,end:T};var A=n.findMatchingTag(p,m)||n.findEnclosingTag(p,m);return!A||!A.open||!A.close?{start:T,end:T}:v?{start:A.open.from,end:A.close.to}:{start:A.open.to,end:A.close.from}}function li(p,m,v){Ot(m,v)||Pe.jumpList.add(p,m,v)}function hi(p,m){Pe.lastCharacterSearch.increment=p,Pe.lastCharacterSearch.forward=m.forward,Pe.lastCharacterSearch.selectedCharacter=m.selectedCharacter}var Gi={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},ci={bracket:{isComplete:function(p){if(p.nextCh===p.symb){if(p.depth++,p.depth>=1)return!0}else p.nextCh===p.reverseSymb&&p.depth--;return!1}},section:{init:function(p){p.curMoveThrough=!0,p.symb=(p.forward?"]":"[")===p.symb?"{":"}"},isComplete:function(p){return p.index===0&&p.nextCh===p.symb}},comment:{isComplete:function(p){var m=p.lastCh==="*"&&p.nextCh==="/";return p.lastCh=p.nextCh,m}},method:{init:function(p){p.symb=p.symb==="m"?"{":"}",p.reverseSymb=p.symb==="{"?"}":"{"},isComplete:function(p){return p.nextCh===p.symb}},preprocess:{init:function(p){p.index=0},isComplete:function(p){if(p.nextCh==="#"){var m=p.lineText.match(/^#(\w+)/)[1];if(m==="endif"){if(p.forward&&p.depth===0)return!0;p.depth++}else if(m==="if"){if(!p.forward&&p.depth===0)return!0;p.depth--}if(m==="else"&&p.depth===0)return!0}return!1}}};function Ki(p,m,v,T){var A=He(p.getCursor()),R=v?1:-1,N=v?p.lineCount():-1,U=A.ch,Z=A.line,Y=p.getLine(Z),F={lineText:Y,nextCh:Y.charAt(U),lastCh:null,index:U,symb:T,reverseSymb:(v?{")":"(","}":"{"}:{"(":")","{":"}"})[T],forward:v,depth:0,curMoveThrough:!1},le=Gi[T];if(!le)return A;var de=ci[le].init,K=ci[le].isComplete;for(de&&de(F);Z!==N&&m;){if(F.index+=R,F.nextCh=F.lineText.charAt(F.index),!F.nextCh){if(Z+=R,F.lineText=p.getLine(Z)||"",R>0)F.index=0;else{var H=F.lineText.length;F.index=H>0?H-1:0}F.nextCh=F.lineText.charAt(F.index)}K(F)&&(A.line=Z,A.ch=F.index,m--)}return F.nextCh||F.curMoveThrough?new e(Z,F.index):A}function Ji(p,m,v,T,A){var R=m.line,N=m.ch,U=p.getLine(R),Z=v?1:-1,Y=T?oe:z;if(A&&U==""){if(R+=Z,U=p.getLine(R),!Me(p,R))return null;N=v?0:U.length}for(;;){if(A&&U=="")return{from:0,to:0,line:R};for(var F=Z>0?U.length:-1,le=F,de=F;N!=F;){for(var K=!1,H=0;H0?0:U.length}}function er(p,m,v,T,A,R){var N=He(m),U=[];(T&&!A||!T&&A)&&v++;for(var Z=!(T&&A),Y=0;Y0;)de(F,T)&&v--,F+=T;return new e(F,0)}var K=p.state.vim;if(K.visualLine&&de(R,1,!0)){var H=K.sel.anchor;de(H.line,-1,!0)&&(!A||H.line!=R)&&(R+=1)}var ke=le(R);for(F=R;F<=U&&v;F++)de(F,1,!0)&&(!A||le(F)!=ke)&&v--;for(Y=new e(F,0),F>U&&!ke?ke=!0:A=!1,F=R;F>N&&!((!A||le(F)==ke||F==R)&&de(F,-1,!0));F--);return Z=new e(F,0),{start:Z,end:Y}}function pi(p,m,v,T,A){function R(Y){Y.pos+Y.dir<0||Y.pos+Y.dir>=Y.line.length?Y.line=null:Y.pos+=Y.dir}function N(Y,F,le,de){var K=Y.getLine(F),H={line:K,ln:F,pos:le,dir:de};if(H.line==="")return{ln:H.ln,pos:H.pos};var ke=H.pos;for(R(H);H.line!==null;){if(ke=H.pos,qe(H.line[H.pos]))if(A){for(R(H);H.line!==null&&Ne(H.line[H.pos]);)ke=H.pos,R(H);return{ln:H.ln,pos:ke+1}}else return{ln:H.ln,pos:H.pos+1};R(H)}return{ln:H.ln,pos:ke+1}}function U(Y,F,le,de){var K=Y.getLine(F),H={line:K,ln:F,pos:le,dir:de};if(H.line==="")return{ln:H.ln,pos:H.pos};var ke=H.pos;for(R(H);H.line!==null;){if(!Ne(H.line[H.pos])&&!qe(H.line[H.pos]))ke=H.pos;else if(qe(H.line[H.pos]))return A?Ne(H.line[H.pos+1])?{ln:H.ln,pos:H.pos+1}:{ln:H.ln,pos:ke}:{ln:H.ln,pos:ke};R(H)}return H.line=K,A&&Ne(H.line[H.pos])?{ln:H.ln,pos:H.pos}:{ln:H.ln,pos:ke}}for(var Z={ln:m.line,pos:m.ch};v>0;)T<0?Z=U(p,Z.ln,Z.pos,T):Z=N(p,Z.ln,Z.pos,T),v--;return new e(Z.ln,Z.pos)}function rr(p,m,v,T){function A(Z,Y){if(Y.pos+Y.dir<0||Y.pos+Y.dir>=Y.line.length){if(Y.ln+=Y.dir,!Me(Z,Y.ln)){Y.line=null,Y.ln=null,Y.pos=null;return}Y.line=Z.getLine(Y.ln),Y.pos=Y.dir>0?0:Y.line.length-1}else Y.pos+=Y.dir}function R(Z,Y,F,le){var ve=Z.getLine(Y),de=ve==="",K={line:ve,ln:Y,pos:F,dir:le},H={ln:K.ln,pos:K.pos},ke=K.line==="";for(A(Z,K);K.line!==null;){if(H.ln=K.ln,H.pos=K.pos,K.line===""&&!ke)return{ln:K.ln,pos:K.pos};if(de&&K.line!==""&&!Ne(K.line[K.pos]))return{ln:K.ln,pos:K.pos};qe(K.line[K.pos])&&!de&&(K.pos===K.line.length-1||Ne(K.line[K.pos+1]))&&(de=!0),A(Z,K)}var ve=Z.getLine(H.ln);H.pos=0;for(var Le=ve.length-1;Le>=0;--Le)if(!Ne(ve[Le])){H.pos=Le;break}return H}function N(Z,Y,F,le){var ke=Z.getLine(Y),de={line:ke,ln:Y,pos:F,dir:le},K={ln:de.ln,pos:null},H=de.line==="";for(A(Z,de);de.line!==null;){if(de.line===""&&!H)return K.pos!==null?K:{ln:de.ln,pos:de.pos};if(qe(de.line[de.pos])&&K.pos!==null&&!(de.ln===K.ln&&de.pos+1===K.pos))return K;de.line!==""&&!Ne(de.line[de.pos])&&(H=!1,K={ln:de.ln,pos:de.pos}),A(Z,de)}var ke=Z.getLine(K.ln);K.pos=0;for(var ve=0;ve0;)T<0?U=N(p,U.ln,U.pos,T):U=R(p,U.ln,U.pos,T),v--;return new e(U.ln,U.pos)}function di(p,m,v,T){var A=m,R,N,U={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/,"<":/[<>]/,">":/[<>]/}[v],Z={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{","<":"<",">":"<"}[v],Y=p.getLine(A.line).charAt(A.ch),F=Y===Z?1:0;if(R=p.scanForBracket(new e(A.line,A.ch+F),-1,void 0,{bracketRegex:U}),N=p.scanForBracket(new e(A.line,A.ch+F),1,void 0,{bracketRegex:U}),!R||!N)return null;if(R=R.pos,N=N.pos,R.line==N.line&&R.ch>N.ch||R.line>N.line){var le=R;R=N,N=le}return T?N.ch+=1:R.ch+=1,{start:R,end:N}}function nr(p,m,v,T){var A=He(m),R=p.getLine(A.line),N=R.split(""),U,Z,Y,F,le=N.indexOf(v);if(A.ch-1&&!U;Y--)N[Y]==v&&(U=Y+1);if(U&&!Z)for(Y=U,F=N.length;Y=m&&p<=v:p==m}function Gt(p){var m=p.getScrollInfo(),v=6,T=10,A=p.coordsChar({left:0,top:v+m.top},"local"),R=m.clientHeight-T+m.top,N=p.coordsChar({left:0,top:R},"local");return{top:A.line,bottom:N.line}}function Ut(p,m,v){if(v=="'"||v=="`")return Pe.jumpList.find(p,-1)||new e(0,0);if(v==".")return wi(p);var T=m.marks[v];return T&&T.find()}function wi(p){if(p.getLastEditEnd)return p.getLastEditEnd();for(var m=p.doc.history.done,v=m.length;v--;)if(m[v].changes)return He(m[v].changes[0].to)}var xi=function(){this.buildCommandMap_()};xi.prototype={processCommand:function(p,m,v){var T=this;p.operation(function(){p.curOp.isVimOp=!0,T._processCommand(p,m,v)})},_processCommand:function(p,m,v){var T=p.state.vim,A=Pe.registerController.getRegister(":"),R=A.toString(),N=new n.StringStream(m);A.setText(m);var U=v||{};U.input=m;try{this.parseInput_(p,N,U)}catch(le){throw Ye(p,le.toString()),le}T.visualMode&&wt(p);var Z,Y;if(!U.commandName)U.line!==void 0&&(Y="move");else if(Z=this.matchCommand_(U.commandName),Z){if(Y=Z.name,Z.excludeFromCommandHistory&&A.setText(R),this.parseCommandArgs_(N,U,Z),Z.type=="exToKey"){for(var F=0;F"))==null?void 0:R.line):v.selectionLine=p.getCursor().line:(v.selectionLine=v.line,v.selectionLineEnd=v.lineEnd);var T=m.match(/^(\w+|!!|@@|[!#&*<=>@~])/);return T?v.commandName=T[1]:v.commandName=m.match(/.*/)[0],v},parseLineSpec_:function(p,m){var v=m.match(/^(\d+)/);if(v)return parseInt(v[1],10)-1;switch(m.next()){case".":return this.parseLineSpecOffset_(m,p.getCursor().line);case"$":return this.parseLineSpecOffset_(m,p.lastLine());case"'":var T=m.next(),A=Ut(p,p.state.vim,T);if(!A)throw new Error("Mark not set");return this.parseLineSpecOffset_(m,A.line);case"-":case"+":return m.backUp(1),this.parseLineSpecOffset_(m,p.getCursor().line);default:m.backUp(1);return}},parseLineSpecOffset_:function(p,m){var v=p.match(/^([+-])?(\d+)/);if(v){var T=parseInt(v[2],10);v[1]=="-"?m-=T:m+=T}return m},parseCommandArgs_:function(p,m,v){if(!p.eol()){m.argString=p.match(/.*/)[0];var T=v.argDelimiter||/\s+/,A=Yt(m.argString).split(T);A.length&&A[0]&&(m.args=A)}},matchCommand_:function(p){for(var m=p.length;m>0;m--){var v=p.substring(0,m);if(this.commandMap_[v]){var T=this.commandMap_[v];if(T.name.indexOf(p)===0)return T}}return null},buildCommandMap_:function(){this.commandMap_={};for(var p=0;p1)return"Invalid arguments";R=pt&&"decimal"||st&&"hex"||ot&&"octal"}Ue[2]&&(N=new RegExp(Ue[2].substr(1,Ue[2].length-2),T?"i":""))}}var Z=U();if(Z){Ye(p,Z+": "+m.argString);return}var Y=m.line||p.firstLine(),F=m.lineEnd||m.line||p.lastLine();if(Y==F)return;var le=new e(Y,0),de=new e(F,ht(p,F)),K=p.getRange(le,de).split(` +`),H=N||(R=="decimal"?/(-?)([\d]+)/:R=="hex"?/(-?)(?:0x)?([0-9a-f]+)/i:R=="octal"?/([0-7]+)/:null),ke=R=="decimal"?10:R=="hex"?16:R=="octal"?8:null,ve=[],Le=[];if(R||N)for(var _e=0;_e=Y){Ye(p,"Invalid argument: "+m.argString.substring(A));return}for(var F=0;F<=Y-Z;F++){var le=String.fromCharCode(Z+F);delete v.marks[le]}}else{Ye(p,"Invalid argument: "+N+"-");return}}else delete v.marks[R]}}},bt=new xi;function yr(p,m,v,T,A,R,N,U,Z){p.state.vim.exMode=!0;var Y=!1,F,le,de;function K(){p.operation(function(){for(;!Y;)H(),ve();Le()})}function H(){var Ae=p.getRange(R.from(),R.to()),Ke=Ae.replace(N,U),ut=R.to().line;R.replace(Ke),le=R.to().line,A+=le-ut,de=le1&&(Ei(p,v,v.insertModeRepeat-1,!0),v.lastEditInputState.repeatOverride=v.insertModeRepeat),delete v.insertModeRepeat,v.insertMode=!1,m||p.setCursor(p.getCursor().line,p.getCursor().ch-1),p.setOption("keyMap","vim"),p.setOption("disableInput",!0),p.toggleOverwrite(!1),A.setText(N.changes.join("")),n.signal(p,"vim-mode-change",{mode:"normal"}),T.isRecording&&wr(T)}function Ci(p){a.unshift(p)}function Sr(p,m,v,T,A){var R={keys:p,type:m};R[m]=v,R[m+"Args"]=T;for(var N in A)R[N]=A[N];Ci(R)}$e("insertModeEscKeysTimeout",200,"number"),n.keyMap["vim-insert"]={fallthrough:["default"],attach:g,detach:d,call:b},n.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:g,detach:d};function vr(p,m,v,T){var A=Pe.registerController.getRegister(T);if(T==":"){A.keyBuffer[0]&&bt.processCommand(p,A.keyBuffer[0]),v.isPlaying=!1;return}var R=A.keyBuffer,N=0;v.isPlaying=!0,v.replaySearchQueries=A.searchQueries.slice(0);for(var U=0;U|<\w+>|./.exec(Z),F=Y[0],Z=Z.substring(Y.index+F.length),rt.handleKey(p,F,"macro"),m.insertMode){var le=A.insertModeChanges[N++].changes;Pe.macroModeState.lastInsertModeChanges.changes=le,Mi(p,le,1),Mt(p)}v.isPlaying=!1}function br(p,m){if(!p.isPlaying){var v=p.latestRegister,T=Pe.registerController.getRegister(v);T&&T.pushText(m)}}function wr(p){if(!p.isPlaying){var m=p.latestRegister,v=Pe.registerController.getRegister(m);v&&v.pushInsertModeChanges&&v.pushInsertModeChanges(p.lastInsertModeChanges)}}function xr(p,m){if(!p.isPlaying){var v=p.latestRegister,T=Pe.registerController.getRegister(v);T&&T.pushSearchQuery&&T.pushSearchQuery(m)}}function $i(p,m){var v=Pe.macroModeState,T=v.lastInsertModeChanges;if(!v.isPlaying)for(var A=p.state.vim;m;){if(T.expectCursorActivityForChange=!0,T.ignoreCount>1)T.ignoreCount--;else if(m.origin=="+input"||m.origin=="paste"||m.origin===void 0){var R=p.listSelections().length;R>1&&(T.ignoreCount=R);var N=m.text.join(` +`);if(T.maybeReset&&(T.changes=[],T.maybeReset=!1),N)if(p.state.overwrite&&!/\n/.test(N))T.changes.push([N]);else{if(N.length>1){var U=A&&A.insertEnd&&A.insertEnd.find(),Z=p.getCursor();if(U&&U.line==Z.line){var Y=U.ch-Z.ch;Y>0&&Y",Et(T,v))}else m.insertMode||(m.lastHPos=p.getCursor().ch)}function Kt(p){this.keyName=p}function Qi(p){var m=Pe.macroModeState,v=m.lastInsertModeChanges,T=n.keyName(p);if(!T)return;function A(){return v.maybeReset&&(v.changes=[],v.maybeReset=!1),v.changes.push(new Kt(T)),!0}(T.indexOf("Delete")!=-1||T.indexOf("Backspace")!=-1)&&n.lookupKey(T,"vim-insert",A)}function Ei(p,m,v,T){var A=Pe.macroModeState;A.isPlaying=!0;var R=!!m.lastEditActionCommand,N=m.inputState;function U(){R?Lt.processAction(p,m,m.lastEditActionCommand):Lt.evalInput(p,m)}function Z(F){if(A.lastInsertModeChanges.changes.length>0){F=m.lastEditActionCommand?F:1;var le=A.lastInsertModeChanges;Mi(p,le.changes,F)}}if(m.inputState=m.lastEditInputState,R&&m.lastEditActionCommand.interlaceInsertRepeat)for(var Y=0;Y"&&!A.insertMode&&!A.visualMode&&N&&A.status=="")ct(p);else if(R||!N||p.inVirtualSelectionMode)T=rt.handleKey(p,m,v);else{var U=Jt(A),Z=A.inputState.changeQueueList||[];p.operation(function(){p.curOp.isVimOp=!0;var Y=0;p.forEachSelection(function(){p.state.vim.inputState.changeQueue=Z[Y];var F=p.getCursor("head"),le=p.getCursor("anchor"),de=et(F,le)?0:-1,K=et(F,le)?-1:0;F=nt(F,0,de),le=nt(le,0,K),p.state.vim.sel.head=F,p.state.vim.sel.anchor=le,T=rt.handleKey(p,m,v),p.virtualSelection&&(Z[Y]=p.state.vim.inputState.changeQueue,p.state.vim=Jt(U)),Y++}),p.curOp.cursorActivity&&!T&&(p.curOp.cursorActivity=!1),p.state.vim=A,A.inputState.changeQueueList=Z,A.inputState.changeQueue=null},!0)}return T&&!A.visualMode&&!A.insert&&A.visualMode!=p.somethingSelected()&&Ti(p,A),T}return St(),rt}function indexFromPos(n,e){var s=e.ch,o=e.line+1;o<1&&(o=1,s=0),o>n.lines&&(o=n.lines,s=Number.MAX_VALUE);var a=n.line(o);return Math.min(a.from+Math.max(0,s),a.to)}function posFromIndex(n,e){let s=n.lineAt(e);return{line:s.number-1,ch:e-s.from}}class Pos{constructor(e,s){this.line=e,this.ch=s}}function on(n,e,s){if(n.addEventListener)n.addEventListener(e,s,!1);else{var o=n._handlers||(n._handlers={});o[e]=(o[e]||[]).concat(s)}}function off$1(n,e,s){if(n.removeEventListener)n.removeEventListener(e,s,!1);else{var o=n._handlers,a=o&&o[e];if(a){var l=a.indexOf(s);l>-1&&(o[e]=a.slice(0,l).concat(a.slice(l+1)))}}}function signal$1(n,e,...s){var o,a=(o=n._handlers)===null||o===void 0?void 0:o[e];if(a)for(var l=0;l({anchor:posFromIndex(e,s.anchor),head:posFromIndex(e,s.head)}))}setSelections(e,s){var o=this.cm6.state.doc,a=e.map(l=>EditorSelection.range(indexFromPos(o,l.anchor),indexFromPos(o,l.head)));this.cm6.dispatch({selection:EditorSelection.create(a,s)})}setSelection(e,s,o){var a=this.cm6.state.doc,l=[EditorSelection.range(indexFromPos(a,e),indexFromPos(a,s))];this.cm6.dispatch({selection:EditorSelection.create(l,0)}),o&&o.origin=="*mouse"&&this.onBeforeEndOperation()}getLine(e){var s=this.cm6.state.doc;return e<0||e>=s.lines?"":this.cm6.state.doc.line(e+1).text}getLineHandle(e){return this.$lineHandleChanges||(this.$lineHandleChanges=[]),{row:e,index:this.indexFromPos(new Pos(e,0))}}getLineNumber(e){var s=this.$lineHandleChanges;if(!s)return null;for(var o=e.index,a=0;a({from:a.from,to:a.to,insert:e[l]||""}));dispatchChange(this,{changes:o})}getSelection(){return this.getSelections().join(` +`)}getSelections(){var e=this.cm6;return e.state.selection.ranges.map(s=>e.state.sliceDoc(s.from,s.to))}somethingSelected(){return this.cm6.state.selection.ranges.some(e=>!e.empty)}getInputField(){return this.cm6.contentDOM}clipPos(e){var s=this.cm6.state.doc,o=e.ch,a=e.line+1;a<1&&(a=1,o=0),a>s.lines&&(a=s.lines,o=Number.MAX_VALUE);var l=s.line(a);return o=Math.min(Math.max(0,o),l.to-l.from),new Pos(a-1,o)}getValue(){return this.cm6.state.doc.toString()}setValue(e){var s=this.cm6;return s.dispatch({changes:{from:0,to:s.state.doc.length,insert:e},selection:EditorSelection.range(0,0)})}focus(){return this.cm6.focus()}blur(){return this.cm6.contentDOM.blur()}defaultTextHeight(){return this.cm6.defaultLineHeight}findMatchingBracket(e){var s=this.cm6.state,o=indexFromPos(s.doc,e),a=matchBrackets(s,o+1,-1);return a&&a.end?{to:posFromIndex(s.doc,a.end.from)}:(a=matchBrackets(s,o,1),a&&a.end?{to:posFromIndex(s.doc,a.end.from)}:{to:void 0})}scanForBracket(e,s,o,a){return scanForBracket(this,e,s,o,a)}indentLine(e,s){s?this.indentMore():this.indentLess()}indentMore(){indentMore(this.cm6)}indentLess(){indentLess(this.cm6)}execCommand(e){e=="indentAuto"?CodeMirror.commands.indentAuto(this):e=="goLineLeft"?cursorLineBoundaryBackward(this.cm6):e=="goLineRight"?(cursorLineBoundaryForward(this.cm6),cursorCharBackward(this.cm6)):console.log(e+" is not implemented")}setBookmark(e,s){var o=s!=null&&s.insertLeft?1:-1,a=this.indexFromPos(e),l=new Marker(this,a,o);return l}addOverlay({query:e}){let s=new SearchQuery({regexp:!0,search:e.source,caseSensitive:!/i/.test(e.flags)});if(s.valid){s.forVim=!0,this.cm6Query=s;let o=setSearchQuery.of(s);return this.cm6.dispatch({effects:o}),s}}removeOverlay(e){if(!this.cm6Query)return;this.cm6Query.forVim=!1;let s=setSearchQuery.of(this.cm6Query);this.cm6.dispatch({effects:s})}getSearchCursor(e,s){var o=this,a=null,l=null;s.ch==null&&(s.ch=Number.MAX_VALUE);var c=indexFromPos(o.cm6.state.doc,s),u=e.source.replace(/(\\.|{(?:\d+(?:,\d*)?|,\d+)})|[{}]/g,function(E,B){return B||"\\"+E});function f(E,B=0,V=E.length){return new RegExpCursor(E,u,{ignoreCase:e.ignoreCase},B,V)}function d(E){var B=o.cm6.state.doc;if(E>B.length)return null;let V=f(B,E).next();return V.done?null:V.value}var g=1e4;function b(E,B){var V=o.cm6.state.doc;for(let D=1;;D++){let X=Math.max(E,B-D*g),q=f(V,X,B),z=null;for(;!q.next().done;)z=q.value;if(z&&(X==E||z.from>X+10))return z;if(X==E)return null}}return{findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(E){var B=o.cm6.state.doc;if(E){let V=a?a.from==a.to?a.to-1:a.from:c;a=b(0,V)}else{let V=a?a.from==a.to?a.to+1:a.to:c;a=d(V)}return l=a&&{from:posFromIndex(B,a.from),to:posFromIndex(B,a.to),match:a.match},a&&a.match},from:function(){return l==null?void 0:l.from},to:function(){return l==null?void 0:l.to},replace:function(E){a&&(dispatchChange(o,{changes:{from:a.from,to:a.to,insert:E}}),a.to=a.from+E.length,l&&(l.to=posFromIndex(o.cm6.state.doc,a.to)))}}}findPosV(e,s,o,a){let{cm6:l}=this;const c=l.state.doc;let u=o=="page"?l.dom.clientHeight:0;const f=indexFromPos(c,e);let d=EditorSelection.range(f,f,a),g=Math.round(Math.abs(s));for(let E=0;E0,u):o=="line"&&(d=l.moveVertically(d,s>0));let b=posFromIndex(c,d.head);return(s<0&&d.head==0&&a!=0&&e.line==0&&e.ch!=0||s>0&&d.head==c.length&&b.ch!=a&&e.line==b.line)&&(b.hitSide=!0),b}charCoords(e,s){var o=this.cm6.contentDOM.getBoundingClientRect(),a=indexFromPos(this.cm6.state.doc,e),l=this.cm6.coordsAtPos(a),c=-o.top;return{left:((l==null?void 0:l.left)||0)-o.left,top:((l==null?void 0:l.top)||0)+c,bottom:((l==null?void 0:l.bottom)||0)+c}}coordsChar(e,s){var o=this.cm6.contentDOM.getBoundingClientRect(),a=this.cm6.posAtCoords({x:e.left+o.left,y:e.top+o.top})||0;return posFromIndex(this.cm6.state.doc,a)}getScrollInfo(){var e=this.cm6.scrollDOM;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight,width:e.scrollWidth,clientHeight:e.clientHeight,clientWidth:e.clientWidth}}scrollTo(e,s){e!=null&&(this.cm6.scrollDOM.scrollLeft=e),s!=null&&(this.cm6.scrollDOM.scrollTop=s)}scrollIntoView(e,s){if(e){var o=this.indexFromPos(e);this.cm6.dispatch({effects:EditorView.scrollIntoView(o)})}else this.cm6.dispatch({scrollIntoView:!0,userEvent:"scroll"})}getWrapperElement(){return this.cm6.dom}getMode(){return{name:this.getOption("mode")}}setSize(e,s){this.cm6.dom.style.width=e+4+"px",this.cm6.dom.style.height=s+"px",this.refresh()}refresh(){this.cm6.measure()}destroy(){this.removeOverlay()}getLastEditEnd(){return this.posFromIndex(this.$lastChangeEndOffset)}onChange(e){this.$lineHandleChanges&&this.$lineHandleChanges.push(e);for(let o in this.marks)this.marks[o].update(e.changes);this.virtualSelection&&(this.virtualSelection.ranges=this.virtualSelection.ranges.map(o=>o.map(e.changes)));var s=this.curOp=this.curOp||{};e.changes.iterChanges((o,a,l,c,u)=>{(s.$changeStart==null||s.$changeStart>l)&&(s.$changeStart=l),this.$lastChangeEndOffset=c;var f={text:u.toJSON()};s.lastChange?s.lastChange.next=s.lastChange=f:s.lastChange=s.change=f},!0),s.changeHandlers||(s.changeHandlers=this._handlers.change&&this._handlers.change.slice())}onSelectionChange(){var e=this.curOp=this.curOp||{};e.cursorActivityHandlers||(e.cursorActivityHandlers=this._handlers.cursorActivity&&this._handlers.cursorActivity.slice()),this.curOp.cursorActivity=!0}operation(e){this.curOp||(this.curOp={$d:0}),this.curOp.$d++;try{var s=e()}finally{this.curOp&&(this.curOp.$d--,this.curOp.$d||this.onBeforeEndOperation())}return s}onBeforeEndOperation(){var e=this.curOp,s=!1;e&&(e.change&&signalTo(e.changeHandlers,this,e.change),e&&e.cursorActivity&&(signalTo(e.cursorActivityHandlers,this,null),e.isVimOp&&(s=!0)),this.curOp=null),s&&this.scrollIntoView()}moveH(e,s){if(s=="char"){var o=this.getCursor();this.setCursor(o.line,o.ch+e)}}setOption(e,s){switch(e){case"keyMap":this.state.keyMap=s;break}}getOption(e){switch(e){case"firstLineNumber":return 1;case"tabSize":return this.cm6.state.tabSize||4;case"readonly":return this.cm6.state.readOnly;case"indentWithTabs":return this.cm6.state.facet(indentUnit)==" ";case"indentUnit":return this.cm6.state.facet(indentUnit).length||2;case"keyMap":return this.state.keyMap||"vim"}}toggleOverwrite(e){this.state.overwrite=e}getTokenTypeAt(e){var s,o=this.indexFromPos(e),a=ensureSyntaxTree(this.cm6.state,o),l=a==null?void 0:a.resolve(o),c=((s=l==null?void 0:l.type)===null||s===void 0?void 0:s.name)||"";return/comment/i.test(c)?"comment":/string/i.test(c)?"string":""}overWriteSelection(e){var s=this.cm6.state.doc,o=this.cm6.state.selection,a=o.ranges.map(l=>{if(l.empty){var c=l.to1}virtualSelectionMode(){return!!this.virtualSelection}forEachSelection(e){var s=this.cm6.state.selection;this.virtualSelection=EditorSelection.create(s.ranges,s.mainIndex);for(var o=0;odispatchChange(n,e)})},indentAuto:function(n){indentSelection(n.cm6)}};CodeMirror.defineOption=function(n,e,s){};CodeMirror.isWordChar=function(n){return wordChar.test(n)};CodeMirror.keys=keys;CodeMirror.keyMap={};CodeMirror.addClass=function(){};CodeMirror.rmClass=function(){};CodeMirror.e_preventDefault=function(n){n.preventDefault()};CodeMirror.e_stop=function(n){var e,s;(e=n==null?void 0:n.stopPropagation)===null||e===void 0||e.call(n),(s=n==null?void 0:n.preventDefault)===null||s===void 0||s.call(n)};CodeMirror.keyName=function(n){var e=n.key;if(!ignoredKeys[e]){e=="Escape"&&(e="Esc"),e==" "&&(e="Space"),e.length>1&&(e=e.replace(/Numpad|Arrow/,"")),e.length==1&&(e=e.toUpperCase());var s="";return n.ctrlKey&&(s+="Ctrl-"),n.altKey&&(s+="Alt-"),(s||e.length>1)&&n.shiftKey&&(s+="Shift-"),s+=e,s}};CodeMirror.vimKey=function(e){var s=e.key;if(!ignoredKeys[s]){s.length>1&&s[0]=="n"&&(s=s.replace("Numpad","")),s=specialKey[s]||s;var o="";return e.ctrlKey&&(o+="C-"),e.altKey&&(o+="A-"),e.metaKey&&(o+="M-"),CodeMirror.isMac&&e.altKey&&!e.metaKey&&!e.ctrlKey&&(o=o.slice(2)),(o||s.length>1)&&e.shiftKey&&(o+="S-"),o+=s,o.length>1&&(o="<"+o+">"),o}};CodeMirror.lookupKey=function(e,s,o){var a=CodeMirror.keys[e];a&&o(a)};CodeMirror.on=on;CodeMirror.off=off$1;CodeMirror.signal=signal$1;CodeMirror.findMatchingTag=findMatchingTag;CodeMirror.findEnclosingTag=findEnclosingTag;function dialogDiv(n,e,s){var o=document.createElement("div");return o.appendChild(e),o}function closeNotification(n,e){n.state.currentNotificationClose&&n.state.currentNotificationClose(),n.state.currentNotificationClose=e}function openNotification(n,e,s){closeNotification(n,u);var o=dialogDiv(n,e,s&&s.bottom),a=!1,l,c=s&&typeof s.duration<"u"?s.duration:5e3;function u(){a||(a=!0,clearTimeout(l),o.remove(),hideDialog(n,o))}return o.onclick=function(f){f.preventDefault(),u()},showDialog(n,o),c&&(l=setTimeout(u,c)),u}function showDialog(n,e){var s=n.state.dialog;n.state.dialog=e,e&&s!==e&&(s&&s.contains(document.activeElement)&&n.focus(),s&&s.parentElement?s.parentElement.replaceChild(e,s):s&&s.remove(),CodeMirror.signal(n,"dialog"))}function hideDialog(n,e){n.state.dialog==e&&(n.state.dialog=null,CodeMirror.signal(n,"dialog"))}function openDialog(n,e,s,o){o||(o={}),closeNotification(n,void 0);var a=dialogDiv(n,e,o.bottom),l=!1;showDialog(n,a);function c(f){if(typeof f=="string")u.value=f;else{if(l)return;l=!0,hideDialog(n,a),n.state.dialog||n.focus(),o.onClose&&o.onClose(a)}}var u=a.getElementsByTagName("input")[0];return u&&(o.value&&(u.value=o.value,o.selectValueOnOpen!==!1&&u.select()),o.onInput&&CodeMirror.on(u,"input",function(f){o.onInput(f,u.value,c)}),o.onKeyUp&&CodeMirror.on(u,"keyup",function(f){o.onKeyUp(f,u.value,c)}),CodeMirror.on(u,"keydown",function(f){o&&o.onKeyDown&&o.onKeyDown(f,u.value,c)||(f.keyCode==13&&s(u.value),(f.keyCode==27||o.closeOnEnter!==!1&&f.keyCode==13)&&(u.blur(),CodeMirror.e_stop(f),c()))}),o.closeOnBlur!==!1&&CodeMirror.on(u,"blur",function(){setTimeout(function(){document.activeElement!==u&&c()})}),u.focus()),c}var matching={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function bracketRegex(n){return n&&n.bracketRegex||/[(){}[\]]/}function scanForBracket(n,e,s,o,a){for(var l=a&&a.maxScanLineLength||1e4,c=a&&a.maxScanLines||1e3,u=[],f=bracketRegex(a),d=s>0?Math.min(e.line+c,n.lastLine()+1):Math.max(n.firstLine()-1,e.line-c),g=e.line;g!=d;g+=s){var b=n.getLine(g);if(b){var E=s>0?0:b.length-1,B=s>0?b.length:-1;if(!(b.length>l))for(g==e.line&&(E=e.ch-(s<0?1:0));E!=B;E+=s){var V=b.charAt(E);if(f.test(V)){var D=matching[V];if(D&&D.charAt(1)==">"==s>0)u.push(V);else if(u.length)u.pop();else return{pos:new Pos(g,E),ch:V}}}}}return g-s==(s>0?n.lastLine():n.firstLine())?!1:null}function findMatchingTag(n,e){}function findEnclosingTag(n,e){var s,o,a=n.cm6.state,l=n.indexFromPos(e);if(l!s.eq(this.cursors[o]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const o of e)this.cursorLayer.appendChild(o.draw())}else e.forEach((o,a)=>o.adjust(s[a]));this.cursors=e}}destroy(){this.cursorLayer.remove()}}const themeSpec={".cm-vimMode .cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-fat-cursor":{position:"absolute",background:"#ff9696",border:"none",whiteSpace:"pre"},"&:not(.cm-focused) .cm-fat-cursor":{background:"none",outline:"solid 1px #ff9696",color:"transparent !important"}},hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==Direction.LTR?e.left:e.right-n.scrollDOM.clientWidth)-n.scrollDOM.scrollLeft,top:e.top-n.scrollDOM.scrollTop}}function measureCursor(n,e,s,o){let a=s.head,l=!1,c=1,u=n.state.vim;if(u&&(!u.insertMode||n.state.overwrite)){if(l=!0,u.visualBlock&&!o)return null;s.anchor1&&(a--,d=e.state.sliceDoc(a,a+1));let g=e.coordsAtPos(a,1);if(!g)return null;let b=getBase(e),E=e.domAtPos(a),B=E?E.node:e.contentDOM;for(;E&&E.node instanceof HTMLElement;)B=E.node,E={node:E.node.childNodes[E.offset],offset:0};if(!(B instanceof HTMLElement)){if(!B.parentNode)return null;B=B.parentNode}let V=getComputedStyle(B),D=g.left;if(!d||d==` +`||d=="\r")d=" ";else if(d==" "){d=" ";var f=e.coordsAtPos(a+1,-1);f&&(D=f.left-(f.left-g.left)/parseInt(V.tabSize))}else/[\uD800-\uDBFF]/.test(d)&&a{e.state.vim&&(e.state.vim.status=""),this.blockCursor.scheduleRedraw(),this.updateStatus()}),this.cm.on("vim-mode-change",s=>{e.state.vim.mode=s.mode,s.subMode&&(e.state.vim.mode+=" block"),e.state.vim.status="",this.blockCursor.scheduleRedraw(),this.updateClass(),this.updateStatus()}),this.cm.on("dialog",()=>{this.cm.state.statusbar?this.updateStatus():n.dispatch({effects:showVimPanel.of(!!this.cm.state.dialog)})}),this.dom=document.createElement("span"),this.dom.style.cssText="position: absolute; right: 10px; top: 1px",this.statusButton=document.createElement("span"),this.statusButton.onclick=s=>{Vim.handleKey(this.cm,"","user"),this.cm.focus()},this.statusButton.style.cssText="cursor: pointer"}update(n){var e;if((n.viewportChanged||n.docChanged)&&this.query&&this.highlight(this.query),n.docChanged&&this.cm.onChange(n),n.selectionSet&&this.cm.onSelectionChange(),n.viewportChanged,this.cm.curOp&&!this.cm.curOp.isVimOp&&this.cm.onBeforeEndOperation(),n.transactions){for(let s of n.transactions)for(let o of s.effects)if(o.is(setSearchQuery))if(!((e=o.value)===null||e===void 0?void 0:e.forVim))this.highlight(null);else{let l=o.value.create();this.highlight(l)}}this.blockCursor.update(n)}updateClass(){const n=this.cm.state;!n.vim||n.vim.insertMode&&!n.overwrite?this.view.scrollDOM.classList.remove("cm-vimMode"):this.view.scrollDOM.classList.add("cm-vimMode")}updateStatus(){let n=this.cm.state.statusbar,e=this.cm.state.vim;if(!n||!e)return;let s=this.cm.state.dialog;if(s)s.parentElement!=n&&(n.textContent="",n.appendChild(s));else{n.textContent="";var o=(e.mode||"normal").toUpperCase();e.insertModeReturn&&(o+="(C-O)"),this.statusButton.textContent=`--${o}--`,n.appendChild(this.statusButton)}this.dom.textContent=e.status,n.appendChild(this.dom)}destroy(){Vim.leaveVimMode(this.cm),this.updateClass(),this.blockCursor.destroy(),delete this.view.cm}highlight(n){if(this.query=n,!n)return this.decorations=Decoration.none;let{view:e}=this,s=new RangeSetBuilder;for(let o=0,a=e.visibleRanges,l=a.length;oa[o+1].from-2*HighlightMargin;)u=a[++o].to;n.highlight(e.state,c,u,(f,d)=>{s.add(f,d,matchMark)})}return this.decorations=s.finish()}handleKey(n,e){const s=CodeMirror.vimKey(n),o=this.cm;if(!s)return;let a=o.state.vim;if(!a)return;if(s==""&&!a.insertMode&&!a.visualMode&&this.query){const u=a.searchState_;u&&(o.removeOverlay(u.getOverlay()),u.setOverlay(null))}if(s===""&&!CodeMirror.isMac&&o.somethingSelected())return this.waitForCopy=!0,!0;a.status=(a.status||"")+s;let c=Vim.multiSelectHandleKey(o,s,"user");return a=o.state.vim,!c&&a.insertMode&&o.state.overwrite&&(n.key&&n.key.length==1&&!/\n/.test(n.key)?(c=!0,o.overWriteSelection(n.key)):n.key=="Backspace"&&(c=!0,CodeMirror.commands.cursorCharLeft(o))),c&&(CodeMirror.signal(this.cm,"vim-keypress",s),n.preventDefault(),n.stopPropagation(),this.blockCursor.scheduleRedraw()),this.updateStatus(),!!c}},{eventHandlers:{copy:function(n,e){this.waitForCopy&&(this.waitForCopy=!1,Promise.resolve().then(()=>{var s=this.cm,o=s.state.vim;o&&(o.insertMode?s.setSelection(s.getCursor(),s.getCursor()):s.operation(()=>{s.curOp&&(s.curOp.isVimOp=!0),Vim.handleKey(s,"","user")}))}))},compositionstart:function(n,e){this.useNextTextInput=!0},keypress:function(n,e){this.lastKeydown=="Dead"&&this.handleKey(n,e)},keydown:function(n,e){this.lastKeydown=n.key,this.lastKeydown=="Unidentified"||this.lastKeydown=="Process"||this.lastKeydown=="Dead"?this.useNextTextInput=!0:(this.useNextTextInput=!1,this.handleKey(n,e))}},provide:()=>[EditorView.inputHandler.of((n,e,s,o)=>{var a,l,c=getCM(n);if(!c)return!1;var u=(a=c.state)===null||a===void 0?void 0:a.vim,f=c.state.vimPlugin;return u&&!u.insertMode&&!(!((l=c.curOp)===null||l===void 0)&&l.isVimOp)?(o==="\0\0"||(o.length==1&&f.useNextTextInput&&f.handleKey({key:o,preventDefault:()=>{},stopPropagation:()=>{}}),forceEndComposition(n)),!0):!1})],decorations:n=>n.decorations});function forceEndComposition(n){var e=n.scrollDOM.parentElement;if(e){if(FIREFOX_LINUX){n.contentDOM.textContent="\0\0",n.contentDOM.dispatchEvent(new CustomEvent("compositionend"));return}var s=n.scrollDOM.nextSibling,o=window.getSelection(),a=o&&{anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset};n.scrollDOM.remove(),e.insertBefore(n.scrollDOM,s);try{a&&o&&(o.setPosition(a.anchorNode,a.anchorOffset),a.focusNode&&o.extend(a.focusNode,a.focusOffset))}catch(l){console.error(l)}n.focus(),n.contentDOM.dispatchEvent(new CustomEvent("compositionend"))}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),showVimPanel=StateEffect.define(),vimPanelState=StateField.define({create:()=>!1,update(n,e){for(let s of e.effects)s.is(showVimPanel)&&(n=s.value);return n},provide:n=>showPanel.from(n,e=>e?createVimPanel:null)});function createVimPanel(n){let e=document.createElement("div");e.className="cm-vim-panel";let s=n.cm;return s.state.dialog&&e.appendChild(s.state.dialog),{top:!1,dom:e}}function statusPanel(n){let e=document.createElement("div");e.className="cm-vim-panel";let s=n.cm;return s.state.statusbar=e,s.state.vimPlugin.updateStatus(),{dom:e}}function vim(n={}){return[vimStyle,vimPlugin,hideNativeSelection,n.status?showPanel.of(statusPanel):vimPanelState]}function getCM(n){return n.cm||null}var astralIdentifierCodes=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],astralIdentifierStartCodes=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],nonASCIIidentifierChars="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",nonASCIIidentifierStartChars="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",reservedWords={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},ecma5AndLessKeywords="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",keywords$1={5:ecma5AndLessKeywords,"5module":ecma5AndLessKeywords+" export import",6:ecma5AndLessKeywords+" const class extends export import super"},keywordRelationalOperator=/^in(stanceof)?$/,nonASCIIidentifierStart=new RegExp("["+nonASCIIidentifierStartChars+"]"),nonASCIIidentifier=new RegExp("["+nonASCIIidentifierStartChars+nonASCIIidentifierChars+"]");function isInAstralSet(n,e){for(var s=65536,o=0;on)return!1;if(s+=e[o+1],s>=n)return!0}return!1}function isIdentifierStart(n,e){return n<65?n===36:n<91?!0:n<97?n===95:n<123?!0:n<=65535?n>=170&&nonASCIIidentifierStart.test(String.fromCharCode(n)):e===!1?!1:isInAstralSet(n,astralIdentifierStartCodes)}function isIdentifierChar(n,e){return n<48?n===36:n<58?!0:n<65?!1:n<91?!0:n<97?n===95:n<123?!0:n<=65535?n>=170&&nonASCIIidentifier.test(String.fromCharCode(n)):e===!1?!1:isInAstralSet(n,astralIdentifierStartCodes)||isInAstralSet(n,astralIdentifierCodes)}var TokenType=function(e,s){s===void 0&&(s={}),this.label=e,this.keyword=s.keyword,this.beforeExpr=!!s.beforeExpr,this.startsExpr=!!s.startsExpr,this.isLoop=!!s.isLoop,this.isAssign=!!s.isAssign,this.prefix=!!s.prefix,this.postfix=!!s.postfix,this.binop=s.binop||null,this.updateContext=null};function binop(n,e){return new TokenType(n,{beforeExpr:!0,binop:e})}var beforeExpr={beforeExpr:!0},startsExpr={startsExpr:!0},keywords={};function kw(n,e){return e===void 0&&(e={}),e.keyword=n,keywords[n]=new TokenType(n,e)}var types$1={num:new TokenType("num",startsExpr),regexp:new TokenType("regexp",startsExpr),string:new TokenType("string",startsExpr),name:new TokenType("name",startsExpr),privateId:new TokenType("privateId",startsExpr),eof:new TokenType("eof"),bracketL:new TokenType("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new TokenType("]"),braceL:new TokenType("{",{beforeExpr:!0,startsExpr:!0}),braceR:new TokenType("}"),parenL:new TokenType("(",{beforeExpr:!0,startsExpr:!0}),parenR:new TokenType(")"),comma:new TokenType(",",beforeExpr),semi:new TokenType(";",beforeExpr),colon:new TokenType(":",beforeExpr),dot:new TokenType("."),question:new TokenType("?",beforeExpr),questionDot:new TokenType("?."),arrow:new TokenType("=>",beforeExpr),template:new TokenType("template"),invalidTemplate:new TokenType("invalidTemplate"),ellipsis:new TokenType("...",beforeExpr),backQuote:new TokenType("`",startsExpr),dollarBraceL:new TokenType("${",{beforeExpr:!0,startsExpr:!0}),eq:new TokenType("=",{beforeExpr:!0,isAssign:!0}),assign:new TokenType("_=",{beforeExpr:!0,isAssign:!0}),incDec:new TokenType("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new TokenType("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:binop("||",1),logicalAND:binop("&&",2),bitwiseOR:binop("|",3),bitwiseXOR:binop("^",4),bitwiseAND:binop("&",5),equality:binop("==/!=/===/!==",6),relational:binop("/<=/>=",7),bitShift:binop("<>/>>>",8),plusMin:new TokenType("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:binop("%",10),star:binop("*",10),slash:binop("/",10),starstar:new TokenType("**",{beforeExpr:!0}),coalesce:binop("??",1),_break:kw("break"),_case:kw("case",beforeExpr),_catch:kw("catch"),_continue:kw("continue"),_debugger:kw("debugger"),_default:kw("default",beforeExpr),_do:kw("do",{isLoop:!0,beforeExpr:!0}),_else:kw("else",beforeExpr),_finally:kw("finally"),_for:kw("for",{isLoop:!0}),_function:kw("function",startsExpr),_if:kw("if"),_return:kw("return",beforeExpr),_switch:kw("switch"),_throw:kw("throw",beforeExpr),_try:kw("try"),_var:kw("var"),_const:kw("const"),_while:kw("while",{isLoop:!0}),_with:kw("with"),_new:kw("new",{beforeExpr:!0,startsExpr:!0}),_this:kw("this",startsExpr),_super:kw("super",startsExpr),_class:kw("class",startsExpr),_extends:kw("extends",beforeExpr),_export:kw("export"),_import:kw("import",startsExpr),_null:kw("null",startsExpr),_true:kw("true",startsExpr),_false:kw("false",startsExpr),_in:kw("in",{beforeExpr:!0,binop:7}),_instanceof:kw("instanceof",{beforeExpr:!0,binop:7}),_typeof:kw("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:kw("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:kw("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},lineBreak=/\r\n?|\n|\u2028|\u2029/,lineBreakG=new RegExp(lineBreak.source,"g");function isNewLine(n){return n===10||n===13||n===8232||n===8233}function nextLineBreak(n,e,s){s===void 0&&(s=n.length);for(var o=e;o>10)+55296,(n&1023)+56320))}var loneSurrogate=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,Position=function(e,s){this.line=e,this.column=s};Position.prototype.offset=function(e){return new Position(this.line,this.column+e)};var SourceLocation=function(e,s,o){this.start=s,this.end=o,e.sourceFile!==null&&(this.source=e.sourceFile)};function getLineInfo(n,e){for(var s=1,o=0;;){var a=nextLineBreak(n,o,e);if(a<0)return new Position(s,e-o);++s,o=a}}var defaultOptions={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},warnedAboutEcmaVersion=!1;function getOptions(n){var e={};for(var s in defaultOptions)e[s]=n&&hasOwn(n,s)?n[s]:defaultOptions[s];if(e.ecmaVersion==="latest"?e.ecmaVersion=1e8:e.ecmaVersion==null?(!warnedAboutEcmaVersion&&typeof console=="object"&&console.warn&&(warnedAboutEcmaVersion=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required. +Defaulting to 2020, but this will stop working in the future.`)),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),e.allowReserved==null&&(e.allowReserved=e.ecmaVersion<5),(!n||n.allowHashBang==null)&&(e.allowHashBang=e.ecmaVersion>=14),isArray(e.onToken)){var o=e.onToken;e.onToken=function(a){return o.push(a)}}return isArray(e.onComment)&&(e.onComment=pushComment(e,e.onComment)),e}function pushComment(n,e){return function(s,o,a,l,c,u){var f={type:s?"Block":"Line",value:o,start:a,end:l};n.locations&&(f.loc=new SourceLocation(this,c,u)),n.ranges&&(f.range=[a,l]),e.push(f)}}var SCOPE_TOP=1,SCOPE_FUNCTION=2,SCOPE_ASYNC=4,SCOPE_GENERATOR=8,SCOPE_ARROW=16,SCOPE_SIMPLE_CATCH=32,SCOPE_SUPER=64,SCOPE_DIRECT_SUPER=128,SCOPE_CLASS_STATIC_BLOCK=256,SCOPE_VAR=SCOPE_TOP|SCOPE_FUNCTION|SCOPE_CLASS_STATIC_BLOCK;function functionFlags(n,e){return SCOPE_FUNCTION|(n?SCOPE_ASYNC:0)|(e?SCOPE_GENERATOR:0)}var BIND_NONE=0,BIND_VAR=1,BIND_LEXICAL=2,BIND_FUNCTION=3,BIND_SIMPLE_CATCH=4,BIND_OUTSIDE=5,Parser=function(e,s,o){this.options=e=getOptions(e),this.sourceFile=e.sourceFile,this.keywords=wordsRegexp(keywords$1[e.ecmaVersion>=6?6:e.sourceType==="module"?"5module":5]);var a="";e.allowReserved!==!0&&(a=reservedWords[e.ecmaVersion>=6?6:e.ecmaVersion===5?5:3],e.sourceType==="module"&&(a+=" await")),this.reservedWords=wordsRegexp(a);var l=(a?a+" ":"")+reservedWords.strict;this.reservedWordsStrict=wordsRegexp(l),this.reservedWordsStrictBind=wordsRegexp(l+" "+reservedWords.strictBind),this.input=String(s),this.containsEsc=!1,o?(this.pos=o,this.lineStart=this.input.lastIndexOf(` +`,o-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(lineBreak).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=types$1.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType==="module",this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&e.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(SCOPE_TOP),this.regexpState=null,this.privateNameStack=[]},prototypeAccessors={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Parser.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};prototypeAccessors.inFunction.get=function(){return(this.currentVarScope().flags&SCOPE_FUNCTION)>0};prototypeAccessors.inGenerator.get=function(){return(this.currentVarScope().flags&SCOPE_GENERATOR)>0&&!this.currentVarScope().inClassFieldInit};prototypeAccessors.inAsync.get=function(){return(this.currentVarScope().flags&SCOPE_ASYNC)>0&&!this.currentVarScope().inClassFieldInit};prototypeAccessors.canAwait.get=function(){for(var n=this.scopeStack.length-1;n>=0;n--){var e=this.scopeStack[n];if(e.inClassFieldInit||e.flags&SCOPE_CLASS_STATIC_BLOCK)return!1;if(e.flags&SCOPE_FUNCTION)return(e.flags&SCOPE_ASYNC)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};prototypeAccessors.allowSuper.get=function(){var n=this.currentThisScope(),e=n.flags,s=n.inClassFieldInit;return(e&SCOPE_SUPER)>0||s||this.options.allowSuperOutsideMethod};prototypeAccessors.allowDirectSuper.get=function(){return(this.currentThisScope().flags&SCOPE_DIRECT_SUPER)>0};prototypeAccessors.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};prototypeAccessors.allowNewDotTarget.get=function(){var n=this.currentThisScope(),e=n.flags,s=n.inClassFieldInit;return(e&(SCOPE_FUNCTION|SCOPE_CLASS_STATIC_BLOCK))>0||s};prototypeAccessors.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&SCOPE_CLASS_STATIC_BLOCK)>0};Parser.extend=function(){for(var e=[],s=arguments.length;s--;)e[s]=arguments[s];for(var o=this,a=0;a=,?^&]/.test(a)||a==="!"&&this.input.charAt(o+1)==="=")}n+=e[0].length,skipWhiteSpace.lastIndex=n,n+=skipWhiteSpace.exec(this.input)[0].length,this.input[n]===";"&&n++}};pp$9.eat=function(n){return this.type===n?(this.next(),!0):!1};pp$9.isContextual=function(n){return this.type===types$1.name&&this.value===n&&!this.containsEsc};pp$9.eatContextual=function(n){return this.isContextual(n)?(this.next(),!0):!1};pp$9.expectContextual=function(n){this.eatContextual(n)||this.unexpected()};pp$9.canInsertSemicolon=function(){return this.type===types$1.eof||this.type===types$1.braceR||lineBreak.test(this.input.slice(this.lastTokEnd,this.start))};pp$9.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};pp$9.semicolon=function(){!this.eat(types$1.semi)&&!this.insertSemicolon()&&this.unexpected()};pp$9.afterTrailingComma=function(n,e){if(this.type===n)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0};pp$9.expect=function(n){this.eat(n)||this.unexpected()};pp$9.unexpected=function(n){this.raise(n??this.start,"Unexpected token")};var DestructuringErrors=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};pp$9.checkPatternErrors=function(n,e){if(n){n.trailingComma>-1&&this.raiseRecoverable(n.trailingComma,"Comma is not permitted after the rest element");var s=e?n.parenthesizedAssign:n.parenthesizedBind;s>-1&&this.raiseRecoverable(s,e?"Assigning to rvalue":"Parenthesized pattern")}};pp$9.checkExpressionErrors=function(n,e){if(!n)return!1;var s=n.shorthandAssign,o=n.doubleProto;if(!e)return s>=0||o>=0;s>=0&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns"),o>=0&&this.raiseRecoverable(o,"Redefinition of __proto__ property")};pp$9.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&o<56320)return!0;if(isIdentifierStart(o,!0)){for(var a=s+1;isIdentifierChar(o=this.input.charCodeAt(a),!0);)++a;if(o===92||o>55295&&o<56320)return!0;var l=this.input.slice(s,a);if(!keywordRelationalOperator.test(l))return!0}return!1};pp$8.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;skipWhiteSpace.lastIndex=this.pos;var n=skipWhiteSpace.exec(this.input),e=this.pos+n[0].length,s;return!lineBreak.test(this.input.slice(this.pos,e))&&this.input.slice(e,e+8)==="function"&&(e+8===this.input.length||!(isIdentifierChar(s=this.input.charCodeAt(e+8))||s>55295&&s<56320))};pp$8.parseStatement=function(n,e,s){var o=this.type,a=this.startNode(),l;switch(this.isLet(n)&&(o=types$1._var,l="let"),o){case types$1._break:case types$1._continue:return this.parseBreakContinueStatement(a,o.keyword);case types$1._debugger:return this.parseDebuggerStatement(a);case types$1._do:return this.parseDoStatement(a);case types$1._for:return this.parseForStatement(a);case types$1._function:return n&&(this.strict||n!=="if"&&n!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!n);case types$1._class:return n&&this.unexpected(),this.parseClass(a,!0);case types$1._if:return this.parseIfStatement(a);case types$1._return:return this.parseReturnStatement(a);case types$1._switch:return this.parseSwitchStatement(a);case types$1._throw:return this.parseThrowStatement(a);case types$1._try:return this.parseTryStatement(a);case types$1._const:case types$1._var:return l=l||this.value,n&&l!=="var"&&this.unexpected(),this.parseVarStatement(a,l);case types$1._while:return this.parseWhileStatement(a);case types$1._with:return this.parseWithStatement(a);case types$1.braceL:return this.parseBlock(!0,a);case types$1.semi:return this.parseEmptyStatement(a);case types$1._export:case types$1._import:if(this.options.ecmaVersion>10&&o===types$1._import){skipWhiteSpace.lastIndex=this.pos;var c=skipWhiteSpace.exec(this.input),u=this.pos+c[0].length,f=this.input.charCodeAt(u);if(f===40||f===46)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),o===types$1._import?this.parseImport(a):this.parseExport(a,s);default:if(this.isAsyncFunction())return n&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!n);var d=this.value,g=this.parseExpression();return o===types$1.name&&g.type==="Identifier"&&this.eat(types$1.colon)?this.parseLabeledStatement(a,d,g,n):this.parseExpressionStatement(a,g)}};pp$8.parseBreakContinueStatement=function(n,e){var s=e==="break";this.next(),this.eat(types$1.semi)||this.insertSemicolon()?n.label=null:this.type!==types$1.name?this.unexpected():(n.label=this.parseIdent(),this.semicolon());for(var o=0;o=6?this.eat(types$1.semi):this.semicolon(),this.finishNode(n,"DoWhileStatement")};pp$8.parseForStatement=function(n){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(loopLabel),this.enterScope(0),this.expect(types$1.parenL),this.type===types$1.semi)return e>-1&&this.unexpected(e),this.parseFor(n,null);var s=this.isLet();if(this.type===types$1._var||this.type===types$1._const||s){var o=this.startNode(),a=s?"let":this.value;return this.next(),this.parseVar(o,!0,a),this.finishNode(o,"VariableDeclaration"),(this.type===types$1._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&o.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===types$1._in?e>-1&&this.unexpected(e):n.await=e>-1),this.parseForIn(n,o)):(e>-1&&this.unexpected(e),this.parseFor(n,o))}var l=this.isContextual("let"),c=!1,u=new DestructuringErrors,f=this.parseExpression(e>-1?"await":!0,u);return this.type===types$1._in||(c=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===types$1._in?e>-1&&this.unexpected(e):n.await=e>-1),l&&c&&this.raise(f.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(f,!1,u),this.checkLValPattern(f),this.parseForIn(n,f)):(this.checkExpressionErrors(u,!0),e>-1&&this.unexpected(e),this.parseFor(n,f))};pp$8.parseFunctionStatement=function(n,e,s){return this.next(),this.parseFunction(n,FUNC_STATEMENT|(s?0:FUNC_HANGING_STATEMENT),!1,e)};pp$8.parseIfStatement=function(n){return this.next(),n.test=this.parseParenExpression(),n.consequent=this.parseStatement("if"),n.alternate=this.eat(types$1._else)?this.parseStatement("if"):null,this.finishNode(n,"IfStatement")};pp$8.parseReturnStatement=function(n){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,"'return' outside of function"),this.next(),this.eat(types$1.semi)||this.insertSemicolon()?n.argument=null:(n.argument=this.parseExpression(),this.semicolon()),this.finishNode(n,"ReturnStatement")};pp$8.parseSwitchStatement=function(n){this.next(),n.discriminant=this.parseParenExpression(),n.cases=[],this.expect(types$1.braceL),this.labels.push(switchLabel),this.enterScope(0);for(var e,s=!1;this.type!==types$1.braceR;)if(this.type===types$1._case||this.type===types$1._default){var o=this.type===types$1._case;e&&this.finishNode(e,"SwitchCase"),n.cases.push(e=this.startNode()),e.consequent=[],this.next(),o?e.test=this.parseExpression():(s&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),s=!0,e.test=null),this.expect(types$1.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(n,"SwitchStatement")};pp$8.parseThrowStatement=function(n){return this.next(),lineBreak.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),n.argument=this.parseExpression(),this.semicolon(),this.finishNode(n,"ThrowStatement")};var empty$1=[];pp$8.parseCatchClauseParam=function(){var n=this.parseBindingAtom(),e=n.type==="Identifier";return this.enterScope(e?SCOPE_SIMPLE_CATCH:0),this.checkLValPattern(n,e?BIND_SIMPLE_CATCH:BIND_LEXICAL),this.expect(types$1.parenR),n};pp$8.parseTryStatement=function(n){if(this.next(),n.block=this.parseBlock(),n.handler=null,this.type===types$1._catch){var e=this.startNode();this.next(),this.eat(types$1.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),n.handler=this.finishNode(e,"CatchClause")}return n.finalizer=this.eat(types$1._finally)?this.parseBlock():null,!n.handler&&!n.finalizer&&this.raise(n.start,"Missing catch or finally clause"),this.finishNode(n,"TryStatement")};pp$8.parseVarStatement=function(n,e,s){return this.next(),this.parseVar(n,!1,e,s),this.semicolon(),this.finishNode(n,"VariableDeclaration")};pp$8.parseWhileStatement=function(n){return this.next(),n.test=this.parseParenExpression(),this.labels.push(loopLabel),n.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(n,"WhileStatement")};pp$8.parseWithStatement=function(n){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),n.object=this.parseParenExpression(),n.body=this.parseStatement("with"),this.finishNode(n,"WithStatement")};pp$8.parseEmptyStatement=function(n){return this.next(),this.finishNode(n,"EmptyStatement")};pp$8.parseLabeledStatement=function(n,e,s,o){for(var a=0,l=this.labels;a=0;f--){var d=this.labels[f];if(d.statementStart===n.start)d.statementStart=this.start,d.kind=u;else break}return this.labels.push({name:e,kind:u,statementStart:this.start}),n.body=this.parseStatement(o?o.indexOf("label")===-1?o+"label":o:"label"),this.labels.pop(),n.label=s,this.finishNode(n,"LabeledStatement")};pp$8.parseExpressionStatement=function(n,e){return n.expression=e,this.semicolon(),this.finishNode(n,"ExpressionStatement")};pp$8.parseBlock=function(n,e,s){for(n===void 0&&(n=!0),e===void 0&&(e=this.startNode()),e.body=[],this.expect(types$1.braceL),n&&this.enterScope(0);this.type!==types$1.braceR;){var o=this.parseStatement(null);e.body.push(o)}return s&&(this.strict=!1),this.next(),n&&this.exitScope(),this.finishNode(e,"BlockStatement")};pp$8.parseFor=function(n,e){return n.init=e,this.expect(types$1.semi),n.test=this.type===types$1.semi?null:this.parseExpression(),this.expect(types$1.semi),n.update=this.type===types$1.parenR?null:this.parseExpression(),this.expect(types$1.parenR),n.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(n,"ForStatement")};pp$8.parseForIn=function(n,e){var s=this.type===types$1._in;return this.next(),e.type==="VariableDeclaration"&&e.declarations[0].init!=null&&(!s||this.options.ecmaVersion<8||this.strict||e.kind!=="var"||e.declarations[0].id.type!=="Identifier")&&this.raise(e.start,(s?"for-in":"for-of")+" loop variable declaration may not have an initializer"),n.left=e,n.right=s?this.parseExpression():this.parseMaybeAssign(),this.expect(types$1.parenR),n.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(n,s?"ForInStatement":"ForOfStatement")};pp$8.parseVar=function(n,e,s,o){for(n.declarations=[],n.kind=s;;){var a=this.startNode();if(this.parseVarId(a,s),this.eat(types$1.eq)?a.init=this.parseMaybeAssign(e):!o&&s==="const"&&!(this.type===types$1._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():!o&&a.id.type!=="Identifier"&&!(e&&(this.type===types$1._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):a.init=null,n.declarations.push(this.finishNode(a,"VariableDeclarator")),!this.eat(types$1.comma))break}return n};pp$8.parseVarId=function(n,e){n.id=this.parseBindingAtom(),this.checkLValPattern(n.id,e==="var"?BIND_VAR:BIND_LEXICAL,!1)};var FUNC_STATEMENT=1,FUNC_HANGING_STATEMENT=2,FUNC_NULLABLE_ID=4;pp$8.parseFunction=function(n,e,s,o,a){this.initFunction(n),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!o)&&(this.type===types$1.star&&e&FUNC_HANGING_STATEMENT&&this.unexpected(),n.generator=this.eat(types$1.star)),this.options.ecmaVersion>=8&&(n.async=!!o),e&FUNC_STATEMENT&&(n.id=e&FUNC_NULLABLE_ID&&this.type!==types$1.name?null:this.parseIdent(),n.id&&!(e&FUNC_HANGING_STATEMENT)&&this.checkLValSimple(n.id,this.strict||n.generator||n.async?this.treatFunctionsAsVar?BIND_VAR:BIND_LEXICAL:BIND_FUNCTION));var l=this.yieldPos,c=this.awaitPos,u=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(functionFlags(n.async,n.generator)),e&FUNC_STATEMENT||(n.id=this.type===types$1.name?this.parseIdent():null),this.parseFunctionParams(n),this.parseFunctionBody(n,s,!1,a),this.yieldPos=l,this.awaitPos=c,this.awaitIdentPos=u,this.finishNode(n,e&FUNC_STATEMENT?"FunctionDeclaration":"FunctionExpression")};pp$8.parseFunctionParams=function(n){this.expect(types$1.parenL),n.params=this.parseBindingList(types$1.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};pp$8.parseClass=function(n,e){this.next();var s=this.strict;this.strict=!0,this.parseClassId(n,e),this.parseClassSuper(n);var o=this.enterClassBody(),a=this.startNode(),l=!1;for(a.body=[],this.expect(types$1.braceL);this.type!==types$1.braceR;){var c=this.parseClassElement(n.superClass!==null);c&&(a.body.push(c),c.type==="MethodDefinition"&&c.kind==="constructor"?(l&&this.raiseRecoverable(c.start,"Duplicate constructor in the same class"),l=!0):c.key&&c.key.type==="PrivateIdentifier"&&isPrivateNameConflicted(o,c)&&this.raiseRecoverable(c.key.start,"Identifier '#"+c.key.name+"' has already been declared"))}return this.strict=s,this.next(),n.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(n,e?"ClassDeclaration":"ClassExpression")};pp$8.parseClassElement=function(n){if(this.eat(types$1.semi))return null;var e=this.options.ecmaVersion,s=this.startNode(),o="",a=!1,l=!1,c="method",u=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(types$1.braceL))return this.parseClassStaticBlock(s),s;this.isClassElementNameStart()||this.type===types$1.star?u=!0:o="static"}if(s.static=u,!o&&e>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===types$1.star)&&!this.canInsertSemicolon()?l=!0:o="async"),!o&&(e>=9||!l)&&this.eat(types$1.star)&&(a=!0),!o&&!l&&!a){var f=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?c=f:o=f)}if(o?(s.computed=!1,s.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),s.key.name=o,this.finishNode(s.key,"Identifier")):this.parseClassElementName(s),e<13||this.type===types$1.parenL||c!=="method"||a||l){var d=!s.static&&checkKeyName(s,"constructor"),g=d&&n;d&&c!=="method"&&this.raise(s.key.start,"Constructor can't have get/set modifier"),s.kind=d?"constructor":c,this.parseClassMethod(s,a,l,g)}else this.parseClassField(s);return s};pp$8.isClassElementNameStart=function(){return this.type===types$1.name||this.type===types$1.privateId||this.type===types$1.num||this.type===types$1.string||this.type===types$1.bracketL||this.type.keyword};pp$8.parseClassElementName=function(n){this.type===types$1.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),n.computed=!1,n.key=this.parsePrivateIdent()):this.parsePropertyName(n)};pp$8.parseClassMethod=function(n,e,s,o){var a=n.key;n.kind==="constructor"?(e&&this.raise(a.start,"Constructor can't be a generator"),s&&this.raise(a.start,"Constructor can't be an async method")):n.static&&checkKeyName(n,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var l=n.value=this.parseMethod(e,s,o);return n.kind==="get"&&l.params.length!==0&&this.raiseRecoverable(l.start,"getter should have no params"),n.kind==="set"&&l.params.length!==1&&this.raiseRecoverable(l.start,"setter should have exactly one param"),n.kind==="set"&&l.params[0].type==="RestElement"&&this.raiseRecoverable(l.params[0].start,"Setter cannot use rest params"),this.finishNode(n,"MethodDefinition")};pp$8.parseClassField=function(n){if(checkKeyName(n,"constructor")?this.raise(n.key.start,"Classes can't have a field named 'constructor'"):n.static&&checkKeyName(n,"prototype")&&this.raise(n.key.start,"Classes can't have a static field named 'prototype'"),this.eat(types$1.eq)){var e=this.currentThisScope(),s=e.inClassFieldInit;e.inClassFieldInit=!0,n.value=this.parseMaybeAssign(),e.inClassFieldInit=s}else n.value=null;return this.semicolon(),this.finishNode(n,"PropertyDefinition")};pp$8.parseClassStaticBlock=function(n){n.body=[];var e=this.labels;for(this.labels=[],this.enterScope(SCOPE_CLASS_STATIC_BLOCK|SCOPE_SUPER);this.type!==types$1.braceR;){var s=this.parseStatement(null);n.body.push(s)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(n,"StaticBlock")};pp$8.parseClassId=function(n,e){this.type===types$1.name?(n.id=this.parseIdent(),e&&this.checkLValSimple(n.id,BIND_LEXICAL,!1)):(e===!0&&this.unexpected(),n.id=null)};pp$8.parseClassSuper=function(n){n.superClass=this.eat(types$1._extends)?this.parseExprSubscripts(null,!1):null};pp$8.enterClassBody=function(){var n={declared:Object.create(null),used:[]};return this.privateNameStack.push(n),n.declared};pp$8.exitClassBody=function(){var n=this.privateNameStack.pop(),e=n.declared,s=n.used;if(this.options.checkPrivateFields)for(var o=this.privateNameStack.length,a=o===0?null:this.privateNameStack[o-1],l=0;l=11&&(this.eatContextual("as")?(n.exported=this.parseModuleExportName(),this.checkExport(e,n.exported,this.lastTokStart)):n.exported=null),this.expectContextual("from"),this.type!==types$1.string&&this.unexpected(),n.source=this.parseExprAtom(),this.semicolon(),this.finishNode(n,"ExportAllDeclaration")};pp$8.parseExport=function(n,e){if(this.next(),this.eat(types$1.star))return this.parseExportAllDeclaration(n,e);if(this.eat(types$1._default))return this.checkExport(e,"default",this.lastTokStart),n.declaration=this.parseExportDefaultDeclaration(),this.finishNode(n,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())n.declaration=this.parseExportDeclaration(n),n.declaration.type==="VariableDeclaration"?this.checkVariableExport(e,n.declaration.declarations):this.checkExport(e,n.declaration.id,n.declaration.id.start),n.specifiers=[],n.source=null;else{if(n.declaration=null,n.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==types$1.string&&this.unexpected(),n.source=this.parseExprAtom();else{for(var s=0,o=n.specifiers;s=13&&this.type===types$1.string){var n=this.parseLiteral(this.value);return loneSurrogate.test(n.value)&&this.raise(n.start,"An export name cannot include a lone surrogate."),n}return this.parseIdent(!0)};pp$8.adaptDirectivePrologue=function(n){for(var e=0;e=5&&n.type==="ExpressionStatement"&&n.expression.type==="Literal"&&typeof n.expression.value=="string"&&(this.input[n.start]==='"'||this.input[n.start]==="'")};var pp$7=Parser.prototype;pp$7.toAssignable=function(n,e,s){if(this.options.ecmaVersion>=6&&n)switch(n.type){case"Identifier":this.inAsync&&n.name==="await"&&this.raise(n.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":n.type="ObjectPattern",s&&this.checkPatternErrors(s,!0);for(var o=0,a=n.properties;o=8&&!u&&f.name==="async"&&!this.canInsertSemicolon()&&this.eat(types$1._function))return this.overrideContext(types.f_expr),this.parseFunction(this.startNodeAt(l,c),0,!1,!0,e);if(a&&!this.canInsertSemicolon()){if(this.eat(types$1.arrow))return this.parseArrowExpression(this.startNodeAt(l,c),[f],!1,e);if(this.options.ecmaVersion>=8&&f.name==="async"&&this.type===types$1.name&&!u&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return f=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(types$1.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(l,c),[f],!0,e)}return f;case types$1.regexp:var d=this.value;return o=this.parseLiteral(d.value),o.regex={pattern:d.pattern,flags:d.flags},o;case types$1.num:case types$1.string:return this.parseLiteral(this.value);case types$1._null:case types$1._true:case types$1._false:return o=this.startNode(),o.value=this.type===types$1._null?null:this.type===types$1._true,o.raw=this.type.keyword,this.next(),this.finishNode(o,"Literal");case types$1.parenL:var g=this.start,b=this.parseParenAndDistinguishExpression(a,e);return n&&(n.parenthesizedAssign<0&&!this.isSimpleAssignTarget(b)&&(n.parenthesizedAssign=g),n.parenthesizedBind<0&&(n.parenthesizedBind=g)),b;case types$1.bracketL:return o=this.startNode(),this.next(),o.elements=this.parseExprList(types$1.bracketR,!0,!0,n),this.finishNode(o,"ArrayExpression");case types$1.braceL:return this.overrideContext(types.b_expr),this.parseObj(!1,n);case types$1._function:return o=this.startNode(),this.next(),this.parseFunction(o,0);case types$1._class:return this.parseClass(this.startNode(),!1);case types$1._new:return this.parseNew();case types$1.backQuote:return this.parseTemplate();case types$1._import:return this.options.ecmaVersion>=11?this.parseExprImport(s):this.unexpected();default:return this.parseExprAtomDefault()}};pp$5.parseExprAtomDefault=function(){this.unexpected()};pp$5.parseExprImport=function(n){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var s=this.parseIdent(!0);if(this.type===types$1.parenL&&!n)return this.parseDynamicImport(e);if(this.type===types$1.dot)return e.meta=s,this.parseImportMeta(e);this.unexpected()};pp$5.parseDynamicImport=function(n){if(this.next(),n.source=this.parseMaybeAssign(),!this.eat(types$1.parenR)){var e=this.start;this.eat(types$1.comma)&&this.eat(types$1.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(n,"ImportExpression")};pp$5.parseImportMeta=function(n){this.next();var e=this.containsEsc;return n.property=this.parseIdent(!0),n.property.name!=="meta"&&this.raiseRecoverable(n.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(n.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(n.start,"Cannot use 'import.meta' outside a module"),this.finishNode(n,"MetaProperty")};pp$5.parseLiteral=function(n){var e=this.startNode();return e.value=n,e.raw=this.input.slice(this.start,this.end),e.raw.charCodeAt(e.raw.length-1)===110&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")};pp$5.parseParenExpression=function(){this.expect(types$1.parenL);var n=this.parseExpression();return this.expect(types$1.parenR),n};pp$5.shouldParseArrow=function(n){return!this.canInsertSemicolon()};pp$5.parseParenAndDistinguishExpression=function(n,e){var s=this.start,o=this.startLoc,a,l=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var c=this.start,u=this.startLoc,f=[],d=!0,g=!1,b=new DestructuringErrors,E=this.yieldPos,B=this.awaitPos,V;for(this.yieldPos=0,this.awaitPos=0;this.type!==types$1.parenR;)if(d?d=!1:this.expect(types$1.comma),l&&this.afterTrailingComma(types$1.parenR,!0)){g=!0;break}else if(this.type===types$1.ellipsis){V=this.start,f.push(this.parseParenItem(this.parseRestBinding())),this.type===types$1.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}else f.push(this.parseMaybeAssign(!1,b,this.parseParenItem));var D=this.lastTokEnd,X=this.lastTokEndLoc;if(this.expect(types$1.parenR),n&&this.shouldParseArrow(f)&&this.eat(types$1.arrow))return this.checkPatternErrors(b,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=E,this.awaitPos=B,this.parseParenArrowList(s,o,f,e);(!f.length||g)&&this.unexpected(this.lastTokStart),V&&this.unexpected(V),this.checkExpressionErrors(b,!0),this.yieldPos=E||this.yieldPos,this.awaitPos=B||this.awaitPos,f.length>1?(a=this.startNodeAt(c,u),a.expressions=f,this.finishNodeAt(a,"SequenceExpression",D,X)):a=f[0]}else a=this.parseParenExpression();if(this.options.preserveParens){var q=this.startNodeAt(s,o);return q.expression=a,this.finishNode(q,"ParenthesizedExpression")}else return a};pp$5.parseParenItem=function(n){return n};pp$5.parseParenArrowList=function(n,e,s,o){return this.parseArrowExpression(this.startNodeAt(n,e),s,!1,o)};var empty=[];pp$5.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var n=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(types$1.dot)){n.meta=e;var s=this.containsEsc;return n.property=this.parseIdent(!0),n.property.name!=="target"&&this.raiseRecoverable(n.property.start,"The only valid meta property for new is 'new.target'"),s&&this.raiseRecoverable(n.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(n.start,"'new.target' can only be used in functions and class static block"),this.finishNode(n,"MetaProperty")}var o=this.start,a=this.startLoc;return n.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),o,a,!0,!1),this.eat(types$1.parenL)?n.arguments=this.parseExprList(types$1.parenR,this.options.ecmaVersion>=8,!1):n.arguments=empty,this.finishNode(n,"NewExpression")};pp$5.parseTemplateElement=function(n){var e=n.isTagged,s=this.startNode();return this.type===types$1.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` +`),cooked:this.value},this.next(),s.tail=this.type===types$1.backQuote,this.finishNode(s,"TemplateElement")};pp$5.parseTemplate=function(n){n===void 0&&(n={});var e=n.isTagged;e===void 0&&(e=!1);var s=this.startNode();this.next(),s.expressions=[];var o=this.parseTemplateElement({isTagged:e});for(s.quasis=[o];!o.tail;)this.type===types$1.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(types$1.dollarBraceL),s.expressions.push(this.parseExpression()),this.expect(types$1.braceR),s.quasis.push(o=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(s,"TemplateLiteral")};pp$5.isAsyncProp=function(n){return!n.computed&&n.key.type==="Identifier"&&n.key.name==="async"&&(this.type===types$1.name||this.type===types$1.num||this.type===types$1.string||this.type===types$1.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===types$1.star)&&!lineBreak.test(this.input.slice(this.lastTokEnd,this.start))};pp$5.parseObj=function(n,e){var s=this.startNode(),o=!0,a={};for(s.properties=[],this.next();!this.eat(types$1.braceR);){if(o)o=!1;else if(this.expect(types$1.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(types$1.braceR))break;var l=this.parseProperty(n,e);n||this.checkPropClash(l,a,e),s.properties.push(l)}return this.finishNode(s,n?"ObjectPattern":"ObjectExpression")};pp$5.parseProperty=function(n,e){var s=this.startNode(),o,a,l,c;if(this.options.ecmaVersion>=9&&this.eat(types$1.ellipsis))return n?(s.argument=this.parseIdent(!1),this.type===types$1.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(s,"RestElement")):(s.argument=this.parseMaybeAssign(!1,e),this.type===types$1.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(s,"SpreadElement"));this.options.ecmaVersion>=6&&(s.method=!1,s.shorthand=!1,(n||e)&&(l=this.start,c=this.startLoc),n||(o=this.eat(types$1.star)));var u=this.containsEsc;return this.parsePropertyName(s),!n&&!u&&this.options.ecmaVersion>=8&&!o&&this.isAsyncProp(s)?(a=!0,o=this.options.ecmaVersion>=9&&this.eat(types$1.star),this.parsePropertyName(s)):a=!1,this.parsePropertyValue(s,n,o,a,l,c,e,u),this.finishNode(s,"Property")};pp$5.parseGetterSetter=function(n){n.kind=n.key.name,this.parsePropertyName(n),n.value=this.parseMethod(!1);var e=n.kind==="get"?0:1;if(n.value.params.length!==e){var s=n.value.start;n.kind==="get"?this.raiseRecoverable(s,"getter should have no params"):this.raiseRecoverable(s,"setter should have exactly one param")}else n.kind==="set"&&n.value.params[0].type==="RestElement"&&this.raiseRecoverable(n.value.params[0].start,"Setter cannot use rest params")};pp$5.parsePropertyValue=function(n,e,s,o,a,l,c,u){(s||o)&&this.type===types$1.colon&&this.unexpected(),this.eat(types$1.colon)?(n.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,c),n.kind="init"):this.options.ecmaVersion>=6&&this.type===types$1.parenL?(e&&this.unexpected(),n.kind="init",n.method=!0,n.value=this.parseMethod(s,o)):!e&&!u&&this.options.ecmaVersion>=5&&!n.computed&&n.key.type==="Identifier"&&(n.key.name==="get"||n.key.name==="set")&&this.type!==types$1.comma&&this.type!==types$1.braceR&&this.type!==types$1.eq?((s||o)&&this.unexpected(),this.parseGetterSetter(n)):this.options.ecmaVersion>=6&&!n.computed&&n.key.type==="Identifier"?((s||o)&&this.unexpected(),this.checkUnreserved(n.key),n.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=a),n.kind="init",e?n.value=this.parseMaybeDefault(a,l,this.copyNode(n.key)):this.type===types$1.eq&&c?(c.shorthandAssign<0&&(c.shorthandAssign=this.start),n.value=this.parseMaybeDefault(a,l,this.copyNode(n.key))):n.value=this.copyNode(n.key),n.shorthand=!0):this.unexpected()};pp$5.parsePropertyName=function(n){if(this.options.ecmaVersion>=6){if(this.eat(types$1.bracketL))return n.computed=!0,n.key=this.parseMaybeAssign(),this.expect(types$1.bracketR),n.key;n.computed=!1}return n.key=this.type===types$1.num||this.type===types$1.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};pp$5.initFunction=function(n){n.id=null,this.options.ecmaVersion>=6&&(n.generator=n.expression=!1),this.options.ecmaVersion>=8&&(n.async=!1)};pp$5.parseMethod=function(n,e,s){var o=this.startNode(),a=this.yieldPos,l=this.awaitPos,c=this.awaitIdentPos;return this.initFunction(o),this.options.ecmaVersion>=6&&(o.generator=n),this.options.ecmaVersion>=8&&(o.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(functionFlags(e,o.generator)|SCOPE_SUPER|(s?SCOPE_DIRECT_SUPER:0)),this.expect(types$1.parenL),o.params=this.parseBindingList(types$1.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(o,!1,!0,!1),this.yieldPos=a,this.awaitPos=l,this.awaitIdentPos=c,this.finishNode(o,"FunctionExpression")};pp$5.parseArrowExpression=function(n,e,s,o){var a=this.yieldPos,l=this.awaitPos,c=this.awaitIdentPos;return this.enterScope(functionFlags(s,!1)|SCOPE_ARROW),this.initFunction(n),this.options.ecmaVersion>=8&&(n.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,n.params=this.toAssignableList(e,!0),this.parseFunctionBody(n,!0,!1,o),this.yieldPos=a,this.awaitPos=l,this.awaitIdentPos=c,this.finishNode(n,"ArrowFunctionExpression")};pp$5.parseFunctionBody=function(n,e,s,o){var a=e&&this.type!==types$1.braceL,l=this.strict,c=!1;if(a)n.body=this.parseMaybeAssign(o),n.expression=!0,this.checkParams(n,!1);else{var u=this.options.ecmaVersion>=7&&!this.isSimpleParamList(n.params);(!l||u)&&(c=this.strictDirective(this.end),c&&u&&this.raiseRecoverable(n.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var f=this.labels;this.labels=[],c&&(this.strict=!0),this.checkParams(n,!l&&!c&&!e&&!s&&this.isSimpleParamList(n.params)),this.strict&&n.id&&this.checkLValSimple(n.id,BIND_OUTSIDE),n.body=this.parseBlock(!1,void 0,c&&!l),n.expression=!1,this.adaptDirectivePrologue(n.body.body),this.labels=f}this.exitScope()};pp$5.isSimpleParamList=function(n){for(var e=0,s=n;e-1||a.functions.indexOf(n)>-1||a.var.indexOf(n)>-1,a.lexical.push(n),this.inModule&&a.flags&SCOPE_TOP&&delete this.undefinedExports[n]}else if(e===BIND_SIMPLE_CATCH){var l=this.currentScope();l.lexical.push(n)}else if(e===BIND_FUNCTION){var c=this.currentScope();this.treatFunctionsAsVar?o=c.lexical.indexOf(n)>-1:o=c.lexical.indexOf(n)>-1||c.var.indexOf(n)>-1,c.functions.push(n)}else for(var u=this.scopeStack.length-1;u>=0;--u){var f=this.scopeStack[u];if(f.lexical.indexOf(n)>-1&&!(f.flags&SCOPE_SIMPLE_CATCH&&f.lexical[0]===n)||!this.treatFunctionsAsVarInScope(f)&&f.functions.indexOf(n)>-1){o=!0;break}if(f.var.push(n),this.inModule&&f.flags&SCOPE_TOP&&delete this.undefinedExports[n],f.flags&SCOPE_VAR)break}o&&this.raiseRecoverable(s,"Identifier '"+n+"' has already been declared")};pp$3.checkLocalExport=function(n){this.scopeStack[0].lexical.indexOf(n.name)===-1&&this.scopeStack[0].var.indexOf(n.name)===-1&&(this.undefinedExports[n.name]=n)};pp$3.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};pp$3.currentVarScope=function(){for(var n=this.scopeStack.length-1;;n--){var e=this.scopeStack[n];if(e.flags&SCOPE_VAR)return e}};pp$3.currentThisScope=function(){for(var n=this.scopeStack.length-1;;n--){var e=this.scopeStack[n];if(e.flags&SCOPE_VAR&&!(e.flags&SCOPE_ARROW))return e}};var Node=function(e,s,o){this.type="",this.start=s,this.end=0,e.options.locations&&(this.loc=new SourceLocation(e,o)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[s,0])},pp$2=Parser.prototype;pp$2.startNode=function(){return new Node(this,this.start,this.startLoc)};pp$2.startNodeAt=function(n,e){return new Node(this,n,e)};function finishNodeAt(n,e,s,o){return n.type=e,n.end=s,this.options.locations&&(n.loc.end=o),this.options.ranges&&(n.range[1]=s),n}pp$2.finishNode=function(n,e){return finishNodeAt.call(this,n,e,this.lastTokEnd,this.lastTokEndLoc)};pp$2.finishNodeAt=function(n,e,s,o){return finishNodeAt.call(this,n,e,s,o)};pp$2.copyNode=function(n){var e=new Node(this,n.start,this.startLoc);for(var s in n)e[s]=n[s];return e};var ecma9BinaryProperties="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",ecma10BinaryProperties=ecma9BinaryProperties+" Extended_Pictographic",ecma11BinaryProperties=ecma10BinaryProperties,ecma12BinaryProperties=ecma11BinaryProperties+" EBase EComp EMod EPres ExtPict",ecma13BinaryProperties=ecma12BinaryProperties,ecma14BinaryProperties=ecma13BinaryProperties,unicodeBinaryProperties={9:ecma9BinaryProperties,10:ecma10BinaryProperties,11:ecma11BinaryProperties,12:ecma12BinaryProperties,13:ecma13BinaryProperties,14:ecma14BinaryProperties},ecma14BinaryPropertiesOfStrings="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",unicodeBinaryPropertiesOfStrings={9:"",10:"",11:"",12:"",13:"",14:ecma14BinaryPropertiesOfStrings},unicodeGeneralCategoryValues="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ecma9ScriptValues="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",ecma10ScriptValues=ecma9ScriptValues+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",ecma11ScriptValues=ecma10ScriptValues+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",ecma12ScriptValues=ecma11ScriptValues+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",ecma13ScriptValues=ecma12ScriptValues+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",ecma14ScriptValues=ecma13ScriptValues+" Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz",unicodeScriptValues={9:ecma9ScriptValues,10:ecma10ScriptValues,11:ecma11ScriptValues,12:ecma12ScriptValues,13:ecma13ScriptValues,14:ecma14ScriptValues},data={};function buildUnicodeData(n){var e=data[n]={binary:wordsRegexp(unicodeBinaryProperties[n]+" "+unicodeGeneralCategoryValues),binaryOfStrings:wordsRegexp(unicodeBinaryPropertiesOfStrings[n]),nonBinary:{General_Category:wordsRegexp(unicodeGeneralCategoryValues),Script:wordsRegexp(unicodeScriptValues[n])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var i=0,list=[9,10,11,12,13,14];i=6?"uy":"")+(e.options.ecmaVersion>=9?"s":"")+(e.options.ecmaVersion>=13?"d":"")+(e.options.ecmaVersion>=15?"v":""),this.unicodeProperties=data[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};RegExpValidationState.prototype.reset=function(e,s,o){var a=o.indexOf("v")!==-1,l=o.indexOf("u")!==-1;this.start=e|0,this.source=s+"",this.flags=o,a&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=l&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=l&&this.parser.options.ecmaVersion>=9)};RegExpValidationState.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)};RegExpValidationState.prototype.at=function(e,s){s===void 0&&(s=!1);var o=this.source,a=o.length;if(e>=a)return-1;var l=o.charCodeAt(e);if(!(s||this.switchU)||l<=55295||l>=57344||e+1>=a)return l;var c=o.charCodeAt(e+1);return c>=56320&&c<=57343?(l<<10)+c-56613888:l};RegExpValidationState.prototype.nextIndex=function(e,s){s===void 0&&(s=!1);var o=this.source,a=o.length;if(e>=a)return a;var l=o.charCodeAt(e),c;return!(s||this.switchU)||l<=55295||l>=57344||e+1>=a||(c=o.charCodeAt(e+1))<56320||c>57343?e+1:e+2};RegExpValidationState.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)};RegExpValidationState.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)};RegExpValidationState.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)};RegExpValidationState.prototype.eat=function(e,s){return s===void 0&&(s=!1),this.current(s)===e?(this.advance(s),!0):!1};RegExpValidationState.prototype.eatChars=function(e,s){s===void 0&&(s=!1);for(var o=this.pos,a=0,l=e;a-1&&this.raise(n.start,"Duplicate regular expression flag"),c==="u"&&(o=!0),c==="v"&&(a=!0)}this.options.ecmaVersion>=15&&o&&a&&this.raise(n.start,"Invalid regular expression flag")};pp$1.validateRegExpPattern=function(n){this.regexp_pattern(n),!n.switchN&&this.options.ecmaVersion>=9&&n.groupNames.length>0&&(n.switchN=!0,this.regexp_pattern(n))};pp$1.regexp_pattern=function(n){n.pos=0,n.lastIntValue=0,n.lastStringValue="",n.lastAssertionIsQuantifiable=!1,n.numCapturingParens=0,n.maxBackReference=0,n.groupNames.length=0,n.backReferenceNames.length=0,this.regexp_disjunction(n),n.pos!==n.source.length&&(n.eat(41)&&n.raise("Unmatched ')'"),(n.eat(93)||n.eat(125))&&n.raise("Lone quantifier brackets")),n.maxBackReference>n.numCapturingParens&&n.raise("Invalid escape");for(var e=0,s=n.backReferenceNames;e=9&&(s=n.eat(60)),n.eat(61)||n.eat(33))return this.regexp_disjunction(n),n.eat(41)||n.raise("Unterminated group"),n.lastAssertionIsQuantifiable=!s,!0}return n.pos=e,!1};pp$1.regexp_eatQuantifier=function(n,e){return e===void 0&&(e=!1),this.regexp_eatQuantifierPrefix(n,e)?(n.eat(63),!0):!1};pp$1.regexp_eatQuantifierPrefix=function(n,e){return n.eat(42)||n.eat(43)||n.eat(63)||this.regexp_eatBracedQuantifier(n,e)};pp$1.regexp_eatBracedQuantifier=function(n,e){var s=n.pos;if(n.eat(123)){var o=0,a=-1;if(this.regexp_eatDecimalDigits(n)&&(o=n.lastIntValue,n.eat(44)&&this.regexp_eatDecimalDigits(n)&&(a=n.lastIntValue),n.eat(125)))return a!==-1&&a=9?this.regexp_groupSpecifier(n):n.current()===63&&n.raise("Invalid group"),this.regexp_disjunction(n),n.eat(41))return n.numCapturingParens+=1,!0;n.raise("Unterminated group")}return!1};pp$1.regexp_eatExtendedAtom=function(n){return n.eat(46)||this.regexp_eatReverseSolidusAtomEscape(n)||this.regexp_eatCharacterClass(n)||this.regexp_eatUncapturingGroup(n)||this.regexp_eatCapturingGroup(n)||this.regexp_eatInvalidBracedQuantifier(n)||this.regexp_eatExtendedPatternCharacter(n)};pp$1.regexp_eatInvalidBracedQuantifier=function(n){return this.regexp_eatBracedQuantifier(n,!0)&&n.raise("Nothing to repeat"),!1};pp$1.regexp_eatSyntaxCharacter=function(n){var e=n.current();return isSyntaxCharacter(e)?(n.lastIntValue=e,n.advance(),!0):!1};function isSyntaxCharacter(n){return n===36||n>=40&&n<=43||n===46||n===63||n>=91&&n<=94||n>=123&&n<=125}pp$1.regexp_eatPatternCharacters=function(n){for(var e=n.pos,s=0;(s=n.current())!==-1&&!isSyntaxCharacter(s);)n.advance();return n.pos!==e};pp$1.regexp_eatExtendedPatternCharacter=function(n){var e=n.current();return e!==-1&&e!==36&&!(e>=40&&e<=43)&&e!==46&&e!==63&&e!==91&&e!==94&&e!==124?(n.advance(),!0):!1};pp$1.regexp_groupSpecifier=function(n){if(n.eat(63)){if(this.regexp_eatGroupName(n)){n.groupNames.indexOf(n.lastStringValue)!==-1&&n.raise("Duplicate capture group name"),n.groupNames.push(n.lastStringValue);return}n.raise("Invalid group")}};pp$1.regexp_eatGroupName=function(n){if(n.lastStringValue="",n.eat(60)){if(this.regexp_eatRegExpIdentifierName(n)&&n.eat(62))return!0;n.raise("Invalid capture group name")}return!1};pp$1.regexp_eatRegExpIdentifierName=function(n){if(n.lastStringValue="",this.regexp_eatRegExpIdentifierStart(n)){for(n.lastStringValue+=codePointToString(n.lastIntValue);this.regexp_eatRegExpIdentifierPart(n);)n.lastStringValue+=codePointToString(n.lastIntValue);return!0}return!1};pp$1.regexp_eatRegExpIdentifierStart=function(n){var e=n.pos,s=this.options.ecmaVersion>=11,o=n.current(s);return n.advance(s),o===92&&this.regexp_eatRegExpUnicodeEscapeSequence(n,s)&&(o=n.lastIntValue),isRegExpIdentifierStart(o)?(n.lastIntValue=o,!0):(n.pos=e,!1)};function isRegExpIdentifierStart(n){return isIdentifierStart(n,!0)||n===36||n===95}pp$1.regexp_eatRegExpIdentifierPart=function(n){var e=n.pos,s=this.options.ecmaVersion>=11,o=n.current(s);return n.advance(s),o===92&&this.regexp_eatRegExpUnicodeEscapeSequence(n,s)&&(o=n.lastIntValue),isRegExpIdentifierPart(o)?(n.lastIntValue=o,!0):(n.pos=e,!1)};function isRegExpIdentifierPart(n){return isIdentifierChar(n,!0)||n===36||n===95||n===8204||n===8205}pp$1.regexp_eatAtomEscape=function(n){return this.regexp_eatBackReference(n)||this.regexp_eatCharacterClassEscape(n)||this.regexp_eatCharacterEscape(n)||n.switchN&&this.regexp_eatKGroupName(n)?!0:(n.switchU&&(n.current()===99&&n.raise("Invalid unicode escape"),n.raise("Invalid escape")),!1)};pp$1.regexp_eatBackReference=function(n){var e=n.pos;if(this.regexp_eatDecimalEscape(n)){var s=n.lastIntValue;if(n.switchU)return s>n.maxBackReference&&(n.maxBackReference=s),!0;if(s<=n.numCapturingParens)return!0;n.pos=e}return!1};pp$1.regexp_eatKGroupName=function(n){if(n.eat(107)){if(this.regexp_eatGroupName(n))return n.backReferenceNames.push(n.lastStringValue),!0;n.raise("Invalid named reference")}return!1};pp$1.regexp_eatCharacterEscape=function(n){return this.regexp_eatControlEscape(n)||this.regexp_eatCControlLetter(n)||this.regexp_eatZero(n)||this.regexp_eatHexEscapeSequence(n)||this.regexp_eatRegExpUnicodeEscapeSequence(n,!1)||!n.switchU&&this.regexp_eatLegacyOctalEscapeSequence(n)||this.regexp_eatIdentityEscape(n)};pp$1.regexp_eatCControlLetter=function(n){var e=n.pos;if(n.eat(99)){if(this.regexp_eatControlLetter(n))return!0;n.pos=e}return!1};pp$1.regexp_eatZero=function(n){return n.current()===48&&!isDecimalDigit(n.lookahead())?(n.lastIntValue=0,n.advance(),!0):!1};pp$1.regexp_eatControlEscape=function(n){var e=n.current();return e===116?(n.lastIntValue=9,n.advance(),!0):e===110?(n.lastIntValue=10,n.advance(),!0):e===118?(n.lastIntValue=11,n.advance(),!0):e===102?(n.lastIntValue=12,n.advance(),!0):e===114?(n.lastIntValue=13,n.advance(),!0):!1};pp$1.regexp_eatControlLetter=function(n){var e=n.current();return isControlLetter(e)?(n.lastIntValue=e%32,n.advance(),!0):!1};function isControlLetter(n){return n>=65&&n<=90||n>=97&&n<=122}pp$1.regexp_eatRegExpUnicodeEscapeSequence=function(n,e){e===void 0&&(e=!1);var s=n.pos,o=e||n.switchU;if(n.eat(117)){if(this.regexp_eatFixedHexDigits(n,4)){var a=n.lastIntValue;if(o&&a>=55296&&a<=56319){var l=n.pos;if(n.eat(92)&&n.eat(117)&&this.regexp_eatFixedHexDigits(n,4)){var c=n.lastIntValue;if(c>=56320&&c<=57343)return n.lastIntValue=(a-55296)*1024+(c-56320)+65536,!0}n.pos=l,n.lastIntValue=a}return!0}if(o&&n.eat(123)&&this.regexp_eatHexDigits(n)&&n.eat(125)&&isValidUnicode(n.lastIntValue))return!0;o&&n.raise("Invalid unicode escape"),n.pos=s}return!1};function isValidUnicode(n){return n>=0&&n<=1114111}pp$1.regexp_eatIdentityEscape=function(n){if(n.switchU)return this.regexp_eatSyntaxCharacter(n)?!0:n.eat(47)?(n.lastIntValue=47,!0):!1;var e=n.current();return e!==99&&(!n.switchN||e!==107)?(n.lastIntValue=e,n.advance(),!0):!1};pp$1.regexp_eatDecimalEscape=function(n){n.lastIntValue=0;var e=n.current();if(e>=49&&e<=57){do n.lastIntValue=10*n.lastIntValue+(e-48),n.advance();while((e=n.current())>=48&&e<=57);return!0}return!1};var CharSetNone=0,CharSetOk=1,CharSetString=2;pp$1.regexp_eatCharacterClassEscape=function(n){var e=n.current();if(isCharacterClassEscape(e))return n.lastIntValue=-1,n.advance(),CharSetOk;var s=!1;if(n.switchU&&this.options.ecmaVersion>=9&&((s=e===80)||e===112)){n.lastIntValue=-1,n.advance();var o;if(n.eat(123)&&(o=this.regexp_eatUnicodePropertyValueExpression(n))&&n.eat(125))return s&&o===CharSetString&&n.raise("Invalid property name"),o;n.raise("Invalid property name")}return CharSetNone};function isCharacterClassEscape(n){return n===100||n===68||n===115||n===83||n===119||n===87}pp$1.regexp_eatUnicodePropertyValueExpression=function(n){var e=n.pos;if(this.regexp_eatUnicodePropertyName(n)&&n.eat(61)){var s=n.lastStringValue;if(this.regexp_eatUnicodePropertyValue(n)){var o=n.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(n,s,o),CharSetOk}}if(n.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(n)){var a=n.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(n,a)}return CharSetNone};pp$1.regexp_validateUnicodePropertyNameAndValue=function(n,e,s){hasOwn(n.unicodeProperties.nonBinary,e)||n.raise("Invalid property name"),n.unicodeProperties.nonBinary[e].test(s)||n.raise("Invalid property value")};pp$1.regexp_validateUnicodePropertyNameOrValue=function(n,e){if(n.unicodeProperties.binary.test(e))return CharSetOk;if(n.switchV&&n.unicodeProperties.binaryOfStrings.test(e))return CharSetString;n.raise("Invalid property name")};pp$1.regexp_eatUnicodePropertyName=function(n){var e=0;for(n.lastStringValue="";isUnicodePropertyNameCharacter(e=n.current());)n.lastStringValue+=codePointToString(e),n.advance();return n.lastStringValue!==""};function isUnicodePropertyNameCharacter(n){return isControlLetter(n)||n===95}pp$1.regexp_eatUnicodePropertyValue=function(n){var e=0;for(n.lastStringValue="";isUnicodePropertyValueCharacter(e=n.current());)n.lastStringValue+=codePointToString(e),n.advance();return n.lastStringValue!==""};function isUnicodePropertyValueCharacter(n){return isUnicodePropertyNameCharacter(n)||isDecimalDigit(n)}pp$1.regexp_eatLoneUnicodePropertyNameOrValue=function(n){return this.regexp_eatUnicodePropertyValue(n)};pp$1.regexp_eatCharacterClass=function(n){if(n.eat(91)){var e=n.eat(94),s=this.regexp_classContents(n);return n.eat(93)||n.raise("Unterminated character class"),e&&s===CharSetString&&n.raise("Negated character class may contain strings"),!0}return!1};pp$1.regexp_classContents=function(n){return n.current()===93?CharSetOk:n.switchV?this.regexp_classSetExpression(n):(this.regexp_nonEmptyClassRanges(n),CharSetOk)};pp$1.regexp_nonEmptyClassRanges=function(n){for(;this.regexp_eatClassAtom(n);){var e=n.lastIntValue;if(n.eat(45)&&this.regexp_eatClassAtom(n)){var s=n.lastIntValue;n.switchU&&(e===-1||s===-1)&&n.raise("Invalid character class"),e!==-1&&s!==-1&&e>s&&n.raise("Range out of order in character class")}}};pp$1.regexp_eatClassAtom=function(n){var e=n.pos;if(n.eat(92)){if(this.regexp_eatClassEscape(n))return!0;if(n.switchU){var s=n.current();(s===99||isOctalDigit(s))&&n.raise("Invalid class escape"),n.raise("Invalid escape")}n.pos=e}var o=n.current();return o!==93?(n.lastIntValue=o,n.advance(),!0):!1};pp$1.regexp_eatClassEscape=function(n){var e=n.pos;if(n.eat(98))return n.lastIntValue=8,!0;if(n.switchU&&n.eat(45))return n.lastIntValue=45,!0;if(!n.switchU&&n.eat(99)){if(this.regexp_eatClassControlLetter(n))return!0;n.pos=e}return this.regexp_eatCharacterClassEscape(n)||this.regexp_eatCharacterEscape(n)};pp$1.regexp_classSetExpression=function(n){var e=CharSetOk,s;if(!this.regexp_eatClassSetRange(n))if(s=this.regexp_eatClassSetOperand(n)){s===CharSetString&&(e=CharSetString);for(var o=n.pos;n.eatChars([38,38]);){if(n.current()!==38&&(s=this.regexp_eatClassSetOperand(n))){s!==CharSetString&&(e=CharSetOk);continue}n.raise("Invalid character in character class")}if(o!==n.pos)return e;for(;n.eatChars([45,45]);)this.regexp_eatClassSetOperand(n)||n.raise("Invalid character in character class");if(o!==n.pos)return e}else n.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(n)){if(s=this.regexp_eatClassSetOperand(n),!s)return e;s===CharSetString&&(e=CharSetString)}};pp$1.regexp_eatClassSetRange=function(n){var e=n.pos;if(this.regexp_eatClassSetCharacter(n)){var s=n.lastIntValue;if(n.eat(45)&&this.regexp_eatClassSetCharacter(n)){var o=n.lastIntValue;return s!==-1&&o!==-1&&s>o&&n.raise("Range out of order in character class"),!0}n.pos=e}return!1};pp$1.regexp_eatClassSetOperand=function(n){return this.regexp_eatClassSetCharacter(n)?CharSetOk:this.regexp_eatClassStringDisjunction(n)||this.regexp_eatNestedClass(n)};pp$1.regexp_eatNestedClass=function(n){var e=n.pos;if(n.eat(91)){var s=n.eat(94),o=this.regexp_classContents(n);if(n.eat(93))return s&&o===CharSetString&&n.raise("Negated character class may contain strings"),o;n.pos=e}if(n.eat(92)){var a=this.regexp_eatCharacterClassEscape(n);if(a)return a;n.pos=e}return null};pp$1.regexp_eatClassStringDisjunction=function(n){var e=n.pos;if(n.eatChars([92,113])){if(n.eat(123)){var s=this.regexp_classStringDisjunctionContents(n);if(n.eat(125))return s}else n.raise("Invalid escape");n.pos=e}return null};pp$1.regexp_classStringDisjunctionContents=function(n){for(var e=this.regexp_classString(n);n.eat(124);)this.regexp_classString(n)===CharSetString&&(e=CharSetString);return e};pp$1.regexp_classString=function(n){for(var e=0;this.regexp_eatClassSetCharacter(n);)e++;return e===1?CharSetOk:CharSetString};pp$1.regexp_eatClassSetCharacter=function(n){var e=n.pos;if(n.eat(92))return this.regexp_eatCharacterEscape(n)||this.regexp_eatClassSetReservedPunctuator(n)?!0:n.eat(98)?(n.lastIntValue=8,!0):(n.pos=e,!1);var s=n.current();return s<0||s===n.lookahead()&&isClassSetReservedDoublePunctuatorCharacter(s)||isClassSetSyntaxCharacter(s)?!1:(n.advance(),n.lastIntValue=s,!0)};function isClassSetReservedDoublePunctuatorCharacter(n){return n===33||n>=35&&n<=38||n>=42&&n<=44||n===46||n>=58&&n<=64||n===94||n===96||n===126}function isClassSetSyntaxCharacter(n){return n===40||n===41||n===45||n===47||n>=91&&n<=93||n>=123&&n<=125}pp$1.regexp_eatClassSetReservedPunctuator=function(n){var e=n.current();return isClassSetReservedPunctuator(e)?(n.lastIntValue=e,n.advance(),!0):!1};function isClassSetReservedPunctuator(n){return n===33||n===35||n===37||n===38||n===44||n===45||n>=58&&n<=62||n===64||n===96||n===126}pp$1.regexp_eatClassControlLetter=function(n){var e=n.current();return isDecimalDigit(e)||e===95?(n.lastIntValue=e%32,n.advance(),!0):!1};pp$1.regexp_eatHexEscapeSequence=function(n){var e=n.pos;if(n.eat(120)){if(this.regexp_eatFixedHexDigits(n,2))return!0;n.switchU&&n.raise("Invalid escape"),n.pos=e}return!1};pp$1.regexp_eatDecimalDigits=function(n){var e=n.pos,s=0;for(n.lastIntValue=0;isDecimalDigit(s=n.current());)n.lastIntValue=10*n.lastIntValue+(s-48),n.advance();return n.pos!==e};function isDecimalDigit(n){return n>=48&&n<=57}pp$1.regexp_eatHexDigits=function(n){var e=n.pos,s=0;for(n.lastIntValue=0;isHexDigit(s=n.current());)n.lastIntValue=16*n.lastIntValue+hexToInt(s),n.advance();return n.pos!==e};function isHexDigit(n){return n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102}function hexToInt(n){return n>=65&&n<=70?10+(n-65):n>=97&&n<=102?10+(n-97):n-48}pp$1.regexp_eatLegacyOctalEscapeSequence=function(n){if(this.regexp_eatOctalDigit(n)){var e=n.lastIntValue;if(this.regexp_eatOctalDigit(n)){var s=n.lastIntValue;e<=3&&this.regexp_eatOctalDigit(n)?n.lastIntValue=e*64+s*8+n.lastIntValue:n.lastIntValue=e*8+s}else n.lastIntValue=e;return!0}return!1};pp$1.regexp_eatOctalDigit=function(n){var e=n.current();return isOctalDigit(e)?(n.lastIntValue=e-48,n.advance(),!0):(n.lastIntValue=0,!1)};function isOctalDigit(n){return n>=48&&n<=55}pp$1.regexp_eatFixedHexDigits=function(n,e){var s=n.pos;n.lastIntValue=0;for(var o=0;o=this.input.length)return this.finishToken(types$1.eof);if(n.override)return n.override(this);this.readToken(this.fullCharCodeAtPos())};pp.readToken=function(n){return isIdentifierStart(n,this.options.ecmaVersion>=6)||n===92?this.readWord():this.getTokenFromCode(n)};pp.fullCharCodeAtPos=function(){var n=this.input.charCodeAt(this.pos);if(n<=55295||n>=56320)return n;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?n:(n<<10)+e-56613888};pp.skipBlockComment=function(){var n=this.options.onComment&&this.curPosition(),e=this.pos,s=this.input.indexOf("*/",this.pos+=2);if(s===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=s+2,this.options.locations)for(var o=void 0,a=e;(o=nextLineBreak(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=o;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,s),e,this.pos,n,this.curPosition())};pp.skipLineComment=function(n){for(var e=this.pos,s=this.options.onComment&&this.curPosition(),o=this.input.charCodeAt(this.pos+=n);this.pos8&&n<14||n>=5760&&nonASCIIwhitespace.test(String.fromCharCode(n)))++this.pos;else break e}}};pp.finishToken=function(n,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=n,this.value=e,this.updateContext(s)};pp.readToken_dot=function(){var n=this.input.charCodeAt(this.pos+1);if(n>=48&&n<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&n===46&&e===46?(this.pos+=3,this.finishToken(types$1.ellipsis)):(++this.pos,this.finishToken(types$1.dot))};pp.readToken_slash=function(){var n=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):n===61?this.finishOp(types$1.assign,2):this.finishOp(types$1.slash,1)};pp.readToken_mult_modulo_exp=function(n){var e=this.input.charCodeAt(this.pos+1),s=1,o=n===42?types$1.star:types$1.modulo;return this.options.ecmaVersion>=7&&n===42&&e===42&&(++s,o=types$1.starstar,e=this.input.charCodeAt(this.pos+2)),e===61?this.finishOp(types$1.assign,s+1):this.finishOp(o,s)};pp.readToken_pipe_amp=function(n){var e=this.input.charCodeAt(this.pos+1);if(e===n){if(this.options.ecmaVersion>=12){var s=this.input.charCodeAt(this.pos+2);if(s===61)return this.finishOp(types$1.assign,3)}return this.finishOp(n===124?types$1.logicalOR:types$1.logicalAND,2)}return e===61?this.finishOp(types$1.assign,2):this.finishOp(n===124?types$1.bitwiseOR:types$1.bitwiseAND,1)};pp.readToken_caret=function(){var n=this.input.charCodeAt(this.pos+1);return n===61?this.finishOp(types$1.assign,2):this.finishOp(types$1.bitwiseXOR,1)};pp.readToken_plus_min=function(n){var e=this.input.charCodeAt(this.pos+1);return e===n?e===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||lineBreak.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(types$1.incDec,2):e===61?this.finishOp(types$1.assign,2):this.finishOp(types$1.plusMin,1)};pp.readToken_lt_gt=function(n){var e=this.input.charCodeAt(this.pos+1),s=1;return e===n?(s=n===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+s)===61?this.finishOp(types$1.assign,s+1):this.finishOp(types$1.bitShift,s)):e===33&&n===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(e===61&&(s=2),this.finishOp(types$1.relational,s))};pp.readToken_eq_excl=function(n){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(types$1.equality,this.input.charCodeAt(this.pos+2)===61?3:2):n===61&&e===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(types$1.arrow)):this.finishOp(n===61?types$1.eq:types$1.prefix,1)};pp.readToken_question=function(){var n=this.options.ecmaVersion;if(n>=11){var e=this.input.charCodeAt(this.pos+1);if(e===46){var s=this.input.charCodeAt(this.pos+2);if(s<48||s>57)return this.finishOp(types$1.questionDot,2)}if(e===63){if(n>=12){var o=this.input.charCodeAt(this.pos+2);if(o===61)return this.finishOp(types$1.assign,3)}return this.finishOp(types$1.coalesce,2)}}return this.finishOp(types$1.question,1)};pp.readToken_numberSign=function(){var n=this.options.ecmaVersion,e=35;if(n>=13&&(++this.pos,e=this.fullCharCodeAtPos(),isIdentifierStart(e,!0)||e===92))return this.finishToken(types$1.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+codePointToString(e)+"'")};pp.getTokenFromCode=function(n){switch(n){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(types$1.parenL);case 41:return++this.pos,this.finishToken(types$1.parenR);case 59:return++this.pos,this.finishToken(types$1.semi);case 44:return++this.pos,this.finishToken(types$1.comma);case 91:return++this.pos,this.finishToken(types$1.bracketL);case 93:return++this.pos,this.finishToken(types$1.bracketR);case 123:return++this.pos,this.finishToken(types$1.braceL);case 125:return++this.pos,this.finishToken(types$1.braceR);case 58:return++this.pos,this.finishToken(types$1.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(types$1.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(e===120||e===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(e===111||e===79)return this.readRadixNumber(8);if(e===98||e===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(n);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(n);case 124:case 38:return this.readToken_pipe_amp(n);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(n);case 60:case 62:return this.readToken_lt_gt(n);case 61:case 33:return this.readToken_eq_excl(n);case 63:return this.readToken_question();case 126:return this.finishOp(types$1.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+codePointToString(n)+"'")};pp.finishOp=function(n,e){var s=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(n,s)};pp.readRegexp=function(){for(var n,e,s=this.pos;;){this.pos>=this.input.length&&this.raise(s,"Unterminated regular expression");var o=this.input.charAt(this.pos);if(lineBreak.test(o)&&this.raise(s,"Unterminated regular expression"),n)n=!1;else{if(o==="[")e=!0;else if(o==="]"&&e)e=!1;else if(o==="/"&&!e)break;n=o==="\\"}++this.pos}var a=this.input.slice(s,this.pos);++this.pos;var l=this.pos,c=this.readWord1();this.containsEsc&&this.unexpected(l);var u=this.regexpState||(this.regexpState=new RegExpValidationState(this));u.reset(s,a,c),this.validateRegExpFlags(u),this.validateRegExpPattern(u);var f=null;try{f=new RegExp(a,c)}catch{}return this.finishToken(types$1.regexp,{pattern:a,flags:c,value:f})};pp.readInt=function(n,e,s){for(var o=this.options.ecmaVersion>=12&&e===void 0,a=s&&this.input.charCodeAt(this.pos)===48,l=this.pos,c=0,u=0,f=0,d=e??1/0;f=97?b=g-97+10:g>=65?b=g-65+10:g>=48&&g<=57?b=g-48:b=1/0,b>=n)break;u=g,c=c*n+b}return o&&u===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===l||e!=null&&this.pos-l!==e?null:c};function stringToNumber(n,e){return e?parseInt(n,8):parseFloat(n.replace(/_/g,""))}function stringToBigInt(n){return typeof BigInt!="function"?null:BigInt(n.replace(/_/g,""))}pp.readRadixNumber=function(n){var e=this.pos;this.pos+=2;var s=this.readInt(n);return s==null&&this.raise(this.start+2,"Expected number in radix "+n),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(s=stringToBigInt(this.input.slice(e,this.pos)),++this.pos):isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(types$1.num,s)};pp.readNumber=function(n){var e=this.pos;!n&&this.readInt(10,void 0,!0)===null&&this.raise(e,"Invalid number");var s=this.pos-e>=2&&this.input.charCodeAt(e)===48;s&&this.strict&&this.raise(e,"Invalid number");var o=this.input.charCodeAt(this.pos);if(!s&&!n&&this.options.ecmaVersion>=11&&o===110){var a=stringToBigInt(this.input.slice(e,this.pos));return++this.pos,isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(types$1.num,a)}s&&/[89]/.test(this.input.slice(e,this.pos))&&(s=!1),o===46&&!s&&(++this.pos,this.readInt(10),o=this.input.charCodeAt(this.pos)),(o===69||o===101)&&!s&&(o=this.input.charCodeAt(++this.pos),(o===43||o===45)&&++this.pos,this.readInt(10)===null&&this.raise(e,"Invalid number")),isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var l=stringToNumber(this.input.slice(e,this.pos),s);return this.finishToken(types$1.num,l)};pp.readCodePoint=function(){var n=this.input.charCodeAt(this.pos),e;if(n===123){this.options.ecmaVersion<6&&this.unexpected();var s=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(s,"Code point out of bounds")}else e=this.readHexChar(4);return e};pp.readString=function(n){for(var e="",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var o=this.input.charCodeAt(this.pos);if(o===n)break;o===92?(e+=this.input.slice(s,this.pos),e+=this.readEscapedChar(!1),s=this.pos):o===8232||o===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(isNewLine(o)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(s,this.pos++),this.finishToken(types$1.string,e)};var INVALID_TEMPLATE_ESCAPE_ERROR={};pp.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(n){if(n===INVALID_TEMPLATE_ESCAPE_ERROR)this.readInvalidTemplateToken();else throw n}this.inTemplateElement=!1};pp.invalidStringToken=function(n,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw INVALID_TEMPLATE_ESCAPE_ERROR;this.raise(n,e)};pp.readTmplToken=function(){for(var n="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var s=this.input.charCodeAt(this.pos);if(s===96||s===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===types$1.template||this.type===types$1.invalidTemplate)?s===36?(this.pos+=2,this.finishToken(types$1.dollarBraceL)):(++this.pos,this.finishToken(types$1.backQuote)):(n+=this.input.slice(e,this.pos),this.finishToken(types$1.template,n));if(s===92)n+=this.input.slice(e,this.pos),n+=this.readEscapedChar(!0),e=this.pos;else if(isNewLine(s)){switch(n+=this.input.slice(e,this.pos),++this.pos,s){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:n+=` +`;break;default:n+=String.fromCharCode(s);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}};pp.readInvalidTemplateToken=function(){for(;this.pos=48&&e<=55){var o=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(o,8);return a>255&&(o=o.slice(0,-1),a=parseInt(o,8)),this.pos+=o.length-1,e=this.input.charCodeAt(this.pos),(o!=="0"||e===56||e===57)&&(this.strict||n)&&this.invalidStringToken(this.pos-1-o.length,n?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return isNewLine(e)?"":String.fromCharCode(e)}};pp.readHexChar=function(n){var e=this.pos,s=this.readInt(16,n);return s===null&&this.invalidStringToken(e,"Bad character escape sequence"),s};pp.readWord1=function(){this.containsEsc=!1;for(var n="",e=!0,s=this.pos,o=this.options.ecmaVersion>=6;this.pos":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},NEEDS_PARENTHESES=17,EXPRESSIONS_PRECEDENCE={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:NEEDS_PARENTHESES,ClassExpression:NEEDS_PARENTHESES,FunctionExpression:NEEDS_PARENTHESES,ObjectExpression:NEEDS_PARENTHESES,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function formatSequence(n,e){const{generator:s}=n;if(n.write("("),e!=null&&e.length>0){s[e[0].type](e[0],n);const{length:o}=e;for(let a=1;a0){n.write(o);for(let c=1;c0){s.VariableDeclarator(o[0],n);for(let l=1;l0){e.write(o),a&&n.comments!=null&&formatComments(e,n.comments,l,o);const{length:u}=c;for(let f=0;f0){for(;a0&&e.write(", ");const l=s[a],c=l.type[6];if(c==="D")e.write(l.local.name,l),a++;else if(c==="N")e.write("* as "+l.local.name,l),a++;else break}if(a0)for(let a=0;;){const l=s[a],{name:c}=l.local;if(e.write(c,l),c!==l.exported.name&&e.write(" as "+l.exported.name),++a "),n.body.type[0]==="O"?(e.write("("),this.ObjectExpression(n.body,e),e.write(")")):this[n.body.type](n.body,e)},ThisExpression(n,e){e.write("this",n)},Super(n,e){e.write("super",n)},RestElement:RestElement=function(n,e){e.write("..."),this[n.argument.type](n.argument,e)},SpreadElement:RestElement,YieldExpression(n,e){e.write(n.delegate?"yield*":"yield"),n.argument&&(e.write(" "),this[n.argument.type](n.argument,e))},AwaitExpression(n,e){e.write("await ",n),formatExpression(e,n.argument,n)},TemplateLiteral(n,e){const{quasis:s,expressions:o}=n;e.write("`");const{length:a}=o;for(let c=0;c0){const{elements:s}=n,{length:o}=s;for(let a=0;;){const l=s[a];if(l!=null&&this[l.type](l,e),++a0){e.write(o),a&&n.comments!=null&&formatComments(e,n.comments,l,o);const c=","+o,{properties:u}=n,{length:f}=u;for(let d=0;;){const g=u[d];if(a&&g.comments!=null&&formatComments(e,g.comments,l,o),e.write(l),this[g.type](g,e),++d0){const{properties:s}=n,{length:o}=s;for(let a=0;this[s[a].type](s[a],e),++a1||a[0]==="U"&&(a[1]==="n"||a[1]==="p")&&o.prefix&&o.operator[0]===s&&(s==="+"||s==="-"))&&e.write(" "),l?(e.write(s.length>1?" (":"("),this[a](o,e),e.write(")")):this[a](o,e)}else this[n.argument.type](n.argument,e),e.write(n.operator)},UpdateExpression(n,e){n.prefix?(e.write(n.operator),this[n.argument.type](n.argument,e)):(this[n.argument.type](n.argument,e),e.write(n.operator))},AssignmentExpression(n,e){this[n.left.type](n.left,e),e.write(" "+n.operator+" "),this[n.right.type](n.right,e)},AssignmentPattern(n,e){this[n.left.type](n.left,e),e.write(" = "),this[n.right.type](n.right,e)},BinaryExpression:BinaryExpression=function(n,e){const s=n.operator==="in";s&&e.write("("),formatExpression(e,n.left,n,!1),e.write(" "+n.operator+" "),formatExpression(e,n.right,n,!0),s&&e.write(")")},LogicalExpression:BinaryExpression,ConditionalExpression(n,e){const{test:s}=n,o=e.expressionsPrecedence[s.type];o===NEEDS_PARENTHESES||o<=e.expressionsPrecedence.ConditionalExpression?(e.write("("),this[s.type](s,e),e.write(")")):this[s.type](s,e),e.write(" ? "),this[n.consequent.type](n.consequent,e),e.write(" : "),this[n.alternate.type](n.alternate,e)},NewExpression(n,e){e.write("new ");const s=e.expressionsPrecedence[n.callee.type];s===NEEDS_PARENTHESES||s0&&(this.lineEndSize>0&&(a.length===1?e[o-1]===a:e.endsWith(a))?(this.line+=this.lineEndSize,this.column=0):this.column+=o)}toString(){return this.output}};function generate(n,e){const s=new State$1(e);return s.generator[n.type](n,s),s.output}function myPlugin(n){return class extends n{parseLiteral(...e){const s=super.parseLiteral(...e);return typeof s.value=="string"&&this.input.slice(s.start,s.end).startsWith("'")?{type:"ArrayExpression",elements:this.transformMyString(s.value).map(a=>({type:"Literal",value:a,raw:a.toString()})),start:s.start,end:s.end}:s}transformMyString(e){const s=e.match(/\d+!*\d*/g),o=[];return s==null||s.forEach(a=>{const l=a.split("!"),c=parseInt(l[0]),u=l[1]?parseInt(l[1]):1;for(let f=0;f{const l=a.split("~"),c=parseInt(l[0]),u=parseInt(l[1]);o.push(Math.floor(Math.random()*u+c))}),o}}}const MiniLanguage=Parser.extend(myPlugin);function parseUserCode(n){let e=MiniLanguage.parse(n,{ecmaVersion:2020});return generate(e)}const delay=n=>new Promise((e,s)=>setTimeout(()=>s(new Error("Operation took too long")),n)),tryCatchWrapper=(n,e)=>new Promise((s,o)=>{try{Function(`with (this) {try{${parseUserCode(e)}} catch (e) {console.log(e)}};`).call(n.api),s(!0)}catch(a){console.log(a),s(!1)}}),tryEvaluate=async(n,e,s=5e3)=>{try{e.evaluations++,await Promise.race([tryCatchWrapper(n,`let i = ${e.evaluations};`+e.candidate),delay(s)])?e.committed=e.candidate:await evaluate$1(n,e,s)}catch(o){console.log(o)}},evaluate$1=async(n,e,s=1e3)=>{try{await Promise.race([tryCatchWrapper(n,e.committed),delay(s)]),e.evaluations&&e.evaluations++}catch(o){console.log(o)}},zeroPad=(n,e)=>String(n).padStart(e,"0");class TransportNode extends AudioWorkletNode{constructor(s,o,a){super(s,"transport",o);Oe(this,"app");Oe(this,"$clock");Oe(this,"hasBeenEvaluated");Oe(this,"currentPulsePosition");Oe(this,"nextPulsePosition");Oe(this,"executionLatency");Oe(this,"lastLatencies");Oe(this,"indexOfLastLatencies");Oe(this,"startTime");Oe(this,"elapsedTime");Oe(this,"prevCurrentTime");Oe(this,"handleMessage",s=>{if(s.data&&s.data.type==="bang"){this.startTime===void 0&&(this.startTime=s.data.currentTime),this.elapsedTime=s.data.currentTime-this.startTime,this.prevCurrentTime=s.data.currentTime;let{futureTimeStamp:o,timeToNextPulse:a,nextPulsePosition:l}=this.convertTimeToNextBarsBeats(this.elapsedTime);this.nextPulsePosition!==l&&(this.nextPulsePosition=l,setTimeout(()=>{const c=performance.now();this.app.clock.time_position=o,this.$clock.innerHTML=`[${o.bar}:${o.beat}:${zeroPad(o.pulse,"2")}]`,tryEvaluate(this.app,this.app.global_buffer),this.hasBeenEvaluated=!0,this.currentPulsePosition=l;const u=performance.now();this.lastLatencies[this.indexOfLastLatencies]=u-c,this.indexOfLastLatencies=(this.indexOfLastLatencies+1)%this.lastLatencies.length;const f=this.lastLatencies.reduce((d,g)=>d+g)/this.lastLatencies.length;this.executionLatency=f/1e3},(a+this.executionLatency)*1e3))}});this.app=a,this.port.addEventListener("message",this.handleMessage),this.port.start(),this.$clock=document.getElementById("clockviewer"),this.hasBeenEvaluated=!1,this.currentPulsePosition=0,this.nextPulsePosition=-1,this.executionLatency=0,this.lastLatencies=[0,0,0,0,0,0,0,0,0,0],this.indexOfLastLatencies=0,this.startTime=void 0,this.elapsedTime=0,this.prevCurrentTime=0}start(){this.port.postMessage("start")}pause(){this.port.postMessage("pause")}stop(){this.startTime=void 0,this.elapsedTime=void 0,this.app.clock.tick=0,this.$clock.innerHTML=`[1 | 1 | ${zeroPad(1,"2")}]`,this.port.postMessage("stop")}convertTimeToBarsBeats(s){const o=60/this.app.clock.bpm,a=s/o,l=this.app.clock.time_signature[0],c=Math.floor(a/l)+1,u=Math.floor(a%l)+1,f=Math.floor(a%1*this.app.clock.ppqn);return this.app.clock.tick++,{bar:c,beat:u,ppqn:f}}convertTimeToNextBarsBeats(s){const o=60/this.app.clock.bpm,a=s/o,l=this.app.clock.time_signature[0];this.currentPulsePosition=a*this.app.clock.ppqn;const c=Math.ceil(this.currentPulsePosition),u=this.app.clock.convertPulseToSecond(this.nextPulsePosition-this.currentPulsePosition),f=this.nextPulsePosition/this.app.clock.ppqn,d=f/l,g={bar:Math.floor(d)+1,beat:Math.floor(f)%l+1,pulse:Math.floor(this.nextPulsePosition)%this.app.clock.ppqn};return this.app.clock.tick++,{futureTimeStamp:g,timeToNextPulse:u,nextPulsePosition:c}}}const TransportProcessor="/assets/TransportProcessor-d32032a5.js";class Clock{constructor(e,s){Oe(this,"ctx");Oe(this,"transportNode");Oe(this,"bpm");Oe(this,"time_signature");Oe(this,"time_position");Oe(this,"ppqn");Oe(this,"tick");this.app=e,this.transportNode=null,this.ctx=s,this.tick=0,this.time_position={bar:0,beat:0,pulse:0},this.bpm=120,this.time_signature=[4,4],this.ppqn=48,s.audioWorklet.addModule(TransportProcessor).then(o=>(this.transportNode=new TransportNode(s,{},this.app),this.transportNode.connect(s.destination),o)).catch(o=>{console.log("Error loading TransportProcessor.js:",o)})}get beats_per_bar(){return this.time_signature[0]}get pulse_duration(){return 60/this.bpm/this.ppqn}convertPulseToSecond(e){return e*this.pulse_duration}start(){var e,s;((e=this.transportNode)==null?void 0:e.state)==="running"?console.log("Already started"):(this.app.audioContext.resume(),(s=this.transportNode)==null||s.start())}pause(){var e;(e=this.transportNode)==null||e.pause()}stop(){var e;(e=this.transportNode)==null||e.stop()}}const global_text=` +// Global buffer: a central buffer to command them all. +// ==================================================== +// The global buffer is a special buffer used to control +// the general behavior of your universe. It is meant to +// be used as a "control room" for your universe. You can +// make use of several commands to control the execution +// flow of all the files: +// - script(universe/universes: number): run script(s) +`,local_buffer=` +// Local buffer: nine buffers to write your algorithms. +`,init_buffer=` +// Init buffer: a buffer to initialize the universe. +// This universe is runned once when the universe is +// loaded! +`,note_buffer="// Notes buffer: a buffer to write your notes.",tutorial_universe={global:{candidate:global_text,committed:global_text,evaluations:0},locals:{1:{candidate:local_buffer,committed:local_buffer,evaluations:0},2:{candidate:local_buffer,committed:local_buffer,evaluations:0},3:{candidate:local_buffer,committed:local_buffer,evaluations:0},4:{candidate:local_buffer,committed:local_buffer,evaluations:0},5:{candidate:local_buffer,committed:local_buffer,evaluations:0},6:{candidate:local_buffer,committed:local_buffer,evaluations:0},7:{candidate:local_buffer,committed:local_buffer,evaluations:0},8:{candidate:local_buffer,committed:local_buffer,evaluations:0},9:{candidate:local_buffer,committed:local_buffer,evaluations:0}},init:{candidate:init_buffer,committed:init_buffer,evaluations:0},notes:{candidate:note_buffer}},template_universe={global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},notes:{candidate:""}},template_universes={Default:{global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},notes:{candidate:"// NOTES"}},Help:tutorial_universe};class AppSettings{constructor(){Oe(this,"vimMode",!1);Oe(this,"theme","materialDark");Oe(this,"font","SpaceMono");Oe(this,"font_size",22);Oe(this,"universes");Oe(this,"selected_universe","Default");Oe(this,"line_numbers",!0);const e=JSON.parse(localStorage.getItem("topos")||"{}");e&&Object.keys(e).length!==0?(this.vimMode=e.vimMode,this.theme=e.theme,this.font=e.font,this.font_size=e.font_size,this.universes=e.universes,this.selected_universe=e.selected_universe,this.line_numbers=e.line_numbers):this.universes=template_universes}get data(){return{vimMode:this.vimMode,theme:this.theme,font:this.font,font_size:this.font_size,universes:this.universes,selected_universe:this.selected_universe,line_numbers:this.line_numbers}}saveApplicationToLocalStorage(e,s){this.universes=e,this.vimMode=s.vimMode,this.font=s.font,this.font_size=s.font_size,this.selected_universe=s.selected_universe,this.line_numbers=s.line_numbers,localStorage.setItem("topos",JSON.stringify(this.data))}}const SCALES={major:[0,2,4,5,7,9,11],naturalMinor:[0,2,3,5,7,8,10],harmonicMinor:[0,2,3,5,7,8,11],melodicMinor:[0,2,3,5,7,9,11],dorian:[0,2,3,5,7,9,10],phrygian:[0,1,3,5,7,8,10],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],aeolian:[0,2,3,5,7,8,10],locrian:[0,1,3,5,6,8,10],wholeTone:[0,2,4,6,8,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10],chromatic:[0,1,2,3,4,5,6,7,8,9,10,11],blues:[0,3,5,6,7,10],diminished:[0,2,3,5,6,8,9,11],neapolitanMinor:[0,1,3,5,7,8,11],neapolitanMajor:[0,1,3,5,7,9,11],enigmatic:[0,1,4,6,8,10,11],doubleHarmonic:[0,1,4,5,7,8,11],octatonic:[0,2,3,5,6,8,9,11],bebopDominant:[0,2,4,5,7,9,10,11],bebopMajor:[0,2,4,5,7,8,9,11],bebopMinor:[0,2,3,5,7,8,9,11],bebopDorian:[0,2,3,4,5,7,9,10],harmonicMajor:[0,2,4,5,7,8,11],hungarianMinor:[0,2,3,6,7,8,11],hungarianMajor:[0,3,4,6,7,9,10],oriental:[0,1,4,5,6,9,10],romanianMinor:[0,2,3,6,7,9,10],spanishGypsy:[0,1,4,5,7,8,10],jewish:[0,1,4,5,7,8,10],hindu:[0,2,4,5,7,8,10],japanese:[0,1,5,7,8],hirajoshi:[0,2,3,7,8],kumoi:[0,2,3,7,9],inSen:[0,1,5,7,10],iwato:[0,1,5,6,10],yo:[0,2,5,7,9],minorBlues:[0,3,5,6,7,10],algerian:[0,2,3,5,6,7,8,11],augmented:[0,3,4,7,8,11],balinese:[0,1,3,7,8],byzantine:[0,1,4,5,7,8,11],chinese:[0,4,6,7,11],egyptian:[0,2,5,7,10],eightToneSpanish:[0,1,3,4,5,6,8,10],hawaiian:[0,2,3,5,7,9,10],hindustan:[0,2,4,5,7,8,10],persian:[0,1,4,5,6,8,11],eastIndianPurvi:[0,1,4,6,7,8,11],orientalA:[0,1,4,5,6,9,10]};function scale$1(n,e="major",s=4){const o=SCALES[e];if(!o)throw new Error(`Unknown scale ${e}`);let a=n%o.length;a<0&&(a+=o.length);let l=Math.floor(n/o.length);return 60+(s+l)*12+o[a]}class MidiConnection{constructor(){Oe(this,"midiAccess",null);Oe(this,"midiOutputs",[]);Oe(this,"currentOutputIndex",0);Oe(this,"scheduledNotes",{});this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&console.warn("No MIDI outputs available.")}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndexo.name===e);return s!==-1?(this.currentOutputIndex=s,!0):(console.error(`MIDI output "${e}" not found.`),!1)}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,s)=>{console.log(`${s+1}. ${e.name}`)})}sendMidiNote(e,s,o,a){const l=this.midiOutputs[this.currentOutputIndex];if(l){const c=[144+s,e,o],u=[128+s,e,0];l.send(c);const f=setTimeout(()=>{l.send(u),delete this.scheduledNotes[e]},(a-.02)*1e3);this.scheduledNotes[e]=f}else console.error("MIDI output not available.")}sendSysExMessage(e){const s=this.midiOutputs[this.currentOutputIndex];s?s.send(e):console.error("MIDI output not available.")}sendProgramChange(e,s){const o=this.midiOutputs[this.currentOutputIndex];o?o.send([192+s,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,s){const o=this.midiOutputs[this.currentOutputIndex];o?o.send([176,e,s]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const s in this.scheduledNotes){const o=this.scheduledNotes[s];clearTimeout(o),e.send([128,parseInt(s),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}function getDefaultExportFromCjs(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var fraction$1={exports:{}};/** + * @license Fraction.js v4.2.0 05/03/2022 + * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2021, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/(function(n,e){(function(s){var o=2e3,a={s:1,n:0,d:1};function l(V,D){if(isNaN(V=parseInt(V,10)))throw B.InvalidParameter;return V*D}function c(V,D){if(D===0)throw B.DivisionByZero;var X=Object.create(B.prototype);X.s=V<0?-1:1,V=V<0?-V:V;var q=E(V,D);return X.n=V/q,X.d=D/q,X}function u(V){for(var D={},X=V,q=2,z=4;z<=X;){for(;X%q===0;)X/=q,D[q]=(D[q]||0)+1;z+=1+2*q++}return X!==V?X>1&&(D[X]=(D[X]||0)+1):D[V]=(D[V]||0)+1,D}var f=function(V,D){var X=0,q=1,z=1,oe=0,j=0,ue=0,fe=1,xe=1,Se=0,ge=1,Qe=1,Me=1,Ie=1e7,Ze;if(V!=null)if(D!==void 0){if(X=V,q=D,z=X*q,X%1!==0||q%1!==0)throw B.NonIntegerParameter}else switch(typeof V){case"object":{if("d"in V&&"n"in V)X=V.n,q=V.d,"s"in V&&(X*=V.s);else if(0 in V)X=V[0],1 in V&&(q=V[1]);else throw B.InvalidParameter;z=X*q;break}case"number":{if(V<0&&(z=V,V=-V),V%1===0)X=V;else if(V>0){for(V>=1&&(xe=Math.pow(10,Math.floor(1+Math.log(V)/Math.LN10)),V/=xe);ge<=Ie&&Me<=Ie;)if(Ze=(Se+Qe)/(ge+Me),V===Ze){ge+Me<=Ie?(X=Se+Qe,q=ge+Me):Me>ge?(X=Qe,q=Me):(X=Se,q=ge);break}else V>Ze?(Se+=Qe,ge+=Me):(Qe+=Se,Me+=ge),ge>Ie?(X=Qe,q=Me):(X=Se,q=ge);X*=xe}else(isNaN(V)||isNaN(D))&&(q=X=NaN);break}case"string":{if(ge=V.match(/\d+|./g),ge===null)throw B.InvalidParameter;if(ge[Se]==="-"?(z=-1,Se++):ge[Se]==="+"&&Se++,ge.length===Se+1?j=l(ge[Se++],z):ge[Se+1]==="."||ge[Se]==="."?(ge[Se]!=="."&&(oe=l(ge[Se++],z)),Se++,(Se+1===ge.length||ge[Se+1]==="("&&ge[Se+3]===")"||ge[Se+1]==="'"&&ge[Se+3]==="'")&&(j=l(ge[Se],z),fe=Math.pow(10,ge[Se].length),Se++),(ge[Se]==="("&&ge[Se+2]===")"||ge[Se]==="'"&&ge[Se+2]==="'")&&(ue=l(ge[Se+1],z),xe=Math.pow(10,ge[Se+1].length)-1,Se+=3)):ge[Se+1]==="/"||ge[Se+1]===":"?(j=l(ge[Se],z),fe=l(ge[Se+2],1),Se+=3):ge[Se+3]==="/"&&ge[Se+1]===" "&&(oe=l(ge[Se],z),j=l(ge[Se+2],z),fe=l(ge[Se+4],1),Se+=5),ge.length<=Se){q=fe*xe,z=X=ue+q*oe+xe*j;break}}default:throw B.InvalidParameter}if(q===0)throw B.DivisionByZero;a.s=z<0?-1:1,a.n=Math.abs(X),a.d=Math.abs(q)};function d(V,D,X){for(var q=1;D>0;V=V*V%X,D>>=1)D&1&&(q=q*V%X);return q}function g(V,D){for(;D%2===0;D/=2);for(;D%5===0;D/=5);if(D===1)return 0;for(var X=10%D,q=1;X!==1;q++)if(X=X*10%D,q>o)return 0;return q}function b(V,D,X){for(var q=1,z=d(10,X,D),oe=0;oe<300;oe++){if(q===z)return oe;q=q*10%D,z=z*10%D}return 0}function E(V,D){if(!V)return D;if(!D)return V;for(;;){if(V%=D,!V)return D;if(D%=V,!D)return V}}function B(V,D){if(f(V,D),this instanceof B)V=E(a.d,a.n),this.s=a.s,this.n=a.n/V,this.d=a.d/V;else return c(a.s*a.n,a.d)}B.DivisionByZero=new Error("Division by Zero"),B.InvalidParameter=new Error("Invalid argument"),B.NonIntegerParameter=new Error("Parameters must be integer"),B.prototype={s:1,n:0,d:1,abs:function(){return c(this.n,this.d)},neg:function(){return c(-this.s*this.n,this.d)},add:function(V,D){return f(V,D),c(this.s*this.n*a.d+a.s*this.d*a.n,this.d*a.d)},sub:function(V,D){return f(V,D),c(this.s*this.n*a.d-a.s*this.d*a.n,this.d*a.d)},mul:function(V,D){return f(V,D),c(this.s*a.s*this.n*a.n,this.d*a.d)},div:function(V,D){return f(V,D),c(this.s*a.s*this.n*a.d,this.d*a.n)},clone:function(){return c(this.s*this.n,this.d)},mod:function(V,D){if(isNaN(this.n)||isNaN(this.d))return new B(NaN);if(V===void 0)return c(this.s*this.n%this.d,1);if(f(V,D),a.n===0&&this.d===0)throw B.DivisionByZero;return c(this.s*(a.d*this.n)%(a.n*this.d),a.d*this.d)},gcd:function(V,D){return f(V,D),c(E(a.n,this.n)*E(a.d,this.d),a.d*this.d)},lcm:function(V,D){return f(V,D),a.n===0&&this.n===0?c(0,1):c(a.n*this.n,E(a.n,this.n)*E(a.d,this.d))},ceil:function(V){return V=Math.pow(10,V||0),isNaN(this.n)||isNaN(this.d)?new B(NaN):c(Math.ceil(V*this.s*this.n/this.d),V)},floor:function(V){return V=Math.pow(10,V||0),isNaN(this.n)||isNaN(this.d)?new B(NaN):c(Math.floor(V*this.s*this.n/this.d),V)},round:function(V){return V=Math.pow(10,V||0),isNaN(this.n)||isNaN(this.d)?new B(NaN):c(Math.round(V*this.s*this.n/this.d),V)},inverse:function(){return c(this.s*this.d,this.n)},pow:function(V,D){if(f(V,D),a.d===1)return a.s<0?c(Math.pow(this.s*this.d,a.n),Math.pow(this.n,a.n)):c(Math.pow(this.s*this.n,a.n),Math.pow(this.d,a.n));if(this.s<0)return null;var X=u(this.n),q=u(this.d),z=1,oe=1;for(var j in X)if(j!=="1"){if(j==="0"){z=0;break}if(X[j]*=a.n,X[j]%a.d===0)X[j]/=a.d;else return null;z*=Math.pow(j,X[j])}for(var j in q)if(j!=="1"){if(q[j]*=a.n,q[j]%a.d===0)q[j]/=a.d;else return null;oe*=Math.pow(j,q[j])}return a.s<0?c(oe,z):c(z,oe)},equals:function(V,D){return f(V,D),this.s*this.n*a.d===a.s*a.n*this.d},compare:function(V,D){f(V,D);var X=this.s*this.n*a.d-a.s*a.n*this.d;return(0=0;oe--)z=z.inverse().add(X[oe]);if(z.sub(D).abs().valueOf()0&&(X+=D,X+=" ",q%=z),X+=q,X+="/",X+=z),X},toLatex:function(V){var D,X="",q=this.n,z=this.d;return this.s<0&&(X+="-"),z===1?X+=q:(V&&(D=Math.floor(q/z))>0&&(X+=D,q%=z),X+="\\frac{",X+=q,X+="}{",X+=z,X+="}"),X},toContinued:function(){var V,D=this.n,X=this.d,q=[];if(isNaN(D)||isNaN(X))return q;do q.push(Math.floor(D/X)),V=D%X,D=X,X=V;while(D!==1);return q},toString:function(V){var D=this.n,X=this.d;if(isNaN(D)||isNaN(X))return"NaN";V=V||15;var q=g(D,X),z=b(D,X,q),oe=this.s<0?"-":"";if(oe+=D/X|0,D%=X,D*=10,D&&(oe+="."),q){for(var j=z;j--;)oe+=D/X|0,D%=X,D*=10;oe+="(";for(var j=q;j--;)oe+=D/X|0,D%=X,D*=10;oe+=")"}else for(var j=V;D&&j--;)oe+=D/X|0,D%=X,D*=10;return oe}},Object.defineProperty(B,"__esModule",{value:!0}),B.default=B,B.Fraction=B,n.exports=B})()})(fraction$1);var fractionExports=fraction$1.exports;const Fraction=getDefaultExportFromCjs(fractionExports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(n){return this.compare(n)<0};Fraction.prototype.gt=function(n){return this.compare(n)>0};Fraction.prototype.lte=function(n){return this.compare(n)<=0};Fraction.prototype.gte=function(n){return this.compare(n)>=0};Fraction.prototype.eq=function(n){return this.compare(n)==0};Fraction.prototype.max=function(n){return this.gt(n)?this:n};Fraction.prototype.min=function(n){return this.lt(n)?this:n};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(n){return this.eq(0)?n:this};const fraction=n=>Fraction(n),gcd=(...n)=>n.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const o=this.end,a=o.sam();if(s.equals(o))return[new TimeSpan(s,o)];for(;o.gt(s);){if(s.sam().equals(a)){e.push(new TimeSpan(s,this.end));break}const l=s.nextSam();e.push(new TimeSpan(s,l)),s=l}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan(e,s)}withTime(e){return new TimeSpan(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),o=s.add(e(this.begin.sub(s))),a=s.add(e(this.end.sub(s)));return new TimeSpan(o,a)}intersection(e){const s=this.begin.max(e.begin),o=this.end.min(e.end);if(!s.gt(o)&&!(s.equals(o)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan(s,o)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" → "+this.end.show()}}class Hap{constructor(e,s,o,a={},l=!1){this.whole=e,this.part=s,this.value=o,this.context=a,this.stateful=l,l&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){var e,s;return this.whole.end.sub(this.whole.begin).mul(typeof((e=this.value)==null?void 0:e.clip)=="number"?(s=this.value)==null?void 0:s.clip:1)}get endClipped(){return this.whole.begin.add(this.duration)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[o,a]=s(e);return[o,new Hap(this.whole,this.part,a,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(e=!1){const s=typeof this.value=="object"?e?JSON.stringify(this.value).slice(1,-1).replaceAll('"',"").replaceAll(","," "):JSON.stringify(this.value):this.value;var o="";if(this.whole==null)o="~"+this.part.show;else{var a=this.whole.begin.equals(this.part.begin)&&this.whole.end.equals(this.part.end);this.whole.begin.equals(this.part.begin)||(o=this.whole.begin.show()+" ⇜ "),a||(o+="("),o+=this.part.show(),a||(o+=")"),this.whole.end.equals(this.part.end)||(o+=" ⇝ "+this.whole.end.show())}return"[ "+o+" | "+s+" ]"}showWhole(e=!1){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?e?JSON.stringify(this.value).slice(1,-1).replaceAll('"',"").replaceAll(","," "):JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return{...s.context,...e.context,locations:(s.context.locations||[]).concat(e.context.locations||[])}}setContext(e){return new Hap(this.whole,this.part,this.value,e)}ensureObjectValue(){if(typeof this.value!="object")throw new Error(`expected hap.value to be an object, but got "${this.value}". Hint: append .note() or .s() to the end`,"error")}}class State{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State(this.span,e)}}const isNoteWithOctave=n=>/^[a-gA-G][#bs]*[0-9]$/.test(n),isNote=n=>/^[a-gA-G][#bsf]*[0-9]?$/.test(n),tokenizeNote=n=>{var a;if(typeof n!="string")return[];const[e,s="",o]=((a=n.match(/^([a-gA-G])([#bsf]*)([0-9])?$/))==null?void 0:a.slice(1))||[];return e?[e,s,o?Number(o):void 0]:[]},noteToMidi=n=>{const[e,s,o=3]=tokenizeNote(n);if(!e)throw new Error('not a note: "'+n+'"');const a={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],l=(s==null?void 0:s.split("").reduce((c,u)=>c+{"#":1,b:-1,s:1,f:-1}[u],0))||0;return(Number(o)+1)*12+a+l},midiToFreq=n=>Math.pow(2,(n-69)/12)*440,freqToMidi=n=>12*Math.log(n/440)/Math.LN2+69,valueToMidi=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:s,note:o}=n;if(typeof s=="number")return freqToMidi(s);if(typeof o=="string")return noteToMidi(o);if(typeof o=="number")return o;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},getFreq=n=>midiToFreq(typeof n=="number"?n:noteToMidi(n)),pcs=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],midi2note=n=>{const e=Math.floor(n/12)-1;return pcs[n%12]+e},_mod=(n,e)=>(n%e+e)%e,getPlayableNoteValue=n=>{let{value:e,context:s}=n,o=e;if(typeof o=="object"&&!Array.isArray(o)&&(o=o.note||o.n||o.value,o===void 0))throw new Error(`cannot find a playable note for ${JSON.stringify(e)}`);if(typeof o=="number"&&s.type!=="frequency")o=midiToFreq(n.value);else if(typeof o=="number"&&s.type==="frequency")o=n.value;else if(typeof o!="string"||!isNote(o))throw new Error("not a note: "+JSON.stringify(o));return o},getFrequency=n=>{let{value:e,context:s}=n;if(typeof e=="object")return e.freq?e.freq:getFreq(e.note||e.n||e.value);if(typeof e=="number"&&s.type!=="frequency")e=midiToFreq(n.value);else if(typeof e=="string"&&isNote(e))e=midiToFreq(noteToMidi(n.value));else if(typeof e!="number")throw new Error("not a note or frequency: "+e);return e},rotate=(n,e)=>n.slice(e).concat(n.slice(0,e)),pipe=(...n)=>n.reduce((e,s)=>(...o)=>e(s(...o)),e=>e),compose=(...n)=>pipe(...n.reverse()),removeUndefineds=n=>n.filter(e=>e!=null),flatten=n=>[].concat(...n),id=n=>n,constant=(n,e)=>n,listRange=(n,e)=>Array.from({length:e-n+1},(s,o)=>o+n);function curry(n,e,s=n.length){const o=function a(...l){if(l.length>=s)return n.apply(this,l);{const c=function(...u){return a.apply(this,l.concat(u))};return e&&e(c,l),c}};return e&&e(o,[]),o}function parseNumeral(n){const e=Number(n);if(!isNaN(e))return e;if(isNote(n))return noteToMidi(n);throw new Error(`cannot parse as numeral: "${n}"`)}function mapArgs(n,e){return(...s)=>n(...s.map(e))}function numeralArgs(n){return mapArgs(n,parseNumeral)}function parseFractional(n){const e=Number(n);if(!isNaN(e))return e;const s={pi:Math.PI,w:1,h:.5,q:.25,e:.125,s:.0625,t:1/3,f:.2,x:1/6}[n];if(typeof s<"u")return s;throw new Error(`cannot parse as fractional: "${n}"`)}const fractionalArgs=n=>mapArgs(n,parseFractional),splitAt=function(n,e){return[e.slice(0,n),e.slice(n)]},zipWith=(n,e,s)=>e.map((o,a)=>n(o,s[a])),clamp=(n,e,s)=>Math.min(Math.max(n,e),s),solfeggio=["Do","Reb","Re","Mib","Mi","Fa","Solb","Sol","Lab","La","Sib","Si"],indian=["Sa","Re","Ga","Ma","Pa","Dha","Ni"],german=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Hb","H"],byzantine=["Ni","Pab","Pa","Voub","Vou","Ga","Dib","Di","Keb","Ke","Zob","Zo"],japanese=["I","Ro","Ha","Ni","Ho","He","To"],english=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],sol2note=(n,e="letters")=>{const s=(e==="solfeggio"?solfeggio:e==="indian"?indian:e==="german"?german:e==="byzantine"?byzantine:e==="japanese"?japanese:english)[n%12],o=Math.floor(n/12)-1;return s+o};function unionWithObj(n,e,s){if(typeof(e==null?void 0:e.value)=="number"){const a=Object.keys(n).filter(c=>typeof n[c]=="number"),l=Object.fromEntries(a.map(c=>[c,e.value]));e=Object.assign(e,l),delete e.value}const o=Object.keys(n).filter(a=>Object.keys(e).includes(a));return Object.assign({},n,e,Object.fromEntries(o.map(a=>[a,s(n[a],e[a])])))}curry((n,e)=>n*e);curry((n,e)=>e.map(n));function drawLine(n,e=60){let s=0,o=fraction(0),a=[""],l="";for(;a[0].lengthg.hasOnset()).map(g=>g.duration),f=gcd(...u),d=f.inverse();a=a.map(g=>g+"|"),l+="|";for(let g=0;gD.whole.begin.lte(b)&&D.whole.end.gte(E)),V=B.length-a.length;V>0&&(a=a.concat(Array(V).fill(l))),a=a.map((D,X)=>{const q=B[X];if(q){const z=q.whole.begin.eq(b)?""+q.value:"-";return D+z}return D+"."}),l+=".",o=o.add(f)}s++}return a.join(` +`)}const logKey="strudel.log";function logger(n,e,s={}){console.log(`%c${n}`,"background-color: black;color:white;border-radius:15px"),typeof document<"u"&&typeof CustomEvent<"u"&&document.dispatchEvent(new CustomEvent(logKey,{detail:{message:n,type:e,data:s}}))}logger.key=logKey;let stringParser;const setStringParser=n=>stringParser=n;class Pattern{constructor(e){this.query=e,this._Pattern=!0}withValue(e){return new Pattern(s=>this.query(s).map(o=>o.withValue(e)))}fmap(e){return this.withValue(e)}appWhole(e,s){const o=this,a=function(l){const c=o.query(l),u=s.query(l),f=function(d,g){const b=d.part.intersection(g.part);if(b!=null)return new Hap(e(d.whole,g.whole),b,d.value(g.value),g.combineContext(d))};return flatten(c.map(d=>removeUndefineds(u.map(g=>f(d,g)))))};return new Pattern(a)}appBoth(e){const s=function(o,a){if(!(o==null||a==null))return o.intersection_e(a)};return this.appWhole(s,e)}appLeft(e){const s=this,o=function(a){const l=[];for(const c of s.query(a)){const u=e.query(a.setSpan(c.wholeOrPart()));for(const f of u){const d=c.whole,g=c.part.intersection(f.part);if(g){const b=c.value(f.value),E=f.combineContext(c),B=new Hap(d,g,b,E);l.push(B)}}}return l};return new Pattern(o)}appRight(e){const s=this,o=function(a){const l=[];for(const c of e.query(a)){const u=s.query(a.setSpan(c.wholeOrPart()));for(const f of u){const d=c.whole,g=f.part.intersection(c.part);if(g){const b=f.value(c.value),E=c.combineContext(f),B=new Hap(d,g,b,E);l.push(B)}}}return l};return new Pattern(o)}bindWhole(e,s){const o=this,a=function(l){const c=function(f,d){return new Hap(e(f.whole,d.whole),d.part,d.value,Object.assign({},f.context,d.context,{locations:(f.context.locations||[]).concat(d.context.locations||[])}))},u=function(f){return s(f.value).query(l.setSpan(f.part)).map(d=>c(f,d))};return flatten(o.query(l).map(f=>u(f)))};return new Pattern(a)}bind(e){const s=function(o,a){if(!(o==null||a==null))return o.intersection_e(a)};return this.bindWhole(s,e)}join(){return this.bind(id)}outerBind(e){return this.bindWhole(s=>s,e)}outerJoin(){return this.outerBind(id)}innerBind(e){return this.bindWhole((s,o)=>o,e)}innerJoin(){return this.innerBind(id)}trigJoin(e=!1){const s=this;return new Pattern(o=>s.discreteOnly().query(o).map(a=>a.value.late(e?a.whole.begin:a.whole.begin.cyclePos()).query(o).map(l=>new Hap(l.whole?l.whole.intersection(a.whole):void 0,l.part.intersection(a.part),l.value).setContext(a.combineContext(l))).filter(l=>l.part)).flat())}trigzeroJoin(){return this.trigJoin(!0)}squeezeJoin(){const e=this;function s(o){const a=e.discreteOnly().query(o);function l(c){const u=c.value._focusSpan(c.wholeOrPart()).query(o.setSpan(c.part));function f(d,g){let b;if(g.whole&&d.whole&&(b=g.whole.intersection(d.whole),!b))return;const E=g.part.intersection(d.part);if(!E)return;const B=g.combineContext(d);return new Hap(b,E,g.value,B)}return u.map(d=>f(c,d))}return flatten(a.map(l)).filter(c=>c)}return new Pattern(s)}squeezeBind(e){return this.fmap(e).squeezeJoin()}queryArc(e,s){try{return this.query(new State(new TimeSpan(e,s)))}catch(o){return logger(`[query]: ${o.message}`,"error"),[]}}splitQueries(){const e=this,s=o=>flatten(o.span.spanCycles.map(a=>e.query(o.setSpan(a))));return new Pattern(s)}withQuerySpan(e){return new Pattern(s=>this.query(s.withSpan(e)))}withQuerySpanMaybe(e){const s=this;return new Pattern(o=>{const a=o.withSpan(e);return a.span?s.query(a):[]})}withQueryTime(e){return new Pattern(s=>this.query(s.withSpan(o=>o.withTime(e))))}withHapSpan(e){return new Pattern(s=>this.query(s).map(o=>o.withSpan(e)))}withHapTime(e){return this.withHapSpan(s=>s.withTime(e))}withHaps(e){return new Pattern(s=>e(this.query(s)))}withHap(e){return this.withHaps(s=>s.map(e))}setContext(e){return this.withHap(s=>s.setContext(e))}withContext(e){return this.withHap(s=>s.setContext(e(s.context)))}stripContext(){return this.withHap(e=>e.setContext({}))}withLocation(e,s){const o={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this.withContext(a=>{const l=(a.locations||[]).concat([o]);return{...a,locations:l}})}withMiniLocation(e,s){const o={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this.withContext(a=>{let l=a.locations||[];return l=l.map(({start:c,end:u})=>{const f=c.line===1?o.start.column:0;return{start:{...c,line:c.line-1+(o.start.line-1)+1,column:c.column-1+f},end:{...u,line:u.line-1+(o.start.line-1)+1,column:u.column-1+f}}}),{...a,locations:l}})}filterHaps(e){return new Pattern(s=>this.query(s).filter(e))}filterValues(e){return new Pattern(s=>this.query(s).filter(o=>e(o.value)))}removeUndefineds(){return this.filterValues(e=>e!=null)}onsetsOnly(){return this.filterHaps(e=>e.hasOnset())}discreteOnly(){return this.filterHaps(e=>e.whole)}defragmentHaps(){return this.discreteOnly().withHaps(e=>{const s=[];for(var o=0;oe.value)}get showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}sortHapsByPart(){return this.withHaps(e=>e.sort((s,o)=>s.part.begin.sub(o.part.begin).or(s.part.end.sub(o.part.end)).or(s.whole.begin.sub(o.whole.begin).or(s.whole.end.sub(o.whole.end)))))}asNumber(){return this.fmap(parseNumeral)}_opIn(e,s){return this.fmap(s).appLeft(reify(e))}_opOut(e,s){return this.fmap(s).appRight(reify(e))}_opMix(e,s){return this.fmap(s).appBoth(reify(e))}_opSqueeze(e,s){const o=reify(e);return this.fmap(a=>o.fmap(l=>s(a)(l))).squeezeJoin()}_opSqueezeOut(e,s){const o=this;return reify(e).fmap(a=>o.fmap(l=>s(l)(a))).squeezeJoin()}_opTrig(e,s){return reify(e).fmap(o=>this.fmap(a=>s(a)(o))).trigJoin()}_opTrigzero(e,s){return reify(e).fmap(o=>this.fmap(a=>s(a)(o))).trigzeroJoin()}layer(...e){return stack(...e.map(s=>s(this)))}superimpose(...e){return this.stack(...e.map(s=>s(this)))}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}onTrigger(e,s=!0){return this.withHap(o=>o.setContext({...o.context,onTrigger:(...a)=>{!s&&o.context.onTrigger&&o.context.onTrigger(...a),e(...a)},dominantTrigger:s}))}log(e=(o,a)=>`[hap] ${a.showWhole(!0)}`,s=(o,a)=>({hap:a})){return this.onTrigger((...o)=>{logger(e(...o),void 0,s(...o))},!1)}logValues(e=id){return this.log((s,o)=>e(o.value))}drawLine(){return console.log(drawLine(this)),this}}function groupHapsBy(n,e){let s=[];return e.forEach(o=>{const a=s.findIndex(([l])=>n(o,l));a===-1?s.push([o]):s[a].push(o)}),s}const congruent=(n,e)=>n.spanEquals(e);Pattern.prototype.collect=function(){return this.withHaps(n=>groupHapsBy(congruent,n).map(e=>new Hap(e[0].whole,e[0].part,e,{})))};Pattern.prototype.arpWith=function(n){return this.collect().fmap(e=>reify(n(e))).innerJoin().withHap(e=>new Hap(e.whole,e.part,e.value.value,e.combineContext(e.value)))};Pattern.prototype.arp=function(n){return this.arpWith(e=>n.fmap(s=>e[s%e.length]))};function _composeOp(n,e,s){function o(a){return a instanceof Object&&!(a instanceof Function)}return o(n)||o(e)?(o(n)||(n={value:n}),o(e)||(e={value:e}),unionWithObj(n,e,s)):s(n,e)}(function(){const n={set:[(s,o)=>o],keep:[s=>s],keepif:[(s,o)=>o?s:void 0],add:[numeralArgs((s,o)=>s+o)],sub:[numeralArgs((s,o)=>s-o)],mul:[numeralArgs((s,o)=>s*o)],div:[numeralArgs((s,o)=>s/o)],mod:[numeralArgs(_mod)],pow:[numeralArgs(Math.pow)],band:[numeralArgs((s,o)=>s&o)],bor:[numeralArgs((s,o)=>s|o)],bxor:[numeralArgs((s,o)=>s^o)],blshift:[numeralArgs((s,o)=>s<s>>o)],lt:[(s,o)=>ss>o],lte:[(s,o)=>s<=o],gte:[(s,o)=>s>=o],eq:[(s,o)=>s==o],eqt:[(s,o)=>s===o],ne:[(s,o)=>s!=o],net:[(s,o)=>s!==o],and:[(s,o)=>s&&o],or:[(s,o)=>s||o],func:[(s,o)=>o(s)]},e=["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"];for(const[s,[o,a]]of Object.entries(n)){Pattern.prototype["_"+s]=function(l){return this.fmap(c=>o(c,l))},Object.defineProperty(Pattern.prototype,s,{get:function(){const l=this,c=(...u)=>l[s].in(...u);for(const u of e)c[u.toLowerCase()]=function(...f){var d=l;f=sequence(f),a&&(d=a(d),f=a(f));var g;return s==="keepif"?(g=d["_op"+u](f,b=>E=>o(b,E)),g=g.removeUndefineds()):g=d["_op"+u](f,b=>E=>_composeOp(b,E,o)),g};return c.squeezein=c.squeeze,c}});for(const l of e)Pattern.prototype[l.toLowerCase()]=function(...c){return this.set[l.toLowerCase()](c)}}Pattern.prototype.struct=function(...s){return this.keepif.out(...s)},Pattern.prototype.structAll=function(...s){return this.keep.out(...s)},Pattern.prototype.mask=function(...s){return this.keepif.in(...s)},Pattern.prototype.maskAll=function(...s){return this.keep.in(...s)},Pattern.prototype.reset=function(...s){return this.keepif.trig(...s)},Pattern.prototype.resetAll=function(...s){return this.keep.trig(...s)},Pattern.prototype.restart=function(...s){return this.keepif.trigzero(...s)},Pattern.prototype.restartAll=function(...s){return this.keep.trigzero(...s)}})();const polyrhythm=stack,pr=stack,pm=polymeter;Pattern.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat,sequence,seq,polymeter,pm,polyrhythm,pr};const silence=new Pattern(()=>[]);function pure(n){function e(s){return s.span.spanCycles.map(o=>new Hap(fraction(o.begin).wholeCycle(),o,n))}return new Pattern(e)}function isPattern(n){return n instanceof Pattern||(n==null?void 0:n._Pattern)}function reify(n){return isPattern(n)?n:stringParser&&typeof n=="string"?stringParser(n):pure(n)}function stack(...n){n=n.map(s=>Array.isArray(s)?sequence(...s):reify(s));const e=s=>flatten(n.map(o=>o.query(s)));return new Pattern(e)}function slowcat(...n){n=n.map(s=>Array.isArray(s)?sequence(...s):reify(s));const e=function(s){const o=s.span,a=_mod(o.begin.sam(),n.length),l=n[a];if(!l)return[];const c=o.begin.floor().sub(o.begin.div(n.length).floor());return l.withHapTime(u=>u.add(c)).query(s.setSpan(o.withTime(u=>u.sub(c))))};return new Pattern(e).splitQueries()}function slowcatPrime(...n){n=n.map(reify);const e=function(s){var a;const o=Math.floor(s.span.begin)%n.length;return((a=n[o])==null?void 0:a.query(s))||[]};return new Pattern(e).splitQueries()}function cat(...n){return slowcat(...n)}function timeCat(...n){const e=n.map(a=>a[0]).reduce((a,l)=>a.add(l),fraction(0));let s=fraction(0);const o=[];for(const[a,l]of n){const c=s.add(a);o.push(reify(l)._compress(s.div(e),c.div(e))),s=c}return stack(...o)}function arrange(...n){const e=n.reduce((s,[o])=>s+o,0);return n=n.map(([s,o])=>[s,o.fast(s)]),timeCat(...n).slow(e)}function fastcat(...n){return slowcat(...n)._fast(n.length)}function sequence(...n){return fastcat(...n)}function seq(...n){return fastcat(...n)}function _sequenceCount(n){return Array.isArray(n)?n.length==0?[silence,0]:n.length==1?_sequenceCount(n[0]):[fastcat(...n.map(e=>_sequenceCount(e)[0])),n.length]:[reify(n),1]}function polymeterSteps(n,...e){const s=e.map(a=>_sequenceCount(a));if(s.length==0)return silence;n==0&&(n=s[0][1]);const o=[];for(const a of s)a[1]!=0&&(n==a[1]?o.push(a[0]):o.push(a[0]._fast(fraction(n).div(fraction(a[1])))));return stack(...o)}function polymeter(...n){return polymeterSteps(0,...n)}const mask=curry((n,e)=>reify(e).mask(n)),struct=curry((n,e)=>reify(e).struct(n)),superimpose=curry((n,e)=>reify(e).superimpose(...n)),set=curry((n,e)=>reify(e).set(n)),keep=curry((n,e)=>reify(e).keep(n)),keepif=curry((n,e)=>reify(e).keepif(n)),add=curry((n,e)=>reify(e).add(n)),sub=curry((n,e)=>reify(e).sub(n)),mul=curry((n,e)=>reify(e).mul(n)),div=curry((n,e)=>reify(e).div(n)),mod=curry((n,e)=>reify(e).mod(n)),pow=curry((n,e)=>reify(e).pow(n)),band=curry((n,e)=>reify(e).band(n)),bor=curry((n,e)=>reify(e).bor(n)),bxor=curry((n,e)=>reify(e).bxor(n)),blshift=curry((n,e)=>reify(e).blshift(n)),brshift=curry((n,e)=>reify(e).brshift(n)),lt=curry((n,e)=>reify(e).lt(n)),gt=curry((n,e)=>reify(e).gt(n)),lte=curry((n,e)=>reify(e).lte(n)),gte=curry((n,e)=>reify(e).gte(n)),eq=curry((n,e)=>reify(e).eq(n)),eqt=curry((n,e)=>reify(e).eqt(n)),ne$1=curry((n,e)=>reify(e).ne(n)),net=curry((n,e)=>reify(e).net(n)),and=curry((n,e)=>reify(e).and(n)),or=curry((n,e)=>reify(e).or(n)),func=curry((n,e)=>reify(e).func(n));function register(n,e,s=!0){if(Array.isArray(n)){const l={};for(const c of n)l[c]=register(c,e,s);return l}const o=e.length;var a;return s?a=function(...l){l=l.map(reify);const c=l[l.length-1];if(o===1)return e(c);const[u,...f]=l.slice(0,-1);let d=(...g)=>(Array(o-1).fill().map((b,E)=>g[E]??void 0),e(...g,c));return d=curry(d,null,o-1),f.reduce((g,b)=>g.appLeft(b),u.fmap(d)).innerJoin()}:a=function(...l){return l=l.map(reify),e(...l)},Pattern.prototype[n]=function(...l){if(o===2&&l.length!==1)l=[sequence(...l)];else if(o!==l.length+1)throw new Error(`.${n}() expects ${o-1} inputs but got ${l.length}.`);return l=l.map(reify),a(...l,this)},o>1&&(Pattern.prototype["_"+n]=function(...l){return e(...l,this)}),curry(a,null,o)}const round=register("round",function(n){return n.asNumber().fmap(e=>Math.round(e))}),floor=register("floor",function(n){return n.asNumber().fmap(e=>Math.floor(e))}),ceil=register("ceil",function(n){return n.asNumber().fmap(e=>Math.ceil(e))}),toBipolar=register("toBipolar",function(n){return n.fmap(e=>e*2-1)}),fromBipolar=register("fromBipolar",function(n){return n.fmap(e=>(e+1)/2)}),range=register("range",function(n,e,s){return s.mul(e-n).add(n)}),rangex=register("rangex",function(n,e,s){return s._range(Math.log(n),Math.log(e)).fmap(Math.exp)}),range2=register("range2",function(n,e,s){return s.fromBipolar()._range(n,e)}),ratio=register("ratio",n=>n.fmap(e=>Array.isArray(e)?e.slice(1).reduce((s,o)=>s/o,e[0]):e)),compress=register("compress",function(n,e,s){return n=fraction(n),e=fraction(e),n.gt(e)||n.gt(1)||e.gt(1)||n.lt(0)||e.lt(0)?silence:s._fastGap(fraction(1).div(e.sub(n)))._late(n)}),{compressSpan,compressspan}=register(["compressSpan","compressspan"],function(n,e){return e._compress(n.begin,n.end)}),{fastGap,fastgap}=register(["fastGap","fastgap"],function(n,e){const s=function(a){const l=a.begin.sam(),c=a.begin.sub(l).mul(n).min(1),u=a.end.sub(l).mul(n).min(1);if(!(c>=1))return new TimeSpan(l.add(c),l.add(u))},o=function(a){const l=a.part.begin,c=a.part.end,u=l.sam(),f=l.sub(u).div(n).min(1),d=c.sub(u).div(n).min(1),g=new TimeSpan(u.add(f),u.add(d)),b=a.whole?new TimeSpan(g.begin.sub(l.sub(a.whole.begin).div(n)),g.end.add(a.whole.end.sub(c).div(n))):void 0;return new Hap(b,g,a.value,a.context)};return e.withQuerySpanMaybe(s).withHap(o).splitQueries()}),focus=register("focus",function(n,e,s){return n=fraction(n),e=fraction(e),s._fast(fraction(1).div(e.sub(n))).late(n.cyclePos())}),{focusSpan,focusspan}=register(["focusSpan","focusspan"],function(n,e){return e._focus(n.begin,n.end)}),ply=register("ply",function(n,e){return e.fmap(s=>pure(s)._fast(n)).squeezeJoin()}),{fast,density}=register(["fast","density"],function(n,e){return n===0?silence:(n=fraction(n),e.withQueryTime(s=>s.mul(n)).withHapTime(s=>s.div(n)))}),hurry=register("hurry",function(n,e){return e._fast(n).mul(pure({speed:n}))}),{slow,sparsity}=register(["slow","sparsity"],function(n,e){return n===0?silence:e._fast(fraction(1).div(n))}),inside=register("inside",function(n,e,s){return e(s._slow(n))._fast(n)}),outside=register("outside",function(n,e,s){return e(s._fast(n))._slow(n)}),lastOf=register("lastOf",function(n,e,s){const o=Array(n-1).fill(s);return o.push(e(s)),slowcatPrime(...o)}),{firstOf,every}=register(["firstOf","every"],function(n,e,s){const o=Array(n-1).fill(s);return o.unshift(e(s)),slowcatPrime(...o)}),apply=register("apply",function(n,e){return n(e)}),cpm=register("cpm",function(n,e){return e._fast(n/60)}),early=register("early",function(n,e){return n=fraction(n),e.withQueryTime(s=>s.add(n)).withHapTime(s=>s.sub(n))}),late=register("late",function(n,e){return n=fraction(n),e._early(fraction(0).sub(n))}),zoom=register("zoom",function(n,e,s){e=fraction(e),n=fraction(n);const o=e.sub(n);return s.withQuerySpan(a=>a.withCycle(l=>l.mul(o).add(n))).withHapSpan(a=>a.withCycle(l=>l.sub(n).div(o))).splitQueries()}),{zoomArc,zoomarc}=register(["zoomArc","zoomarc"],function(n,e){return e.zoom(n.begin,n.end)}),linger=register("linger",function(n,e){return n==0?silence:n<0?e._zoom(n.add(1),1)._slow(n):e._zoom(0,n)._slow(n)}),segment=register("segment",function(n,e){return e.struct(pure(!0)._fast(n))}),{invert,inv}=register(["invert","inv"],function(n){return n.fmap(e=>!e)}),when=register("when",function(n,e,s){return n?e(s):s}),off=register("off",function(n,e,s){return stack(s,e(s.late(n)))}),brak=register("brak",function(n){return n.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}),rev=register("rev",function(n){const e=function(s){const o=s.span,a=o.begin.sam(),l=o.begin.nextSam(),c=function(u){const f=u.withTime(g=>a.add(l.sub(g))),d=f.begin;return f.begin=f.end,f.end=d,f};return n.query(s.setSpan(c(o))).map(u=>u.withSpan(c))};return new Pattern(e).splitQueries()}),pressBy=register("pressBy",function(n,e){return e.fmap(s=>pure(s).compress(n,1)).squeezeJoin()}),press=register("press",function(n){return n._pressBy(.5)}),hush=register("hush",function(n){return silence}),palindrome=register("palindrome",function(n){return n.every(2,rev)}),{juxBy,juxby}=register(["juxBy","juxby"],function(n,e,s){n/=2;const o=function(c,u,f){return u in c?c[u]:f},a=s.withValue(c=>Object.assign({},c,{pan:o(c,"pan",.5)-n})),l=s.withValue(c=>Object.assign({},c,{pan:o(c,"pan",.5)+n}));return stack(a,e(l))}),jux=register("jux",function(n,e){return e._juxBy(1,n,e)}),{echoWith,echowith,stutWith,stutwith}=register(["echoWith","echowith","stutWith","stutwith"],function(n,e,s,o){return stack(...listRange(0,n-1).map(a=>s(o.late(fraction(e).mul(a)),a)))}),echo=register("echo",function(n,e,s,o){return o._echoWith(n,e,(a,l)=>a.velocity(Math.pow(s,l)))}),stut=register("stut",function(n,e,s,o){return o._echoWith(n,s,(a,l)=>a.velocity(Math.pow(e,l)))}),_iter=function(n,e,s=!1){return n=fraction(n),slowcat(...listRange(0,n.sub(1)).map(o=>s?e.late(fraction(o).div(n)):e.early(fraction(o).div(n))))},iter=register("iter",function(n,e){return _iter(n,e,!1)}),{iterBack,iterback}=register(["iterBack","iterback"],function(n,e){return _iter(n,e,!0)}),_chunk=function(n,e,s,o=!1){const a=Array(n-1).fill(!1);a.unshift(!0);const l=_iter(n,sequence(...a),o);return s.when(l,e)},chunk=register("chunk",function(n,e,s){return _chunk(n,e,s,!1)}),{chunkBack,chunkback}=register(["chunkBack","chunkback"],function(n,e,s){return _chunk(n,e,s,!0)}),bypass=register("bypass",function(n,e){return n=!!parseInt(n),n?silence:e}),ribbon=register("ribbon",(n,e,s)=>s.early(n).restart(pure(1).slow(e))),duration=register("duration",function(n,e){return e.withHapSpan(s=>new TimeSpan(s.begin,s.begin.add(n)))}),{color,colour}=register(["color","colour"],function(n,e){return e.withContext(s=>({...s,color:n}))}),velocity=register("velocity",function(n,e){return e.withContext(s=>({...s,velocity:(s.velocity||1)*n}))}),legato=register("legato",function(n,e){return n=fraction(n),e.withHapSpan(s=>new TimeSpan(s.begin,s.begin.add(s.end.sub(s.begin).mul(n))))}),chop=register("chop",function(n,e){const s=Array.from({length:n},(a,l)=>l).map(a=>({begin:a/n,end:(a+1)/n})),o=function(a){return sequence(s.map(l=>Object.assign({},a,l)))};return e.squeezeBind(o)}),striate=register("striate",function(n,e){const s=Array.from({length:n},(a,l)=>l).map(a=>({begin:a/n,end:(a+1)/n})),o=slowcat(...s);return e.set(o)._fast(n)}),_loopAt=function(n,e,s=1){return e.speed(1/n*s).unit("c").slow(n)},slice=register("slice",function(n,e,s){return n.innerBind(o=>e.outerBind(a=>s.outerBind(l=>{l=l instanceof Object?l:{s:l};const c={begin:a/o,end:(a+1)/o,_slices:o};return pure({...c,...l})})))},!1),splice=register("splice",function(n,e,s){return slice(n,e,s).withHap(function(o){return o.withValue(a=>({speed:1/a._slices/o.whole.duration*(a.speed||1),unit:"c",...a}))})},!1),{loopAt,loopat}=register(["loopAt","loopat"],function(n,e){return _loopAt(n,e,1)}),{loopAtCps,loopatcps}=register(["loopAtCps","loopatcps"],function(n,e,s){return _loopAt(n,s,e)}),controls={},generic_params=[[["s","n","gain"],"sound"],["source","src"],["n"],[["note","n"]],["accelerate"],["gain"],["amp"],["attack","att"],["bank"],["decay"],["sustain","sus"],["release","rel"],["hold"],[["bandf","bandq"],"bpf","bp"],["bandq","bpq"],["begin"],["end"],["loop"],["crush"],["coarse"],["channel"],["cut"],[["cutoff","resonance"],"ctf","lpf","lp"],[["hcutoff","hresonance"],"hpf","hp"],["hresonance","hpq"],["resonance","lpq"],["djf"],[["delay","delaytime","delayfeedback"]],["delayfeedback","delayfb","dfb"],["delaytime","delayt","dt"],["lock"],["detune","det"],["dry"],["fadeTime","fadeOutTime"],["fadeInTime"],["freq"],["gate","gat"],["leslie"],["lrate"],["lsize"],["degree"],["mtranspose"],["ctranspose"],["harmonic"],["stepsPerOctave"],["octaveR"],["nudge"],["octave"],["offset"],["orbit"],["overgain"],["overshape"],["pan"],["panspan"],["pansplay"],["panwidth"],["panorient"],["rate"],["slide"],["semitone"],["voice"],[["room","size"]],["size","sz","roomsize"],["shape"],["speed"],["unit"],["squiz"],["vowel"],["waveloss"],["dur"],["expression"],["sustainpedal"],["tremolodepth","tremdp"],["tremolorate","tremr"],["phaserdepth","phasdp"],["phaserrate","phasr"],["fshift"],["fshiftnote"],["fshiftphase"],["triode"],["krush"],["kcutoff"],["octer"],["octersub"],["octersubsub"],["ring"],["ringf"],["ringdf"],["distort"],["freeze"],["xsdelay"],["tsdelay"],["real"],["imag"],["enhance"],["partials"],["comb"],["smear"],["scram"],["binshift"],["hbrick"],["lbrick"],["midichan"],["control"],["ccn"],["ccv"],["polyTouch"],["midibend"],["miditouch"],["ctlNum"],["frameRate"],["frames"],["hours"],["midicmd"],["minutes"],["progNum"],["seconds"],["songPtr"],["uid"],["val"],["cps"],["clip"]];controls.createParam=function(n){const e=Array.isArray(n)?n[0]:n;var s;Array.isArray(n)?s=l=>{if(Array.isArray(l)){const c={};return l.forEach((u,f)=>{f({[e]:l});const o=(...l)=>sequence(...l).withValue(s),a=function(...l){return l.length?this.set(o(...l)):this.fmap(s)};return Pattern.prototype[e]=a,o};generic_params.forEach(([n,...e])=>{const s=Array.isArray(n)?n[0]:n;controls[s]=controls.createParam(n),e.forEach(o=>{controls[o]=controls[s],Pattern.prototype[o]=Pattern.prototype[s]})});controls.createParams=(...n)=>n.reduce((e,s)=>Object.assign(e,{[s]:controls.createParam(s)}),{});controls.adsr=register("adsr",(n,e)=>{n=Array.isArray(n)?n:[n];const[s,o,a,l]=n;return e.set({attack:s,decay:o,sustain:a,release:l})});controls.ds=register("ds",(n,e)=>{n=Array.isArray(n)?n:[n];const[s,o]=n;return e.set({decay:s,sustain:o})});const left=function(n,e){const[s,o]=n,[a,l]=e,[c,u]=splitAt(o,a);return[[o,s-o],[zipWith((f,d)=>f.concat(d),c,l),u]]},right=function(n,e){const[s,o]=n,[a,l]=e,[c,u]=splitAt(s,l);return[[s,o-s],[zipWith((f,d)=>f.concat(d),a,c),u]]},_bjork=function(n,e){const[s,o]=n;return Math.min(s,o)<=1?[n,e]:_bjork(...s>o?left(n,e):right(n,e))},bjork=function(n,e){const s=e-n,o=Array(n).fill([1]),a=Array(s).fill([0]),l=_bjork([n,s],[o,a]);return flatten(l[1][0]).concat(flatten(l[1][1]))},_euclidRot=function(n,e,s){const o=bjork(n,e);return s?rotate(o,-s):o},euclid=register("euclid",function(n,e,s){return s.struct(_euclidRot(n,e,0))}),{euclidrot,euclidRot}=register(["euclidrot","euclidRot"],function(n,e,s,o){return o.struct(_euclidRot(n,e,s))}),_euclidLegato=function(n,e,s,o){if(n<1)return silence;const a=_euclidRot(n,e,s).join("").split("1").slice(1).map(l=>[l.length+1,!0]);return o.struct(timeCat(...a))},euclidLegato=register(["euclidLegato"],function(n,e,s){return _euclidLegato(n,e,0,s)}),euclidLegatoRot=register(["euclidLegatoRot"],function(n,e,s,o){return _euclidLegato(n,e,s,o)});function steady(n){return new Pattern(e=>[new Hap(void 0,e.span,n)])}const signal=n=>{const e=s=>[new Hap(void 0,s.span,n(s.span.midpoint()))];return new Pattern(e)},isaw=signal(n=>1-n%1),isaw2=isaw.toBipolar(),saw=signal(n=>n%1),saw2=saw.toBipolar(),sine2=signal(n=>Math.sin(Math.PI*2*n)),sine=sine2.fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(n=>Math.floor(n*2%2)),square2=square.toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time$1=signal(id),xorwise=n=>{const e=n<<13^n,s=e>>17^e;return s<<5^s},_frac=n=>n-Math.trunc(n),timeToIntSeed=n=>xorwise(Math.trunc(_frac(n/300)*536870912)),intSeedToRand=n=>n%536870912/536870912,timeToRand=n=>Math.abs(intSeedToRand(timeToIntSeed(n))),run=n=>saw.range(0,n).floor().segment(n),rand=signal(timeToRand),rand2=rand.toBipolar(),_brandBy=n=>rand.fmap(e=>ereify(n).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=n=>rand.fmap(e=>Math.trunc(e*n)),irand=n=>reify(n).fmap(_irand).innerJoin(),__chooseWith=(n,e)=>(e=e.map(reify),e.length==0?silence:n.range(0,e.length).fmap(s=>e[Math.floor(s)])),chooseWith=(n,e)=>__chooseWith(n,e).outerJoin(),chooseInWith=(n,e)=>__chooseWith(n,e).innerJoin(),choose=(...n)=>chooseWith(rand,n);Pattern.prototype.choose=function(...n){return chooseWith(this,n)};Pattern.prototype.choose2=function(...n){return chooseWith(this.fromBipolar(),n)};const chooseCycles=(...n)=>chooseInWith(rand.segment(1),n),randcat=chooseCycles,_wchooseWith=function(n,...e){const s=e.map(u=>reify(u[0])),o=[];let a=0;for(const u of e)a+=u[1],o.push(a);const l=a,c=function(u){const f=u*l;return s[o.findIndex(d=>d>f,o)]};return n.fmap(c)},wchooseWith=(...n)=>_wchooseWith(...n).outerJoin(),wchoose=(...n)=>wchooseWith(rand,...n),wchooseCycles=(...n)=>_wchooseWith(rand,...n).innerJoin(),perlinWith=n=>{const e=n.fmap(Math.floor),s=n.fmap(l=>Math.floor(l)+1),o=l=>6*l**5-15*l**4+10*l**3,a=l=>c=>u=>c+o(l)*(u-c);return n.sub(e).fmap(a).appBoth(e.fmap(timeToRand)).appBoth(s.fmap(timeToRand))},perlin=perlinWith(time$1.fmap(n=>Number(n))),degradeByWith=register("degradeByWith",(n,e,s)=>s.fmap(o=>a=>o).appLeft(n.filterValues(o=>o>e))),degradeBy=register("degradeBy",function(n,e){return e._degradeByWith(rand,n)}),degrade=register("degrade",n=>n._degradeBy(.5)),undegradeBy=register("undegradeBy",function(n,e){return e._degradeByWith(rand.fmap(s=>1-s),n)}),undegrade=register("undegrade",n=>n._undegradeBy(.5)),sometimesBy=register("sometimesBy",function(n,e,s){return reify(n).fmap(o=>stack(s._degradeBy(o),e(s._undegradeBy(1-o)))).innerJoin()}),sometimes=register("sometimes",function(n,e){return e._sometimesBy(.5,n)}),someCyclesBy=register("someCyclesBy",function(n,e,s){return reify(n).fmap(o=>stack(s._degradeByWith(rand._segment(1),o),e(s._degradeByWith(rand.fmap(a=>1-a)._segment(1),1-o)))).innerJoin()}),someCycles=register("someCycles",function(n,e){return e._someCyclesBy(.5,n)}),often=register("often",function(n,e){return e.sometimesBy(.75,n)}),rarely=register("rarely",function(n,e){return e.sometimesBy(.25,n)}),almostNever=register("almostNever",function(n,e){return e.sometimesBy(.1,n)}),almostAlways=register("almostAlways",function(n,e){return e.sometimesBy(.9,n)}),never=register("never",function(n,e){return e}),always=register("always",function(n,e){return n(e)});let synth;try{synth=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth==null?void 0:synth.getVoices();function triggerSpeech(n,e,s){synth.cancel();const o=new SpeechSynthesisUtterance(n);o.lang=e,allVoices=synth.getVoices();const a=allVoices.filter(l=>l.lang.includes(e));typeof s=="number"?o.voice=a[s%a.length]:typeof s=="string"&&(o.voice=a.find(l=>l.name===l)),speechSynthesis.speak(o)}const speak=register("speak",function(n,e,s){return s.onTrigger((o,a)=>{triggerSpeech(a.value,n,e)})}),evalScope=async(...n)=>{const e=await Promise.allSettled(n),s=e.filter(o=>o.status==="fulfilled").map(o=>o.value);e.forEach((o,a)=>{o.status==="rejected"&&console.warn(`evalScope: module with index ${a} could not be loaded:`,o.reason)}),s.forEach(o=>{Object.entries(o).forEach(([a,l])=>{globalThis[a]=l})})};function safeEval(n,e={}){const{wrapExpression:s=!0,wrapAsync:o=!0}=e;s&&(n=`{${n}}`),o&&(n=`(async ()=>${n})()`);const a=`"use strict";return (${n})`;return Function(a)()}const evaluate=async(n,e)=>{e&&(n=e(n));let s=await safeEval(n,{wrapExpression:!!e});if(!isPattern(s)){console.log("evaluated",s);const o=`got "${typeof s}" instead of pattern`;throw new Error(o+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}};function createClock(n,e,s=.05,o=.1,a=.1){let l=0,c=0,u=10**4,f=.01;const d=V=>s=V(s);a=a||o/2;const g=()=>{const V=n(),D=V+o+a;for(c===0&&(c=V+f);c=V&&e(c,s,l),c{B(),g(),b=setInterval(g,o*1e3)},B=()=>b!==void 0&&clearInterval(b);return{setDuration:d,start:E,stop:()=>{l=0,c=0,B()},pause:()=>B(),duration:s,interval:o,getPhase:()=>c,minLatency:f}}class Cyclist{constructor({interval:e,onTrigger:s,onToggle:o,onError:a,getTime:l,latency:c=.1}){this.started=!1,this.cps=1,this.lastTick=0,this.lastBegin=0,this.lastEnd=0,this.getTime=l,this.onToggle=o,this.latency=c;const u=f=>Math.round(f*1e3)/1e3;this.clock=createClock(l,(f,d,g)=>{g===0&&(this.origin=f);try{const b=l(),E=this.lastEnd;this.lastBegin=E;const B=u(E+d*this.cps);this.lastEnd=B;const V=this.pattern.queryArc(E,B),D=f-b;this.lastTick=b+D,V.forEach(X=>{if(X.part.begin.equals(X.whole.begin)){const q=(X.whole.begin-E)/this.cps+D+c,z=X.duration/this.cps;s==null||s(X,q,z,this.cps)}})}catch(b){logger(`[cyclist] error: ${b.message}`),a==null||a(b)}},e)}now(){const e=this.getTime()-this.lastTick-this.clock.duration;return this.lastBegin+e*this.cps}setStarted(e){var s;this.started=e,(s=this.onToggle)==null||s.call(this,e)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");logger("[cyclist] start"),this.clock.start(),this.setStarted(!0)}pause(){logger("[cyclist] pause"),this.clock.pause(),this.setStarted(!1)}stop(){logger("[cyclist] stop"),this.clock.stop(),this.lastEnd=0,this.setStarted(!1)}setPattern(e,s=!1){this.pattern=e,s&&!this.started&&this.start()}setCps(e=1){this.cps=e}log(e,s,o){const a=o.filter(l=>l.hasOnset());console.log(`${e.toFixed(4)} - ${s.toFixed(4)} ${Array(a.length).fill("I").join("")}`)}}let time;function getTime(){if(!time)throw new Error("no time set! use setTime to define a time source");return time()}function setTime(n){time=n}function repl({interval:n,defaultOutput:e,onSchedulerError:s,onEvalError:o,beforeEval:a,afterEval:l,getTime:c,transpiler:u,onToggle:f,editPattern:d}){const g=new Cyclist({interval:n,onTrigger:getTrigger({defaultOutput:e,getTime:c}),onError:s,getTime:c,onToggle:f}),b=(j,ue=!0)=>{j=(d==null?void 0:d(j))||j,g.setPattern(j,ue)};setTime(()=>g.now());const E=async(j,ue=!0)=>{if(!j)throw new Error("no code to evaluate");try{await(a==null?void 0:a({code:j}));let{pattern:fe}=await evaluate(j,u);return logger("[eval] code updated"),b(fe,ue),l==null||l({code:j,pattern:fe}),fe}catch(fe){logger(`[eval] error: ${fe.message}`,"error"),o==null||o(fe)}},B=()=>g.stop(),V=()=>g.start(),D=()=>g.pause(),X=j=>g.setCps(j),q=j=>g.setCps(j/60),z=register("loopAt",(j,ue)=>ue.loopAtCps(j,g.cps)),oe=register("fit",j=>j.withHap(ue=>ue.withValue(fe=>({...fe,speed:g.cps/ue.whole.duration,unit:"c"}))));return evalScope({loopAt:z,fit:oe,setCps:X,setcps:X,setCpm:q,setcpm:q}),{scheduler:g,evaluate:E,start:V,stop:B,pause:D,setCps:X,setPattern:b}}const getTrigger=({getTime:n,defaultOutput:e})=>async(s,o,a,l)=>{try{(!s.context.onTrigger||!s.context.dominantTrigger)&&await e(s,o,a,l),s.context.onTrigger&&await s.context.onTrigger(n()+o,s,n(),l)}catch(c){logger(`[cyclist] error: ${c.message}`,"error")}},getDrawContext=(n="test-canvas")=>{let e=document.querySelector("#"+n);return e||(e=document.createElement("canvas"),e.id=n,e.width=window.innerWidth,e.height=window.innerHeight,e.style="pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0",document.body.prepend(e)),e.getContext("2d")};Pattern.prototype.draw=function(n,{from:e,to:s,onQuery:o}){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const a=getDrawContext();let l,c=[];const u=f=>{const d=getTime();if(e!==void 0&&s!==void 0){const g=Math.floor(d);if(l!==g){l=g;const b=g+e,E=g+s;setTimeout(()=>{c=this.query(new State(new TimeSpan(b,E))).filter(Boolean).filter(B=>B.part.begin.equals(B.whole.begin)),o==null||o(c)},0)}}n(a,c,d,f),window.strudelAnimation=requestAnimationFrame(u)};return requestAnimationFrame(u),this};const cleanupDraw=(n=!0)=>{const e=getDrawContext();n&&e.clearRect(0,0,window.innerWidth,window.innerHeight),window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation),window.strudelScheduler&&clearInterval(window.strudelScheduler)};Pattern.prototype.onPaint=function(n){return this.context={onPaint:n},this};class Framer{constructor(e,s){this.onFrame=e,this.onError=s}start(){const e=this;let s=requestAnimationFrame(function o(a){try{e.onFrame(a)}catch(l){e.onError(l)}s=requestAnimationFrame(o)});e.cancel=()=>{cancelAnimationFrame(s)}}stop(){this.cancel&&this.cancel()}}class Drawer{constructor(e,s){let[o,a]=s;o=Math.abs(o),this.visibleHaps=[],this.lastFrame=null,this.drawTime=s,this.framer=new Framer(()=>{if(!this.scheduler){console.warn("Drawer: no scheduler");return}const l=this.scheduler.now()+a;if(this.lastFrame===null){this.lastFrame=l;return}const c=this.scheduler.pattern.queryArc(Math.max(this.lastFrame,l-1/10),l);this.lastFrame=l,this.visibleHaps=(this.visibleHaps||[]).filter(f=>f.whole.end>=l-o-a).concat(c.filter(f=>f.hasOnset()));const u=l-a;e(this.visibleHaps,u,this)},l=>{console.warn("draw error",l)})}invalidate(e=this.scheduler){if(!e)return;this.scheduler=e;const s=e.now();let[o,a]=this.drawTime;const[l,c]=[Math.max(s,0),s+a+.1];this.visibleHaps=this.visibleHaps.filter(f=>f.whole.begin{let d;f=Math.round(f),d=this.slow(1e3).queryArc(f,f),o.fillStyle=clearColor,o.fillRect(0,0,a,l),d.forEach(g=>{let{x:b,y:E,w:B,h:V,s:D,r:X,angle:q=0,fill:z="darkseagreen"}=g.value;if(B*=a,V*=l,X!==void 0&&q!==void 0){const j=q*2*Math.PI,[ue,fe]=[(a-B)/2,(l-V)/2];b=ue+Math.cos(j)*X*ue,E=fe+Math.sin(j)*X*fe}else b*=a-B,E*=l-V;const oe={...g.value,x:b,y:E,w:B,h:V};o.fillStyle=z,D==="rect"?o.fillRect(b,E,B,V):D==="ellipse"&&(o.beginPath(),o.ellipse(b+B/2,E+V/2,B/2,V/2,0,0,2*Math.PI),o.fill()),n&&n(o,oe,g)}),window.frame=requestAnimationFrame(u)};return window.frame=requestAnimationFrame(u),silence};const{x:x$1,y,w:w$1,h,angle,r,fill,smear}=createParams("x","y","w","h","angle","r","fill","smear"),rescale=register("rescale",function(n,e){return e.mul(x$1(n).w(n).y(n).h(n))}),moveXY=register("moveXY",function(n,e,s){return s.add(x$1(n).y(e))}),zoomIn=register("zoomIn",function(n,e){const s=pure(1).sub(n).div(2);return e.rescale(n).move(s,s)}),scale=(n,e,s)=>n*(s-e)+e,getValue=n=>{let{value:e}=n;typeof n.value!="object"&&(e={value:e});let{note:s,n:o,freq:a,s:l}=e;return a?freqToMidi(a):(s=s??o,typeof s=="string"?noteToMidi(s):typeof s=="number"?s:l?"_"+l:e)};Pattern.prototype.pianoroll=function({cycles:n=4,playhead:e=.5,overscan:s=1,flipTime:o=0,flipValues:a=0,hideNegative:l=!1,inactive:c="#7491D2",active:u="#FFCA28",background:f="transparent",smear:d=0,playheadColor:g="white",minMidi:b=10,maxMidi:E=90,autorange:B=0,timeframe:V,fold:D=0,vertical:X=0,labels:q=0}={}){const z=getDrawContext(),oe=z.canvas.width,j=z.canvas.height;let ue=-n*e,fe=n*(1-e);V&&(console.warn("timeframe is deprecated! use from/to instead"),ue=0,fe=V);const xe=X?j:oe,Se=X?oe:j;let ge=X?[xe,0]:[0,xe];const Qe=fe-ue,Me=X?[0,Se]:[Se,0];let Ie=E-b+1,Ze=Se/Ie,De=[];return o&&ge.reverse(),a&&Me.reverse(),this.draw((Te,Ne,qe)=>{Te.fillStyle=f,Te.globalAlpha=1,d||(Te.clearRect(0,0,oe,j),Te.fillRect(0,0,oe,j));const Fe=$e=>(!l||$e.whole.begin>=0)&&$e.whole.begin<=qe+fe&&$e.endClipped>=qe+ue;Ne.filter(Fe).forEach($e=>{var dt,rt,kt;const ze=$e.whole.begin<=qe&&$e.endClipped>qe;Te.fillStyle=((dt=$e.context)==null?void 0:dt.color)||c,Te.strokeStyle=((rt=$e.context)==null?void 0:rt.color)||u,Te.globalAlpha=$e.context.velocity??((kt=$e.value)==null?void 0:kt.gain)??1;const je=scale(($e.whole.begin-(o?fe:ue))/Qe,...ge);let Je=scale($e.duration/Qe,0,xe);const it=getValue($e),Tt=scale(D?De.indexOf(it)/De.length:(Number(it)-b)/Ie,...Me);let yt=0;const Pe=scale(qe/Qe,...ge);let St;if(X?St=[Tt+1-(a?Ze:0),xe-Pe+je+yt+1-(o?0:Je),Ze-2,Je-2]:St=[je-Pe+yt+1-(o?Je:0),Tt+1-(a?0:Ze),Je-2,Ze-2],ze?Te.strokeRect(...St):Te.fillRect(...St),q){const Qt=$e.value.note??$e.value.s+($e.value.n?`:${$e.value.n}`:"");Te.font=`${Ze*.75}px monospace`,Te.strokeStyle="black",Te.fillStyle=ze?"white":"black",Te.textBaseline="top",Te.fillText(Qt,...St)}}),Te.globalAlpha=1;const Ee=scale(-ue/Qe,...ge);Te.strokeStyle=g,Te.beginPath(),X?(Te.moveTo(0,Ee),Te.lineTo(Se,Ee)):(Te.moveTo(Ee,0),Te.lineTo(Ee,Se)),Te.stroke()},{from:ue-s,to:fe+s,onQuery:Te=>{const{min:Ne,max:qe,values:Fe}=Te.reduce(({min:Ee,max:$e,values:ze},je)=>{const Je=getValue(je);return{min:Je$e?Je:$e,values:ze.includes(Je)?ze:[...ze,Je]}},{min:1/0,max:-1/0,values:[]});B&&(b=Ne,E=qe,Ie=E-b+1),De=Fe.sort((Ee,$e)=>String(Ee).localeCompare(String($e))),Ze=D?Se/De.length:Se/Ie}}),this};function pianoroll({time:n,haps:e,cycles:s=4,playhead:o=.5,flipTime:a=0,flipValues:l=0,hideNegative:c=!1,inactive:u="#7491D2",active:f="#FFCA28",background:d="transparent",smear:g=0,playheadColor:b="white",minMidi:E=10,maxMidi:B=90,autorange:V=0,timeframe:D,fold:X=0,vertical:q=0,labels:z=!1,ctx:oe}={}){const j=oe.canvas.width,ue=oe.canvas.height;let fe=-s*o,xe=s*(1-o);D&&(console.warn("timeframe is deprecated! use from/to instead"),fe=0,xe=D);const Se=q?ue:j,ge=q?j:ue;let Qe=q?[Se,0]:[0,Se];const Me=xe-fe,Ie=q?[0,ge]:[ge,0];let Ze=B-E+1,De=ge/Ze,Te=[];a&&Qe.reverse(),l&&Ie.reverse();const{min:Ne,max:qe,values:Fe}=e.reduce(({min:$e,max:ze,values:je},Je)=>{const it=getValue(Je);return{min:it<$e?it:$e,max:it>ze?it:ze,values:je.includes(it)?je:[...je,it]}},{min:1/0,max:-1/0,values:[]});V&&(E=Ne,B=qe,Ze=B-E+1),Te=Fe.sort(($e,ze)=>String($e).localeCompare(String(ze))),De=X?ge/Te.length:ge/Ze,oe.fillStyle=d,oe.globalAlpha=1,g||(oe.clearRect(0,0,j,ue),oe.fillRect(0,0,j,ue)),e.forEach($e=>{var rt,kt,Qt;const ze=$e.whole.begin<=n&&$e.whole.end>n,je=((rt=$e.value)==null?void 0:rt.color)||((kt=$e.context)==null?void 0:kt.color);oe.fillStyle=je||u,oe.strokeStyle=je||f,oe.globalAlpha=$e.context.velocity??((Qt=$e.value)==null?void 0:Qt.gain)??1;const Je=scale(($e.whole.begin-(a?xe:fe))/Me,...Qe);let it=scale($e.duration/Me,0,Se);const Tt=getValue($e),yt=scale(X?Te.indexOf(Tt)/Te.length:(Number(Tt)-E)/Ze,...Ie);let Pe=0;const St=scale(n/Me,...Qe);let dt;if(q?dt=[yt+1-(l?De:0),Se-St+Je+Pe+1-(a?0:it),De-2,it-2]:dt=[Je-St+Pe+1-(a?it:0),yt+1-(l?0:De),it-2,De-2],ze?oe.strokeRect(...dt):oe.fillRect(...dt),z){const Bt=$e.value.note??$e.value.s+($e.value.n?`:${$e.value.n}`:"");oe.font=`${De*.75}px monospace`,oe.strokeStyle="black",oe.fillStyle=ze?"white":"black",oe.textBaseline="top",oe.fillText(Bt,...dt)}}),oe.globalAlpha=1;const Ee=scale(-fe/Me,...Qe);return oe.strokeStyle=b,oe.beginPath(),q?(oe.moveTo(0,Ee),oe.lineTo(ge,Ee)):(oe.moveTo(Ee,0),oe.lineTo(Ee,ge)),oe.stroke(),this}function getDrawOptions(n,e={}){let[s,o]=n;s=Math.abs(s);const a=o+s,l=s/a;return{fold:1,...e,cycles:a,playhead:l}}Pattern.prototype.punchcard=function(n){return this.onPaint((e,s,o,a)=>pianoroll({ctx:e,time:s,haps:o,...getDrawOptions(a,n)}))};function drawPianoroll(n){const{drawTime:e,...s}=n;pianoroll({...getDrawOptions(e),...s})}function fromPolar(n,e,s,o){const a=(n-90)*Math.PI/180;return[s+Math.cos(a)*e,o+Math.sin(a)*e]}const xyOnSpiral=(n,e,s,o,a=0)=>fromPolar((n+a)*360,e*n,s,o);function spiralSegment(n){let{ctx:e,from:s=0,to:o=3,margin:a=50,cx:l=100,cy:c=100,rotate:u=0,thickness:f=a/2,color:d="#0000ff30",cap:g="round",stretch:b=1,fromOpacity:E=1,toOpacity:B=1}=n;s*=b,o*=b,u*=b,e.lineWidth=f,e.lineCap=g,e.strokeStyle=d,e.globalAlpha=E,e.beginPath();let[V,D]=xyOnSpiral(s,a,l,c,u);e.moveTo(V,D);const X=1/60;let q=s;for(;q<=o;){const[z,oe]=xyOnSpiral(q,a,l,c,u);e.globalAlpha=(q-s)/(o-s)*B,e.lineTo(z,oe),q+=X}e.stroke()}Pattern.prototype.spiral=function(n={}){const{stretch:e=1,size:s=80,thickness:o=s/2,cap:a="butt",inset:l=3,playheadColor:c="#ffffff90",playheadLength:u=.02,playheadThickness:f=o,padding:d=0,steady:g=1,inactiveColor:b="#ffffff20",colorizeInactive:E=0,fade:B=!0}=n;function V({ctx:D,time:X,haps:q,drawTime:z}){D.clearRect(0,0,D.canvas.clientWidth,D.canvas.clientHeight);const[oe,j]=[D.canvas.width/2,D.canvas.height/2],ue={margin:s/e,cx:oe,cy:j,stretch:e,cap:a,thickness:o},fe={...ue,thickness:f,from:l-u,to:l,color:c},[xe]=z,Se=g*X;q.forEach(ge=>{const Qe=ge.whole.begin<=X&&ge.endClipped>X,Me=ge.whole.begin-X+l,Ie=ge.endClipped-X+l-d,{color:Ze}=ge.context,De=B?1-Math.abs((ge.whole.begin-X)/xe):1;spiralSegment({ctx:D,...ue,from:Me,to:Ie,rotate:Se,color:E||Qe?Ze:b,fromOpacity:De,toOpacity:De})}),spiralSegment({ctx:D,...fe,rotate:Se})}return this.onPaint((D,X,q,z)=>V({ctx:D,time:X,haps:q,drawTime:z}))};function frame(n){window.strudelAnimation&&cancelAnimationFrame(window.strudelAnimation);const e=s=>{n(s,getTime()),window.strudelAnimation=requestAnimationFrame(e)};requestAnimationFrame(e)}const backgroundImage=function(n,e={}){const s=document.getElementById("code"),o="background-image:url("+n+");background-size:contain;";s.style=o;const{className:a}=s,l=(u,f)=>{({style:()=>s.style=o+";"+f,className:()=>s.className=f+" "+a})[u]()},c=Object.entries(e).filter(([u,f])=>typeof f=="function");Object.entries(e).filter(([u,f])=>typeof f=="string").forEach(([u,f])=>l(u,f)),c.length!==0&&frame((u,f)=>c.forEach(([d,g])=>{l(d,g(f))}))},cleanupUi=()=>{const n=document.getElementById("code");n&&(n.style="",n.className="grow flex text-gray-100 relative overflow-auto cursor-text pb-0")},gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(n=>n.text()).then(code=>eval(code));logger("🌀 @strudel.cycles/core loaded 🌀");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... +This might happen when you have multiple versions of strudel installed. +Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;const M=Object.freeze(Object.defineProperty({__proto__:null,Cyclist,Drawer,Fraction:fraction,Framer,Hap,Pattern,State,TimeSpan,__chooseWith,_brandBy,_irand,_mod,add,almostAlways,almostNever,always,and,angle,apply,arrange,backgroundImage,band,bjork,blshift,bor,brak,brand,brandBy,brshift,bxor,bypass,cat,ceil,choose,chooseCycles,chooseInWith,chooseWith,chop,chunk,chunkBack,chunkback,clamp,cleanupDraw,cleanupUi,color,colour,compose,compress,compressSpan,compressspan,constant,controls,cosine,cosine2,cpm,curry,degrade,degradeBy,degradeByWith,density,div,drawLine,drawPianoroll,duration,early,echo,echoWith,echowith,eq,eqt,euclid,euclidLegato,euclidLegatoRot,euclidRot,euclidrot,evalScope,evaluate,every,fast,fastGap,fastcat,fastgap,fill,firstOf,flatten,floor,focus,focusSpan,focusspan,fractionalArgs,freqToMidi,fromBipolar,func,getDrawContext,getDrawOptions,getFreq,getFrequency,getPlayableNoteValue,getTime,getTrigger,gist,gt,gte,h,hurry,hush,id,inside,inv,invert,irand,isNote,isNoteWithOctave,isPattern,isaw,isaw2,iter,iterBack,iterback,jux,juxBy,juxby,keep,keepif,lastOf,late,legato,linger,listRange,logKey,logger,loopAt,loopAtCps,loopat,loopatcps,lt,lte,mapArgs,mask,midi2note,midiToFreq,mod,moveXY,mul,ne:ne$1,net,never,noteToMidi,numeralArgs,off,often,or,outside,palindrome,parseFractional,parseNumeral,perlin,perlinWith,pianoroll,pipe,ply,pm,polymeter,polymeterSteps,polyrhythm,pow,pr,press,pressBy,pure,r,rand,rand2,randcat,range,range2,rangex,rarely,ratio,register,reify,removeUndefineds,repl,rescale,rev,ribbon,rotate,round,run,saw,saw2,segment,seq,sequence,set,setStringParser,setTime,signal,silence,sine,sine2,slice,slow,slowcat,slowcatPrime,smear,sol2note,someCycles,someCyclesBy,sometimes,sometimesBy,sparsity,speak,splice,splitAt,square,square2,stack,steady,striate,struct,stut,stutWith,stutwith,sub,superimpose,time:time$1,timeCat,toBipolar,tokenizeNote,tri,tri2,undegrade,undegradeBy,valueToMidi,velocity,w:w$1,wchoose,wchooseCycles,when,x:x$1,y,zipWith,zoom,zoomArc,zoomIn,zoomarc},Symbol.toStringTag,{value:"Module"}));let listenerQueue=[],atom=(n,e)=>{let s,o=[],a={lc:0,l:e||0,value:n,set(l){a.value=l,a.notify()},get(){return a.lc||a.listen(()=>{})(),a.value},notify(l){s=o;let c=!listenerQueue.length;for(let u=0;u{o===s&&(o=o.slice());let u=o.indexOf(l);~u&&(o.splice(u,2),a.lc--,a.lc||a.off())}},subscribe(l,c){let u=a.listen(l,c);return l(a.value),u},off(){}};return a},map=(n={})=>{let e=atom(n);return e.setKey=function(s,o){typeof o>"u"?s in e.value&&(e.value={...e.value},delete e.value[s],e.notify(s)):e.value[s]!==o&&(e.value={...e.value,[s]:o},e.notify(s))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(s,o,a,l){super(s),o=Math.abs(o),this.delayTime.value=a;const c=s.createGain();c.gain.value=Math.min(Math.abs(l),.995),this.feedback=c.gain;const u=s.createGain();return u.gain.value=o,this.delayGain=u,this.connect(c),this.connect(u),c.connect(this),this.connect=f=>u.connect(f),this}start(s){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,s+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,s,o){return new n(this,e,s,o)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const s=this.sampleRate*n,o=this.createBuffer(e,s,this.sampleRate),a=o.getChannelData(0);for(let l=0;l(e.buffer=this.impulseResponse(s),e.duration=n,e),e.setDuration(n),e});var $={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class n extends GainNode{constructor(s,o){if(super(s),!$[o])throw new Error("vowel: unknown vowel "+o);const{gains:a,qs:l,freqs:c}=$[o],u=s.createGain();for(let f=0;f<5;f++){const d=s.createGain();d.gain.value=a[f];const g=s.createBiquadFilter();g.type="bandpass",g.Q.value=l[f],g.frequency.value=c[f],this.connect(g),g.connect(d),d.connect(u)}return u.gain.value=8,this.connect=f=>u.connect(f),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}function k(n){const e=I().createGain();return e.gain.value=n,e}const ce=(n,e,s,o,a,l)=>{const c=I().createGain();return c.gain.setValueAtTime(0,l),c.gain.linearRampToValueAtTime(a,l+n),c.gain.linearRampToValueAtTime(s*a,l+n+e),{node:c,stop:u=>{c.gain.setValueAtTime(s*a,u),c.gain.linearRampToValueAtTime(0,u+o)}}},J=(n,e,s)=>{const o=I().createBiquadFilter();return o.type=n,o.frequency.value=e,o.Q.value=s,o},{Pattern:Ce,logger:ie}=M,P=map();function ae(n,e,s={}){P.setKey(n,{onTrigger:e,data:s})}function _(n){return P.get()[n]}let O;const I=()=>(O||(O=new AudioContext),O);let W;const Q=()=>{const n=I();return W||(W=n.createGain(),W.connect(n.destination)),W};function x(n,e,s){const o=new AudioWorkletNode(n,e);return Object.entries(s).forEach(([a,l])=>{o.parameters.get(a).value=l}),o}let G={};const ee=.98;function he(n,e,s,o){var a;if(s>ee&&ie(`delayfeedback was clamped to ${ee} to save your ears`),s=clamp(s,0,.98),!G[n]){const l=I().createFeedbackDelay(1,e,s);(a=l.start)==null||a.call(l,o),l.connect(Q()),G[n]=l}return G[n].delayTime.value!==e&&G[n].delayTime.setValueAtTime(e,o),G[n].feedback.value!==s&&G[n].feedback.setValueAtTime(s,o),G[n]}let w={};function pe(n,e=2){if(!w[n]){const s=I().createReverb(e);s.connect(Q()),w[n]=s}return w[n].duration!==e&&(w[n]=w[n].setDuration(e),w[n].duration=e),w[n]}function ne(n,e,s){const o=k(s);return n.connect(o),o.connect(e),o}const se=async(n,e,s,o)=>{const a=I();n.ensureObjectValue();let l=a.currentTime+e,{s:c="triangle",bank:u,source:f,gain:d=.8,cutoff:g,resonance:b=1,hcutoff:E,hresonance:B=1,bandf:V,bandq:D=1,coarse:X,crush:q,shape:z,pan:oe,vowel:j,delay:ue=0,delayfeedback:fe=.5,delaytime:xe=.25,orbit:Se=1,room:ge,size:Qe=2}=n.value;const{velocity:Me=1}=n.context;d*=Me;let Ie=[];const Ze=()=>{Ie.forEach(Ee=>Ee==null?void 0:Ee.disconnect())};u&&c&&(c=`${u}_${c}`);let De;if(f)De=f(l,n.value,s);else if(_(c)){const{onTrigger:Ee}=_(c),$e=await Ee(l,n.value,Ze);$e&&(De=$e.node,$e.stop(l+s))}else throw new Error(`sound ${c} not found! Is it loaded?`);if(!De)return;if(a.currentTime>l){ie("[webaudio] skip hap: still loading",a.currentTime-l);return}const Te=[];if(Te.push(De),Te.push(k(d)),g!==void 0&&Te.push(J("lowpass",g,b)),E!==void 0&&Te.push(J("highpass",E,B)),V!==void 0&&Te.push(J("bandpass",V,D)),j!==void 0&&Te.push(a.createVowelFilter(j)),X!==void 0&&Te.push(x(a,"coarse-processor",{coarse:X})),q!==void 0&&Te.push(x(a,"crush-processor",{crush:q})),z!==void 0&&Te.push(x(a,"shape-processor",{shape:z})),oe!==void 0){const Ee=a.createStereoPanner();Ee.pan.value=2*oe-1,Te.push(Ee)}const Ne=k(1);Te.push(Ne),Ne.connect(Q());let qe;if(ue>0&&xe>0&&fe>0){const Ee=he(Se,xe,fe,l);qe=ne(Ne,Ee,ue)}let Fe;if(ge>0&&Qe>0){const Ee=pe(Se,Qe);Fe=ne(Ne,Ee,ge)}Te.slice(1).reduce((Ee,$e)=>Ee.connect($e),Te[0]),Ie=Te.concat([qe,Fe])},Be=(n,e,s,o)=>se(e,n-s,e.duration/o);Ce.prototype.webaudio=function(){return this.onTrigger(Be)};const L={};function be(n,e){var s=e?1e3:1024;if(n=s);return n.toFixed(1)+" "+o[a]}const me=async(n,e,s,o,a,l,c)=>{let u=0;a!==void 0&&s!==void 0&&logger("[sampler] hap has note and freq. ignoring note","warning");let f=valueToMidi({freq:a,note:s},36);u=f-36;const d=I();let g;if(Array.isArray(l))g=l[e%l.length];else{const V=X=>noteToMidi(X)-f,D=Object.keys(l).filter(X=>!X.startsWith("_")).reduce((X,q,z)=>!X||Math.abs(V(q)){const a=s?`sound "${s}:${o}"`:"sample";if(!L[n]){logger(`[sampler] load ${a}..`,"load-sample",{url:n});const l=Date.now();L[n]=fetch(n).then(c=>c.arrayBuffer()).then(async c=>{const u=Date.now()-l,f=be(c.byteLength);return logger(`[sampler] load ${a}... done! loaded ${f} in ${u}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(c)})}return L[n]};function Ge(n){const e=I(),s=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let o=0;oObject.entries(n).forEach(([o,a])=>{if(typeof a=="string"&&(a=[a]),typeof a!="object")throw new Error("wrong sample map format for "+o);s=a._base||s;const l=c=>(s+c).replace("github:","https://raw.githubusercontent.com/");Array.isArray(a)?a=a.map(l):a=Object.fromEntries(Object.entries(a).map(([c,u])=>[c,(typeof u=="string"?[u]:u).map(l)])),e(o,a)});let re={};function Xe(n){const e=Object.entries(re).find(([s])=>n.startsWith(s));if(e)return e[1]}const Ve=async(n,e=n._base||"",s={})=>{if(typeof n=="string"){const l=Xe(n);if(l)return l(n);if(n.startsWith("github:")){let[u,f]=n.split("github:");f=f.endsWith("/")?f.slice(0,-1):f,n=`https://raw.githubusercontent.com/${f}/strudel.json`}if(typeof fetch!="function")return;const c=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(u=>u.json()).then(u=>Ve(u,e||u._base||c,s)).catch(u=>{throw console.error(u),new Error(`error loading "${n}"`)})}const{prebake:o,tag:a}=s;we(n,(l,c)=>ae(l,(u,f,d)=>Re(u,f,d,c),{type:"sample",samples:c,baseUrl:e,prebake:o,tag:a}),e)},te=[];async function Re(n,e,s,o,a){const{s:l,freq:c,unit:u,nudge:f=0,cut:d,loop:g,clip:b=void 0,n:E=0,note:B,speed:V=1,begin:D=0,end:X=1}=e;if(V===0)return;const q=I(),{attack:z=.001,decay:oe=.001,sustain:j=1,release:ue=.001}=e,fe=n+f,xe=await me(l,E,B,V,c,o,a);if(q.currentTime>n){logger(`[sampler] still loading sound "${l}:${E}"`,"highlight");return}if(!xe){logger(`[sampler] could not load "${l}:${E}"`,"error");return}xe.playbackRate.value=Math.abs(V)*xe.playbackRate.value,u==="c"&&(xe.playbackRate.value=xe.playbackRate.value*xe.buffer.duration*1);const Se=D*xe.buffer.duration;xe.start(fe,Se);const ge=xe.buffer.duration/xe.playbackRate.value,{node:Qe,stop:Me}=ce(z,oe,j,ue,1,n);xe.connect(Qe);const Ie=q.createGain();Qe.connect(Ie),xe.onended=function(){xe.disconnect(),Qe.disconnect(),Ie.disconnect(),s()};const Ze={node:Ie,bufferSource:xe,stop:(De,Te=b===void 0)=>{let Ne=De;Te&&(Ne=n+(X-D)*ge),xe.stop(Ne+ue),Me(Ne)}};if(d!==void 0){const De=te[d];De&&(De.node.gain.setValueAtTime(1,fe),De.node.gain.linearRampToValueAtTime(0,fe+.01)),te[d]=Ze}return Ze}const sound=n=>({value:n,context:{},ensureObjectValue:()=>{}});class DrunkWalk{constructor(e,s,o){Oe(this,"min");Oe(this,"max");Oe(this,"wrap");Oe(this,"position");this.min=e,this.max=s,this.wrap=o,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}class UserAPI{constructor(e){Oe(this,"variables",{});Oe(this,"iterators",{});Oe(this,"_drunk",new DrunkWalk(-100,100,!1));Oe(this,"MidiConnection",new MidiConnection);Oe(this,"load");Oe(this,"log",console.log);Oe(this,"scale",scale$1);Oe(this,"s",this.script);Oe(this,"cs",this.clearscript);Oe(this,"cps",this.copyscript);Oe(this,"$",this.iterator);Oe(this,"v",this.variable);Oe(this,"dv",this.delete_variable);Oe(this,"cv",this.clear_variables);Oe(this,"rI",this.randI);Oe(this,"r",this.rand);Oe(this,"quant",this.quantize);Oe(this,"cmp",this.clamp);Oe(this,"tempo",this.bpm);Oe(this,"silence",this.stop);Oe(this,"hush",this.stop);Oe(this,"abs",Math.abs);Oe(this,"sound",async e=>{se(sound(e),0)});this.app=e,this.load=Ve("github:tidalcycles/Dirt-Samples/master")}get time(){return this.app.audioContext.currentTime}get mouseX(){return this.app._mouseX}get mouseY(){return this.app._mouseY}rate(e){}script(...e){e.forEach(s=>{tryEvaluate(this.app,this.app.universes[this.app.selected_universe].locals[s])})}clearscript(e){this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}}copyscript(e,s){this.app.universes[this.app.selected_universe].locals[s]=this.app.universes[this.app.selected_universe].locals[e]}midi_outputs(){return console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs}midi_output(e){e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())}note(e,s=0,o=100,a=.5){this.MidiConnection.sendMidiNote(e,s,o,a)}sysex(e){this.MidiConnection.sendSysExMessage(e)}program_change(e,s){this.MidiConnection.sendProgramChange(e,s)}midi_clock(){this.MidiConnection.sendMidiClock()}cc(e,s){this.MidiConnection.sendMidiControlChange(e,s)}midi_panic(){this.MidiConnection.panic()}iterator(e,s,o){return e in this.iterators?(this.iterators[e].limit!==s&&(this.iterators[e].value=0,this.iterators[e].limit=s),this.iterators[e].step!==o&&(this.iterators[e].step=o??this.iterators[e].step),this.iterators[e].value+=this.iterators[e].step,this.iterators[e].limit!==void 0&&this.iterators[e].value>this.iterators[e].limit&&(this.iterators[e].value=0)):this.iterators[e]={value:0,step:o??1,limit:s},this.iterators[e].value}get drunk(){return this._drunk.step(),this._drunk.getPosition()}set drunk(e){this._drunk.position=e}set drunk_max(e){this._drunk.max=e}set drunk_min(e){this._drunk.min=e}set drunk_wrap(e){this._drunk.toggleWrap(e)}variable(e,s){return typeof e=="string"&&s===void 0?this.variables[e]:(this.variables[e]=s,this.variables[e])}delete_variable(e){delete this.variables[e]}clear_variables(){this.variables={}}pick(...e){return e[Math.floor(Math.random()*e.length)]}seqbeat(...e){return e[this.app.clock.time_position.beat%e.length]}mel(e,s){return s[e%s.length]}seqbar(...e){return e[this.app.clock.time_position.bar%e.length]}seqpulse(...e){return e[this.app.clock.time_position.pulse%e.length]}randI(e,s){return Math.floor(Math.random()*(s-e+1))+e}rand(e,s){return Math.random()*(s-e)+e}quantize(e,s){if(s.length===0)return e;let o=s[0];return s.forEach(a=>{Math.abs(a-e)500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e)}time_signature(e,s){this.app.clock.time_signature=[e,s]}almostNever(){return Math.random()>.9}sometimes(){return Math.random()>.5}rarely(){return Math.random()>.75}often(){return Math.random()>.25}almostAlways(){return Math.random()>.1}dice(e){return Math.floor(Math.random()*e)+1}get i(){return this.app.universes[this.app.selected_universe].global.evaluations}get bar(){return this.app.clock.time_position.bar}get tick(){return this.app.clock.tick}get pulse(){return this.app.clock.time_position.pulse}get beat(){return this.app.clock.time_position.beat}get t_beat(){return Math.floor(this.app.clock.tick/this.app.clock.ppqn)}onbar(e,...s){const o=[...Array(e).keys()].map(a=>a+1);return console.log(s.some(a=>o.includes(a%e))),s.some(a=>o.includes(a%e))}onbeat(...e){let s=[];return e.forEach(o=>{o=1+o%this.app.clock.time_signature[0];let a=Math.floor(o),l=o-a;s.push(a===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===l*this.app.clock.ppqn)}),s.some(o=>o==!0)}stop(){this.app.clock.pause(),this.app.setButtonHighlighting("pause",!0)}prob(e){return Math.random()*100.5}min(...e){return Math.min(...e)}max(...e){return Math.max(...e)}limit(e,s,o){return Math.min(Math.max(e,s),o)}delay(e,s){setTimeout(s,e)}delayr(e,s,o){[...Array(s).keys()].map(l=>e*l).forEach((l,c)=>{setTimeout(o,l)})}mod(...e){return e.some(s=>this.app.clock.time_position.pulse%s===0)}modbar(...e){return e.some(s=>this.app.clock.time_position.bar%s===0)}euclid(e,s,o,a=0){return this._euclidean_cycle(s,o,a)[e%o]}_euclidean_cycle(e,s,o=0){function a(u,f){const d=u.length,g=(f+1)%d;return u[f]>u[g]}if(e>=s)return[!0];const l=Array.from({length:s},(u,f)=>(e*(f-1)%s+s)%s);let c=l.map((u,f)=>a(l,f));return o!=0&&(c=c.slice(o).concat(c.slice(0,o))),c}bin(e,s){let a=s.toString(2).split("").map(l=>l==="1");return a[e%a.length]}sine(e=1,s=0){return Math.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+s}saw(e=1,s=0){return this.app.clock.ctx.currentTime*e%1*2-1+s}triangle(e=1,s=0){return Math.abs(this.saw(e,s))*2-1}square(e=1,s=0){return this.saw(e,s)>0?1:-1}noise(){return Math.random()*2-1}}class Editor{constructor(){Oe(this,"universes",template_universes);Oe(this,"selected_universe");Oe(this,"local_index",1);Oe(this,"editor_mode","local");Oe(this,"fontSize");Oe(this,"withLineNumbers");Oe(this,"vimModeCompartment");Oe(this,"chosenLanguage");Oe(this,"settings",new AppSettings);Oe(this,"editorExtensions",[]);Oe(this,"userPlugins",[]);Oe(this,"state");Oe(this,"api");Oe(this,"audioContext");Oe(this,"view");Oe(this,"clock");Oe(this,"manualPlay",!1);Oe(this,"_mouseX",0);Oe(this,"_mouseY",0);Oe(this,"play_buttons",[document.getElementById("play-button-1"),document.getElementById("play-button-2")]);Oe(this,"pause_buttons",[document.getElementById("pause-button-1"),document.getElementById("pause-button-2")]);Oe(this,"stop_buttons",[document.getElementById("stop-button-1"),document.getElementById("stop-button-2")]);Oe(this,"clear_buttons",[document.getElementById("clear-button-1"),document.getElementById("clear-button-2")]);Oe(this,"local_button",document.getElementById("local-button"));Oe(this,"global_button",document.getElementById("global-button"));Oe(this,"init_button",document.getElementById("init-button"));Oe(this,"note_button",document.getElementById("note-button"));Oe(this,"settings_button",document.getElementById("settings-button"));Oe(this,"close_settings_button",document.getElementById("close-settings-button"));Oe(this,"universe_viewer",document.getElementById("universe-viewer"));Oe(this,"buffer_modal",document.getElementById("modal-buffers"));Oe(this,"buffer_search",document.getElementById("buffer-search"));Oe(this,"local_script_tabs",document.getElementById("local-script-tabs"));Oe(this,"font_size_slider",document.getElementById("font-size-slider"));Oe(this,"font_size_witness",document.getElementById("font-size-witness"));Oe(this,"line_numbers_checkbox",document.getElementById("show-line-numbers"));Oe(this,"normal_mode_button",document.getElementById("normal-mode"));Oe(this,"vim_mode_button",document.getElementById("vim-mode"));this.selected_universe=this.settings.selected_universe,this.universe_viewer.innerHTML=`Topos: ${this.selected_universe}`,this.universes={...template_universes,...this.settings.universes},this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new Clock(this,this.audioContext),this.api=new UserAPI(this),this.vimModeCompartment=new Compartment,this.withLineNumbers=new Compartment,this.chosenLanguage=new Compartment,this.fontSize=new Compartment;const e=this.settings.vimMode?vim():[],s=this.settings.line_numbers?lineNumbers():[],o=EditorView.theme({"&":{fontSize:`${this.settings.font_size}px`},".cm-gutters":{fontSize:`${this.settings.font_size}px`}});this.editorExtensions=[this.withLineNumbers.of(s),this.fontSize.of(o),this.vimModeCompartment.of(e),editorSetup,oneDark,this.chosenLanguage.of(javascript()),EditorView.updateListener.of(c=>{})];let a=new Compartment;this.state=EditorState.create({extensions:[...this.editorExtensions,EditorView.lineWrapping,a.of(this.userPlugins)],doc:this.universes[this.selected_universe].locals[this.local_index].candidate}),this.view=new EditorView({parent:document.getElementById("editor"),state:this.state}),document.addEventListener("keydown",c=>{c.key==="Tab"&&c.preventDefault(),c.ctrlKey&&c.key==="s"&&(c.preventDefault(),this.setButtonHighlighting("pause",!0),this.clock.pause()),c.ctrlKey&&c.key==="r"&&(c.preventDefault(),this.setButtonHighlighting("stop",!0),this.clock.stop()),c.ctrlKey&&c.key==="p"&&(c.preventDefault(),this.setButtonHighlighting("play",!0),this.clock.start()),(c.key==="v"||c.key==="V")&&c.ctrlKey&&c.shiftKey&&(this.settings.vimMode=!this.settings.vimMode,c.preventDefault(),this.userPlugins=this.settings.vimMode?[]:[vim()],this.view.dispatch({effects:a.reconfigure(this.userPlugins)})),(c.key==="Enter"||c.key==="Return")&&c.ctrlKey&&(c.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),(c.key==="Enter"&&c.shiftKey||c.key==="e"&&c.ctrlKey)&&(c.preventDefault(),this.currentFile().candidate=this.view.state.doc.toString(),this.flashBackground("#2d313d",200)),c.ctrlKey&&c.key==="b"&&this.openBuffersModal(),c.shiftKey&&c.key==="Escape"&&this.openSettingsModal(),c.ctrlKey&&c.key==="l"&&(c.preventDefault(),this.changeModeFromInterface("local"),this.view.focus()),c.ctrlKey&&c.key==="n"&&(c.preventDefault(),this.changeModeFromInterface("notes"),this.view.focus()),c.ctrlKey&&c.key==="g"&&(c.preventDefault(),this.changeModeFromInterface("global"),this.view.focus()),c.ctrlKey&&c.key==="i"&&(c.preventDefault(),this.changeModeFromInterface("init"),this.changeToLocalBuffer(0),this.view.focus()),[112,113,114,115,116,117,118,119,120].forEach((u,f)=>{c.keyCode===u&&(c.preventDefault(),c.ctrlKey?this.api.script(u-111):(this.changeModeFromInterface("local"),this.changeToLocalBuffer(f)))}),c.keyCode==121&&this.changeModeFromInterface("global"),c.keyCode==122&&this.changeModeFromInterface("init")});const l=document.querySelectorAll('[id^="tab-"]');for(let c=0;c{l[c].classList.add("bg-orange-300");for(let g=0;g{c.addEventListener("click",()=>{this.setButtonHighlighting("play",!0),this.clock.start()})}),this.clear_buttons.forEach(c=>{c.addEventListener("click",()=>{this.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(this.universes[this.selected_universe]=template_universe,this.updateEditorView())})}),this.pause_buttons.forEach(c=>{c.addEventListener("click",()=>{this.setButtonHighlighting("pause",!0),this.clock.pause()})}),this.stop_buttons.forEach(c=>{c.addEventListener("click",()=>{this.setButtonHighlighting("stop",!0),this.clock.stop()})}),this.local_button.addEventListener("click",()=>this.changeModeFromInterface("local")),this.global_button.addEventListener("click",()=>this.changeModeFromInterface("global")),this.init_button.addEventListener("click",()=>this.changeModeFromInterface("init")),this.note_button.addEventListener("click",()=>this.changeModeFromInterface("notes")),this.settings_button.addEventListener("click",()=>{var f;this.font_size_slider.value=this.settings.font_size.toString(),this.font_size_witness.innerHTML=`Font Size: ${this.settings.font_size}px`,(f=this.font_size_witness)==null||f.setAttribute("style",`font-size: ${this.settings.font_size}px;`),this.line_numbers_checkbox.checked=this.settings.line_numbers;let c=document.getElementById("modal-settings"),u=document.getElementById("editor");c==null||c.classList.remove("invisible"),u==null||u.classList.add("invisible")}),this.close_settings_button.addEventListener("click",()=>{let c=document.getElementById("modal-settings"),u=document.getElementById("editor");c==null||c.classList.add("invisible"),u==null||u.classList.remove("invisible")}),this.font_size_slider.addEventListener("input",()=>{const c=this.font_size_slider.value;this.settings.font_size=parseInt(c),this.font_size_witness.style.fontSize=`${c}px`,this.font_size_witness.innerHTML=`Font Size: ${c}px`;let u=EditorView.theme({"&":{fontSize:c+"px"},".cm-gutters":{fontSize:c+"px"}});this.view.dispatch({effects:this.fontSize.reconfigure(u)}),this.settings.font_size=parseInt(c)}),this.normal_mode_button.addEventListener("click",()=>{this.settings.vimMode=!1,this.view.dispatch({effects:this.vimModeCompartment.reconfigure([])})}),this.line_numbers_checkbox.addEventListener("change",()=>{let c=!!this.line_numbers_checkbox.checked;this.settings.line_numbers=c,this.view.dispatch({effects:this.withLineNumbers.reconfigure(c?[lineNumbers()]:[])})}),this.vim_mode_button.addEventListener("click",()=>{this.settings.vimMode=!0,this.view.dispatch({effects:this.vimModeCompartment.reconfigure(vim())})}),this.buffer_search.addEventListener("keydown",c=>{if(c.key==="Enter"){let u=this.buffer_search.value;u.length>2&&u.length<20&&(this.loadUniverse(u),this.settings.selected_universe=u,this.buffer_search.value="",this.closeBuffersModal(),this.view.focus())}}),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}get note_buffer(){return this.universes[this.selected_universe.toString()].notes}get global_buffer(){return this.universes[this.selected_universe.toString()].global}get init_buffer(){return this.universes[this.selected_universe.toString()].init}get local_buffer(){return this.universes[this.selected_universe.toString()].locals[this.local_index]}changeToLocalBuffer(e){const s=document.querySelectorAll('[id^="tab-"]'),o=s[e];o.classList.add("bg-orange-300");for(let l=0;l{s.forEach(l=>{let c=l.children[0];c.classList.contains("text-orange-300")&&(c.classList.remove("text-orange-300"),l.classList.remove("text-orange-300"))}),a.children[0].classList.remove("text-white"),a.children[0].classList.add("text-orange-300"),a.classList.add("text-orange-300")};switch(e){case"local":this.local_script_tabs.classList.contains("hidden")&&this.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,this.changeToLocalBuffer(this.local_index),o(this.local_button);break;case"global":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="global",o(this.global_button);break;case"init":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="init",o(this.init_button);break;case"notes":this.local_script_tabs.classList.contains("hidden")||this.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",o(this.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[markdown()]:[javascript()])}),this.updateEditorView()}setButtonHighlighting(e,s){this.flashBackground("#2d313d",200);const o=['[id^="play-button-"]','[id^="pause-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let a;switch(e){case"play":a=0;break;case"pause":a=1;break;case"clear":a=2;break;case"stop":a=3;break}document.querySelectorAll(o[a]).forEach(l=>{s&&l.children[0].classList.add("fill-orange-300")}),document.querySelectorAll(o.filter((l,c)=>c!=a).join(",")).forEach(l=>{l.children[0].classList.remove("fill-orange-300"),l.children[0].classList.remove("text-orange-300"),l.children[0].classList.remove("bg-orange-300")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}loadUniverse(e){this.currentFile().candidate=this.view.state.doc.toString();let s=e.trim();this.universes[s]===void 0&&(this.universes[s]=template_universe),this.selected_universe=s,this.settings.selected_universe=this.selected_universe,this.universe_viewer.innerHTML=`Topos: ${s}`,this.updateEditorView(),tryEvaluate(this,this.universes[this.selected_universe.toString()].init)}openSettingsModal(){document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):this.closeSettingsModal()}closeSettingsModal(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")}openBuffersModal(){document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):this.closeBuffersModal()}closeBuffersModal(){document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("invisible"),document.getElementById("modal-buffers").classList.add("invisible")}flashBackground(e,s){this.view.dom.style.backgroundColor=e;const o=this.view.dom.getElementsByClassName("cm-gutter");Array.from(o).forEach(a=>a.style.backgroundColor=e),setTimeout(()=>{this.view.dom.style.backgroundColor="",Array.from(o).forEach(a=>a.style.backgroundColor="")},s)}}const app=new Editor;function startClock(){document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal").classList.add("hidden"),document.getElementById("modal-container").classList.remove("motion-safe:animate-pulse"),document.getElementById("start-button").removeEventListener("click",startClock),document.removeEventListener("click",startClock),document.removeEventListener("keydown",startOnEnter),document.removeEventListener("click",startOnClick),app.clock.start(),app.view.focus(),app.setButtonHighlighting("play",!0)}function startOnEnter(n){(n.code==="Enter"||n.code==="Space")&&startClock()}function startOnClick(n){n.button===0&&startClock()}document.addEventListener("keydown",startOnEnter);document.addEventListener("click",startOnClick);function reportMouseCoordinates(n){app._mouseX=n.clientX,app._mouseY=n.clientY}window.addEventListener("mousemove",reportMouseCoordinates);window.addEventListener("beforeunload",()=>(event.preventDefault(),app.currentFile().candidate=app.view.state.doc.toString(),app.currentFile().committed=app.view.state.doc.toString(),app.settings.saveApplicationToLocalStorage(app.universes,app.settings),app.clock.stop(),null)); diff --git a/assets/index-a0b9bfcd.css b/assets/index-a0b9bfcd.css new file mode 100644 index 0000000..56863c9 --- /dev/null +++ b/assets/index-a0b9bfcd.css @@ -0,0 +1 @@ +.pb-2{padding-bottom:.5rem}.pl-12{padding-left:3rem}.pl-24{padding-left:6rem}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity))}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-2\.5{bottom:.625rem}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.top-0{top:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-48{margin-left:12rem;margin-right:12rem}.mx-auto{margin-left:auto;margin-right:auto}.my-48{margin-top:12rem;margin-bottom:12rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.h-10{height:2.5rem}.h-2{height:.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-sm{max-width:24rem}.flex-grow,.grow{flex-grow:1}.border-spacing-y-4{--tw-border-spacing-y: 1rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.fill-orange-300{fill:#fdba74}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}:is([dir=rtl] .rtl\:border-l){border-left-width:1px}:is([dir=rtl] .rtl\:border-r-0){border-right-width:0px}@media (prefers-reduced-motion: no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}}@media (prefers-color-scheme: dark){.dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:ring-offset-gray-800{--tw-ring-offset-color: #1f2937}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:focus\:ring-blue-600:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity))}}@media (min-width: 1024px){.lg\:w-1\/5{width:20%}.lg\:w-4\/5{width:80%}.lg\:flex-row{flex-direction:row}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:hidden{display:none}} diff --git a/index.html b/index.html new file mode 100644 index 0000000..281b544 --- /dev/null +++ b/index.html @@ -0,0 +1,297 @@ + + + + + + + Topos + + + + + + + + + + +
+ + + + + + + + + +