@aquera/nile-elements 0.0.87 → 0.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6648,6 +6648,9 @@ const rN=Symbol.for(""),xN=M=>{if((null==M?void 0:M.r)===rN)return null==M?void
6648
6648
  border-radius: 5px;
6649
6649
  border: 1px solid rgb(204, 204, 204);
6650
6650
  }
6651
+ .code-mirror__singleline .cm-scroller{
6652
+ scrollbar-width:none;
6653
+ }
6651
6654
 
6652
6655
  .error {
6653
6656
  border-color: #e5434d;
@@ -6674,7 +6677,7 @@ const rN=Symbol.for(""),xN=M=>{if((null==M?void 0:M.r)===rN)return null==M?void
6674
6677
  align-self: start;
6675
6678
  padding: 5px 5px 0px 0px;
6676
6679
  }
6677
- `;class ej{lineAt(M){if(M<0||M>this.length)throw new RangeError(`Invalid position ${M} in document of length ${this.length}`);return this.lineInner(M,!1,1,0)}line(M){if(M<1||M>this.lines)throw new RangeError(`Invalid line number ${M} in ${this.lines}-line document`);return this.lineInner(M,!0,1,0)}replace(M,N,D){[M,N]=lj(this,M,N);let i=[];return this.decompose(0,M,i,2),D.length&&D.decompose(0,D.length,i,3),this.decompose(N,this.length,i,1),Aj.from(i,this.length-(N-M)+D.length)}append(M){return this.replace(this.length,this.length,M)}slice(M,N=this.length){[M,N]=lj(this,M,N);let D=[];return this.decompose(M,N,D,0),Aj.from(D,N-M)}eq(M){if(M==this)return!0;if(M.length!=this.length||M.lines!=this.lines)return!1;let N=this.scanIdentical(M,1),D=this.length-this.scanIdentical(M,-1),i=new Oj(this),j=new Oj(M);for(let M=N,t=N;;){if(i.next(M),j.next(M),M=0,i.lineBreak!=j.lineBreak||i.done!=j.done||i.value!=j.value)return!1;if(t+=i.value.length,i.done||t>=D)return!0}}iter(M=1){return new Oj(this,M)}iterRange(M,N=this.length){return new yj(this,M,N)}iterLines(M,N){let D;if(null==M)D=this.iter();else{null==N&&(N=this.lines+1);let i=this.line(M).from;D=this.iterRange(i,Math.max(i,N==this.lines+1?this.length:N<=1?0:this.line(N-1).to))}return new cj(D)}toString(){return this.sliceString(0)}toJSON(){let M=[];return this.flatten(M),M}constructor(){}static of(M){if(0==M.length)throw new RangeError("A document must have at least one line");return 1!=M.length||M[0]?M.length<=32?new Tj(M):Aj.from(Tj.split(M,[])):ej.empty}}class Tj extends ej{constructor(M,N=function(M){let N=-1;for(let D of M)N+=D.length+1;return N}(M)){super(),this.text=M,this.length=N}get lines(){return this.text.length}get children(){return null}lineInner(M,N,D,i){for(let j=0;;j++){let t=this.text[j],I=i+t.length;if((N?D:I)>=M)return new nj(i,I,D,t);i=I+1,D++}}decompose(M,N,D,i){let j=M<=0&&N>=this.length?this:new Tj(Lj(this.text,M,N),Math.min(N,this.length)-Math.max(0,M));if(1&i){let M=D.pop(),N=sj(j.text,M.text.slice(),0,j.length);if(N.length<=32)D.push(new Tj(N,M.length+j.length));else{let M=N.length>>1;D.push(new Tj(N.slice(0,M)),new Tj(N.slice(M)))}}else D.push(j)}replace(M,N,D){if(!(D instanceof Tj))return super.replace(M,N,D);[M,N]=lj(this,M,N);let i=sj(this.text,sj(D.text,Lj(this.text,0,M)),N),j=this.length+D.length-(N-M);return i.length<=32?new Tj(i,j):Aj.from(Tj.split(i,[]),j)}sliceString(M,N=this.length,D="\n"){[M,N]=lj(this,M,N);let i="";for(let j=0,t=0;j<=N&&t<this.text.length;t++){let I=this.text[t],z=j+I.length;j>M&&t&&(i+=D),M<z&&N>j&&(i+=I.slice(Math.max(0,M-j),N-j)),j=z+1}return i}flatten(M){for(let N of this.text)M.push(N)}scanIdentical(){return 0}static split(M,N){let D=[],i=-1;for(let j of M)D.push(j),i+=j.length+1,32==D.length&&(N.push(new Tj(D,i)),D=[],i=-1);return i>-1&&N.push(new Tj(D,i)),N}}class Aj extends ej{constructor(M,N){super(),this.children=M,this.length=N,this.lines=0;for(let N of M)this.lines+=N.lines}lineInner(M,N,D,i){for(let j=0;;j++){let t=this.children[j],I=i+t.length,z=D+t.lines-1;if((N?z:I)>=M)return t.lineInner(M,N,D,i);i=I+1,D=z+1}}decompose(M,N,D,i){for(let j=0,t=0;t<=N&&j<this.children.length;j++){let I=this.children[j],z=t+I.length;if(M<=z&&N>=t){let j=i&((t<=M?1:0)|(z>=N?2:0));t>=M&&z<=N&&!j?D.push(I):I.decompose(M-t,N-t,D,j)}t=z+1}}replace(M,N,D){if([M,N]=lj(this,M,N),D.lines<this.lines)for(let i=0,j=0;i<this.children.length;i++){let t=this.children[i],I=j+t.length;if(M>=j&&N<=I){let z=t.replace(M-j,N-j,D),u=this.lines-t.lines+z.lines;if(z.lines<u>>4&&z.lines>u>>6){let j=this.children.slice();return j[i]=z,new Aj(j,this.length-(N-M)+D.length)}return super.replace(j,I,z)}j=I+1}return super.replace(M,N,D)}sliceString(M,N=this.length,D="\n"){[M,N]=lj(this,M,N);let i="";for(let j=0,t=0;j<this.children.length&&t<=N;j++){let I=this.children[j],z=t+I.length;t>M&&j&&(i+=D),M<z&&N>t&&(i+=I.sliceString(M-t,N-t,D)),t=z+1}return i}flatten(M){for(let N of this.children)N.flatten(M)}scanIdentical(M,N){if(!(M instanceof Aj))return 0;let D=0,[i,j,t,I]=N>0?[0,0,this.children.length,M.children.length]:[this.children.length-1,M.children.length-1,-1,-1];for(;;i+=N,j+=N){if(i==t||j==I)return D;let z=this.children[i],u=M.children[j];if(z!=u)return D+z.scanIdentical(u,N);D+=z.length+1}}static from(M,N=M.reduce(((M,N)=>M+N.length+1),-1)){let D=0;for(let N of M)D+=N.lines;if(D<32){let D=[];for(let N of M)N.flatten(D);return new Tj(D,N)}let i=Math.max(32,D>>5),j=i<<1,t=i>>1,I=[],z=0,u=-1,g=[];function e(M){let N;if(M.lines>j&&M instanceof Aj)for(let N of M.children)e(N);else M.lines>t&&(z>t||!z)?(T(),I.push(M)):M instanceof Tj&&z&&(N=g[g.length-1])instanceof Tj&&M.lines+N.lines<=32?(z+=M.lines,u+=M.length+1,g[g.length-1]=new Tj(N.text.concat(M.text),N.length+1+M.length)):(z+M.lines>i&&T(),z+=M.lines,u+=M.length+1,g.push(M))}function T(){0!=z&&(I.push(1==g.length?g[0]:Aj.from(g,u)),u=-1,z=g.length=0)}for(let N of M)e(N);return T(),1==I.length?I[0]:new Aj(I,N)}}function sj(M,N,D=0,i=1e9){for(let j=0,t=0,I=!0;t<M.length&&j<=i;t++){let z=M[t],u=j+z.length;u>=D&&(u>i&&(z=z.slice(0,i-j)),j<D&&(z=z.slice(D-j)),I?(N[N.length-1]+=z,I=!1):N.push(z)),j=u+1}return N}function Lj(M,N,D){return sj(M,[""],N,D)}ej.empty=new Tj([""],0);class Oj{constructor(M,N=1){this.dir=N,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[M],this.offsets=[N>0?1:(M instanceof Tj?M.text.length:M.children.length)<<1]}nextInner(M,N){for(this.done=this.lineBreak=!1;;){let D=this.nodes.length-1,i=this.nodes[D],j=this.offsets[D],t=j>>1,I=i instanceof Tj?i.text.length:i.children.length;if(t==(N>0?I:0)){if(0==D)return this.done=!0,this.value="",this;N>0&&this.offsets[D-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&j)==(N>0?0:1)){if(this.offsets[D]+=N,0==M)return this.lineBreak=!0,this.value="\n",this;M--}else if(i instanceof Tj){let j=i.text[t+(N<0?-1:0)];if(this.offsets[D]+=N,j.length>Math.max(0,M))return this.value=0==M?j:N>0?j.slice(M):j.slice(0,j.length-M),this;M-=j.length}else{let j=i.children[t+(N<0?-1:0)];M>j.length?(M-=j.length,this.offsets[D]+=N):(N<0&&this.offsets[D]--,this.nodes.push(j),this.offsets.push(N>0?1:(j instanceof Tj?j.text.length:j.children.length)<<1))}}}next(M=0){return M<0&&(this.nextInner(-M,-this.dir),M=this.value.length),this.nextInner(M,this.dir)}}class yj{constructor(M,N,D){this.value="",this.done=!1,this.cursor=new Oj(M,N>D?-1:1),this.pos=N>D?M.length:0,this.from=Math.min(N,D),this.to=Math.max(N,D)}nextInner(M,N){if(N<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;M+=Math.max(0,N<0?this.pos-this.to:this.from-this.pos);let D=N<0?this.pos-this.from:this.to-this.pos;M>D&&(M=D),D-=M;let{value:i}=this.cursor.next(M);return this.pos+=(i.length+M)*N,this.value=i.length<=D?i:N<0?i.slice(i.length-D):i.slice(0,D),this.done=!this.value,this}next(M=0){return M<0?M=Math.max(M,this.from-this.pos):M>0&&(M=Math.min(M,this.to-this.pos)),this.nextInner(M,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class cj{constructor(M){this.inner=M,this.afterBreak=!0,this.value="",this.done=!1}next(M=0){let{done:N,lineBreak:D,value:i}=this.inner.next(M);return N&&this.afterBreak?(this.value="",this.afterBreak=!1):N?(this.done=!0,this.value=""):D?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(ej.prototype[Symbol.iterator]=function(){return this.iter()},Oj.prototype[Symbol.iterator]=yj.prototype[Symbol.iterator]=cj.prototype[Symbol.iterator]=function(){return this});class nj{constructor(M,N,D,i){this.from=M,this.to=N,this.number=D,this.text=i}get length(){return this.to-this.from}}function lj(M,N,D){return[N=Math.max(0,Math.min(M.length,N)),Math.max(N,Math.min(M.length,D))]}let oj="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((M=>M?parseInt(M,36):1));for(let M=1;M<oj.length;M++)oj[M]+=oj[M-1];function rj(M){for(let N=1;N<oj.length;N+=2)if(oj[N]>M)return oj[N-1]<=M;return!1}function xj(M){return M>=127462&&M<=127487}const aj=8205;function Qj(M,N,D=!0,i=!0){return(D?Ej:Sj)(M,N,i)}function Ej(M,N,D){if(N==M.length)return N;N&&hj(M.charCodeAt(N))&&dj(M.charCodeAt(N-1))&&N--;let i=kj(M,N);for(N+=Uj(i);N<M.length;){let j=kj(M,N);if(i==aj||j==aj||D&&rj(j))N+=Uj(j),i=j;else{if(!xj(j))break;{let D=0,i=N-2;for(;i>=0&&xj(kj(M,i));)D++,i-=2;if(D%2==0)break;N+=2}}}return N}function Sj(M,N,D){for(;N>0;){let i=Ej(M,N-2,D);if(i<N)return i;N--}return 0}function hj(M){return M>=56320&&M<57344}function dj(M){return M>=55296&&M<56320}function kj(M,N){let D=M.charCodeAt(N);if(!dj(D)||N+1==M.length)return D;let i=M.charCodeAt(N+1);return hj(i)?i-56320+(D-55296<<10)+65536:D}function wj(M){return M<=65535?String.fromCharCode(M):(M-=65536,String.fromCharCode(55296+(M>>10),56320+(1023&M)))}function Uj(M){return M<65536?1:2}const Yj=/\r\n?|\n/;var Cj=function(M){return M[M.Simple=0]="Simple",M[M.TrackDel=1]="TrackDel",M[M.TrackBefore=2]="TrackBefore",M[M.TrackAfter=3]="TrackAfter",M}(Cj||(Cj={}));class bj{constructor(M){this.sections=M}get length(){let M=0;for(let N=0;N<this.sections.length;N+=2)M+=this.sections[N];return M}get newLength(){let M=0;for(let N=0;N<this.sections.length;N+=2){let D=this.sections[N+1];M+=D<0?this.sections[N]:D}return M}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(M){for(let N=0,D=0,i=0;N<this.sections.length;){let j=this.sections[N++],t=this.sections[N++];t<0?(M(D,i,j),i+=j):i+=t,D+=j}}iterChangedRanges(M,N=!1){fj(this,M,N)}get invertedDesc(){let M=[];for(let N=0;N<this.sections.length;){let D=this.sections[N++],i=this.sections[N++];i<0?M.push(D,i):M.push(i,D)}return new bj(M)}composeDesc(M){return this.empty?M:M.empty?this:Wj(this,M)}mapDesc(M,N=!1){return M.empty?this:vj(this,M,N)}mapPos(M,N=-1,D=Cj.Simple){let i=0,j=0;for(let t=0;t<this.sections.length;){let I=this.sections[t++],z=this.sections[t++],u=i+I;if(z<0){if(u>M)return j+(M-i);j+=I}else{if(D!=Cj.Simple&&u>=M&&(D==Cj.TrackDel&&i<M&&u>M||D==Cj.TrackBefore&&i<M||D==Cj.TrackAfter&&u>M))return null;if(u>M||u==M&&N<0&&!I)return M==i||N<0?j:j+z;j+=z}i=u}if(M>i)throw new RangeError(`Position ${M} is out of range for changeset of length ${i}`);return j}touchesRange(M,N=M){for(let D=0,i=0;D<this.sections.length&&i<=N;){let j=i+this.sections[D++];if(this.sections[D++]>=0&&i<=N&&j>=M)return!(i<M&&j>N)||"cover";i=j}return!1}toString(){let M="";for(let N=0;N<this.sections.length;){let D=this.sections[N++],i=this.sections[N++];M+=(M?" ":"")+D+(i>=0?":"+i:"")}return M}toJSON(){return this.sections}static fromJSON(M){if(!Array.isArray(M)||M.length%2||M.some((M=>"number"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new bj(M)}static create(M){return new bj(M)}}class pj extends bj{constructor(M,N){super(M),this.inserted=N}apply(M){if(this.length!=M.length)throw new RangeError("Applying change set to a document with the wrong length");return fj(this,((N,D,i,j,t)=>M=M.replace(i,i+(D-N),t)),!1),M}mapDesc(M,N=!1){return vj(this,M,N,!0)}invert(M){let N=this.sections.slice(),D=[];for(let i=0,j=0;i<N.length;i+=2){let t=N[i],I=N[i+1];if(I>=0){N[i]=I,N[i+1]=t;let z=i>>1;for(;D.length<z;)D.push(ej.empty);D.push(t?M.slice(j,j+t):ej.empty)}j+=t}return new pj(N,D)}compose(M){return this.empty?M:M.empty?this:Wj(this,M,!0)}map(M,N=!1){return M.empty?this:vj(this,M,N,!0)}iterChanges(M,N=!1){fj(this,M,N)}get desc(){return bj.create(this.sections)}filter(M){let N=[],D=[],i=[],j=new Vj(this);M:for(let t=0,I=0;;){let z=t==M.length?1e9:M[t++];for(;I<z||I==z&&0==j.len;){if(j.done)break M;let M=Math.min(j.len,z-I);mj(i,M,-1);let t=-1==j.ins?-1:0==j.off?j.ins:0;mj(N,M,t),t>0&&Zj(D,N,j.text),j.forward(M),I+=M}let u=M[t++];for(;I<u;){if(j.done)break M;let M=Math.min(j.len,u-I);mj(N,M,-1),mj(i,M,-1==j.ins?-1:0==j.off?j.ins:0),j.forward(M),I+=M}}return{changes:new pj(N,D),filtered:bj.create(i)}}toJSON(){let M=[];for(let N=0;N<this.sections.length;N+=2){let D=this.sections[N],i=this.sections[N+1];i<0?M.push(D):0==i?M.push([D]):M.push([D].concat(this.inserted[N>>1].toJSON()))}return M}static of(M,N,D){let i=[],j=[],t=0,I=null;function z(M=!1){if(!M&&!i.length)return;t<N&&mj(i,N-t,-1);let D=new pj(i,j);I=I?I.compose(D.map(I)):D,i=[],j=[],t=0}return function M(u){if(Array.isArray(u))for(let N of u)M(N);else if(u instanceof pj){if(u.length!=N)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${N})`);z(),I=I?I.compose(u.map(I)):u}else{let{from:M,to:I=M,insert:g}=u;if(M>I||M<0||I>N)throw new RangeError(`Invalid change range ${M} to ${I} (in doc of length ${N})`);let e=g?"string"==typeof g?ej.of(g.split(D||Yj)):g:ej.empty,T=e.length;if(M==I&&0==T)return;M<t&&z(),M>t&&mj(i,M-t,-1),mj(i,I-M,T),Zj(j,i,e),t=I}}(M),z(!I),I}static empty(M){return new pj(M?[M,-1]:[],[])}static fromJSON(M){if(!Array.isArray(M))throw new RangeError("Invalid JSON representation of ChangeSet");let N=[],D=[];for(let i=0;i<M.length;i++){let j=M[i];if("number"==typeof j)N.push(j,-1);else{if(!Array.isArray(j)||"number"!=typeof j[0]||j.some(((M,N)=>N&&"string"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==j.length)N.push(j[0],0);else{for(;D.length<i;)D.push(ej.empty);D[i]=ej.of(j.slice(1)),N.push(j[0],D[i].length)}}}return new pj(N,D)}static createSet(M,N){return new pj(M,N)}}function mj(M,N,D,i=!1){if(0==N&&D<=0)return;let j=M.length-2;j>=0&&D<=0&&D==M[j+1]?M[j]+=N:0==N&&0==M[j]?M[j+1]+=D:i?(M[j]+=N,M[j+1]+=D):M.push(N,D)}function Zj(M,N,D){if(0==D.length)return;let i=N.length-2>>1;if(i<M.length)M[M.length-1]=M[M.length-1].append(D);else{for(;M.length<i;)M.push(ej.empty);M.push(D)}}function fj(M,N,D){let i=M.inserted;for(let j=0,t=0,I=0;I<M.sections.length;){let z=M.sections[I++],u=M.sections[I++];if(u<0)j+=z,t+=z;else{let g=j,e=t,T=ej.empty;for(;g+=z,e+=u,u&&i&&(T=T.append(i[I-2>>1])),!(D||I==M.sections.length||M.sections[I+1]<0);)z=M.sections[I++],u=M.sections[I++];N(j,g,t,e,T),j=g,t=e}}}function vj(M,N,D,i=!1){let j=[],t=i?[]:null,I=new Vj(M),z=new Vj(N);for(let M=-1;;)if(-1==I.ins&&-1==z.ins){let M=Math.min(I.len,z.len);mj(j,M,-1),I.forward(M),z.forward(M)}else if(z.ins>=0&&(I.ins<0||M==I.i||0==I.off&&(z.len<I.len||z.len==I.len&&!D))){let N=z.len;for(mj(j,z.ins,-1);N;){let D=Math.min(I.len,N);I.ins>=0&&M<I.i&&I.len<=D&&(mj(j,0,I.ins),t&&Zj(t,j,I.text),M=I.i),I.forward(D),N-=D}z.next()}else{if(!(I.ins>=0)){if(I.done&&z.done)return t?pj.createSet(j,t):bj.create(j);throw new Error("Mismatched change set lengths")}{let N=0,D=I.len;for(;D;)if(-1==z.ins){let M=Math.min(D,z.len);N+=M,D-=M,z.forward(M)}else{if(!(0==z.ins&&z.len<D))break;D-=z.len,z.next()}mj(j,N,M<I.i?I.ins:0),t&&M<I.i&&Zj(t,j,I.text),M=I.i,I.forward(I.len-D)}}}function Wj(M,N,D=!1){let i=[],j=D?[]:null,t=new Vj(M),I=new Vj(N);for(let M=!1;;){if(t.done&&I.done)return j?pj.createSet(i,j):bj.create(i);if(0==t.ins)mj(i,t.len,0,M),t.next();else if(0!=I.len||I.done){if(t.done||I.done)throw new Error("Mismatched change set lengths");{let N=Math.min(t.len2,I.len),D=i.length;if(-1==t.ins){let D=-1==I.ins?-1:I.off?0:I.ins;mj(i,N,D,M),j&&D&&Zj(j,i,I.text)}else-1==I.ins?(mj(i,t.off?0:t.len,N,M),j&&Zj(j,i,t.textBit(N))):(mj(i,t.off?0:t.len,I.off?0:I.ins,M),j&&!I.off&&Zj(j,i,I.text));M=(t.ins>N||I.ins>=0&&I.len>N)&&(M||i.length>D),t.forward2(N),I.forward(N)}}else mj(i,0,I.ins,M),j&&Zj(j,i,I.text),I.next()}}class Vj{constructor(M){this.set=M,this.i=0,this.next()}next(){let{sections:M}=this.set;this.i<M.length?(this.len=M[this.i++],this.ins=M[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:M}=this.set,N=this.i-2>>1;return N>=M.length?ej.empty:M[N]}textBit(M){let{inserted:N}=this.set,D=this.i-2>>1;return D>=N.length&&!M?ej.empty:N[D].slice(this.off,null==M?void 0:this.off+M)}forward(M){M==this.len?this.next():(this.len-=M,this.off+=M)}forward2(M){-1==this.ins?this.forward(M):M==this.ins?this.next():(this.ins-=M,this.off+=M)}}class Gj{constructor(M,N,D){this.from=M,this.to=N,this.flags=D}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let M=7&this.flags;return 7==M?null:M}get goalColumn(){let M=this.flags>>6;return 16777215==M?void 0:M}map(M,N=-1){let D,i;return this.empty?D=i=M.mapPos(this.from,N):(D=M.mapPos(this.from,1),i=M.mapPos(this.to,-1)),D==this.from&&i==this.to?this:new Gj(D,i,this.flags)}extend(M,N=M){if(M<=this.anchor&&N>=this.anchor)return Pj.range(M,N);let D=Math.abs(M-this.anchor)>Math.abs(N-this.anchor)?M:N;return Pj.range(this.anchor,D)}eq(M,N=!1){return!(this.anchor!=M.anchor||this.head!=M.head||N&&this.empty&&this.assoc!=M.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(M){if(!M||"number"!=typeof M.anchor||"number"!=typeof M.head)throw new RangeError("Invalid JSON representation for SelectionRange");return Pj.range(M.anchor,M.head)}static create(M,N,D){return new Gj(M,N,D)}}class Pj{constructor(M,N){this.ranges=M,this.mainIndex=N}map(M,N=-1){return M.empty?this:Pj.create(this.ranges.map((D=>D.map(M,N))),this.mainIndex)}eq(M,N=!1){if(this.ranges.length!=M.ranges.length||this.mainIndex!=M.mainIndex)return!1;for(let D=0;D<this.ranges.length;D++)if(!this.ranges[D].eq(M.ranges[D],N))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new Pj([this.main],0)}addRange(M,N=!0){return Pj.create([M].concat(this.ranges),N?0:this.mainIndex+1)}replaceRange(M,N=this.mainIndex){let D=this.ranges.slice();return D[N]=M,Pj.create(D,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((M=>M.toJSON())),main:this.mainIndex}}static fromJSON(M){if(!M||!Array.isArray(M.ranges)||"number"!=typeof M.main||M.main>=M.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Pj(M.ranges.map((M=>Gj.fromJSON(M))),M.main)}static single(M,N=M){return new Pj([Pj.range(M,N)],0)}static create(M,N=0){if(0==M.length)throw new RangeError("A selection needs at least one range");for(let D=0,i=0;i<M.length;i++){let j=M[i];if(j.empty?j.from<=D:j.from<D)return Pj.normalized(M.slice(),N);D=j.to}return new Pj(M,N)}static cursor(M,N=0,D,i){return Gj.create(M,M,(0==N?0:N<0?8:16)|(null==D?7:Math.min(6,D))|(null!=i?i:16777215)<<6)}static range(M,N,D,i){let j=(null!=D?D:16777215)<<6|(null==i?7:Math.min(6,i));return N<M?Gj.create(N,M,48|j):Gj.create(M,N,(N>M?8:0)|j)}static normalized(M,N=0){let D=M[N];M.sort(((M,N)=>M.from-N.from)),N=M.indexOf(D);for(let D=1;D<M.length;D++){let i=M[D],j=M[D-1];if(i.empty?i.from<=j.to:i.from<j.to){let t=j.from,I=Math.max(i.to,j.to);D<=N&&N--,M.splice(--D,2,i.anchor>i.head?Pj.range(I,t):Pj.range(t,I))}}return new Pj(M,N)}}function Rj(M,N){for(let D of M.ranges)if(D.to>N)throw new RangeError("Selection points outside of document")}let Bj=0;class Jj{constructor(M,N,D,i,j){this.combine=M,this.compareInput=N,this.compare=D,this.isStatic=i,this.id=Bj++,this.default=M([]),this.extensions="function"==typeof j?j(this):j}get reader(){return this}static define(M={}){return new Jj(M.combine||(M=>M),M.compareInput||((M,N)=>M===N),M.compare||(M.combine?(M,N)=>M===N:Fj),!!M.static,M.enables)}of(M){return new Hj([],this,0,M)}compute(M,N){if(this.isStatic)throw new Error("Can't compute a static facet");return new Hj(M,this,1,N)}computeN(M,N){if(this.isStatic)throw new Error("Can't compute a static facet");return new Hj(M,this,2,N)}from(M,N){return N||(N=M=>M),this.compute([M],(D=>N(D.field(M))))}}function Fj(M,N){return M==N||M.length==N.length&&M.every(((M,D)=>M===N[D]))}class Hj{constructor(M,N,D,i){this.dependencies=M,this.facet=N,this.type=D,this.value=i,this.id=Bj++}dynamicSlot(M){var N;let D=this.value,i=this.facet.compareInput,j=this.id,t=M[j]>>1,I=2==this.type,z=!1,u=!1,g=[];for(let D of this.dependencies)"doc"==D?z=!0:"selection"==D?u=!0:1&(null!==(N=M[D.id])&&void 0!==N?N:1)||g.push(M[D.id]);return{create:M=>(M.values[t]=D(M),1),update(M,N){if(z&&N.docChanged||u&&(N.docChanged||N.selection)||$j(M,g)){let N=D(M);if(I?!Xj(N,M.values[t],i):!i(N,M.values[t]))return M.values[t]=N,1}return 0},reconfigure:(M,N)=>{let z,u=N.config.address[j];if(null!=u){let j=Tt(N,u);if(this.dependencies.every((D=>D instanceof Jj?N.facet(D)===M.facet(D):!(D instanceof Kj)||N.field(D,!1)==M.field(D,!1)))||(I?Xj(z=D(M),j,i):i(z=D(M),j)))return M.values[t]=j,0}else z=D(M);return M.values[t]=z,1}}}}function Xj(M,N,D){if(M.length!=N.length)return!1;for(let i=0;i<M.length;i++)if(!D(M[i],N[i]))return!1;return!0}function $j(M,N){let D=!1;for(let i of N)1&et(M,i)&&(D=!0);return D}function _j(M,N,D){let i=D.map((N=>M[N.id])),j=D.map((M=>M.type)),t=i.filter((M=>!(1&M))),I=M[N.id]>>1;function z(M){let D=[];for(let N=0;N<i.length;N++){let t=Tt(M,i[N]);if(2==j[N])for(let M of t)D.push(M);else D.push(t)}return N.combine(D)}return{create(M){for(let N of i)et(M,N);return M.values[I]=z(M),1},update(M,D){if(!$j(M,t))return 0;let i=z(M);return N.compare(i,M.values[I])?0:(M.values[I]=i,1)},reconfigure(M,j){let t=$j(M,i),u=j.config.facets[N.id],g=j.facet(N);if(u&&!t&&Fj(D,u))return M.values[I]=g,0;let e=z(M);return N.compare(e,g)?(M.values[I]=g,0):(M.values[I]=e,1)}}}const qj=Jj.define({static:!0});class Kj{constructor(M,N,D,i,j){this.id=M,this.createF=N,this.updateF=D,this.compareF=i,this.spec=j,this.provides=void 0}static define(M){let N=new Kj(Bj++,M.create,M.update,M.compare||((M,N)=>M===N),M);return M.provide&&(N.provides=M.provide(N)),N}create(M){let N=M.facet(qj).find((M=>M.field==this));return((null==N?void 0:N.create)||this.createF)(M)}slot(M){let N=M[this.id]>>1;return{create:M=>(M.values[N]=this.create(M),1),update:(M,D)=>{let i=M.values[N],j=this.updateF(i,D);return this.compareF(i,j)?0:(M.values[N]=j,1)},reconfigure:(M,D)=>null!=D.config.address[this.id]?(M.values[N]=D.field(this),0):(M.values[N]=this.create(M),1)}}init(M){return[this,qj.of({field:this,create:M})]}get extension(){return this}}const Mt=4,Nt=3,Dt=2,it=1;function jt(M){return N=>new It(N,M)}const tt={highest:jt(0),high:jt(it),default:jt(Dt),low:jt(Nt),lowest:jt(Mt)};class It{constructor(M,N){this.inner=M,this.prec=N}}class zt{of(M){return new ut(this,M)}reconfigure(M){return zt.reconfigure.of({compartment:this,extension:M})}get(M){return M.config.compartments.get(this)}}class ut{constructor(M,N){this.compartment=M,this.inner=N}}class gt{constructor(M,N,D,i,j,t){for(this.base=M,this.compartments=N,this.dynamicSlots=D,this.address=i,this.staticValues=j,this.facets=t,this.statusTemplate=[];this.statusTemplate.length<D.length;)this.statusTemplate.push(0)}staticFacet(M){let N=this.address[M.id];return null==N?M.default:this.staticValues[N>>1]}static resolve(M,N,D){let i=[],j=Object.create(null),t=new Map;for(let D of function(M,N,D){let i=[[],[],[],[],[]],j=new Map;function t(M,I){let z=j.get(M);if(null!=z){if(z<=I)return;let N=i[z].indexOf(M);N>-1&&i[z].splice(N,1),M instanceof ut&&D.delete(M.compartment)}if(j.set(M,I),Array.isArray(M))for(let N of M)t(N,I);else if(M instanceof ut){if(D.has(M.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=N.get(M.compartment)||M.inner;D.set(M.compartment,i),t(i,I)}else if(M instanceof It)t(M.inner,M.prec);else if(M instanceof Kj)i[I].push(M),M.provides&&t(M.provides,I);else if(M instanceof Hj)i[I].push(M),M.facet.extensions&&t(M.facet.extensions,Dt);else{let N=M.extension;if(!N)throw new Error(`Unrecognized extension value in extension set (${M}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(N,I)}}return t(M,Dt),i.reduce(((M,N)=>M.concat(N)))}(M,N,t))D instanceof Kj?i.push(D):(j[D.facet.id]||(j[D.facet.id]=[])).push(D);let I=Object.create(null),z=[],u=[];for(let M of i)I[M.id]=u.length<<1,u.push((N=>M.slot(N)));let g=null==D?void 0:D.config.facets;for(let M in j){let N=j[M],i=N[0].facet,t=g&&g[M]||[];if(N.every((M=>0==M.type)))if(I[i.id]=z.length<<1|1,Fj(t,N))z.push(D.facet(i));else{let M=i.combine(N.map((M=>M.value)));z.push(D&&i.compare(M,D.facet(i))?D.facet(i):M)}else{for(let M of N)0==M.type?(I[M.id]=z.length<<1|1,z.push(M.value)):(I[M.id]=u.length<<1,u.push((N=>M.dynamicSlot(N))));I[i.id]=u.length<<1,u.push((M=>_j(M,i,N)))}}let e=u.map((M=>M(I)));return new gt(M,t,e,I,z,j)}}function et(M,N){if(1&N)return 2;let D=N>>1,i=M.status[D];if(4==i)throw new Error("Cyclic dependency between fields and/or facets");if(2&i)return i;M.status[D]=4;let j=M.computeSlot(M,M.config.dynamicSlots[D]);return M.status[D]=2|j}function Tt(M,N){return 1&N?M.config.staticValues[N>>1]:M.values[N>>1]}const At=Jj.define(),st=Jj.define({combine:M=>M.some((M=>M)),static:!0}),Lt=Jj.define({combine:M=>M.length?M[0]:void 0,static:!0}),Ot=Jj.define(),yt=Jj.define(),ct=Jj.define(),nt=Jj.define({combine:M=>!!M.length&&M[0]});class lt{constructor(M,N){this.type=M,this.value=N}static define(){return new ot}}class ot{of(M){return new lt(this,M)}}class rt{constructor(M){this.map=M}of(M){return new xt(this,M)}}class xt{constructor(M,N){this.type=M,this.value=N}map(M){let N=this.type.map(this.value,M);return void 0===N?void 0:N==this.value?this:new xt(this.type,N)}is(M){return this.type==M}static define(M={}){return new rt(M.map||(M=>M))}static mapEffects(M,N){if(!M.length)return M;let D=[];for(let i of M){let M=i.map(N);M&&D.push(M)}return D}}xt.reconfigure=xt.define(),xt.appendConfig=xt.define();class at{constructor(M,N,D,i,j,t){this.startState=M,this.changes=N,this.selection=D,this.effects=i,this.annotations=j,this.scrollIntoView=t,this._doc=null,this._state=null,D&&Rj(D,N.newLength),j.some((M=>M.type==at.time))||(this.annotations=j.concat(at.time.of(Date.now())))}static create(M,N,D,i,j,t){return new at(M,N,D,i,j,t)}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(M){for(let N of this.annotations)if(N.type==M)return N.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(M){let N=this.annotation(at.userEvent);return!(!N||!(N==M||N.length>M.length&&N.slice(0,M.length)==M&&"."==N[M.length]))}}function Qt(M,N){let D=[];for(let i=0,j=0;;){let t,I;if(i<M.length&&(j==N.length||N[j]>=M[i]))t=M[i++],I=M[i++];else{if(!(j<N.length))return D;t=N[j++],I=N[j++]}!D.length||D[D.length-1]<t?D.push(t,I):D[D.length-1]<I&&(D[D.length-1]=I)}}function Et(M,N,D){var i;let j,t,I;return D?(j=N.changes,t=pj.empty(N.changes.length),I=M.changes.compose(N.changes)):(j=N.changes.map(M.changes),t=M.changes.mapDesc(N.changes,!0),I=M.changes.compose(j)),{changes:I,selection:N.selection?N.selection.map(t):null===(i=M.selection)||void 0===i?void 0:i.map(j),effects:xt.mapEffects(M.effects,j).concat(xt.mapEffects(N.effects,t)),annotations:M.annotations.length?M.annotations.concat(N.annotations):N.annotations,scrollIntoView:M.scrollIntoView||N.scrollIntoView}}function St(M,N,D){let i=N.selection,j=kt(N.annotations);return N.userEvent&&(j=j.concat(at.userEvent.of(N.userEvent))),{changes:N.changes instanceof pj?N.changes:pj.of(N.changes||[],D,M.facet(Lt)),selection:i&&(i instanceof Pj?i:Pj.single(i.anchor,i.head)),effects:kt(N.effects),annotations:j,scrollIntoView:!!N.scrollIntoView}}function ht(M,N,D){let i=St(M,N.length?N[0]:{},M.doc.length);N.length&&!1===N[0].filter&&(D=!1);for(let j=1;j<N.length;j++){!1===N[j].filter&&(D=!1);let t=!!N[j].sequential;i=Et(i,St(M,N[j],t?i.changes.newLength:M.doc.length),t)}let j=at.create(M,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return function(M){let N=M.startState,D=N.facet(ct),i=M;for(let j=D.length-1;j>=0;j--){let t=D[j](M);t&&Object.keys(t).length&&(i=Et(i,St(N,t,M.changes.newLength),!0))}return i==M?M:at.create(N,M.changes,M.selection,i.effects,i.annotations,i.scrollIntoView)}(D?function(M){let N=M.startState,D=!0;for(let i of N.facet(Ot)){let N=i(M);if(!1===N){D=!1;break}Array.isArray(N)&&(D=!0===D?N:Qt(D,N))}if(!0!==D){let i,j;if(!1===D)j=M.changes.invertedDesc,i=pj.empty(N.doc.length);else{let N=M.changes.filter(D);i=N.changes,j=N.filtered.mapDesc(N.changes).invertedDesc}M=at.create(N,i,M.selection&&M.selection.map(j),xt.mapEffects(M.effects,j),M.annotations,M.scrollIntoView)}let i=N.facet(yt);for(let D=i.length-1;D>=0;D--){let j=i[D](M);M=j instanceof at?j:Array.isArray(j)&&1==j.length&&j[0]instanceof at?j[0]:ht(N,kt(j),!1)}return M}(j):j)}at.time=lt.define(),at.userEvent=lt.define(),at.addToHistory=lt.define(),at.remote=lt.define();const dt=[];function kt(M){return null==M?dt:Array.isArray(M)?M:[M]}var wt=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(wt||(wt={}));const Ut=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Yt;try{Yt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(lM){}function Ct(M){return N=>{if(!/\S/.test(N))return wt.Space;if(function(M){if(Yt)return Yt.test(M);for(let N=0;N<M.length;N++){let D=M[N];if(/\w/.test(D)||D>"€"&&(D.toUpperCase()!=D.toLowerCase()||Ut.test(D)))return!0}return!1}(N))return wt.Word;for(let D=0;D<M.length;D++)if(N.indexOf(M[D])>-1)return wt.Word;return wt.Other}}class bt{constructor(M,N,D,i,j,t){this.config=M,this.doc=N,this.selection=D,this.values=i,this.status=M.statusTemplate.slice(),this.computeSlot=j,t&&(t._state=this);for(let M=0;M<this.config.dynamicSlots.length;M++)et(this,M<<1);this.computeSlot=null}field(M,N=!0){let D=this.config.address[M.id];if(null!=D)return et(this,D),Tt(this,D);if(N)throw new RangeError("Field is not present in this state")}update(...M){return ht(this,M,!0)}applyTransaction(M){let N,D=this.config,{base:i,compartments:j}=D;for(let N of M.effects)N.is(zt.reconfigure)?(D&&(j=new Map,D.compartments.forEach(((M,N)=>j.set(N,M))),D=null),j.set(N.value.compartment,N.value.extension)):N.is(xt.reconfigure)?(D=null,i=N.value):N.is(xt.appendConfig)&&(D=null,i=kt(i).concat(N.value));if(D)N=M.startState.values.slice();else{D=gt.resolve(i,j,this),N=new bt(D,this.doc,this.selection,D.dynamicSlots.map((()=>null)),((M,N)=>N.reconfigure(M,this)),null).values}let t=M.startState.facet(st)?M.newSelection:M.newSelection.asSingle();new bt(D,M.newDoc,t,N,((N,D)=>D.update(N,M)),M)}replaceSelection(M){return"string"==typeof M&&(M=this.toText(M)),this.changeByRange((N=>({changes:{from:N.from,to:N.to,insert:M},range:Pj.cursor(N.from+M.length)})))}changeByRange(M){let N=this.selection,D=M(N.ranges[0]),i=this.changes(D.changes),j=[D.range],t=kt(D.effects);for(let D=1;D<N.ranges.length;D++){let I=M(N.ranges[D]),z=this.changes(I.changes),u=z.map(i);for(let M=0;M<D;M++)j[M]=j[M].map(u);let g=i.mapDesc(z,!0);j.push(I.range.map(g)),i=i.compose(u),t=xt.mapEffects(t,u).concat(xt.mapEffects(kt(I.effects),g))}return{changes:i,selection:Pj.create(j,N.mainIndex),effects:t}}changes(M=[]){return M instanceof pj?M:pj.of(M,this.doc.length,this.facet(bt.lineSeparator))}toText(M){return ej.of(M.split(this.facet(bt.lineSeparator)||Yj))}sliceDoc(M=0,N=this.doc.length){return this.doc.sliceString(M,N,this.lineBreak)}facet(M){let N=this.config.address[M.id];return null==N?M.default:(et(this,N),Tt(this,N))}toJSON(M){let N={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(M)for(let D in M){let i=M[D];i instanceof Kj&&null!=this.config.address[i.id]&&(N[D]=i.spec.toJSON(this.field(M[D]),this))}return N}static fromJSON(M,N={},D){if(!M||"string"!=typeof M.doc)throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(D)for(let N in D)if(Object.prototype.hasOwnProperty.call(M,N)){let j=D[N],t=M[N];i.push(j.init((M=>j.spec.fromJSON(t,M))))}return bt.create({doc:M.doc,selection:Pj.fromJSON(M.selection),extensions:N.extensions?i.concat([N.extensions]):i})}static create(M={}){let N=gt.resolve(M.extensions||[],new Map),D=M.doc instanceof ej?M.doc:ej.of((M.doc||"").split(N.staticFacet(bt.lineSeparator)||Yj)),i=M.selection?M.selection instanceof Pj?M.selection:Pj.single(M.selection.anchor,M.selection.head):Pj.single(0);return Rj(i,D.length),N.staticFacet(st)||(i=i.asSingle()),new bt(N,D,i,N.dynamicSlots.map((()=>null)),((M,N)=>N.create(M)),null)}get tabSize(){return this.facet(bt.tabSize)}get lineBreak(){return this.facet(bt.lineSeparator)||"\n"}get readOnly(){return this.facet(nt)}phrase(M,...N){for(let N of this.facet(bt.phrases))if(Object.prototype.hasOwnProperty.call(N,M)){M=N[M];break}return N.length&&(M=M.replace(/\$(\$|\d*)/g,((M,D)=>{if("$"==D)return"$";let i=+(D||1);return!i||i>N.length?M:N[i-1]}))),M}languageDataAt(M,N,D=-1){let i=[];for(let j of this.facet(At))for(let t of j(this,N,D))Object.prototype.hasOwnProperty.call(t,M)&&i.push(t[M]);return i}charCategorizer(M){return Ct(this.languageDataAt("wordChars",M).join(""))}wordAt(M){let{text:N,from:D,length:i}=this.doc.lineAt(M),j=this.charCategorizer(M),t=M-D,I=M-D;for(;t>0;){let M=Qj(N,t,!1);if(j(N.slice(M,t))!=wt.Word)break;t=M}for(;I<i;){let M=Qj(N,I);if(j(N.slice(I,M))!=wt.Word)break;I=M}return t==I?null:Pj.range(t+D,I+D)}}function pt(M,N,D={}){let i={};for(let N of M)for(let M of Object.keys(N)){let j=N[M],t=i[M];if(void 0===t)i[M]=j;else if(t===j||void 0===j);else{if(!Object.hasOwnProperty.call(D,M))throw new Error("Config merge conflict for field "+M);i[M]=D[M](t,j)}}for(let M in N)void 0===i[M]&&(i[M]=N[M]);return i}bt.allowMultipleSelections=st,bt.tabSize=Jj.define({combine:M=>M.length?M[0]:4}),bt.lineSeparator=Lt,bt.readOnly=nt,bt.phrases=Jj.define({compare(M,N){let D=Object.keys(M),i=Object.keys(N);return D.length==i.length&&D.every((D=>M[D]==N[D]))}}),bt.languageData=At,bt.changeFilter=Ot,bt.transactionFilter=yt,bt.transactionExtender=ct,zt.reconfigure=xt.define();class mt{eq(M){return this==M}range(M,N=M){return Zt.create(M,N,this)}}mt.prototype.startSide=mt.prototype.endSide=0,mt.prototype.point=!1,mt.prototype.mapMode=Cj.TrackDel;let Zt=class M{constructor(M,N,D){this.from=M,this.to=N,this.value=D}static create(N,D,i){return new M(N,D,i)}};function ft(M,N){return M.from-N.from||M.value.startSide-N.value.startSide}class vt{constructor(M,N,D,i){this.from=M,this.to=N,this.value=D,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(M,N,D,i=0){let j=D?this.to:this.from;for(let t=i,I=j.length;;){if(t==I)return t;let i=t+I>>1,z=j[i]-M||(D?this.value[i].endSide:this.value[i].startSide)-N;if(i==t)return z>=0?t:I;z>=0?I=i:t=i+1}}between(M,N,D,i){for(let j=this.findIndex(N,-1e9,!0),t=this.findIndex(D,1e9,!1,j);j<t;j++)if(!1===i(this.from[j]+M,this.to[j]+M,this.value[j]))return!1}map(M,N){let D=[],i=[],j=[],t=-1,I=-1;for(let z=0;z<this.value.length;z++){let u,g,e=this.value[z],T=this.from[z]+M,A=this.to[z]+M;if(T==A){let M=N.mapPos(T,e.startSide,e.mapMode);if(null==M)continue;if(u=g=M,e.startSide!=e.endSide&&(g=N.mapPos(T,e.endSide),g<u))continue}else if(u=N.mapPos(T,e.startSide),g=N.mapPos(A,e.endSide),u>g||u==g&&e.startSide>0&&e.endSide<=0)continue;(g-u||e.endSide-e.startSide)<0||(t<0&&(t=u),e.point&&(I=Math.max(I,g-u)),D.push(e),i.push(u-t),j.push(g-t))}return{mapped:D.length?new vt(i,j,D,I):null,pos:t}}}class Wt{constructor(M,N,D,i){this.chunkPos=M,this.chunk=N,this.nextLayer=D,this.maxPoint=i}static create(M,N,D,i){return new Wt(M,N,D,i)}get length(){let M=this.chunk.length-1;return M<0?0:Math.max(this.chunkEnd(M),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let M=this.nextLayer.size;for(let N of this.chunk)M+=N.value.length;return M}chunkEnd(M){return this.chunkPos[M]+this.chunk[M].length}update(M){let{add:N=[],sort:D=!1,filterFrom:i=0,filterTo:j=this.length}=M,t=M.filter;if(0==N.length&&!t)return this;if(D&&(N=N.slice().sort(ft)),this.isEmpty)return N.length?Wt.of(N):this;let I=new Pt(this,null,-1).goto(0),z=0,u=[],g=new Vt;for(;I.value||z<N.length;)if(z<N.length&&(I.from-N[z].from||I.startSide-N[z].value.startSide)>=0){let M=N[z++];g.addInner(M.from,M.to,M.value)||u.push(M)}else 1==I.rangeIndex&&I.chunkIndex<this.chunk.length&&(z==N.length||this.chunkEnd(I.chunkIndex)<N[z].from)&&(!t||i>this.chunkEnd(I.chunkIndex)||j<this.chunkPos[I.chunkIndex])&&g.addChunk(this.chunkPos[I.chunkIndex],this.chunk[I.chunkIndex])?I.nextChunk():((!t||i>I.to||j<I.from||t(I.from,I.to,I.value))&&(g.addInner(I.from,I.to,I.value)||u.push(Zt.create(I.from,I.to,I.value))),I.next());return g.finishInner(this.nextLayer.isEmpty&&!u.length?Wt.empty:this.nextLayer.update({add:u,filter:t,filterFrom:i,filterTo:j}))}map(M){if(M.empty||this.isEmpty)return this;let N=[],D=[],i=-1;for(let j=0;j<this.chunk.length;j++){let t=this.chunkPos[j],I=this.chunk[j],z=M.touchesRange(t,t+I.length);if(!1===z)i=Math.max(i,I.maxPoint),N.push(I),D.push(M.mapPos(t));else if(!0===z){let{mapped:j,pos:z}=I.map(t,M);j&&(i=Math.max(i,j.maxPoint),N.push(j),D.push(z))}}let j=this.nextLayer.map(M);return 0==N.length?j:new Wt(D,N,j||Wt.empty,i)}between(M,N,D){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let j=this.chunkPos[i],t=this.chunk[i];if(N>=j&&M<=j+t.length&&!1===t.between(j,M-j,N-j,D))return}this.nextLayer.between(M,N,D)}}iter(M=0){return Rt.from([this]).goto(M)}get isEmpty(){return this.nextLayer==this}static iter(M,N=0){return Rt.from(M).goto(N)}static compare(M,N,D,i,j=-1){let t=M.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=j)),I=N.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=j)),z=Gt(t,I,D),u=new Jt(t,z,j),g=new Jt(I,z,j);D.iterGaps(((M,N,D)=>Ft(u,M,g,N,D,i))),D.empty&&0==D.length&&Ft(u,0,g,0,0,i)}static eq(M,N,D=0,i){null==i&&(i=999999999);let j=M.filter((M=>!M.isEmpty&&N.indexOf(M)<0)),t=N.filter((N=>!N.isEmpty&&M.indexOf(N)<0));if(j.length!=t.length)return!1;if(!j.length)return!0;let I=Gt(j,t),z=new Jt(j,I,0).goto(D),u=new Jt(t,I,0).goto(D);for(;;){if(z.to!=u.to||!Ht(z.active,u.active)||z.point&&(!u.point||!z.point.eq(u.point)))return!1;if(z.to>i)return!0;z.next(),u.next()}}static spans(M,N,D,i,j=-1){let t=new Jt(M,null,j).goto(N),I=N,z=t.openStart;for(;;){let M=Math.min(t.to,D);if(t.point){let D=t.activeForPoint(t.to),j=t.pointFrom<N?D.length+1:t.point.startSide<0?D.length:Math.min(D.length,z);i.point(I,M,t.point,D,j,t.pointRank),z=Math.min(t.openEnd(M),D.length)}else M>I&&(i.span(I,M,t.active,z),z=t.openEnd(M));if(t.to>D)return z+(t.point&&t.to>D?1:0);I=t.to,t.next()}}static of(M,N=!1){let D=new Vt;for(let i of M instanceof Zt?[M]:N?function(M){if(M.length>1)for(let N=M[0],D=1;D<M.length;D++){let i=M[D];if(ft(N,i)>0)return M.slice().sort(ft);N=i}return M}(M):M)D.add(i.from,i.to,i.value);return D.finish()}static join(M){if(!M.length)return Wt.empty;let N=M[M.length-1];for(let D=M.length-2;D>=0;D--)for(let i=M[D];i!=Wt.empty;i=i.nextLayer)N=new Wt(i.chunkPos,i.chunk,N,Math.max(i.maxPoint,N.maxPoint));return N}}Wt.empty=new Wt([],[],null,-1),Wt.empty.nextLayer=Wt.empty;class Vt{finishChunk(M){this.chunks.push(new vt(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,M&&(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(M,N,D){this.addInner(M,N,D)||(this.nextLayer||(this.nextLayer=new Vt)).add(M,N,D)}addInner(M,N,D){let i=M-this.lastTo||D.startSide-this.last.endSide;if(i<=0&&(M-this.lastFrom||D.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(i<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=M),this.from.push(M-this.chunkStart),this.to.push(N-this.chunkStart),this.last=D,this.lastFrom=M,this.lastTo=N,this.value.push(D),D.point&&(this.maxPoint=Math.max(this.maxPoint,N-M)),!0)}addChunk(M,N){if((M-this.lastTo||N.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,N.maxPoint),this.chunks.push(N),this.chunkPos.push(M);let D=N.value.length-1;return this.last=N.value[D],this.lastFrom=N.from[D]+M,this.lastTo=N.to[D]+M,!0}finish(){return this.finishInner(Wt.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let N=Wt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(M):M,this.setMaxPoint);return this.from=null,N}}function Gt(M,N,D){let i=new Map;for(let N of M)for(let M=0;M<N.chunk.length;M++)N.chunk[M].maxPoint<=0&&i.set(N.chunk[M],N.chunkPos[M]);let j=new Set;for(let M of N)for(let N=0;N<M.chunk.length;N++){let t=i.get(M.chunk[N]);null==t||(D?D.mapPos(t):t)!=M.chunkPos[N]||(null==D?void 0:D.touchesRange(t,t+M.chunk[N].length))||j.add(M.chunk[N])}return j}class Pt{constructor(M,N,D,i=0){this.layer=M,this.skip=N,this.minPoint=D,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(M,N=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(M,N,!1),this}gotoInner(M,N,D){for(;this.chunkIndex<this.layer.chunk.length;){let N=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(N)||this.layer.chunkEnd(this.chunkIndex)<M||N.maxPoint<this.minPoint))break;this.chunkIndex++,D=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(M-this.layer.chunkPos[this.chunkIndex],N,!0);(!D||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(M,N){(this.to-M||this.endSide-N)<0&&this.gotoInner(M,N,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let M=this.layer.chunkPos[this.chunkIndex],N=this.layer.chunk[this.chunkIndex],D=M+N.from[this.rangeIndex];if(this.from=D,this.to=M+N.to[this.rangeIndex],this.value=N.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(M){if(M==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=M}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(M){return this.from-M.from||this.startSide-M.startSide||this.rank-M.rank||this.to-M.to||this.endSide-M.endSide}}class Rt{constructor(M){this.heap=M}static from(M,N=null,D=-1){let i=[];for(let j=0;j<M.length;j++)for(let t=M[j];!t.isEmpty;t=t.nextLayer)t.maxPoint>=D&&i.push(new Pt(t,N,D,j));return 1==i.length?i[0]:new Rt(i)}get startSide(){return this.value?this.value.startSide:0}goto(M,N=-1e9){for(let D of this.heap)D.goto(M,N);for(let M=this.heap.length>>1;M>=0;M--)Bt(this.heap,M);return this.next(),this}forward(M,N){for(let D of this.heap)D.forward(M,N);for(let M=this.heap.length>>1;M>=0;M--)Bt(this.heap,M);(this.to-M||this.value.endSide-N)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let M=this.heap[0];this.from=M.from,this.to=M.to,this.value=M.value,this.rank=M.rank,M.value&&M.next(),Bt(this.heap,0)}}}function Bt(M,N){for(let D=M[N];;){let i=1+(N<<1);if(i>=M.length)break;let j=M[i];if(i+1<M.length&&j.compare(M[i+1])>=0&&(j=M[i+1],i++),D.compare(j)<0)break;M[i]=D,M[N]=j,N=i}}class Jt{constructor(M,N,D){this.minPoint=D,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=Rt.from(M,N,D)}goto(M,N=-1e9){return this.cursor.goto(M,N),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=M,this.endSide=N,this.openStart=-1,this.next(),this}forward(M,N){for(;this.minActive>-1&&(this.activeTo[this.minActive]-M||this.active[this.minActive].endSide-N)<0;)this.removeActive(this.minActive);this.cursor.forward(M,N)}removeActive(M){Xt(this.active,M),Xt(this.activeTo,M),Xt(this.activeRank,M),this.minActive=_t(this.active,this.activeTo)}addActive(M){let N=0,{value:D,to:i,rank:j}=this.cursor;for(;N<this.activeRank.length&&(j-this.activeRank[N]||i-this.activeTo[N])>0;)N++;$t(this.active,N,D),$t(this.activeTo,N,i),$t(this.activeRank,N,j),M&&$t(M,N,this.cursor.from),this.minActive=_t(this.active,this.activeTo)}next(){let M=this.to,N=this.point;this.point=null;let D=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>M){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),D&&Xt(D,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>M){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let M=this.cursor.value;if(M.point){if(!(N&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)){this.point=M,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=M.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(D),this.cursor.next()}}}if(D){this.openStart=0;for(let N=D.length-1;N>=0&&D[N]<M;N--)this.openStart++}}activeForPoint(M){if(!this.active.length)return this.active;let N=[];for(let D=this.active.length-1;D>=0&&!(this.activeRank[D]<this.pointRank);D--)(this.activeTo[D]>M||this.activeTo[D]==M&&this.active[D].endSide>=this.point.endSide)&&N.push(this.active[D]);return N.reverse()}openEnd(M){let N=0;for(let D=this.activeTo.length-1;D>=0&&this.activeTo[D]>M;D--)N++;return N}}function Ft(M,N,D,i,j,t){M.goto(N),D.goto(i);let I=i+j,z=i,u=i-N;for(;;){let N=M.to+u-D.to||M.endSide-D.endSide,i=N<0?M.to+u:D.to,j=Math.min(i,I);if(M.point||D.point?M.point&&D.point&&(M.point==D.point||M.point.eq(D.point))&&Ht(M.activeForPoint(M.to),D.activeForPoint(D.to))||t.comparePoint(z,j,M.point,D.point):j>z&&!Ht(M.active,D.active)&&t.compareRange(z,j,M.active,D.active),i>I)break;z=i,N<=0&&M.next(),N>=0&&D.next()}}function Ht(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++)if(M[D]!=N[D]&&!M[D].eq(N[D]))return!1;return!0}function Xt(M,N){for(let D=N,i=M.length-1;D<i;D++)M[D]=M[D+1];M.pop()}function $t(M,N,D){for(let D=M.length-1;D>=N;D--)M[D+1]=M[D];M[N]=D}function _t(M,N){let D=-1,i=1e9;for(let j=0;j<N.length;j++)(N[j]-i||M[j].endSide-M[D].endSide)<0&&(D=j,i=N[j]);return D}function qt(M,N,D=M.length){let i=0;for(let j=0;j<D;)9==M.charCodeAt(j)?(i+=N-i%N,j++):(i++,j=Qj(M,j));return i}function Kt(M,N,D,i){for(let i=0,j=0;;){if(j>=N)return i;if(i==M.length)break;j+=9==M.charCodeAt(i)?D-j%D:1,i=Qj(M,i)}return!0===i?-1:M.length}const MI="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),NI="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),DI="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class iI{constructor(M,N){this.rules=[];let{finish:D}=N||{};function i(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function j(M,N,t,I){let z=[],u=/^@(\w+)\b/.exec(M[0]),g=u&&"keyframes"==u[1];if(u&&null==N)return t.push(M[0]+";");for(let D in N){let I=N[D];if(/&/.test(D))j(D.split(/,\s*/).map((N=>M.map((M=>N.replace(/&/,M))))).reduce(((M,N)=>M.concat(N))),I,t);else if(I&&"object"==typeof I){if(!u)throw new RangeError("The value of a property ("+D+") should be a primitive value.");j(i(D),I,z,g)}else null!=I&&z.push(D.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+I+";")}(z.length||g)&&t.push((!D||u||I?M:M.map(D)).join(", ")+" {"+z.join(" ")+"}")}for(let N in M)j(i(N),M[N],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=DI[MI]||1;return DI[MI]=M+1,"ͼ"+M.toString(36)}static mount(M,N,D){let i=M[NI],j=D&&D.nonce;i?j&&i.setNonce(j):i=new tI(M,j),i.mount(Array.isArray(N)?N:[N],M)}}let jI=new Map;class tI{constructor(M,N){let D=M.ownerDocument||M,i=D.defaultView;if(!M.head&&M.adoptedStyleSheets&&i.CSSStyleSheet){let N=jI.get(D);if(N)return M[NI]=N;this.sheet=new i.CSSStyleSheet,jI.set(D,this)}else this.styleTag=D.createElement("style"),N&&this.styleTag.setAttribute("nonce",N);this.modules=[],M[NI]=this}mount(M,N){let D=this.sheet,i=0,j=0;for(let N=0;N<M.length;N++){let t=M[N],I=this.modules.indexOf(t);if(I<j&&I>-1&&(this.modules.splice(I,1),j--,I=-1),-1==I){if(this.modules.splice(j++,0,t),D)for(let M=0;M<t.rules.length;M++)D.insertRule(t.rules[M],i++)}else{for(;j<I;)i+=this.modules[j++].rules.length;i+=t.rules.length,j++}}if(D)N.adoptedStyleSheets.indexOf(this.sheet)<0&&(N.adoptedStyleSheets=[this.sheet,...N.adoptedStyleSheets]);else{let M="";for(let N=0;N<this.modules.length;N++)M+=this.modules[N].getRules()+"\n";this.styleTag.textContent=M;let D=N.head||N;this.styleTag.parentNode!=D&&D.insertBefore(this.styleTag,D.firstChild)}}setNonce(M){this.styleTag&&this.styleTag.getAttribute("nonce")!=M&&this.styleTag.setAttribute("nonce",M)}}for(var II={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},zI={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},uI="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),gI="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),eI=0;eI<10;eI++)II[48+eI]=II[96+eI]=String(eI);for(eI=1;eI<=24;eI++)II[eI+111]="F"+eI;for(eI=65;eI<=90;eI++)II[eI]=String.fromCharCode(eI+32),zI[eI]=String.fromCharCode(eI);for(var TI in II)zI.hasOwnProperty(TI)||(zI[TI]=II[TI]);function AI(M){let N;return N=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,N.getSelection()}function sI(M,N){return!!N&&(M==N||M.contains(1!=N.nodeType?N.parentNode:N))}function LI(M,N){if(!N.anchorNode)return!1;try{return sI(M,N.anchorNode)}catch(M){return!1}}function OI(M){return 3==M.nodeType?dI(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function yI(M,N,D,i){return!!D&&(lI(M,N,D,i,-1)||lI(M,N,D,i,1))}function cI(M){for(var N=0;;N++)if(!(M=M.previousSibling))return N}function nI(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}function lI(M,N,D,i,j){for(;;){if(M==D&&N==i)return!0;if(N==(j<0?0:oI(M))){if("DIV"==M.nodeName)return!1;let D=M.parentNode;if(!D||1!=D.nodeType)return!1;N=cI(M)+(j<0?0:1),M=D}else{if(1!=M.nodeType)return!1;if(1==(M=M.childNodes[N+(j<0?-1:0)]).nodeType&&"false"==M.contentEditable)return!1;N=j<0?oI(M):0}}}function oI(M){return 3==M.nodeType?M.nodeValue.length:M.childNodes.length}function rI(M,N){let D=N?M.left:M.right;return{left:D,right:D,top:M.top,bottom:M.bottom}}function xI(M){let N=M.visualViewport;return N?{left:0,right:N.width,top:0,bottom:N.height}:{left:0,right:M.innerWidth,top:0,bottom:M.innerHeight}}function aI(M,N){let D=N.width/M.offsetWidth,i=N.height/M.offsetHeight;return(D>.995&&D<1.005||!isFinite(D)||Math.abs(N.width-M.offsetWidth)<1)&&(D=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(N.height-M.offsetHeight)<1)&&(i=1),{scaleX:D,scaleY:i}}class QI{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(M){return this.anchorNode==M.anchorNode&&this.anchorOffset==M.anchorOffset&&this.focusNode==M.focusNode&&this.focusOffset==M.focusOffset}setRange(M){let{anchorNode:N,focusNode:D}=M;this.set(N,Math.min(M.anchorOffset,N?oI(N):0),D,Math.min(M.focusOffset,D?oI(D):0))}set(M,N,D,i){this.anchorNode=M,this.anchorOffset=N,this.focusNode=D,this.focusOffset=i}}let EI,SI=null;function hI(M){if(M.setActive)return M.setActive();if(SI)return M.focus(SI);let N=[];for(let D=M;D&&(N.push(D,D.scrollTop,D.scrollLeft),D!=D.ownerDocument);D=D.parentNode);if(M.focus(null==SI?{get preventScroll(){return SI={preventScroll:!0},!0}}:void 0),!SI){SI=!1;for(let M=0;M<N.length;){let D=N[M++],i=N[M++],j=N[M++];D.scrollTop!=i&&(D.scrollTop=i),D.scrollLeft!=j&&(D.scrollLeft=j)}}}function dI(M,N,D=N){let i=EI||(EI=document.createRange());return i.setEnd(M,D),i.setStart(M,N),i}function kI(M,N,D,i){let j={key:N,code:N,keyCode:D,which:D,cancelable:!0};i&&({altKey:j.altKey,ctrlKey:j.ctrlKey,shiftKey:j.shiftKey,metaKey:j.metaKey}=i);let t=new KeyboardEvent("keydown",j);t.synthetic=!0,M.dispatchEvent(t);let I=new KeyboardEvent("keyup",j);return I.synthetic=!0,M.dispatchEvent(I),t.defaultPrevented||I.defaultPrevented}function wI(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function UI(M){return M.scrollTop>Math.max(1,M.scrollHeight-M.clientHeight-4)}function YI(M,N){for(let D=M,i=N;;){if(3==D.nodeType&&i>0)return{node:D,offset:i};if(1==D.nodeType&&i>0){if("false"==D.contentEditable)return null;D=D.childNodes[i-1],i=oI(D)}else{if(!D.parentNode||nI(D))return null;i=cI(D),D=D.parentNode}}}function CI(M,N){for(let D=M,i=N;;){if(3==D.nodeType&&i<D.nodeValue.length)return{node:D,offset:i};if(1==D.nodeType&&i<D.childNodes.length){if("false"==D.contentEditable)return null;D=D.childNodes[i],i=0}else{if(!D.parentNode||nI(D))return null;i=cI(D)+1,D=D.parentNode}}}class bI{constructor(M,N,D=!0){this.node=M,this.offset=N,this.precise=D}static before(M,N){return new bI(M.parentNode,cI(M),N)}static after(M,N){return new bI(M.parentNode,cI(M)+1,N)}}const pI=[];class mI{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(M){let N=this.posAtStart;for(let D of this.children){if(D==M)return N;N+=D.length+D.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(M){return this.posBefore(M)+M.length}sync(M,N){if(2&this.flags){let D,i=this.dom,j=null;for(let t of this.children){if(7&t.flags){if(!t.dom&&(D=j?j.nextSibling:i.firstChild)){let M=mI.get(D);(!M||!M.parent&&M.canReuseDOM(t))&&t.reuseDOM(D)}t.sync(M,N),t.flags&=-8}if(D=j?j.nextSibling:i.firstChild,N&&!N.written&&N.node==i&&D!=t.dom&&(N.written=!0),t.dom.parentNode==i)for(;D&&D!=t.dom;)D=ZI(D);else i.insertBefore(t.dom,D);j=t.dom}for(D=j?j.nextSibling:i.firstChild,D&&N&&N.node==i&&(N.written=!0);D;)D=ZI(D)}else if(1&this.flags)for(let D of this.children)7&D.flags&&(D.sync(M,N),D.flags&=-8)}reuseDOM(M){}localPosFromDOM(M,N){let D;if(M==this.dom)D=this.dom.childNodes[N];else{let i=0==oI(M)?0:0==N?-1:1;for(;;){let N=M.parentNode;if(N==this.dom)break;0==i&&N.firstChild!=N.lastChild&&(i=M==N.firstChild?-1:1),M=N}D=i<0?M:M.nextSibling}if(D==this.dom.firstChild)return 0;for(;D&&!mI.get(D);)D=D.nextSibling;if(!D)return this.length;for(let M=0,N=0;;M++){let i=this.children[M];if(i.dom==D)return N;N+=i.length+i.breakAfter}}domBoundsAround(M,N,D=0){let i=-1,j=-1,t=-1,I=-1;for(let z=0,u=D,g=D;z<this.children.length;z++){let D=this.children[z],e=u+D.length;if(u<M&&e>N)return D.domBoundsAround(M,N,u);if(e>=M&&-1==i&&(i=z,j=u),u>N&&D.dom.parentNode==this.dom){t=z,I=g;break}g=e,u=e+D.breakAfter}return{from:j,to:I<0?D+this.length:I,startDOM:(i?this.children[i-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:t<this.children.length&&t>=0?this.children[t].dom:null}}markDirty(M=!1){this.flags|=2,this.markParentsDirty(M)}markParentsDirty(M){for(let N=this.parent;N;N=N.parent){if(M&&(N.flags|=2),1&N.flags)return;N.flags|=1,M=!1}}setParent(M){this.parent!=M&&(this.parent=M,7&this.flags&&this.markParentsDirty(!0))}setDOM(M){this.dom!=M&&(this.dom&&(this.dom.cmView=null),this.dom=M,M.cmView=this)}get rootView(){for(let M=this;;){let N=M.parent;if(!N)return M;M=N}}replaceChildren(M,N,D=pI){this.markDirty();for(let i=M;i<N;i++){let M=this.children[i];M.parent==this&&D.indexOf(M)<0&&M.destroy()}this.children.splice(M,N-M,...D);for(let M=0;M<D.length;M++)D[M].setParent(this)}ignoreMutation(M){return!1}ignoreEvent(M){return!1}childCursor(M=this.length){return new fI(this.children,M,this.children.length)}childPos(M,N=1){return this.childCursor().findPos(M,N)}toString(){let M=this.constructor.name.replace("View","");return M+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==M?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(M){return M.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(M,N,D,i,j,t){return!1}become(M){return!1}canReuseDOM(M){return M.constructor==this.constructor&&!(8&(this.flags|M.flags))}getSide(){return 0}destroy(){for(let M of this.children)M.parent==this&&M.destroy();this.parent=null}}function ZI(M){let N=M.nextSibling;return M.parentNode.removeChild(M),N}mI.prototype.breakAfter=0;class fI{constructor(M,N,D){this.children=M,this.pos=N,this.i=D,this.off=0}findPos(M,N=1){for(;;){if(M>this.pos||M==this.pos&&(N>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=M-this.pos,this;let D=this.children[--this.i];this.pos-=D.length+D.breakAfter}}}function vI(M,N,D,i,j,t,I,z,u){let{children:g}=M,e=g.length?g[N]:null,T=t.length?t[t.length-1]:null,A=T?T.breakAfter:I;if(!(N==i&&e&&!I&&!A&&t.length<2&&e.merge(D,j,t.length?T:null,0==D,z,u))){if(i<g.length){let M=g[i];M&&(j<M.length||M.breakAfter&&(null==T?void 0:T.breakAfter))?(N==i&&(M=M.split(j),j=0),!A&&T&&M.merge(0,j,T,!0,0,u)?t[t.length-1]=M:((j||M.children.length&&!M.children[0].length)&&M.merge(0,j,null,!1,0,u),t.push(M))):(null==M?void 0:M.breakAfter)&&(T?T.breakAfter=1:I=1),i++}for(e&&(e.breakAfter=I,D>0&&(!I&&t.length&&e.merge(D,e.length,t[0],!1,z,0)?e.breakAfter=t.shift().breakAfter:(D<e.length||e.children.length&&0==e.children[e.children.length-1].length)&&e.merge(D,e.length,null,!1,z,0),N++));N<i&&t.length;)if(g[i-1].become(t[t.length-1]))i--,t.pop(),u=t.length?0:z;else{if(!g[N].become(t[0]))break;N++,t.shift(),z=t.length?0:u}!t.length&&N&&i<g.length&&!g[N-1].breakAfter&&g[i].merge(0,0,g[N-1],!1,z,u)&&N--,(N<i||t.length)&&M.replaceChildren(N,i,t)}}function WI(M,N,D,i,j,t){let I=M.childCursor(),{i:z,off:u}=I.findPos(D,1),{i:g,off:e}=I.findPos(N,-1),T=N-D;for(let M of i)T+=M.length;M.length+=T,vI(M,g,e,z,u,i,0,j,t)}let VI="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},GI="undefined"!=typeof document?document:{documentElement:{style:{}}};const PI=/Edge\/(\d+)/.exec(VI.userAgent),RI=/MSIE \d/.test(VI.userAgent),BI=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(VI.userAgent),JI=!!(RI||BI||PI),FI=!JI&&/gecko\/(\d+)/i.test(VI.userAgent),HI=!JI&&/Chrome\/(\d+)/.exec(VI.userAgent),XI="webkitFontSmoothing"in GI.documentElement.style,$I=!JI&&/Apple Computer/.test(VI.vendor),_I=$I&&(/Mobile\/\w+/.test(VI.userAgent)||VI.maxTouchPoints>2);var qI={mac:_I||/Mac/.test(VI.platform),windows:/Win/.test(VI.platform),linux:/Linux|X11/.test(VI.platform),ie:JI,ie_version:RI?GI.documentMode||6:BI?+BI[1]:PI?+PI[1]:0,gecko:FI,gecko_version:FI?+(/Firefox\/(\d+)/.exec(VI.userAgent)||[0,0])[1]:0,chrome:!!HI,chrome_version:HI?+HI[1]:0,ios:_I,android:/Android\b/.test(VI.userAgent),webkit:XI,safari:$I,webkit_version:XI?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=GI.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class KI extends mI{constructor(M){super(),this.text=M}get length(){return this.text.length}createDOM(M){this.setDOM(M||document.createTextNode(this.text))}sync(M,N){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(N&&N.node==this.dom&&(N.written=!0),this.dom.nodeValue=this.text)}reuseDOM(M){3==M.nodeType&&this.createDOM(M)}merge(M,N,D){return!(8&this.flags||D&&(!(D instanceof KI)||this.length-(N-M)+D.length>256||8&D.flags))&&(this.text=this.text.slice(0,M)+(D?D.text:"")+this.text.slice(N),this.markDirty(),!0)}split(M){let N=new KI(this.text.slice(M));return this.text=this.text.slice(0,M),this.markDirty(),N.flags|=8&this.flags,N}localPosFromDOM(M,N){return M==this.dom?N:N?this.text.length:0}domAtPos(M){return new bI(this.dom,M)}domBoundsAround(M,N,D){return{from:D,to:D+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(M,N){return function(M,N,D){let i=M.nodeValue.length;N>i&&(N=i);let j=N,t=N,I=0;0==N&&D<0||N==i&&D>=0?qI.chrome||qI.gecko||(N?(j--,I=1):t<i&&(t++,I=-1)):D<0?j--:t<i&&t++;let z=dI(M,j,t).getClientRects();if(!z.length)return null;let u=z[(I?I<0:D>=0)?0:z.length-1];qI.safari&&!I&&0==u.width&&(u=Array.prototype.find.call(z,(M=>M.width))||u);return I?rI(u,I<0):u||null}(this.dom,M,N)}}class Mz extends mI{constructor(M,N=[],D=0){super(),this.mark=M,this.children=N,this.length=D;for(let M of N)M.setParent(this)}setAttrs(M){if(wI(M),this.mark.class&&(M.className=this.mark.class),this.mark.attrs)for(let N in this.mark.attrs)M.setAttribute(N,this.mark.attrs[N]);return M}canReuseDOM(M){return super.canReuseDOM(M)&&!(8&(this.flags|M.flags))}reuseDOM(M){M.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(M),this.flags|=6)}sync(M,N){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(M,N)}merge(M,N,D,i,j,t){return(!D||!(!(D instanceof Mz&&D.mark.eq(this.mark))||M&&j<=0||N<this.length&&t<=0))&&(WI(this,M,N,D?D.children.slice():[],j-1,t-1),this.markDirty(),!0)}split(M){let N=[],D=0,i=-1,j=0;for(let t of this.children){let I=D+t.length;I>M&&N.push(D<M?t.split(M-D):t),i<0&&D>=M&&(i=j),D=I,j++}let t=this.length-M;return this.length=M,i>-1&&(this.children.length=i,this.markDirty()),new Mz(this.mark,N,t)}domAtPos(M){return iz(this,M)}coordsAt(M,N){return tz(this,M,N)}}class Nz extends mI{static create(M,N,D){return new Nz(M,N,D)}constructor(M,N,D){super(),this.widget=M,this.length=N,this.side=D,this.prevWidget=null}split(M){let N=Nz.create(this.widget,this.length-M,this.side);return this.length-=M,N}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(M,N,D,i,j,t){return!(D&&(!(D instanceof Nz&&this.widget.compare(D.widget))||M>0&&j<=0||N<this.length&&t<=0))&&(this.length=M+(D?D.length:0)+(this.length-N),!0)}become(M){return M instanceof Nz&&M.side==this.side&&this.widget.constructor==M.widget.constructor&&(this.widget.compare(M.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get overrideDOMText(){if(0==this.length)return ej.empty;let M=this;for(;M.parent;)M=M.parent;let{view:N}=M,D=N&&N.state.doc,i=this.posAtStart;return D?D.slice(i,i+this.length):ej.empty}domAtPos(M){return(this.length?0==M:this.side>0)?bI.before(this.dom):bI.after(this.dom,M==this.length)}domBoundsAround(){return null}coordsAt(M,N){let D=this.widget.coordsAt(this.dom,M,N);if(D)return D;let i=this.dom.getClientRects(),j=null;if(!i.length)return null;let t=this.side?this.side<0:M>0;for(let N=t?i.length-1:0;j=i[N],!(M>0?0==N:N==i.length-1||j.top<j.bottom);N+=t?-1:1);return rI(j,!t)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class Dz extends mI{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof Dz&&M.side==this.side}split(){return new Dz(this.side)}sync(){if(!this.dom){let M=document.createElement("img");M.className="cm-widgetBuffer",M.setAttribute("aria-hidden","true"),this.setDOM(M)}}getSide(){return this.side}domAtPos(M){return this.side>0?bI.before(this.dom):bI.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(M){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ej.empty}get isHidden(){return!0}}function iz(M,N){let D=M.dom,{children:i}=M,j=0;for(let M=0;j<i.length;j++){let t=i[j],I=M+t.length;if(!(I==M&&t.getSide()<=0)){if(N>M&&N<I&&t.dom.parentNode==D)return t.domAtPos(N-M);if(N<=M)break;M=I}}for(let M=j;M>0;M--){let N=i[M-1];if(N.dom.parentNode==D)return N.domAtPos(N.length)}for(let M=j;M<i.length;M++){let N=i[M];if(N.dom.parentNode==D)return N.domAtPos(0)}return new bI(D,0)}function jz(M,N,D){let i,{children:j}=M;D>0&&N instanceof Mz&&j.length&&(i=j[j.length-1])instanceof Mz&&i.mark.eq(N.mark)?jz(i,N.children[0],D-1):(j.push(N),N.setParent(M)),M.length+=N.length}function tz(M,N,D){let i=null,j=-1,t=null,I=-1;!function M(N,z){for(let u=0,g=0;u<N.children.length&&g<=z;u++){let e=N.children[u],T=g+e.length;T>=z&&(e.children.length?M(e,z-g):(!t||t.isHidden&&D>0)&&(T>z||g==T&&e.getSide()>0)?(t=e,I=z-g):(g<z||g==T&&e.getSide()<0&&!e.isHidden)&&(i=e,j=z-g)),g=T}}(M,N);let z=(D<0?i:t)||i||t;return z?z.coordsAt(Math.max(0,z==i?j:I),D):function(M){let N=M.dom.lastChild;if(!N)return M.dom.getBoundingClientRect();let D=OI(N);return D[D.length-1]||null}(M)}function Iz(M,N){for(let D in M)"class"==D&&N.class?N.class+=" "+M.class:"style"==D&&N.style?N.style+=";"+M.style:N[D]=M[D];return N}KI.prototype.children=Nz.prototype.children=Dz.prototype.children=pI;const zz=Object.create(null);function uz(M,N,D){if(M==N)return!0;M||(M=zz),N||(N=zz);let i=Object.keys(M),j=Object.keys(N);if(i.length-(D&&i.indexOf(D)>-1?1:0)!=j.length-(D&&j.indexOf(D)>-1?1:0))return!1;for(let t of i)if(t!=D&&(-1==j.indexOf(t)||M[t]!==N[t]))return!1;return!0}function gz(M,N,D){let i=!1;if(N)for(let j in N)D&&j in D||(i=!0,"style"==j?M.style.cssText="":M.removeAttribute(j));if(D)for(let j in D)N&&N[j]==D[j]||(i=!0,"style"==j?M.style.cssText=D[j]:M.setAttribute(j,D[j]));return i}function ez(M){let N=Object.create(null);for(let D=0;D<M.attributes.length;D++){let i=M.attributes[D];N[i.name]=i.value}return N}class Tz extends mI{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(M,N,D,i,j,t){if(D){if(!(D instanceof Tz))return!1;this.dom||D.transferDOM(this)}return i&&this.setDeco(D?D.attrs:null),WI(this,M,N,D?D.children.slice():[],j,t),!0}split(M){let N=new Tz;if(N.breakAfter=this.breakAfter,0==this.length)return N;let{i:D,off:i}=this.childPos(M);i&&(N.append(this.children[D].split(i),0),this.children[D].merge(i,this.children[D].length,null,!1,0,0),D++);for(let M=D;M<this.children.length;M++)N.append(this.children[M],0);for(;D>0&&0==this.children[D-1].length;)this.children[--D].destroy();return this.children.length=D,this.markDirty(),this.length=M,N}transferDOM(M){this.dom&&(this.markDirty(),M.setDOM(this.dom),M.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(M){uz(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,N){jz(this,M,N)}addLineDeco(M){let N=M.spec.attributes,D=M.spec.class;N&&(this.attrs=Iz(N,this.attrs||{})),D&&(this.attrs=Iz({class:D},this.attrs||{}))}domAtPos(M){return iz(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,N){var D;this.dom?4&this.flags&&(wI(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),void 0!==this.prevAttrs&&(gz(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(M,N);let i=this.dom.lastChild;for(;i&&mI.get(i)instanceof Mz;)i=i.lastChild;if(!(i&&this.length&&("BR"==i.nodeName||0!=(null===(D=mI.get(i))||void 0===D?void 0:D.isEditable)||qI.ios&&this.children.some((M=>M instanceof KI))))){let M=document.createElement("BR");M.cmIgnore=!0,this.dom.appendChild(M)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let M,N=0;for(let D of this.children){if(!(D instanceof KI)||/[^ -~]/.test(D.text))return null;let i=OI(D.dom);if(1!=i.length)return null;N+=i[0].width,M=i[0].height}return N?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:N/this.length,textHeight:M}:null}coordsAt(M,N){let D=tz(this,M,N);if(!this.children.length&&D&&this.parent){let{heightOracle:M}=this.parent.view.viewState,N=D.bottom-D.top;if(Math.abs(N-M.lineHeight)<2&&M.textHeight<N){let i=(N-M.textHeight)/2;return{top:D.top+i,bottom:D.bottom-i,left:D.left,right:D.left}}}return D}become(M){return!1}covers(){return!0}static find(M,N){for(let D=0,i=0;D<M.children.length;D++){let j=M.children[D],t=i+j.length;if(t>=N){if(j instanceof Tz)return j;if(t>N)break}i=t+j.breakAfter}return null}}class Az extends mI{constructor(M,N,D){super(),this.widget=M,this.length=N,this.deco=D,this.breakAfter=0,this.prevWidget=null}merge(M,N,D,i,j,t){return!(D&&(!(D instanceof Az&&this.widget.compare(D.widget))||M>0&&j<=0||N<this.length&&t<=0))&&(this.length=M+(D?D.length:0)+(this.length-N),!0)}domAtPos(M){return 0==M?bI.before(this.dom):bI.after(this.dom,M==this.length)}split(M){let N=this.length-M;this.length=M;let D=new Az(this.widget,N,this.deco);return D.breakAfter=this.breakAfter,D}get children(){return pI}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):ej.empty}domBoundsAround(){return null}become(M){return M instanceof Az&&M.widget.constructor==this.widget.constructor&&(M.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,this.deco=M.deco,this.breakAfter=M.breakAfter,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(M,N){return this.widget.coordsAt(this.dom,M,N)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(M){let{startSide:N,endSide:D}=this.deco;return N!=D&&(M<0?N<0:D>0)}}class sz{eq(M){return!1}updateDOM(M,N){return!1}compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(M){return!0}coordsAt(M,N,D){return null}get isHidden(){return!1}get editable(){return!1}destroy(M){}}var Lz=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(Lz||(Lz={}));class Oz extends mt{constructor(M,N,D,i){super(),this.startSide=M,this.endSide=N,this.widget=D,this.spec=i}get heightRelevant(){return!1}static mark(M){return new yz(M)}static widget(M){let N=Math.max(-1e4,Math.min(1e4,M.side||0)),D=!!M.block;return N+=D&&!M.inlineOrder?N>0?3e8:-4e8:N>0?1e8:-1e8,new nz(M,N,N,D,M.widget||null,!1)}static replace(M){let N,D,i=!!M.block;if(M.isBlockGap)N=-5e8,D=4e8;else{let{start:j,end:t}=lz(M,i);N=(j?i?-3e8:-1:5e8)-1,D=1+(t?i?2e8:1:-6e8)}return new nz(M,N,D,i,M.widget||null,!0)}static line(M){return new cz(M)}static set(M,N=!1){return Wt.of(M,N)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Oz.none=Wt.empty;class yz extends Oz{constructor(M){let{start:N,end:D}=lz(M);super(N?-1:5e8,D?1:-6e8,null,M),this.tagName=M.tagName||"span",this.class=M.class||"",this.attrs=M.attributes||null}eq(M){var N,D;return this==M||M instanceof yz&&this.tagName==M.tagName&&(this.class||(null===(N=this.attrs)||void 0===N?void 0:N.class))==(M.class||(null===(D=M.attrs)||void 0===D?void 0:D.class))&&uz(this.attrs,M.attrs,"class")}range(M,N=M){if(M>=N)throw new RangeError("Mark decorations may not be empty");return super.range(M,N)}}yz.prototype.point=!1;class cz extends Oz{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof cz&&this.spec.class==M.spec.class&&uz(this.spec.attributes,M.spec.attributes)}range(M,N=M){if(N!=M)throw new RangeError("Line decoration ranges must be zero-length");return super.range(M,N)}}cz.prototype.mapMode=Cj.TrackBefore,cz.prototype.point=!0;class nz extends Oz{constructor(M,N,D,i,j,t){super(N,D,j,M),this.block=i,this.isReplace=t,this.mapMode=i?N<=0?Cj.TrackBefore:Cj.TrackAfter:Cj.TrackDel}get type(){return this.startSide!=this.endSide?Lz.WidgetRange:this.startSide<=0?Lz.WidgetBefore:Lz.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof nz&&function(M,N){return M==N||!!(M&&N&&M.compare(N))}(this.widget,M.widget)&&this.block==M.block&&this.startSide==M.startSide&&this.endSide==M.endSide}range(M,N=M){if(this.isReplace&&(M>N||M==N&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&N!=M)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(M,N)}}function lz(M,N=!1){let{inclusiveStart:D,inclusiveEnd:i}=M;return null==D&&(D=M.inclusive),null==i&&(i=M.inclusive),{start:null!=D?D:N,end:null!=i?i:N}}function oz(M,N,D,i=0){let j=D.length-1;j>=0&&D[j]+i>=M?D[j]=Math.max(D[j],N):D.push(M,N)}nz.prototype.point=!0;class rz{constructor(M,N,D,i){this.doc=M,this.pos=N,this.end=D,this.disallowBlockEffectsFor=i,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=M.iter(),this.skip=N}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let M=this.content[this.content.length-1];return!(M.breakAfter||M instanceof Az&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Tz),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(xz(new Dz(-1),M),M.length),this.pendingBuffer=0)}addBlockWidget(M){this.flushBuffer(),this.curLine=null,this.content.push(M)}finish(M){this.pendingBuffer&&M<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||M&&this.content.length&&this.content[this.content.length-1]instanceof Az||this.getLine()}buildText(M,N,D){for(;M>0;){if(this.textOff==this.text.length){let{value:N,lineBreak:D,done:i}=this.cursor.next(this.skip);if(this.skip=0,i)throw new Error("Ran out of text content when drawing inline views");if(D){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,M--;continue}this.text=N,this.textOff=0}let i=Math.min(this.text.length-this.textOff,M,512);this.flushBuffer(N.slice(N.length-D)),this.getLine().append(xz(new KI(this.text.slice(this.textOff,this.textOff+i)),N),D),this.atCursorPos=!0,this.textOff+=i,M-=i,D=0}}span(M,N,D,i){this.buildText(N-M,D,i),this.pos=N,this.openStart<0&&(this.openStart=i)}point(M,N,D,i,j,t){if(this.disallowBlockEffectsFor[t]&&D instanceof nz){if(D.block)throw new RangeError("Block decorations may not be specified via plugins");if(N>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let I=N-M;if(D instanceof nz)if(D.block)D.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Az(D.widget||az.block,I,D));else{let t=Nz.create(D.widget||az.inline,I,I?0:D.startSide),z=this.atCursorPos&&!t.isEditable&&j<=i.length&&(M<N||D.startSide>0),u=!t.isEditable&&(M<N||j>i.length||D.startSide<=0),g=this.getLine();2!=this.pendingBuffer||z||t.isEditable||(this.pendingBuffer=0),this.flushBuffer(i),z&&(g.append(xz(new Dz(1),i),j),j=i.length+Math.max(0,j-i.length)),g.append(xz(t,i),j),this.atCursorPos=u,this.pendingBuffer=u?M<N||j>i.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=i.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(D);I&&(this.textOff+I<=this.text.length?this.textOff+=I:(this.skip+=I-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=N),this.openStart<0&&(this.openStart=j)}static build(M,N,D,i,j){let t=new rz(M,N,D,j);return t.openEnd=Wt.spans(i,N,D,t),t.openStart<0&&(t.openStart=t.openEnd),t.finish(t.openEnd),t}}function xz(M,N){for(let D of N)M=new Mz(D,[M],M.length);return M}class az extends sz{constructor(M){super(),this.tag=M}eq(M){return M.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(M){return M.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}az.inline=new az("span"),az.block=new az("div");var Qz=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(Qz||(Qz={}));const Ez=Qz.LTR,Sz=Qz.RTL;function hz(M){let N=[];for(let D=0;D<M.length;D++)N.push(1<<+M[D]);return N}const dz=hz("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),kz=hz("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),wz=Object.create(null),Uz=[];for(let M of["()","[]","{}"]){let N=M.charCodeAt(0),D=M.charCodeAt(1);wz[N]=D,wz[D]=-N}function Yz(M){return M<=247?dz[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?kz[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const Cz=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class bz{get dir(){return this.level%2?Sz:Ez}constructor(M,N,D){this.from=M,this.to=N,this.level=D}side(M,N){return this.dir==N==M?this.to:this.from}forward(M,N){return M==(this.dir==N)}static find(M,N,D,i){let j=-1;for(let t=0;t<M.length;t++){let I=M[t];if(I.from<=N&&I.to>=N){if(I.level==D)return t;(j<0||(0!=i?i<0?I.from<N:I.to>N:M[j].level>I.level))&&(j=t)}}if(j<0)throw new RangeError("Index out of range");return j}}function pz(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++){let i=M[D],j=N[D];if(i.from!=j.from||i.to!=j.to||i.direction!=j.direction||!pz(i.inner,j.inner))return!1}return!0}const mz=[];function Zz(M,N,D,i,j,t,I){let z=i%2?2:1;if(i%2==j%2)for(let u=N,g=0;u<D;){let N=!0,e=!1;if(g==t.length||u<t[g].from){let M=mz[u];M!=z&&(N=!1,e=16==M)}let T=N||1!=z?null:[],A=N?i:i+1,s=u;M:for(;;)if(g<t.length&&s==t[g].from){if(e)break M;let L=t[g];if(!N)for(let M=L.to,N=g+1;;){if(M==D)break M;if(!(N<t.length&&t[N].from==M)){if(mz[M]==z)break M;break}M=t[N++].to}if(g++,T)T.push(L);else{L.from>u&&I.push(new bz(u,L.from,A)),fz(M,L.direction==Ez!=!(A%2)?i+1:i,j,L.inner,L.from,L.to,I),u=L.to}s=L.to}else{if(s==D||(N?mz[s]!=z:mz[s]==z))break;s++}T?Zz(M,u,s,i+1,j,T,I):u<s&&I.push(new bz(u,s,A)),u=s}else for(let u=D,g=t.length;u>N;){let D=!0,e=!1;if(!g||u>t[g-1].to){let M=mz[u-1];M!=z&&(D=!1,e=16==M)}let T=D||1!=z?null:[],A=D?i:i+1,s=u;M:for(;;)if(g&&s==t[g-1].to){if(e)break M;let L=t[--g];if(!D)for(let M=L.from,D=g;;){if(M==N)break M;if(!D||t[D-1].to!=M){if(mz[M-1]==z)break M;break}M=t[--D].from}if(T)T.push(L);else{L.to<u&&I.push(new bz(L.to,u,A)),fz(M,L.direction==Ez!=!(A%2)?i+1:i,j,L.inner,L.from,L.to,I),u=L.from}s=L.from}else{if(s==N||(D?mz[s-1]!=z:mz[s-1]==z))break;s--}T?Zz(M,s,u,i+1,j,T,I):s<u&&I.push(new bz(s,u,A)),u=s}}function fz(M,N,D,i,j,t,I){let z=N%2?2:1;!function(M,N,D,i,j){for(let t=0;t<=i.length;t++){let I=t?i[t-1].to:N,z=t<i.length?i[t].from:D,u=t?256:j;for(let N=I,D=u,i=u;N<z;N++){let j=Yz(M.charCodeAt(N));512==j?j=D:8==j&&4==i&&(j=16),mz[N]=4==j?2:j,7&j&&(i=j),D=j}for(let M=I,N=u,i=u;M<z;M++){let j=mz[M];if(128==j)M<z-1&&N==mz[M+1]&&24&N?j=mz[M]=N:mz[M]=256;else if(64==j){let j=M+1;for(;j<z&&64==mz[j];)j++;let t=M&&8==N||j<D&&8==mz[j]?1==i?1:8:256;for(let N=M;N<j;N++)mz[N]=t;M=j-1}else 8==j&&1==i&&(mz[M]=1);N=j,7&j&&(i=j)}}}(M,j,t,i,z),function(M,N,D,i,j){let t=1==j?2:1;for(let I=0,z=0,u=0;I<=i.length;I++){let g=I?i[I-1].to:N,e=I<i.length?i[I].from:D;for(let N,D,i,I=g;I<e;I++)if(D=wz[N=M.charCodeAt(I)])if(D<0){for(let M=z-3;M>=0;M-=3)if(Uz[M+1]==-D){let N=Uz[M+2],D=2&N?j:4&N?1&N?t:j:0;D&&(mz[I]=mz[Uz[M]]=D),z=M;break}}else{if(189==Uz.length)break;Uz[z++]=I,Uz[z++]=N,Uz[z++]=u}else if(2==(i=mz[I])||1==i){let M=i==j;u=M?0:1;for(let N=z-3;N>=0;N-=3){let D=Uz[N+2];if(2&D)break;if(M)Uz[N+2]|=2;else{if(4&D)break;Uz[N+2]|=4}}}}}(M,j,t,i,z),function(M,N,D,i){for(let j=0,t=i;j<=D.length;j++){let I=j?D[j-1].to:M,z=j<D.length?D[j].from:N;for(let u=I;u<z;){let I=mz[u];if(256==I){let I=u+1;for(;;)if(I==z){if(j==D.length)break;I=D[j++].to,z=j<D.length?D[j].from:N}else{if(256!=mz[I])break;I++}let g=1==t,e=g==(1==(I<N?mz[I]:i))?g?1:2:i;for(let N=I,i=j,t=i?D[i-1].to:M;N>u;)N==t&&(N=D[--i].from,t=i?D[i-1].to:M),mz[--N]=e;u=I}else t=I,u++}}}(j,t,i,z),Zz(M,j,t,N,D,i,I)}function vz(M){return[new bz(0,M,0)]}let Wz="";function Vz(M,N,D,i,j){var t;let I=i.head-M.from,z=bz.find(N,I,null!==(t=i.bidiLevel)&&void 0!==t?t:-1,i.assoc),u=N[z],g=u.side(j,D);if(I==g){let M=z+=j?1:-1;if(M<0||M>=N.length)return null;u=N[z=M],I=u.side(!j,D),g=u.side(j,D)}let e=Qj(M.text,I,u.forward(j,D));(e<u.from||e>u.to)&&(e=g),Wz=M.text.slice(Math.min(I,e),Math.max(I,e));let T=z==(j?N.length-1:0)?null:N[z+(j?1:-1)];return T&&e==g&&T.level+(j?0:1)<u.level?Pj.cursor(T.side(!j,D)+M.from,T.forward(j,D)?1:-1,T.level):Pj.cursor(e+M.from,u.forward(j,D)?-1:1,u.level)}function Gz(M,N,D){for(let i=N;i<D;i++){let N=Yz(M.charCodeAt(i));if(1==N)return Ez;if(2==N||4==N)return Sz}return Ez}const Pz=Jj.define(),Rz=Jj.define(),Bz=Jj.define(),Jz=Jj.define(),Fz=Jj.define(),Hz=Jj.define(),Xz=Jj.define(),$z=Jj.define({combine:M=>M.some((M=>M))}),_z=Jj.define({combine:M=>M.some((M=>M))}),qz=Jj.define();class Kz{constructor(M,N="nearest",D="nearest",i=5,j=5,t=!1){this.range=M,this.y=N,this.x=D,this.yMargin=i,this.xMargin=j,this.isSnapshot=t}map(M){return M.empty?this:new Kz(this.range.map(M),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(M){return this.range.to<=M.doc.length?this:new Kz(Pj.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Mu=xt.define({map:(M,N)=>M.map(N)});function Nu(M,N,D){let i=M.facet(Jz);i.length?i[0](N):window.onerror?window.onerror(String(N),D,void 0,void 0,N):D?console.error(D+":",N):console.error(N)}const Du=Jj.define({combine:M=>!M.length||M[0]});let iu=0;const ju=Jj.define();class tu{constructor(M,N,D,i,j){this.id=M,this.create=N,this.domEventHandlers=D,this.domEventObservers=i,this.extension=j(this)}static define(M,N){const{eventHandlers:D,eventObservers:i,provide:j,decorations:t}=N||{};return new tu(iu++,M,D,i,(M=>{let N=[ju.of(M)];return t&&N.push(gu.of((N=>{let D=N.plugin(M);return D?t(D):Oz.none}))),j&&N.push(j(M)),N}))}static fromClass(M,N){return tu.define((N=>new M(N)),N)}}class Iu{constructor(M){this.spec=M,this.mustUpdate=null,this.value=null}update(M){if(this.value){if(this.mustUpdate){let M=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(M)}catch(N){if(Nu(M.state,N,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(M){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(M)}catch(N){Nu(M.state,N,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(M){var N;if(null===(N=this.value)||void 0===N?void 0:N.destroy)try{this.value.destroy()}catch(N){Nu(M.state,N,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const zu=Jj.define(),uu=Jj.define(),gu=Jj.define(),eu=Jj.define(),Tu=Jj.define(),Au=Jj.define();function su(M,N){let D=M.state.facet(Au);if(!D.length)return D;let i=D.map((N=>N instanceof Function?N(M):N)),j=[];return Wt.spans(i,N.from,N.to,{point(){},span(M,D,i,t){let I=M-N.from,z=D-N.from,u=j;for(let M=i.length-1;M>=0;M--,t--){let D,j=i[M].spec.bidiIsolate;if(null==j&&(j=Gz(N.text,I,z)),t>0&&u.length&&(D=u[u.length-1]).to==I&&D.direction==j)D.to=z,u=D.inner;else{let M={from:I,to:z,direction:j,inner:[]};u.push(M),u=M.inner}}}}),j}const Lu=Jj.define();function Ou(M){let N=0,D=0,i=0,j=0;for(let t of M.state.facet(Lu)){let I=t(M);I&&(null!=I.left&&(N=Math.max(N,I.left)),null!=I.right&&(D=Math.max(D,I.right)),null!=I.top&&(i=Math.max(i,I.top)),null!=I.bottom&&(j=Math.max(j,I.bottom)))}return{left:N,right:D,top:i,bottom:j}}const yu=Jj.define();class cu{constructor(M,N,D,i){this.fromA=M,this.toA=N,this.fromB=D,this.toB=i}join(M){return new cu(Math.min(this.fromA,M.fromA),Math.max(this.toA,M.toA),Math.min(this.fromB,M.fromB),Math.max(this.toB,M.toB))}addToSet(M){let N=M.length,D=this;for(;N>0;N--){let i=M[N-1];if(!(i.fromA>D.toA)){if(i.toA<D.fromA)break;D=D.join(i),M.splice(N-1,1)}}return M.splice(N,0,D),M}static extendWithRanges(M,N){if(0==N.length)return M;let D=[];for(let i=0,j=0,t=0,I=0;;i++){let z=i==M.length?null:M[i],u=t-I,g=z?z.fromB:1e9;for(;j<N.length&&N[j]<g;){let M=N[j],i=N[j+1],t=Math.max(I,M),z=Math.min(g,i);if(t<=z&&new cu(t+u,z+u,t,z).addToSet(D),i>g)break;j+=2}if(!z)return D;new cu(z.fromA,z.toA,z.fromB,z.toB).addToSet(D),t=z.toA,I=z.toB}}}class nu{constructor(M,N,D){this.view=M,this.state=N,this.transactions=D,this.flags=0,this.startState=M.state,this.changes=pj.empty(this.startState.doc.length);for(let M of D)this.changes=this.changes.compose(M.changes);let i=[];this.changes.iterChangedRanges(((M,N,D,j)=>i.push(new cu(M,N,D,j)))),this.changedRanges=i}static create(M,N,D){return new nu(M,N,D)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((M=>M.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class lu extends mI{get length(){return this.view.state.doc.length}constructor(M){super(),this.view=M,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(M.contentDOM),this.children=[new Tz],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new cu(0,0,0,M.state.doc.length)],0,null)}update(M){var N;let D=M.changedRanges;this.minWidth>0&&D.length&&(D.every((({fromA:M,toA:N})=>N<this.minWidthFrom||M>this.minWidthTo))?(this.minWidthFrom=M.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=M.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let i=-1;this.view.inputState.composing>=0&&((null===(N=this.domChanged)||void 0===N?void 0:N.newSel)?i=this.domChanged.newSel.head:function(M,N){let D=!1;N&&M.iterChangedRanges(((M,i)=>{M<N.to&&i>N.from&&(D=!0)}));return D}(M.changes,this.hasComposition)||M.selectionSet||(i=M.state.selection.main.head));let j=i>-1?function(M,N,D){let i=ru(M,D);if(!i)return null;let{node:j,from:t,to:I}=i,z=j.nodeValue;if(/[\n\r]/.test(z))return null;if(M.state.doc.sliceString(i.from,i.to)!=z)return null;let u=N.invertedDesc,g=new cu(u.mapPos(t),u.mapPos(I),t,I),e=[];for(let N=j.parentNode;;N=N.parentNode){let D=mI.get(N);if(D instanceof Mz)e.push({node:N,deco:D.mark});else{if(D instanceof Tz||"DIV"==N.nodeName&&N.parentNode==M.contentDOM)return{range:g,text:j,marks:e,line:N};if(N==M.contentDOM)return null;e.push({node:N,deco:new yz({inclusive:!0,attributes:ez(N),tagName:N.tagName.toLowerCase()})})}}}(this.view,M.changes,i):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:N,to:i}=this.hasComposition;D=new cu(N,i,M.changes.mapPos(N,-1),M.changes.mapPos(i,1)).addToSet(D.slice())}this.hasComposition=j?{from:j.range.fromB,to:j.range.toB}:null,(qI.ie||qI.chrome)&&!j&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let t=function(M,N,D){let i=new xu;return Wt.compare(M,N,D,i),i.changes}(this.decorations,this.updateDeco(),M.changes);return D=cu.extendWithRanges(D,t),!!(7&this.flags||0!=D.length)&&(this.updateInner(D,M.startState.doc.length,j),M.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(M,N,D){this.view.viewState.mustMeasureContent=!0,this.updateChildren(M,N,D);let{observer:i}=this.view;i.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let M=qI.chrome||qI.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,M),this.flags&=-8,M&&(M.written||i.selectionRange.focusNode!=M.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((M=>M.flags&=-9));let j=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let M of this.children)M instanceof Az&&M.widget instanceof ou&&j.push(M.dom);i.updateGaps(j)}updateChildren(M,N,D){let i=D?D.range.addToSet(M.slice()):M,j=this.childCursor(N);for(let M=i.length-1;;M--){let N=M>=0?i[M]:null;if(!N)break;let t,I,z,u,{fromA:g,toA:e,fromB:T,toB:A}=N;if(D&&D.range.fromB<A&&D.range.toB>T){let M=rz.build(this.view.state.doc,T,D.range.fromB,this.decorations,this.dynamicDecorationMap),N=rz.build(this.view.state.doc,D.range.toB,A,this.decorations,this.dynamicDecorationMap);I=M.breakAtStart,z=M.openStart,u=N.openEnd;let i=this.compositionView(D);N.breakAtStart?i.breakAfter=1:N.content.length&&i.merge(i.length,i.length,N.content[0],!1,N.openStart,0)&&(i.breakAfter=N.content[0].breakAfter,N.content.shift()),M.content.length&&i.merge(0,0,M.content[M.content.length-1],!0,0,M.openEnd)&&M.content.pop(),t=M.content.concat(i).concat(N.content)}else({content:t,breakAtStart:I,openStart:z,openEnd:u}=rz.build(this.view.state.doc,T,A,this.decorations,this.dynamicDecorationMap));let{i:s,off:L}=j.findPos(e,1),{i:O,off:y}=j.findPos(g,-1);vI(this,O,y,s,L,t,I,z,u)}D&&this.fixCompositionDOM(D)}compositionView(M){let N=new KI(M.text.nodeValue);N.flags|=8;for(let{deco:D}of M.marks)N=new Mz(D,[N],N.length);let D=new Tz;return D.append(N,0),D}fixCompositionDOM(M){let N=(M,N)=>{N.flags|=8|(N.children.some((M=>7&M.flags))?1:0),this.markedForComposition.add(N);let D=mI.get(M);D&&D!=N&&(D.dom=null),N.setDOM(M)},D=this.childPos(M.range.fromB,1),i=this.children[D.i];N(M.line,i);for(let j=M.marks.length-1;j>=-1;j--)D=i.childPos(D.off,1),i=i.children[D.i],N(j>=0?M.marks[j].node:M.text,i)}updateSelection(M=!1,N=!1){!M&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let D=this.view.root.activeElement,i=D==this.dom,j=!i&&LI(this.dom,this.view.observer.selectionRange)&&!(D&&this.dom.contains(D));if(!(i||N||j))return;let t=this.forceSelection;this.forceSelection=!1;let I=this.view.state.selection.main,z=this.moveToLine(this.domAtPos(I.anchor)),u=I.empty?z:this.moveToLine(this.domAtPos(I.head));if(qI.gecko&&I.empty&&!this.hasComposition&&(1==(g=z).node.nodeType&&g.node.firstChild&&(0==g.offset||"false"==g.node.childNodes[g.offset-1].contentEditable)&&(g.offset==g.node.childNodes.length||"false"==g.node.childNodes[g.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>z.node.insertBefore(M,z.node.childNodes[z.offset]||null))),z=u=new bI(M,0),t=!0}var g;let e=this.view.observer.selectionRange;!t&&e.focusNode&&(yI(z.node,z.offset,e.anchorNode,e.anchorOffset)&&yI(u.node,u.offset,e.focusNode,e.focusOffset)||this.suppressWidgetCursorChange(e,I))||(this.view.observer.ignore((()=>{qI.android&&qI.chrome&&this.dom.contains(e.focusNode)&&function(M,N){for(let D=M;D&&D!=N;D=D.assignedSlot||D.parentNode)if(1==D.nodeType&&"false"==D.contentEditable)return!0;return!1}(e.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=AI(this.view.root);if(M)if(I.empty){if(qI.gecko){let M=function(M,N){return 1!=M.nodeType?0:(N&&"false"==M.childNodes[N-1].contentEditable?1:0)|(N<M.childNodes.length&&"false"==M.childNodes[N].contentEditable?2:0)}(z.node,z.offset);if(M&&3!=M){let N=(1==M?YI:CI)(z.node,z.offset);N&&(z=new bI(N.node,N.offset))}}M.collapse(z.node,z.offset),null!=I.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=I.bidiLevel)}else if(M.extend){M.collapse(z.node,z.offset);try{M.extend(u.node,u.offset)}catch(M){}}else{let N=document.createRange();I.anchor>I.head&&([z,u]=[u,z]),N.setEnd(u.node,u.offset),N.setStart(z.node,z.offset),M.removeAllRanges(),M.addRange(N)}else;j&&this.view.root.activeElement==this.dom&&(this.dom.blur(),D&&D.focus())})),this.view.observer.setSelectionRange(z,u)),this.impreciseAnchor=z.precise?null:new bI(e.anchorNode,e.anchorOffset),this.impreciseHead=u.precise?null:new bI(e.focusNode,e.focusOffset)}suppressWidgetCursorChange(M,N){return this.hasComposition&&N.empty&&yI(M.focusNode,M.focusOffset,M.anchorNode,M.anchorOffset)&&this.posFromDOM(M.focusNode,M.focusOffset)==N.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:M}=this,N=M.state.selection.main,D=AI(M.root),{anchorNode:i,anchorOffset:j}=M.observer.selectionRange;if(!(D&&N.empty&&N.assoc&&D.modify))return;let t=Tz.find(this,N.head);if(!t)return;let I=t.posAtStart;if(N.head==I||N.head==I+t.length)return;let z=this.coordsAt(N.head,-1),u=this.coordsAt(N.head,1);if(!z||!u||z.bottom>u.top)return;let g=this.domAtPos(N.head+N.assoc);D.collapse(g.node,g.offset),D.modify("move",N.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let e=M.observer.selectionRange;M.docView.posFromDOM(e.anchorNode,e.anchorOffset)!=N.from&&D.collapse(i,j)}moveToLine(M){let N,D=this.dom;if(M.node!=D)return M;for(let i=M.offset;!N&&i<D.childNodes.length;i++){let M=mI.get(D.childNodes[i]);M instanceof Tz&&(N=M.domAtPos(0))}for(let i=M.offset-1;!N&&i>=0;i--){let M=mI.get(D.childNodes[i]);M instanceof Tz&&(N=M.domAtPos(M.length))}return N?new bI(N.node,N.offset,!0):M}nearest(M){for(let N=M;N;){let M=mI.get(N);if(M&&M.rootView==this)return M;N=N.parentNode}return null}posFromDOM(M,N){let D=this.nearest(M);if(!D)throw new RangeError("Trying to find position for a DOM position outside of the document");return D.localPosFromDOM(M,N)+D.posAtStart}domAtPos(M){let{i:N,off:D}=this.childCursor().findPos(M,-1);for(;N<this.children.length-1;){let M=this.children[N];if(D<M.length||M instanceof Tz)break;N++,D=0}return this.children[N].domAtPos(D)}coordsAt(M,N){let D=null,i=0;for(let j=this.length,t=this.children.length-1;t>=0;t--){let I=this.children[t],z=j-I.breakAfter,u=z-I.length;if(z<M)break;u<=M&&(u<M||I.covers(-1))&&(z>M||I.covers(1))&&(!D||I instanceof Tz&&!(D instanceof Tz&&N>=0))&&(D=I,i=u),j=u}return D?D.coordsAt(M-i,N):null}coordsForChar(M){let{i:N,off:D}=this.childPos(M,1),i=this.children[N];if(!(i instanceof Tz))return null;for(;i.children.length;){let{i:M,off:N}=i.childPos(D,1);for(;;M++){if(M==i.children.length)return null;if((i=i.children[M]).length)break}D=N}if(!(i instanceof KI))return null;let j=Qj(i.text,D);if(j==D)return null;let t=dI(i.dom,D,j).getClientRects();for(let M=0;M<t.length;M++){let N=t[M];if(M==t.length-1||N.top<N.bottom&&N.left<N.right)return N}return null}measureVisibleLineHeights(M){let N=[],{from:D,to:i}=M,j=this.view.contentDOM.clientWidth,t=j>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,I=-1,z=this.view.textDirection==Qz.LTR;for(let M=0,u=0;u<this.children.length;u++){let g=this.children[u],e=M+g.length;if(e>i)break;if(M>=D){let D=g.dom.getBoundingClientRect();if(N.push(D.height),t){let N=g.dom.lastChild,i=N?OI(N):[];if(i.length){let N=i[i.length-1],t=z?N.right-D.left:D.right-N.left;t>I&&(I=t,this.minWidth=j,this.minWidthFrom=M,this.minWidthTo=e)}}}M=e+g.breakAfter}return N}textDirectionAt(M){let{i:N}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[N].dom).direction?Qz.RTL:Qz.LTR}measureTextSize(){for(let M of this.children)if(M instanceof Tz){let N=M.measureTextSize();if(N)return N}let M,N,D,i=document.createElement("div");return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(i);let j=OI(i.firstChild)[0];M=i.getBoundingClientRect().height,N=j?j.width/27:7,D=j?j.height:M,i.remove()})),{lineHeight:M,charWidth:N,textHeight:D}}childCursor(M=this.length){let N=this.children.length;return N&&(M-=this.children[--N].length),new fI(this.children,M,N)}computeBlockGapDeco(){let M=[],N=this.view.viewState;for(let D=0,i=0;;i++){let j=i==N.viewports.length?null:N.viewports[i],t=j?j.from-1:this.length;if(t>D){let i=(N.lineBlockAt(t).bottom-N.lineBlockAt(D).top)/this.view.scaleY;M.push(Oz.replace({widget:new ou(i),block:!0,inclusive:!0,isBlockGap:!0}).range(D,t))}if(!j)break;D=j.to+1}return Oz.set(M)}updateDeco(){let M=0,N=this.view.state.facet(gu).map((N=>(this.dynamicDecorationMap[M++]="function"==typeof N)?N(this.view):N)),D=!1,i=this.view.state.facet(eu).map(((M,N)=>{let i="function"==typeof M;return i&&(D=!0),i?M(this.view):M}));for(i.length&&(this.dynamicDecorationMap[M++]=D,N.push(Wt.join(i))),this.decorations=[...N,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];M<this.decorations.length;)this.dynamicDecorationMap[M++]=!1;return this.decorations}scrollIntoView(M){if(M.isSnapshot){let N=this.view.viewState.lineBlockAt(M.range.head);return this.view.scrollDOM.scrollTop=N.top-M.yMargin,void(this.view.scrollDOM.scrollLeft=M.xMargin)}for(let N of this.view.state.facet(qz))try{if(N(this.view,M.range,M))return!0}catch(M){Nu(this.view.state,M,"scroll handler")}let N,{range:D}=M,i=this.coordsAt(D.head,D.empty?D.assoc:D.head>D.anchor?-1:1);if(!i)return;!D.empty&&(N=this.coordsAt(D.anchor,D.anchor>D.head?-1:1))&&(i={left:Math.min(i.left,N.left),top:Math.min(i.top,N.top),right:Math.max(i.right,N.right),bottom:Math.max(i.bottom,N.bottom)});let j=Ou(this.view),t={left:i.left-j.left,top:i.top-j.top,right:i.right+j.right,bottom:i.bottom+j.bottom},{offsetWidth:I,offsetHeight:z}=this.view.scrollDOM;!function(M,N,D,i,j,t,I,z){let u=M.ownerDocument,g=u.defaultView||window;for(let e=M,T=!1;e&&!T;)if(1==e.nodeType){let M,A=e==u.body,s=1,L=1;if(A)M=xI(g);else{if(/^(fixed|sticky)$/.test(getComputedStyle(e).position)&&(T=!0),e.scrollHeight<=e.clientHeight&&e.scrollWidth<=e.clientWidth){e=e.assignedSlot||e.parentNode;continue}let N=e.getBoundingClientRect();({scaleX:s,scaleY:L}=aI(e,N)),M={left:N.left,right:N.left+e.clientWidth*s,top:N.top,bottom:N.top+e.clientHeight*L}}let O=0,y=0;if("nearest"==j)N.top<M.top?(y=-(M.top-N.top+I),D>0&&N.bottom>M.bottom+y&&(y=N.bottom-M.bottom+y+I)):N.bottom>M.bottom&&(y=N.bottom-M.bottom+I,D<0&&N.top-y<M.top&&(y=-(M.top+y-N.top+I)));else{let i=N.bottom-N.top,t=M.bottom-M.top;y=("center"==j&&i<=t?N.top+i/2-t/2:"start"==j||"center"==j&&D<0?N.top-I:N.bottom-t+I)-M.top}if("nearest"==i?N.left<M.left?(O=-(M.left-N.left+t),D>0&&N.right>M.right+O&&(O=N.right-M.right+O+t)):N.right>M.right&&(O=N.right-M.right+t,D<0&&N.left<M.left+O&&(O=-(M.left+O-N.left+t))):O=("center"==i?N.left+(N.right-N.left)/2-(M.right-M.left)/2:"start"==i==z?N.left-t:N.right-(M.right-M.left)+t)-M.left,O||y)if(A)g.scrollBy(O,y);else{let M=0,D=0;if(y){let M=e.scrollTop;e.scrollTop+=y/L,D=(e.scrollTop-M)*L}if(O){let N=e.scrollLeft;e.scrollLeft+=O/s,M=(e.scrollLeft-N)*s}N={left:N.left-M,top:N.top-D,right:N.right-M,bottom:N.bottom-D},M&&Math.abs(M-O)<1&&(i="nearest"),D&&Math.abs(D-y)<1&&(j="nearest")}if(A)break;e=e.assignedSlot||e.parentNode}else{if(11!=e.nodeType)break;e=e.host}}(this.view.scrollDOM,t,D.head<D.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,I),-I),Math.max(Math.min(M.yMargin,z),-z),this.view.textDirection==Qz.LTR)}}class ou extends sz{constructor(M){super(),this.height=M}toDOM(){let M=document.createElement("div");return M.className="cm-gap",this.updateDOM(M),M}eq(M){return M.height==this.height}updateDOM(M){return M.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function ru(M,N){let D=M.observer.selectionRange;if(!D.focusNode)return null;let i=YI(D.focusNode,D.focusOffset),j=CI(D.focusNode,D.focusOffset),t=i||j;if(j&&i&&j.node!=i.node){let N=mI.get(j.node);if(!N||N instanceof KI&&N.text!=j.node.nodeValue)t=j;else if(M.docView.lastCompositionAfterCursor){let M=mI.get(i.node);!M||M instanceof KI&&M.text!=i.node.nodeValue||(t=j)}}if(M.docView.lastCompositionAfterCursor=t!=i,!t)return null;let I=N-t.offset;return{from:I,to:I+t.node.nodeValue.length,node:t.node}}let xu=class{constructor(){this.changes=[]}compareRange(M,N){oz(M,N,this.changes)}comparePoint(M,N){oz(M,N,this.changes)}};function au(M,N){return N.left>M?N.left-M:Math.max(0,M-N.right)}function Qu(M,N){return N.top>M?N.top-M:Math.max(0,M-N.bottom)}function Eu(M,N){return M.top<N.bottom-1&&M.bottom>N.top+1}function Su(M,N){return N<M.top?{top:N,left:M.left,right:M.right,bottom:M.bottom}:M}function hu(M,N){return N>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:N}:M}function du(M,N,D){let i,j,t,I,z,u,g,e,T=!1;for(let A=M.firstChild;A;A=A.nextSibling){let M=OI(A);for(let s=0;s<M.length;s++){let L=M[s];j&&Eu(j,L)&&(L=Su(hu(L,j.bottom),j.top));let O=au(N,L),y=Qu(D,L);if(0==O&&0==y)return 3==A.nodeType?ku(A,N,D):du(A,N,D);if(!i||I>y||I==y&&t>O){i=A,j=L,t=O,I=y;let z=y?D<L.top?-1:1:O?N<L.left?-1:1:0;T=!z||(z>0?s<M.length-1:s>0)}0==O?D>L.bottom&&(!g||g.bottom<L.bottom)?(z=A,g=L):D<L.top&&(!e||e.top>L.top)&&(u=A,e=L):g&&Eu(g,L)?g=hu(g,L.bottom):e&&Eu(e,L)&&(e=Su(e,L.top))}}if(g&&g.bottom>=D?(i=z,j=g):e&&e.top<=D&&(i=u,j=e),!i)return{node:M,offset:0};let A=Math.max(j.left,Math.min(j.right,N));return 3==i.nodeType?ku(i,A,D):T&&"false"!=i.contentEditable?du(i,A,D):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,i)+(N>=(j.left+j.right)/2?1:0)}}function ku(M,N,D){let i=M.nodeValue.length,j=-1,t=1e9,I=0;for(let z=0;z<i;z++){let i=dI(M,z,z+1).getClientRects();for(let u=0;u<i.length;u++){let g=i[u];if(g.top==g.bottom)continue;I||(I=N-g.left);let e=(g.top>D?g.top-D:D-g.bottom)-1;if(g.left-1<=N&&g.right+1>=N&&e<t){let D=N>=(g.left+g.right)/2,i=D;if(qI.chrome||qI.gecko){dI(M,z).getBoundingClientRect().left==g.right&&(i=!D)}if(e<=0)return{node:M,offset:z+(i?1:0)};j=z+(i?1:0),t=e}}}return{node:M,offset:j>-1?j:I>0?M.nodeValue.length:0}}function wu(M,N,D,i=-1){var j,t;let I,z=M.contentDOM.getBoundingClientRect(),u=z.top+M.viewState.paddingTop,{docHeight:g}=M.viewState,{x:e,y:T}=N,A=T-u;if(A<0)return 0;if(A>g)return M.state.doc.length;for(let N=M.viewState.heightOracle.textHeight/2,j=!1;I=M.elementAtHeight(A),I.type!=Lz.Text;)for(;A=i>0?I.bottom+N:I.top-N,!(A>=0&&A<=g);){if(j)return D?null:0;j=!0,i=-i}T=u+A;let s=I.from;if(s<M.viewport.from)return 0==M.viewport.from?0:D?null:Uu(M,z,I,e,T);if(s>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:D?null:Uu(M,z,I,e,T);let L=M.dom.ownerDocument,O=M.root.elementFromPoint?M.root:L,y=O.elementFromPoint(e,T);y&&!M.contentDOM.contains(y)&&(y=null),y||(e=Math.max(z.left+1,Math.min(z.right-1,e)),y=O.elementFromPoint(e,T),y&&!M.contentDOM.contains(y)&&(y=null));let c,n=-1;if(y&&0!=(null===(j=M.docView.nearest(y))||void 0===j?void 0:j.isEditable))if(L.caretPositionFromPoint){let M=L.caretPositionFromPoint(e,T);M&&({offsetNode:c,offset:n}=M)}else if(L.caretRangeFromPoint){let N=L.caretRangeFromPoint(e,T);N&&(({startContainer:c,startOffset:n}=N),(!M.contentDOM.contains(c)||qI.safari&&function(M,N,D){let i;if(3!=M.nodeType||N!=(i=M.nodeValue.length))return!1;for(let N=M.nextSibling;N;N=N.nextSibling)if(1!=N.nodeType||"BR"!=N.nodeName)return!1;return dI(M,i-1,i).getBoundingClientRect().left>D}(c,n,e)||qI.chrome&&function(M,N,D){if(0!=N)return!1;for(let N=M;;){let M=N.parentNode;if(!M||1!=M.nodeType||M.firstChild!=N)return!1;if(M.classList.contains("cm-line"))break;N=M}let i=1==M.nodeType?M.getBoundingClientRect():dI(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return D-i.left>5}(c,n,e))&&(c=void 0))}if(!c||!M.docView.dom.contains(c)){let N=Tz.find(M.docView,s);if(!N)return A>I.top+I.height/2?I.to:I.from;({node:c,offset:n}=du(N.dom,e,T))}let l=M.docView.nearest(c);if(!l)return null;if(l.isWidget&&1==(null===(t=l.dom)||void 0===t?void 0:t.nodeType)){let M=l.dom.getBoundingClientRect();return N.y<M.top||N.y<=M.bottom&&N.x<=(M.left+M.right)/2?l.posAtStart:l.posAtEnd}return l.localPosFromDOM(c,n)+l.posAtStart}function Uu(M,N,D,i,j){let t=Math.round((i-N.left)*M.defaultCharacterWidth);if(M.lineWrapping&&D.height>1.5*M.defaultLineHeight){let N=M.viewState.heightOracle.textHeight;t+=Math.floor((j-D.top-.5*(M.defaultLineHeight-N))/N)*M.viewState.heightOracle.lineLength}let I=M.state.sliceDoc(D.from,D.to);return D.from+Kt(I,t,M.state.tabSize)}function Yu(M,N){let D=M.lineBlockAt(N);if(Array.isArray(D.type))for(let M of D.type)if(M.to>N||M.to==N&&(M.to==D.to||M.type==Lz.Text))return M;return D}function Cu(M,N,D,i){let j=M.state.doc.lineAt(N.head),t=M.bidiSpans(j),I=M.textDirectionAt(j.from);for(let z=N,u=null;;){let N=Vz(j,t,I,z,D),g=Wz;if(!N){if(j.number==(D?M.state.doc.lines:1))return z;g="\n",j=M.state.doc.line(j.number+(D?1:-1)),t=M.bidiSpans(j),N=M.visualLineSide(j,!D)}if(u){if(!u(g))return z}else{if(!i)return N;u=i(g)}z=N}}function bu(M,N,D){for(;;){let i=0;for(let j of M)j.between(N-1,N+1,((M,j,t)=>{if(N>M&&N<j){let t=i||D||(N-M<j-N?-1:1);N=t<0?M:j,i=t}}));if(!i)return N}}function pu(M,N,D){let i=bu(M.state.facet(Tu).map((N=>N(M))),D.from,N.head>D.from?-1:1);return i==D.from?D:Pj.cursor(i,i<D.from?1:-1)}class mu{setSelectionOrigin(M){this.lastSelectionOrigin=M,this.lastSelectionTime=Date.now()}constructor(M){this.view=M,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=M.hasFocus,qI.safari&&M.contentDOM.addEventListener("input",(()=>null)),qI.gecko&&function(M){gg.has(M)||(gg.add(M),M.addEventListener("copy",(()=>{})),M.addEventListener("cut",(()=>{})))}(M.contentDOM.ownerDocument)}handleEvent(M){(function(M,N){if(!N.bubbles)return!0;if(N.defaultPrevented)return!1;for(let D,i=N.target;i!=M.contentDOM;i=i.parentNode)if(!i||11==i.nodeType||(D=mI.get(i))&&D.ignoreEvent(N))return!1;return!0})(this.view,M)&&!this.ignoreDuringComposition(M)&&("keydown"==M.type&&this.keydown(M)||this.runHandlers(M.type,M))}runHandlers(M,N){let D=this.handlers[M];if(D){for(let M of D.observers)M(this.view,N);for(let M of D.handlers){if(N.defaultPrevented)break;if(M(this.view,N)){N.preventDefault();break}}}}ensureHandlers(M){let N=fu(M),D=this.handlers,i=this.view.contentDOM;for(let M in N)if("scroll"!=M){let j=!N[M].handlers.length,t=D[M];t&&j!=!t.handlers.length&&(i.removeEventListener(M,this.handleEvent),t=null),t||i.addEventListener(M,this.handleEvent,{passive:j})}for(let M in D)"scroll"==M||N[M]||i.removeEventListener(M,this.handleEvent);this.handlers=N}keydown(M){if(this.lastKeyCode=M.keyCode,this.lastKeyTime=Date.now(),9==M.keyCode&&Date.now()<this.lastEscPress+2e3)return!0;if(27!=M.keyCode&&Vu.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),qI.android&&qI.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let N;return!qI.ios||M.synthetic||M.altKey||M.metaKey||!((N=vu.find((N=>N.keyCode==M.keyCode)))&&!M.ctrlKey||Wu.indexOf(M.key)>-1&&M.ctrlKey&&!M.shiftKey)?(229!=M.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=N||M,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(M){let N=this.pendingIOSKey;return!!N&&(!("Enter"==N.key&&M&&M.from<M.to&&/^\S+$/.test(M.insert.toString()))&&(this.pendingIOSKey=void 0,kI(this.view.contentDOM,N.key,N.keyCode,N instanceof KeyboardEvent?N:void 0)))}ignoreDuringComposition(M){return!!/^key/.test(M.type)&&(this.composing>0||!!(qI.safari&&!qI.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(M){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=M}update(M){this.mouseSelection&&this.mouseSelection.update(M),this.draggedContent&&M.docChanged&&(this.draggedContent=this.draggedContent.map(M.changes)),M.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Zu(M,N){return(D,i)=>{try{return N.call(M,i,D)}catch(M){Nu(D.state,M)}}}function fu(M){let N=Object.create(null);function D(M){return N[M]||(N[M]={observers:[],handlers:[]})}for(let N of M){let M=N.spec;if(M&&M.domEventHandlers)for(let i in M.domEventHandlers){let j=M.domEventHandlers[i];j&&D(i).handlers.push(Zu(N.value,j))}if(M&&M.domEventObservers)for(let i in M.domEventObservers){let j=M.domEventObservers[i];j&&D(i).observers.push(Zu(N.value,j))}}for(let M in Ru)D(M).handlers.push(Ru[M]);for(let M in Bu)D(M).observers.push(Bu[M]);return N}const vu=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Wu="dthko",Vu=[16,17,18,20,91,92,224,225];function Gu(M){return.7*Math.max(0,M)+8}class Pu{constructor(M,N,D,i){this.view=M,this.startEvent=N,this.style=D,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=N,this.scrollParent=function(M){let N=M.ownerDocument;for(let D=M.parentNode;D&&D!=N.body;)if(1==D.nodeType){if(D.scrollHeight>D.clientHeight||D.scrollWidth>D.clientWidth)return D;D=D.assignedSlot||D.parentNode}else{if(11!=D.nodeType)break;D=D.host}return null}(M.contentDOM),this.atoms=M.state.facet(Tu).map((N=>N(M)));let j=M.contentDOM.ownerDocument;j.addEventListener("mousemove",this.move=this.move.bind(this)),j.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=N.shiftKey,this.multiple=M.state.facet(bt.allowMultipleSelections)&&function(M,N){let D=M.state.facet(Pz);return D.length?D[0](N):qI.mac?N.metaKey:N.ctrlKey}(M,N),this.dragging=!(!function(M,N){let{main:D}=M.state.selection;if(D.empty)return!1;let i=AI(M.root);if(!i||0==i.rangeCount)return!0;let j=i.getRangeAt(0).getClientRects();for(let M=0;M<j.length;M++){let D=j[M];if(D.left<=N.clientX&&D.right>=N.clientX&&D.top<=N.clientY&&D.bottom>=N.clientY)return!0}return!1}(M,N)||1!=ig(N))&&null}start(M){!1===this.dragging&&this.select(M)}move(M){var N;if(0==M.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(M,N){return Math.max(Math.abs(M.clientX-N.clientX),Math.abs(M.clientY-N.clientY))}(this.startEvent,M)<10)return;this.select(this.lastEvent=M);let D=0,i=0,j=(null===(N=this.scrollParent)||void 0===N?void 0:N.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},t=Ou(this.view);M.clientX-t.left<=j.left+6?D=-Gu(j.left-M.clientX):M.clientX+t.right>=j.right-6&&(D=Gu(M.clientX-j.right)),M.clientY-t.top<=j.top+6?i=-Gu(j.top-M.clientY):M.clientY+t.bottom>=j.bottom-6&&(i=Gu(M.clientY-j.bottom)),this.setScrollSpeed(D,i)}up(M){null==this.dragging&&this.select(this.lastEvent),this.dragging||M.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let M=this.view.contentDOM.ownerDocument;M.removeEventListener("mousemove",this.move),M.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(M,N){this.scrollSpeed={x:M,y:N},M||N?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),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(M){let N=null;for(let D=0;D<M.ranges.length;D++){let i=M.ranges[D],j=null;if(i.empty){let M=bu(this.atoms,i.from,0);M!=i.from&&(j=Pj.cursor(M,-1))}else{let M=bu(this.atoms,i.from,-1),N=bu(this.atoms,i.to,1);M==i.from&&N==i.to||(j=Pj.range(i.from==i.anchor?M:N,i.from==i.head?M:N))}j&&(N||(N=M.ranges.slice()),N[D]=j)}return N?Pj.create(N,M.mainIndex):M}select(M){let{view:N}=this,D=this.skipAtoms(this.style.get(M,this.extend,this.multiple));!this.mustSelect&&D.eq(N.state.selection,!1===this.dragging)||this.view.dispatch({selection:D,userEvent:"select.pointer"}),this.mustSelect=!1}update(M){this.style.update(M)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const Ru=Object.create(null),Bu=Object.create(null),Ju=qI.ie&&qI.ie_version<15||qI.ios&&qI.webkit_version<604;function Fu(M,N){let D,{state:i}=M,j=1,t=i.toText(N),I=t.lines==i.selection.ranges.length,z=null!=tg&&i.selection.ranges.every((M=>M.empty))&&tg==t.toString();if(z){let M=-1;D=i.changeByRange((D=>{let z=i.doc.lineAt(D.from);if(z.from==M)return{range:D};M=z.from;let u=i.toText((I?t.line(j++).text:N)+i.lineBreak);return{changes:{from:z.from,insert:u},range:Pj.cursor(D.from+u.length)}}))}else D=I?i.changeByRange((M=>{let N=t.line(j++);return{changes:{from:M.from,to:M.to,insert:N.text},range:Pj.cursor(M.from+N.length)}})):i.replaceSelection(t);M.dispatch(D,{userEvent:"input.paste",scrollIntoView:!0})}function Hu(M,N,D,i){if(1==i)return Pj.cursor(N,D);if(2==i)return function(M,N,D=1){let i=M.charCategorizer(N),j=M.doc.lineAt(N),t=N-j.from;if(0==j.length)return Pj.cursor(N);0==t?D=1:t==j.length&&(D=-1);let I=t,z=t;D<0?I=Qj(j.text,t,!1):z=Qj(j.text,t);let u=i(j.text.slice(I,z));for(;I>0;){let M=Qj(j.text,I,!1);if(i(j.text.slice(M,I))!=u)break;I=M}for(;z<j.length;){let M=Qj(j.text,z);if(i(j.text.slice(z,M))!=u)break;z=M}return Pj.range(I+j.from,z+j.from)}(M.state,N,D);{let D=Tz.find(M.docView,N),i=M.state.doc.lineAt(D?D.posAtEnd:N),j=D?D.posAtStart:i.from,t=D?D.posAtEnd:i.to;return t<M.state.doc.length&&t==i.to&&t++,Pj.range(j,t)}}Bu.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},Ru.keydown=(M,N)=>(M.inputState.setSelectionOrigin("select"),27==N.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),Bu.touchstart=(M,N)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},Bu.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},Ru.mousedown=(M,N)=>{if(M.observer.flush(),M.inputState.lastTouchTime>Date.now()-2e3)return!1;let D=null;for(let i of M.state.facet(Bz))if(D=i(M,N),D)break;if(D||0!=N.button||(D=function(M,N){let D=qu(M,N),i=ig(N),j=M.state.selection;return{update(M){M.docChanged&&(D.pos=M.changes.mapPos(D.pos),j=j.map(M.changes))},get(N,t,I){let z,u=qu(M,N),g=Hu(M,u.pos,u.bias,i);if(D.pos!=u.pos&&!t){let N=Hu(M,D.pos,D.bias,i),j=Math.min(N.from,g.from),t=Math.max(N.to,g.to);g=j<g.from?Pj.range(j,t):Pj.range(t,j)}return t?j.replaceRange(j.main.extend(g.from,g.to)):I&&1==i&&j.ranges.length>1&&(z=function(M,N){for(let D=0;D<M.ranges.length;D++){let{from:i,to:j}=M.ranges[D];if(i<=N&&j>=N)return Pj.create(M.ranges.slice(0,D).concat(M.ranges.slice(D+1)),M.mainIndex==D?0:M.mainIndex-(M.mainIndex>D?1:0))}return null}(j,u.pos))?z:I?j.addRange(g):Pj.create([g])}}}(M,N)),D){let i=!M.hasFocus;M.inputState.startMouseSelection(new Pu(M,N,D,i)),i&&M.observer.ignore((()=>hI(M.contentDOM)));let j=M.inputState.mouseSelection;if(j)return j.start(N),!1===j.dragging}return!1};let Xu=(M,N)=>M>=N.top&&M<=N.bottom,$u=(M,N,D)=>Xu(N,D)&&M>=D.left&&M<=D.right;function _u(M,N,D,i){let j=Tz.find(M.docView,N);if(!j)return 1;let t=N-j.posAtStart;if(0==t)return 1;if(t==j.length)return-1;let I=j.coordsAt(t,-1);if(I&&$u(D,i,I))return-1;let z=j.coordsAt(t,1);return z&&$u(D,i,z)?1:I&&Xu(i,I)?-1:1}function qu(M,N){let D=M.posAtCoords({x:N.clientX,y:N.clientY},!1);return{pos:D,bias:_u(M,D,N.clientX,N.clientY)}}const Ku=qI.ie&&qI.ie_version<=11;let Mg=null,Ng=0,Dg=0;function ig(M){if(!Ku)return M.detail;let N=Mg,D=Dg;return Mg=M,Dg=Date.now(),Ng=!N||D>Date.now()-400&&Math.abs(N.clientX-M.clientX)<2&&Math.abs(N.clientY-M.clientY)<2?(Ng+1)%3:1}function jg(M,N,D,i){if(!D)return;let j=M.posAtCoords({x:N.clientX,y:N.clientY},!1),{draggedContent:t}=M.inputState,I=i&&t&&function(M,N){let D=M.state.facet(Rz);return D.length?D[0](N):qI.mac?!N.altKey:!N.ctrlKey}(M,N)?{from:t.from,to:t.to}:null,z={from:j,insert:D},u=M.state.changes(I?[I,z]:z);M.focus(),M.dispatch({changes:u,selection:{anchor:u.mapPos(j,-1),head:u.mapPos(j,1)},userEvent:I?"move.drop":"input.drop"}),M.inputState.draggedContent=null}Ru.dragstart=(M,N)=>{let{selection:{main:D}}=M.state;if(N.target.draggable){let i=M.docView.nearest(N.target);if(i&&i.isWidget){let M=i.posAtStart,N=M+i.length;(M>=D.to||N<=D.from)&&(D=Pj.range(M,N))}}let{inputState:i}=M;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=D,N.dataTransfer&&(N.dataTransfer.setData("Text",M.state.sliceDoc(D.from,D.to)),N.dataTransfer.effectAllowed="copyMove"),!1},Ru.dragend=M=>(M.inputState.draggedContent=null,!1),Ru.drop=(M,N)=>{if(!N.dataTransfer)return!1;if(M.state.readOnly)return!0;let D=N.dataTransfer.files;if(D&&D.length){let i=Array(D.length),j=0,t=()=>{++j==D.length&&jg(M,N,i.filter((M=>null!=M)).join(M.state.lineBreak),!1)};for(let M=0;M<D.length;M++){let N=new FileReader;N.onerror=t,N.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(N.result)||(i[M]=N.result),t()},N.readAsText(D[M])}return!0}{let D=N.dataTransfer.getData("Text");if(D)return jg(M,N,D,!0),!0}return!1},Ru.paste=(M,N)=>{if(M.state.readOnly)return!0;M.observer.flush();let D=Ju?null:N.clipboardData;return D?(Fu(M,D.getData("text/plain")||D.getData("text/uri-list")),!0):(function(M){let N=M.dom.parentNode;if(!N)return;let D=N.appendChild(document.createElement("textarea"));D.style.cssText="position: fixed; left: -10000px; top: 10px",D.focus(),setTimeout((()=>{M.focus(),D.remove(),Fu(M,D.value)}),50)}(M),!1)};let tg=null;Ru.copy=Ru.cut=(M,N)=>{let{text:D,ranges:i,linewise:j}=function(M){let N=[],D=[],i=!1;for(let i of M.selection.ranges)i.empty||(N.push(M.sliceDoc(i.from,i.to)),D.push(i));if(!N.length){let j=-1;for(let{from:i}of M.selection.ranges){let t=M.doc.lineAt(i);t.number>j&&(N.push(t.text),D.push({from:t.from,to:Math.min(M.doc.length,t.to+1)})),j=t.number}i=!0}return{text:N.join(M.lineBreak),ranges:D,linewise:i}}(M.state);if(!D&&!j)return!1;tg=j?D:null,"cut"!=N.type||M.state.readOnly||M.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let t=Ju?null:N.clipboardData;return t?(t.clearData(),t.setData("text/plain",D),!0):(function(M,N){let D=M.dom.parentNode;if(!D)return;let i=D.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=N,i.focus(),i.selectionEnd=N.length,i.selectionStart=0,setTimeout((()=>{i.remove(),M.focus()}),50)}(M,D),!1)};const Ig=lt.define();function zg(M,N){let D=[];for(let i of M.facet(Xz)){let j=i(M,N);j&&D.push(j)}return D?M.update({effects:D,annotations:Ig.of(!0)}):null}function ug(M){setTimeout((()=>{let N=M.hasFocus;if(N!=M.inputState.notifiedFocused){let D=zg(M.state,N);D?M.dispatch(D):M.update([])}}),10)}Bu.focus=M=>{M.inputState.lastFocusTime=Date.now(),M.scrollDOM.scrollTop||!M.inputState.lastScrollTop&&!M.inputState.lastScrollLeft||(M.scrollDOM.scrollTop=M.inputState.lastScrollTop,M.scrollDOM.scrollLeft=M.inputState.lastScrollLeft),ug(M)},Bu.blur=M=>{M.observer.clearSelectionRange(),ug(M)},Bu.compositionstart=Bu.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},Bu.compositionend=M=>{M.inputState.composing=-1,M.inputState.compositionEndedAt=Date.now(),M.inputState.compositionPendingKey=!0,M.inputState.compositionPendingChange=M.observer.pendingRecords().length>0,M.inputState.compositionFirstChange=null,qI.chrome&&qI.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},Bu.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},Ru.beforeinput=(M,N)=>{var D;let i;if(qI.chrome&&qI.android&&(i=vu.find((M=>M.inputType==N.inputType)))&&(M.observer.delayAndroidKey(i.key,i.keyCode),"Backspace"==i.key||"Delete"==i.key)){let N=(null===(D=window.visualViewport)||void 0===D?void 0:D.height)||0;setTimeout((()=>{var D;((null===(D=window.visualViewport)||void 0===D?void 0:D.height)||0)>N+10&&M.hasFocus&&(M.contentDOM.blur(),M.focus())}),100)}return qI.ios&&"deleteContentForward"==N.inputType&&M.observer.flushSoon(),qI.safari&&"insertText"==N.inputType&&M.inputState.composing>=0&&setTimeout((()=>Bu.compositionend(M,N)),20),!1};const gg=new Set;const eg=["pre-wrap","normal","pre-line","break-spaces"];class Tg{constructor(M){this.lineWrapping=M,this.doc=ej.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(M,N){let D=this.doc.lineAt(N).number-this.doc.lineAt(M).number+1;return this.lineWrapping&&(D+=Math.max(0,Math.ceil((N-M-D*this.lineLength*.5)/this.lineLength))),this.lineHeight*D}heightForLine(M){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((M-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(M){return this.doc=M,this}mustRefreshForWrapping(M){return eg.indexOf(M)>-1!=this.lineWrapping}mustRefreshForHeights(M){let N=!1;for(let D=0;D<M.length;D++){let i=M[D];i<0?D++:this.heightSamples[Math.floor(10*i)]||(N=!0,this.heightSamples[Math.floor(10*i)]=!0)}return N}refresh(M,N,D,i,j,t){let I=eg.indexOf(M)>-1,z=Math.round(N)!=Math.round(this.lineHeight)||this.lineWrapping!=I;if(this.lineWrapping=I,this.lineHeight=N,this.charWidth=D,this.textHeight=i,this.lineLength=j,z){this.heightSamples={};for(let M=0;M<t.length;M++){let N=t[M];N<0?M++:this.heightSamples[Math.floor(10*N)]=!0}}return z}}class Ag{constructor(M,N){this.from=M,this.heights=N,this.index=0}get more(){return this.index<this.heights.length}}class sg{constructor(M,N,D,i,j){this.from=M,this.length=N,this.top=D,this.height=i,this._content=j}get type(){return"number"==typeof this._content?Lz.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof nz?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(M){let N=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(M._content)?M._content:[M]);return new sg(this.from,this.length+M.length,this.top,this.height+M.height,N)}}var Lg=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Lg||(Lg={}));const Og=.001;class yg{constructor(M,N,D=2){this.length=M,this.height=N,this.flags=D}get outdated(){return(2&this.flags)>0}set outdated(M){this.flags=(M?2:0)|-3&this.flags}setHeight(M,N){this.height!=N&&(Math.abs(this.height-N)>Og&&(M.heightChanged=!0),this.height=N)}replace(M,N,D){return yg.of(D)}decomposeLeft(M,N){N.push(this)}decomposeRight(M,N){N.push(this)}applyChanges(M,N,D,i){let j=this,t=D.doc;for(let I=i.length-1;I>=0;I--){let{fromA:z,toA:u,fromB:g,toB:e}=i[I],T=j.lineAt(z,Lg.ByPosNoHeight,D.setDoc(N),0,0),A=T.to>=u?T:j.lineAt(u,Lg.ByPosNoHeight,D,0,0);for(e+=A.to-u,u=A.to;I>0&&T.from<=i[I-1].toA;)z=i[I-1].fromA,g=i[I-1].fromB,I--,z<T.from&&(T=j.lineAt(z,Lg.ByPosNoHeight,D,0,0));g+=T.from-z,z=T.from;let s=xg.build(D.setDoc(t),M,g,e);j=j.replace(z,u,s)}return j.updateHeight(D,0)}static empty(){return new ng(0,0)}static of(M){if(1==M.length)return M[0];let N=0,D=M.length,i=0,j=0;for(;;)if(N==D)if(i>2*j){let j=M[N-1];j.break?M.splice(--N,1,j.left,null,j.right):M.splice(--N,1,j.left,j.right),D+=1+j.break,i-=j.size}else{if(!(j>2*i))break;{let N=M[D];N.break?M.splice(D,1,N.left,null,N.right):M.splice(D,1,N.left,N.right),D+=2+N.break,j-=N.size}}else if(i<j){let D=M[N++];D&&(i+=D.size)}else{let N=M[--D];N&&(j+=N.size)}let t=0;return null==M[N-1]?(t=1,N--):null==M[N]&&(t=1,D++),new og(yg.of(M.slice(0,N)),t,yg.of(M.slice(D)))}}yg.prototype.size=1;class cg extends yg{constructor(M,N,D){super(M,N),this.deco=D}blockAt(M,N,D,i){return new sg(i,this.length,D,this.height,this.deco||0)}lineAt(M,N,D,i,j){return this.blockAt(0,D,i,j)}forEachLine(M,N,D,i,j,t){M<=j+this.length&&N>=j&&t(this.blockAt(0,D,i,j))}updateHeight(M,N=0,D=!1,i){return i&&i.from<=N&&i.more&&this.setHeight(M,i.heights[i.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class ng extends cg{constructor(M,N){super(M,N,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,N,D,i){return new sg(i,this.length,D,this.height,this.breaks)}replace(M,N,D){let i=D[0];return 1==D.length&&(i instanceof ng||i instanceof lg&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof lg?i=new ng(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):yg.of(D)}updateHeight(M,N=0,D=!1,i){return i&&i.from<=N&&i.more?this.setHeight(M,i.heights[i.index++]):(D||this.outdated)&&this.setHeight(M,Math.max(this.widgetHeight,M.heightForLine(this.length-this.collapsed))+this.breaks*M.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class lg extends yg{constructor(M){super(M,0)}heightMetrics(M,N){let D,i=M.doc.lineAt(N).number,j=M.doc.lineAt(N+this.length).number,t=j-i+1,I=0;if(M.lineWrapping){let N=Math.min(this.height,M.lineHeight*t);D=N/t,this.length>t+1&&(I=(this.height-N)/(this.length-t-1))}else D=this.height/t;return{firstLine:i,lastLine:j,perLine:D,perChar:I}}blockAt(M,N,D,i){let{firstLine:j,lastLine:t,perLine:I,perChar:z}=this.heightMetrics(N,i);if(N.lineWrapping){let j=i+(M<N.lineHeight?0:Math.round(Math.max(0,Math.min(1,(M-D)/this.height))*this.length)),t=N.doc.lineAt(j),u=I+t.length*z,g=Math.max(D,M-u/2);return new sg(t.from,t.length,g,u,0)}{let i=Math.max(0,Math.min(t-j,Math.floor((M-D)/I))),{from:z,length:u}=N.doc.line(j+i);return new sg(z,u,D+I*i,I,0)}}lineAt(M,N,D,i,j){if(N==Lg.ByHeight)return this.blockAt(M,D,i,j);if(N==Lg.ByPosNoHeight){let{from:N,to:i}=D.doc.lineAt(M);return new sg(N,i-N,0,0,0)}let{firstLine:t,perLine:I,perChar:z}=this.heightMetrics(D,j),u=D.doc.lineAt(M),g=I+u.length*z,e=u.number-t,T=i+I*e+z*(u.from-j-e);return new sg(u.from,u.length,Math.max(i,Math.min(T,i+this.height-g)),g,0)}forEachLine(M,N,D,i,j,t){M=Math.max(M,j),N=Math.min(N,j+this.length);let{firstLine:I,perLine:z,perChar:u}=this.heightMetrics(D,j);for(let g=M,e=i;g<=N;){let N=D.doc.lineAt(g);if(g==M){let D=N.number-I;e+=z*D+u*(M-j-D)}let i=z+u*N.length;t(new sg(N.from,N.length,e,i,0)),e+=i,g=N.to+1}}replace(M,N,D){let i=this.length-N;if(i>0){let M=D[D.length-1];M instanceof lg?D[D.length-1]=new lg(M.length+i):D.push(null,new lg(i-1))}if(M>0){let N=D[0];N instanceof lg?D[0]=new lg(M+N.length):D.unshift(new lg(M-1),null)}return yg.of(D)}decomposeLeft(M,N){N.push(new lg(M-1),null)}decomposeRight(M,N){N.push(null,new lg(this.length-M-1))}updateHeight(M,N=0,D=!1,i){let j=N+this.length;if(i&&i.from<=N+this.length&&i.more){let D=[],t=Math.max(N,i.from),I=-1;for(i.from>N&&D.push(new lg(i.from-N-1).updateHeight(M,N));t<=j&&i.more;){let N=M.doc.lineAt(t).length;D.length&&D.push(null);let j=i.heights[i.index++];-1==I?I=j:Math.abs(j-I)>=Og&&(I=-2);let z=new ng(N,j);z.outdated=!1,D.push(z),t+=N+1}t<=j&&D.push(null,new lg(j-t).updateHeight(M,t));let z=yg.of(D);return(I<0||Math.abs(z.height-this.height)>=Og||Math.abs(I-this.heightMetrics(M,N).perLine)>=Og)&&(M.heightChanged=!0),z}return(D||this.outdated)&&(this.setHeight(M,M.heightForGap(N,N+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class og extends yg{constructor(M,N,D){super(M.length+N+D.length,M.height+D.height,N|(M.outdated||D.outdated?2:0)),this.left=M,this.right=D,this.size=M.size+D.size}get break(){return 1&this.flags}blockAt(M,N,D,i){let j=D+this.left.height;return M<j?this.left.blockAt(M,N,D,i):this.right.blockAt(M,N,j,i+this.left.length+this.break)}lineAt(M,N,D,i,j){let t=i+this.left.height,I=j+this.left.length+this.break,z=N==Lg.ByHeight?M<t:M<I,u=z?this.left.lineAt(M,N,D,i,j):this.right.lineAt(M,N,D,t,I);if(this.break||(z?u.to<I:u.from>I))return u;let g=N==Lg.ByPosNoHeight?Lg.ByPosNoHeight:Lg.ByPos;return z?u.join(this.right.lineAt(I,g,D,t,I)):this.left.lineAt(I,g,D,i,j).join(u)}forEachLine(M,N,D,i,j,t){let I=i+this.left.height,z=j+this.left.length+this.break;if(this.break)M<z&&this.left.forEachLine(M,N,D,i,j,t),N>=z&&this.right.forEachLine(M,N,D,I,z,t);else{let u=this.lineAt(z,Lg.ByPos,D,i,j);M<u.from&&this.left.forEachLine(M,u.from-1,D,i,j,t),u.to>=M&&u.from<=N&&t(u),N>u.to&&this.right.forEachLine(u.to+1,N,D,I,z,t)}}replace(M,N,D){let i=this.left.length+this.break;if(N<i)return this.balanced(this.left.replace(M,N,D),this.right);if(M>this.left.length)return this.balanced(this.left,this.right.replace(M-i,N-i,D));let j=[];M>0&&this.decomposeLeft(M,j);let t=j.length;for(let M of D)j.push(M);if(M>0&&rg(j,t-1),N<this.length){let M=j.length;this.decomposeRight(N,j),rg(j,M)}return yg.of(j)}decomposeLeft(M,N){let D=this.left.length;if(M<=D)return this.left.decomposeLeft(M,N);N.push(this.left),this.break&&(D++,M>=D&&N.push(null)),M>D&&this.right.decomposeLeft(M-D,N)}decomposeRight(M,N){let D=this.left.length,i=D+this.break;if(M>=i)return this.right.decomposeRight(M-i,N);M<D&&this.left.decomposeRight(M,N),this.break&&M<i&&N.push(null),N.push(this.right)}balanced(M,N){return M.size>2*N.size||N.size>2*M.size?yg.of(this.break?[M,null,N]:[M,N]):(this.left=M,this.right=N,this.height=M.height+N.height,this.outdated=M.outdated||N.outdated,this.size=M.size+N.size,this.length=M.length+this.break+N.length,this)}updateHeight(M,N=0,D=!1,i){let{left:j,right:t}=this,I=N+j.length+this.break,z=null;return i&&i.from<=N+j.length&&i.more?z=j=j.updateHeight(M,N,D,i):j.updateHeight(M,N,D),i&&i.from<=I+t.length&&i.more?z=t=t.updateHeight(M,I,D,i):t.updateHeight(M,I,D),z?this.balanced(j,t):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function rg(M,N){let D,i;null==M[N]&&(D=M[N-1])instanceof lg&&(i=M[N+1])instanceof lg&&M.splice(N-1,3,new lg(D.length+1+i.length))}class xg{constructor(M,N){this.pos=M,this.oracle=N,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=M}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(M,N){if(this.lineStart>-1){let M=Math.min(N,this.lineEnd),D=this.nodes[this.nodes.length-1];D instanceof ng?D.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new ng(M-this.pos,-1)),this.writtenTo=M,N>M&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=N}point(M,N,D){if(M<N||D.heightRelevant){let i=D.widget?D.widget.estimatedHeight:0,j=D.widget?D.widget.lineBreaks:0;i<0&&(i=this.oracle.lineHeight);let t=N-M;D.block?this.addBlock(new cg(t,i,D)):(t||j||i>=5)&&this.addLineDeco(i,j,t)}else N>M&&this.span(M,N);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:M,to:N}=this.oracle.doc.lineAt(this.pos);this.lineStart=M,this.lineEnd=N,this.writtenTo<M&&((this.writtenTo<M-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,M-1)),this.nodes.push(null)),this.pos>M&&this.nodes.push(new ng(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,N){let D=new lg(N-M);return this.oracle.doc.lineAt(M).to==N&&(D.flags|=4),D}ensureLine(){this.enterLine();let M=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(M instanceof ng)return M;let N=new ng(0,-1);return this.nodes.push(N),N}addBlock(M){this.enterLine();let N=M.deco;N&&N.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(M),this.writtenTo=this.pos=this.pos+M.length,N&&N.endSide>0&&(this.covering=M)}addLineDeco(M,N,D){let i=this.ensureLine();i.length+=D,i.collapsed+=D,i.widgetHeight=Math.max(i.widgetHeight,M),i.breaks+=N,this.writtenTo=this.pos=this.pos+D}finish(M){let N=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||N instanceof ng||this.isCovered?(this.writtenTo<this.pos||null==N)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new ng(0,-1));let D=M;for(let M of this.nodes)M instanceof ng&&M.updateHeight(this.oracle,D),D+=M?M.length:1;return this.nodes}static build(M,N,D,i){let j=new xg(D,M);return Wt.spans(N,D,i,j,0),j.finish(D)}}class ag{constructor(){this.changes=[]}compareRange(){}comparePoint(M,N,D,i){(M<N||D&&D.heightRelevant||i&&i.heightRelevant)&&oz(M,N,this.changes,5)}}function Qg(M,N){let D=M.getBoundingClientRect(),i=M.ownerDocument,j=i.defaultView||window,t=Math.max(0,D.left),I=Math.min(j.innerWidth,D.right),z=Math.max(0,D.top),u=Math.min(j.innerHeight,D.bottom);for(let N=M.parentNode;N&&N!=i.body;)if(1==N.nodeType){let D=N,i=window.getComputedStyle(D);if((D.scrollHeight>D.clientHeight||D.scrollWidth>D.clientWidth)&&"visible"!=i.overflow){let i=D.getBoundingClientRect();t=Math.max(t,i.left),I=Math.min(I,i.right),z=Math.max(z,i.top),u=N==M.parentNode?i.bottom:Math.min(u,i.bottom)}N="absolute"==i.position||"fixed"==i.position?D.offsetParent:D.parentNode}else{if(11!=N.nodeType)break;N=N.host}return{left:t-D.left,right:Math.max(t,I)-D.left,top:z-(D.top+N),bottom:Math.max(z,u)-(D.top+N)}}function Eg(M,N){let D=M.getBoundingClientRect();return{left:0,right:D.right-D.left,top:N,bottom:D.bottom-(D.top+N)}}class Sg{constructor(M,N,D){this.from=M,this.to=N,this.size=D}static same(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++){let i=M[D],j=N[D];if(i.from!=j.from||i.to!=j.to||i.size!=j.size)return!1}return!0}draw(M,N){return Oz.replace({widget:new hg(this.size*(N?M.scaleY:M.scaleX),N)}).range(this.from,this.to)}}class hg extends sz{constructor(M,N){super(),this.size=M,this.vertical=N}eq(M){return M.size==this.size&&M.vertical==this.vertical}toDOM(){let M=document.createElement("div");return this.vertical?M.style.height=this.size+"px":(M.style.width=this.size+"px",M.style.height="2px",M.style.display="inline-block"),M}get estimatedHeight(){return this.vertical?this.size:-1}}class dg{constructor(M){this.state=M,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Cg,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Qz.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let N=M.facet(uu).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new Tg(N),this.stateDeco=M.facet(gu).filter((M=>"function"!=typeof M)),this.heightMap=yg.empty().applyChanges(this.stateDeco,ej.empty,this.heightOracle.setDoc(M.doc),[new cu(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Oz.set(this.lineGaps.map((M=>M.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let M=[this.viewport],{main:N}=this.state.selection;for(let D=0;D<=1;D++){let i=D?N.head:N.anchor;if(!M.some((({from:M,to:N})=>i>=M&&i<=N))){let{from:N,to:D}=this.lineBlockAt(i);M.push(new kg(N,D))}}this.viewports=M.sort(((M,N)=>M.from-N.from)),this.scaler=this.heightMap.height<=7e6?Cg:new bg(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,(M=>{this.viewportLines.push(1==this.scaler.scale?M:pg(M,this.scaler))}))}update(M,N=null){this.state=M.state;let D=this.stateDeco;this.stateDeco=this.state.facet(gu).filter((M=>"function"!=typeof M));let i=M.changedRanges,j=cu.extendWithRanges(i,function(M,N,D){let i=new ag;return Wt.compare(M,N,D,i,0),i.changes}(D,this.stateDeco,M?M.changes:pj.empty(this.state.doc.length))),t=this.heightMap.height,I=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,M.startState.doc,this.heightOracle.setDoc(this.state.doc),j),this.heightMap.height!=t&&(M.flags|=2),I?(this.scrollAnchorPos=M.changes.mapPos(I.from,-1),this.scrollAnchorHeight=I.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let z=j.length?this.mapViewport(this.viewport,M.changes):this.viewport;(N&&(N.range.head<z.from||N.range.head>z.to)||!this.viewportIsAppropriate(z))&&(z=this.getViewport(0,N));let u=!M.changes.empty||2&M.flags||z.from!=this.viewport.from||z.to!=this.viewport.to;this.viewport=z,this.updateForViewport(),u&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,M.changes))),M.flags|=this.computeVisibleRanges(),N&&(this.scrollTarget=N),!this.mustEnforceCursorAssoc&&M.selectionSet&&M.view.lineWrapping&&M.state.selection.main.empty&&M.state.selection.main.assoc&&!M.state.facet(_z)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let N=M.contentDOM,D=window.getComputedStyle(N),i=this.heightOracle,j=D.whiteSpace;this.defaultTextDirection="rtl"==D.direction?Qz.RTL:Qz.LTR;let t=this.heightOracle.mustRefreshForWrapping(j),I=N.getBoundingClientRect(),z=t||this.mustMeasureContent||this.contentDOMHeight!=I.height;this.contentDOMHeight=I.height,this.mustMeasureContent=!1;let u=0,g=0;if(I.width&&I.height){let{scaleX:M,scaleY:D}=aI(N,I);(M>.005&&Math.abs(this.scaleX-M)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=M,this.scaleY=D,u|=8,t=z=!0)}let e=(parseInt(D.paddingTop)||0)*this.scaleY,T=(parseInt(D.paddingBottom)||0)*this.scaleY;this.paddingTop==e&&this.paddingBottom==T||(this.paddingTop=e,this.paddingBottom=T,u|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(i.lineWrapping&&(z=!0),this.editorWidth=M.scrollDOM.clientWidth,u|=8);let A=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=A&&(this.scrollAnchorHeight=-1,this.scrollTop=A),this.scrolledToBottom=UI(M.scrollDOM);let s=(this.printing?Eg:Qg)(N,this.paddingTop),L=s.top-this.pixelViewport.top,O=s.bottom-this.pixelViewport.bottom;this.pixelViewport=s;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(z=!0)),!this.inView&&!this.scrollTarget)return 0;let c=I.width;if(this.contentDOMWidth==c&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=I.width,this.editorHeight=M.scrollDOM.clientHeight,u|=8),z){let N=M.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(N)&&(t=!0),t||i.lineWrapping&&Math.abs(c-this.contentDOMWidth)>i.charWidth){let{lineHeight:D,charWidth:I,textHeight:z}=M.docView.measureTextSize();t=D>0&&i.refresh(j,D,I,z,c/I,N),t&&(M.docView.minWidth=0,u|=8)}L>0&&O>0?g=Math.max(L,O):L<0&&O<0&&(g=Math.min(L,O)),i.heightChanged=!1;for(let D of this.viewports){let j=D.from==this.viewport.from?N:M.docView.measureVisibleLineHeights(D);this.heightMap=(t?yg.empty().applyChanges(this.stateDeco,ej.empty,this.heightOracle,[new cu(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(i,0,t,new Ag(D.from,j))}i.heightChanged&&(u|=2)}let n=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return n&&(this.viewport=this.getViewport(g,this.scrollTarget)),this.updateForViewport(),(2&u||n)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(t?[]:this.lineGaps,M)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(M,N){let D=.5-Math.max(-.5,Math.min(.5,M/1e3/2)),i=this.heightMap,j=this.heightOracle,{visibleTop:t,visibleBottom:I}=this,z=new kg(i.lineAt(t-1e3*D,Lg.ByHeight,j,0,0).from,i.lineAt(I+1e3*(1-D),Lg.ByHeight,j,0,0).to);if(N){let{head:M}=N.range;if(M<z.from||M>z.to){let D,t=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=i.lineAt(M,Lg.ByPos,j,0,0);D="center"==N.y?(I.top+I.bottom)/2-t/2:"start"==N.y||"nearest"==N.y&&M<z.from?I.top:I.bottom-t,z=new kg(i.lineAt(D-500,Lg.ByHeight,j,0,0).from,i.lineAt(D+t+500,Lg.ByHeight,j,0,0).to)}}return z}mapViewport(M,N){let D=N.mapPos(M.from,-1),i=N.mapPos(M.to,1);return new kg(this.heightMap.lineAt(D,Lg.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(i,Lg.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:M,to:N},D=0){if(!this.inView)return!0;let{top:i}=this.heightMap.lineAt(M,Lg.ByPos,this.heightOracle,0,0),{bottom:j}=this.heightMap.lineAt(N,Lg.ByPos,this.heightOracle,0,0),{visibleTop:t,visibleBottom:I}=this;return(0==M||i<=t-Math.max(10,Math.min(-D,250)))&&(N==this.state.doc.length||j>=I+Math.max(10,Math.min(D,250)))&&i>t-2e3&&j<I+2e3}mapLineGaps(M,N){if(!M.length||N.empty)return M;let D=[];for(let i of M)N.touchesRange(i.from,i.to)||D.push(new Sg(N.mapPos(i.from),N.mapPos(i.to),i.size));return D}ensureLineGaps(M,N){let D=this.heightOracle.lineWrapping,i=D?1e4:2e3,j=i>>1,t=i<<1;if(this.defaultTextDirection!=Qz.LTR&&!D)return[];let I=[],z=(i,t,u,g)=>{if(t-i<j)return;let e=this.state.selection.main,T=[e.from];e.empty||T.push(e.to);for(let M of T)if(M>i&&M<t)return z(i,M-10,u,g),void z(M+10,t,u,g);let A=function(M,N){for(let D of M)if(N(D))return D;return}(M,(M=>M.from>=u.from&&M.to<=u.to&&Math.abs(M.from-i)<j&&Math.abs(M.to-t)<j&&!T.some((N=>M.from<N&&M.to>N))));if(!A){if(t<u.to&&N&&D&&N.visibleRanges.some((M=>M.from<=t&&M.to>=t))){let M=N.moveToLineBoundary(Pj.cursor(t),!1,!0).head;M>i&&(t=M)}A=new Sg(i,t,this.gapSize(u,i,t,g))}I.push(A)};for(let M of this.viewportLines){if(M.length<t)continue;let N=wg(M.from,M.to,this.stateDeco);if(N.total<t)continue;let j,I,u=this.scrollTarget?this.scrollTarget.range.head:null;if(D){let D,t,z=i/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=u){let i=Yg(N,u),j=((this.visibleBottom-this.visibleTop)/2+z)/M.height;D=i-j,t=i+j}else D=(this.visibleTop-M.top-z)/M.height,t=(this.visibleBottom-M.top+z)/M.height;j=Ug(N,D),I=Ug(N,t)}else{let M,D,t=N.total*this.heightOracle.charWidth,z=i*this.heightOracle.charWidth;if(null!=u){let i=Yg(N,u),j=((this.pixelViewport.right-this.pixelViewport.left)/2+z)/t;M=i-j,D=i+j}else M=(this.pixelViewport.left-z)/t,D=(this.pixelViewport.right+z)/t;j=Ug(N,M),I=Ug(N,D)}j>M.from&&z(M.from,j,M,N),I<M.to&&z(I,M.to,M,N)}return I}gapSize(M,N,D,i){let j=Yg(i,D)-Yg(i,N);return this.heightOracle.lineWrapping?M.height*j:i.total*this.heightOracle.charWidth*j}updateLineGaps(M){Sg.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=Oz.set(M.map((M=>M.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let M=this.stateDeco;this.lineGaps.length&&(M=M.concat(this.lineGapDeco));let N=[];Wt.spans(M,this.viewport.from,this.viewport.to,{span(M,D){N.push({from:M,to:D})},point(){}},20);let D=N.length!=this.visibleRanges.length||this.visibleRanges.some(((M,D)=>M.from!=N[D].from||M.to!=N[D].to));return this.visibleRanges=N,D?4:0}lineBlockAt(M){return M>=this.viewport.from&&M<=this.viewport.to&&this.viewportLines.find((N=>N.from<=M&&N.to>=M))||pg(this.heightMap.lineAt(M,Lg.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return pg(this.heightMap.lineAt(this.scaler.fromDOM(M),Lg.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(M){let N=this.lineBlockAtHeight(M+8);return N.from>=this.viewport.from||this.viewportLines[0].top-M>200?N:this.viewportLines[0]}elementAtHeight(M){return pg(this.heightMap.blockAt(this.scaler.fromDOM(M),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 kg{constructor(M,N){this.from=M,this.to=N}}function wg(M,N,D){let i=[],j=M,t=0;return Wt.spans(D,M,N,{span(){},point(M,N){M>j&&(i.push({from:j,to:M}),t+=M-j),j=N}},20),j<N&&(i.push({from:j,to:N}),t+=N-j),{total:t,ranges:i}}function Ug({total:M,ranges:N},D){if(D<=0)return N[0].from;if(D>=1)return N[N.length-1].to;let i=Math.floor(M*D);for(let M=0;;M++){let{from:D,to:j}=N[M],t=j-D;if(i<=t)return D+i;i-=t}}function Yg(M,N){let D=0;for(let{from:i,to:j}of M.ranges){if(N<=j){D+=N-i;break}D+=j-i}return D/M.total}const Cg={toDOM:M=>M,fromDOM:M=>M,scale:1};class bg{constructor(M,N,D){let i=0,j=0,t=0;this.viewports=D.map((({from:D,to:j})=>{let t=N.lineAt(D,Lg.ByPos,M,0,0).top,I=N.lineAt(j,Lg.ByPos,M,0,0).bottom;return i+=I-t,{from:D,to:j,top:t,bottom:I,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(N.height-i);for(let M of this.viewports)M.domTop=t+(M.top-j)*this.scale,t=M.domBottom=M.domTop+(M.bottom-M.top),j=M.bottom}toDOM(M){for(let N=0,D=0,i=0;;N++){let j=N<this.viewports.length?this.viewports[N]:null;if(!j||M<j.top)return i+(M-D)*this.scale;if(M<=j.bottom)return j.domTop+(M-j.top);D=j.bottom,i=j.domBottom}}fromDOM(M){for(let N=0,D=0,i=0;;N++){let j=N<this.viewports.length?this.viewports[N]:null;if(!j||M<j.domTop)return D+(M-i)/this.scale;if(M<=j.domBottom)return j.top+(M-j.domTop);D=j.bottom,i=j.domBottom}}}function pg(M,N){if(1==N.scale)return M;let D=N.toDOM(M.top),i=N.toDOM(M.bottom);return new sg(M.from,M.length,D,i-D,Array.isArray(M._content)?M._content.map((M=>pg(M,N))):M._content)}const mg=Jj.define({combine:M=>M.join(" ")}),Zg=Jj.define({combine:M=>M.indexOf(!0)>-1}),fg=iI.newName(),vg=iI.newName(),Wg=iI.newName(),Vg={"&light":"."+vg,"&dark":"."+Wg};function Gg(M,N,D){return new iI(N,{finish:N=>/&/.test(N)?N.replace(/&\w*/,(N=>{if("&"==N)return M;if(!D||!D[N])throw new RangeError(`Unsupported selector: ${N}`);return D[N]})):M+" "+N})}const Pg=Gg("."+fg,{"&":{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",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{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"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",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,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',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"}},Vg),Rg="￿";class Bg{constructor(M,N){this.points=M,this.text="",this.lineSeparator=N.facet(bt.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Rg}readRange(M,N){if(!M)return this;let D=M.parentNode;for(let i=M;;){this.findPointBefore(D,i);let M=this.text.length;this.readNode(i);let j=i.nextSibling;if(j==N)break;let t=mI.get(i),I=mI.get(j);(t&&I?t.breakAfter:(t?t.breakAfter:nI(i))||nI(j)&&("BR"!=i.nodeName||i.cmIgnore)&&this.text.length>M)&&this.lineBreak(),i=j}return this.findPointBefore(D,N),this}readTextNode(M){let N=M.nodeValue;for(let D of this.points)D.node==M&&(D.pos=this.text.length+Math.min(D.offset,N.length));for(let D=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let j,t=-1,I=1;if(this.lineSeparator?(t=N.indexOf(this.lineSeparator,D),I=this.lineSeparator.length):(j=i.exec(N))&&(t=j.index,I=j[0].length),this.append(N.slice(D,t<0?N.length:t)),t<0)break;if(this.lineBreak(),I>1)for(let N of this.points)N.node==M&&N.pos>this.text.length&&(N.pos-=I-1);D=t+I}}readNode(M){if(M.cmIgnore)return;let N=mI.get(M),D=N&&N.overrideDOMText;if(null!=D){this.findPointInside(M,D.length);for(let M=D.iter();!M.next().done;)M.lineBreak?this.lineBreak():this.append(M.value)}else 3==M.nodeType?this.readTextNode(M):"BR"==M.nodeName?M.nextSibling&&this.lineBreak():1==M.nodeType&&this.readRange(M.firstChild,null)}findPointBefore(M,N){for(let D of this.points)D.node==M&&M.childNodes[D.offset]==N&&(D.pos=this.text.length)}findPointInside(M,N){for(let D of this.points)(3==M.nodeType?D.node==M:M.contains(D.node))&&(D.pos=this.text.length+(Jg(M,D.node,D.offset)?N:0))}}function Jg(M,N,D){for(;;){if(!N||D<oI(N))return!1;if(N==M)return!0;D=cI(N)+1,N=N.parentNode}}class Fg{constructor(M,N){this.node=M,this.offset=N,this.pos=-1}}class Hg{constructor(M,N,D,i){this.typeOver=i,this.bounds=null,this.text="";let{impreciseHead:j,impreciseAnchor:t}=M.docView;if(M.state.readOnly&&N>-1)this.newSel=null;else if(N>-1&&(this.bounds=M.docView.domBoundsAround(N,D,0))){let N=j||t?[]:function(M){let N=[];if(M.root.activeElement!=M.contentDOM)return N;let{anchorNode:D,anchorOffset:i,focusNode:j,focusOffset:t}=M.observer.selectionRange;D&&(N.push(new Fg(D,i)),j==D&&t==i||N.push(new Fg(j,t)));return N}(M),D=new Bg(N,M.state);D.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=D.text,this.newSel=function(M,N){if(0==M.length)return null;let D=M[0].pos,i=2==M.length?M[1].pos:D;return D>-1&&i>-1?Pj.single(D+N,i+N):null}(N,this.bounds.from)}else{let N=M.observer.selectionRange,D=j&&j.node==N.focusNode&&j.offset==N.focusOffset||!sI(M.contentDOM,N.focusNode)?M.state.selection.main.head:M.docView.posFromDOM(N.focusNode,N.focusOffset),i=t&&t.node==N.anchorNode&&t.offset==N.anchorOffset||!sI(M.contentDOM,N.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(N.anchorNode,N.anchorOffset),I=M.viewport;if((qI.ios||qI.chrome)&&M.state.selection.main.empty&&D!=i&&(I.from>0||I.to<M.state.doc.length)){let N=Math.min(D,i),j=Math.max(D,i),t=I.from-N,z=I.to-j;0!=t&&1!=t&&0!=N||0!=z&&-1!=z&&j!=M.state.doc.length||(D=0,i=M.state.doc.length)}this.newSel=Pj.single(i,D)}}}function Xg(M,N){let D,{newSel:i}=N,j=M.state.selection.main,t=M.inputState.lastKeyTime>Date.now()-100?M.inputState.lastKeyCode:-1;if(N.bounds){let{from:i,to:I}=N.bounds,z=j.from,u=null;(8===t||qI.android&&N.text.length<I-i)&&(z=j.to,u="end");let g=function(M,N,D,i){let j=Math.min(M.length,N.length),t=0;for(;t<j&&M.charCodeAt(t)==N.charCodeAt(t);)t++;if(t==j&&M.length==N.length)return null;let I=M.length,z=N.length;for(;I>0&&z>0&&M.charCodeAt(I-1)==N.charCodeAt(z-1);)I--,z--;if("end"==i){D-=I+Math.max(0,t-Math.min(I,z))-t}if(I<t&&M.length<N.length){t-=D<=t&&D>=I?t-D:0,z=t+(z-I),I=t}else if(z<t){t-=D<=t&&D>=z?t-D:0,I=t+(I-z),z=t}return{from:t,toA:I,toB:z}}(M.state.doc.sliceString(i,I,Rg),N.text,z-i,u);g&&(qI.chrome&&13==t&&g.toB==g.from+2&&N.text.slice(g.from,g.toB)==Rg+Rg&&g.toB--,D={from:i+g.from,to:i+g.toA,insert:ej.of(N.text.slice(g.from,g.toB).split(Rg))})}else i&&(!M.hasFocus&&M.state.facet(Du)||i.main.eq(j))&&(i=null);if(!D&&!i)return!1;if(!D&&N.typeOver&&!j.empty&&i&&i.main.empty?D={from:j.from,to:j.to,insert:M.state.doc.slice(j.from,j.to)}:D&&D.from>=j.from&&D.to<=j.to&&(D.from!=j.from||D.to!=j.to)&&j.to-j.from-(D.to-D.from)<=4?D={from:j.from,to:j.to,insert:M.state.doc.slice(j.from,D.from).append(D.insert).append(M.state.doc.slice(D.to,j.to))}:(qI.mac||qI.android)&&D&&D.from==D.to&&D.from==j.head-1&&/^\. ?$/.test(D.insert.toString())&&"off"==M.contentDOM.getAttribute("autocorrect")?(i&&2==D.insert.length&&(i=Pj.single(i.main.anchor-1,i.main.head-1)),D={from:j.from,to:j.to,insert:ej.of([" "])}):qI.chrome&&D&&D.from==D.to&&D.from==j.head&&"\n "==D.insert.toString()&&M.lineWrapping&&(i&&(i=Pj.single(i.main.anchor-1,i.main.head-1)),D={from:j.from,to:j.to,insert:ej.of([" "])}),D){if(qI.ios&&M.inputState.flushIOSKey(D))return!0;if(qI.android&&(D.to==j.to&&(D.from==j.from||D.from==j.from-1&&" "==M.state.sliceDoc(D.from,j.from))&&1==D.insert.length&&2==D.insert.lines&&kI(M.contentDOM,"Enter",13)||(D.from==j.from-1&&D.to==j.to&&0==D.insert.length||8==t&&D.insert.length<D.to-D.from&&D.to>j.head)&&kI(M.contentDOM,"Backspace",8)||D.from==j.from&&D.to==j.to+1&&0==D.insert.length&&kI(M.contentDOM,"Delete",46)))return!0;let N,I=D.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let z=()=>N||(N=function(M,N,D){let i,j=M.state,t=j.selection.main;if(N.from>=t.from&&N.to<=t.to&&N.to-N.from>=(t.to-t.from)/3&&(!D||D.main.empty&&D.main.from==N.from+N.insert.length)&&M.inputState.composing<0){let D=t.from<N.from?j.sliceDoc(t.from,N.from):"",I=t.to>N.to?j.sliceDoc(N.to,t.to):"";i=j.replaceSelection(M.state.toText(D+N.insert.sliceString(0,void 0,M.state.lineBreak)+I))}else{let I=j.changes(N),z=D&&D.main.to<=I.newLength?D.main:void 0;if(j.selection.ranges.length>1&&M.inputState.composing>=0&&N.to<=t.to&&N.to>=t.to-10){let u,g=M.state.sliceDoc(N.from,N.to),e=D&&ru(M,D.main.head);if(e){let M=N.insert.length-(N.to-N.from);u={from:e.from,to:e.to-M}}else u=M.state.doc.lineAt(t.head);let T=t.to-N.to,A=t.to-t.from;i=j.changeByRange((D=>{if(D.from==t.from&&D.to==t.to)return{changes:I,range:z||D.map(I)};let i=D.to-T,e=i-g.length;if(D.to-D.from!=A||M.state.sliceDoc(e,i)!=g||D.to>=u.from&&D.from<=u.to)return{range:D};let s=j.changes({from:e,to:i,insert:N.insert}),L=D.to-t.to;return{changes:s,range:z?Pj.range(Math.max(0,z.anchor+L),Math.max(0,z.head+L)):D.map(s)}}))}else i={changes:I,selection:z&&j.selection.replaceRange(z)}}let I="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,I+=".compose",M.inputState.compositionFirstChange&&(I+=".start",M.inputState.compositionFirstChange=!1));return j.update(i,{userEvent:I,scrollIntoView:!0})}(M,D,i));return M.state.facet(Hz).some((N=>N(M,D.from,D.to,I,z)))||M.dispatch(z()),!0}if(i&&!i.main.eq(j)){let N=!1,D="select";return M.inputState.lastSelectionTime>Date.now()-50&&("select"==M.inputState.lastSelectionOrigin&&(N=!0),D=M.inputState.lastSelectionOrigin),M.dispatch({selection:i,scrollIntoView:N,userEvent:D}),!0}return!1}const $g={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},_g=qI.ie&&qI.ie_version<=11;class qg{constructor(M){this.view=M,this.active=!1,this.selectionRange=new QI,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=M.contentDOM,this.observer=new MutationObserver((N=>{for(let M of N)this.queue.push(M);(qI.ie&&qI.ie_version<=11||qI.ios&&M.composing)&&N.some((M=>"childList"==M.type&&M.removedNodes.length||"characterData"==M.type&&M.oldValue.length>M.target.nodeValue.length))?this.flushSoon():this.flush()})),_g&&(this.onCharData=M=>{this.queue.push({target:M.target,type:"characterData",oldValue:M.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var M;(null===(M=this.view.docView)||void 0===M?void 0:M.lastUpdate)<Date.now()-75&&this.onResize()})),this.resizeScroll.observe(M.scrollDOM)),this.addWindowListeners(this.win=M.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((M=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),M.length>0&&M[M.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((M=>{M.length>0&&M[M.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(M){this.view.inputState.runHandlers("scroll",M),this.intersecting&&this.view.measure()}onScroll(M){this.intersecting&&this.flush(!1),this.onScrollChanged(M)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(M){("change"!=M.type||M.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(M){if(this.gapIntersection&&(M.length!=this.gaps.length||this.gaps.some(((N,D)=>N!=M[D])))){this.gapIntersection.disconnect();for(let N of M)this.gapIntersection.observe(N);this.gaps=M}}onSelectionChange(M){let N=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:D}=this,i=this.selectionRange;if(D.state.facet(Du)?D.root.activeElement!=this.dom:!LI(D.dom,i))return;let j=i.anchorNode&&D.docView.nearest(i.anchorNode);j&&j.ignoreEvent(M)?N||(this.selectionChanged=!1):(qI.ie&&qI.ie_version<=11||qI.android&&qI.chrome)&&!D.state.selection.main.empty&&i.focusNode&&yI(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,N=AI(M.root);if(!N)return!1;let D=qI.safari&&11==M.root.nodeType&&function(M){let N=M.activeElement;for(;N&&N.shadowRoot;)N=N.shadowRoot.activeElement;return N}(this.dom.ownerDocument)==this.dom&&function(M,N){if(N.getComposedRanges){let D=N.getComposedRanges(M.root)[0];if(D)return Me(M,D)}let D=null;function i(M){M.preventDefault(),M.stopImmediatePropagation(),D=M.getTargetRanges()[0]}return M.contentDOM.addEventListener("beforeinput",i,!0),M.dom.ownerDocument.execCommand("indent"),M.contentDOM.removeEventListener("beforeinput",i,!0),D?Me(M,D):null}(this.view,N)||N;if(!D||this.selectionRange.eq(D))return!1;let i=LI(this.dom,D);return i&&!this.selectionChanged&&M.inputState.lastFocusTime>Date.now()-200&&M.inputState.lastTouchTime<Date.now()-300&&function(M,N){let D=N.focusNode,i=N.focusOffset;if(!D||N.anchorNode!=D||N.anchorOffset!=i)return!1;for(i=Math.min(i,oI(D));;)if(i){if(1!=D.nodeType)return!1;let M=D.childNodes[i-1];"false"==M.contentEditable?i--:(D=M,i=oI(D))}else{if(D==M)return!0;i=cI(D),D=D.parentNode}}(this.dom,D)?(this.view.inputState.lastFocusTime=0,M.docView.updateSelection(),!1):(this.selectionRange.setRange(D),i&&(this.selectionChanged=!0),!0)}setSelectionRange(M,N){this.selectionRange.set(M.node,M.offset,N.node,N.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let M=0,N=null;for(let D=this.dom;D;)if(1==D.nodeType)!N&&M<this.scrollTargets.length&&this.scrollTargets[M]==D?M++:N||(N=this.scrollTargets.slice(0,M)),N&&N.push(D),D=D.assignedSlot||D.parentNode;else{if(11!=D.nodeType)break;D=D.host}if(M<this.scrollTargets.length&&!N&&(N=this.scrollTargets.slice(0,M)),N){for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);for(let M of this.scrollTargets=N)M.addEventListener("scroll",this.onScroll)}}ignore(M){if(!this.active)return M();try{return this.stop(),M()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,$g),_g&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),_g&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(M,N){var D;if(!this.delayedAndroidKey){let M=()=>{let M=this.delayedAndroidKey;if(M){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=M.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&M.force&&kI(this.dom,M.key,M.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(M)}this.delayedAndroidKey&&"Enter"!=M||(this.delayedAndroidKey={key:M,keyCode:N,force:this.lastChange<Date.now()-50||!!(null===(D=this.delayedAndroidKey)||void 0===D?void 0:D.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame((()=>{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let M of this.observer.takeRecords())this.queue.push(M);return this.queue}processRecords(){let M=this.pendingRecords();M.length&&(this.queue=[]);let N=-1,D=-1,i=!1;for(let j of M){let M=this.readMutation(j);M&&(M.typeOver&&(i=!0),-1==N?({from:N,to:D}=M):(N=Math.min(M.from,N),D=Math.max(M.to,D)))}return{from:N,to:D,typeOver:i}}readChange(){let{from:M,to:N,typeOver:D}=this.processRecords(),i=this.selectionChanged&&LI(this.dom,this.selectionRange);if(M<0&&!i)return null;M>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let j=new Hg(this.view,M,N,D);return this.view.docView.domChanged={newSel:j.newSel?j.newSel.main:null},j}flush(M=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;M&&this.readSelectionRange();let N=this.readChange();if(!N)return this.view.requestMeasure(),!1;let D=this.view.state,i=Xg(this.view,N);return this.view.state==D&&this.view.update([]),i}readMutation(M){let N=this.view.docView.nearest(M.target);if(!N||N.ignoreMutation(M))return null;if(N.markDirty("attributes"==M.type),"attributes"==M.type&&(N.flags|=4),"childList"==M.type){let D=Kg(N,M.previousSibling||M.target.previousSibling,-1),i=Kg(N,M.nextSibling||M.target.nextSibling,1);return{from:D?N.posAfter(D):N.posAtStart,to:i?N.posBefore(i):N.posAtEnd,typeOver:!1}}return"characterData"==M.type?{from:N.posAtStart,to:N.posAtEnd,typeOver:M.target.nodeValue==M.oldValue}:null}setWindow(M){M!=this.win&&(this.removeWindowListeners(this.win),this.win=M,this.addWindowListeners(this.win))}addWindowListeners(M){M.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener("change",this.onPrint):M.addEventListener("beforeprint",this.onPrint),M.addEventListener("scroll",this.onScroll),M.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(M){M.removeEventListener("scroll",this.onScroll),M.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener("change",this.onPrint):M.removeEventListener("beforeprint",this.onPrint),M.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var M,N,D;this.stop(),null===(M=this.intersection)||void 0===M||M.disconnect(),null===(N=this.gapIntersection)||void 0===N||N.disconnect(),null===(D=this.resizeScroll)||void 0===D||D.disconnect();for(let M of this.scrollTargets)M.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 Kg(M,N,D){for(;N;){let i=mI.get(N);if(i&&i.parent==M)return i;let j=N.parentNode;N=j!=M.dom?j:D>0?N.nextSibling:N.previousSibling}return null}function Me(M,N){let D=N.startContainer,i=N.startOffset,j=N.endContainer,t=N.endOffset,I=M.docView.domAtPos(M.state.selection.main.anchor);return yI(I.node,I.offset,j,t)&&([D,i,j,t]=[j,t,D,i]),{anchorNode:D,anchorOffset:i,focusNode:j,focusOffset:t}}class Ne{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}constructor(M={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),M.parent&&M.parent.appendChild(this.dom);let{dispatch:N}=M;this.dispatchTransactions=M.dispatchTransactions||N&&(M=>M.forEach((M=>N(M,this))))||(M=>this.update(M)),this.dispatch=this.dispatch.bind(this),this._root=M.root||function(M){for(;M;){if(M&&(9==M.nodeType||11==M.nodeType&&M.host))return M;M=M.assignedSlot||M.parentNode}return null}(M.parent)||document,this.viewState=new dg(M.state||bt.create(M)),M.scrollTo&&M.scrollTo.is(Mu)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ju).map((M=>new Iu(M)));for(let M of this.plugins)M.update(this);this.observer=new qg(this),this.inputState=new mu(this),this.inputState.ensureHandlers(this.plugins),this.docView=new lu(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...M){let N=1==M.length&&M[0]instanceof at?M:1==M.length&&Array.isArray(M[0])?M[0]:[this.state.update(...M)];this.dispatchTransactions(N,this)}update(M){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let N,D=!1,i=!1,j=this.state;for(let N of M){if(N.startState!=j)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");j=N.state}if(this.destroyed)return void(this.viewState.state=j);let t=this.hasFocus,I=0,z=null;M.some((M=>M.annotation(Ig)))?(this.inputState.notifiedFocused=t,I=1):t!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=t,z=zg(j,t),z||(I=1));let u=this.observer.delayedAndroidKey,g=null;if(u?(this.observer.clearDelayedAndroidKey(),g=this.observer.readChange(),(g&&!this.state.doc.eq(j.doc)||!this.state.selection.eq(j.selection))&&(g=null)):this.observer.clear(),j.facet(bt.phrases)!=this.state.facet(bt.phrases))return this.setState(j);N=nu.create(this,j,M),N.flags|=I;let e=this.viewState.scrollTarget;try{this.updateState=2;for(let N of M){if(e&&(e=e.map(N.changes)),N.scrollIntoView){let{main:M}=N.state.selection;e=new Kz(M.empty?M:Pj.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of N.effects)M.is(Mu)&&(e=M.value.clip(this.state))}this.viewState.update(N,e),this.bidiCache=je.update(this.bidiCache,N.changes),N.empty||(this.updatePlugins(N),this.inputState.update(N)),D=this.docView.update(N),this.state.facet(yu)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(M),this.docView.updateSelection(D,M.some((M=>M.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(N.startState.facet(mg)!=N.state.facet(mg)&&(this.viewState.mustMeasureContent=!0),(D||i||e||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),D&&this.docViewUpdate(),!N.empty)for(let M of this.state.facet(Fz))try{M(N)}catch(M){Nu(this.state,M,"update listener")}(z||g)&&Promise.resolve().then((()=>{z&&this.state==z.startState&&this.dispatch(z),g&&!Xg(this,g)&&u.force&&kI(this.contentDOM,u.key,u.keyCode)}))}setState(M){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=M);this.updateState=2;let N=this.hasFocus;try{for(let M of this.plugins)M.destroy(this);this.viewState=new dg(M),this.plugins=M.facet(ju).map((M=>new Iu(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new lu(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}N&&this.focus(),this.requestMeasure()}updatePlugins(M){let N=M.startState.facet(ju),D=M.state.facet(ju);if(N!=D){let i=[];for(let j of D){let D=N.indexOf(j);if(D<0)i.push(new Iu(j));else{let N=this.plugins[D];N.mustUpdate=M,i.push(N)}}for(let N of this.plugins)N.mustUpdate!=M&&N.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let N of this.plugins)N.mustUpdate=M;for(let M=0;M<this.plugins.length;M++)this.plugins[M].update(this);N!=D&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let M of this.plugins){let N=M.value;if(N&&N.docViewUpdate)try{N.docViewUpdate(this)}catch(M){Nu(this.state,M,"doc view update listener")}}}measure(M=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,M&&this.observer.forceFlush();let N=null,D=this.scrollDOM,i=D.scrollTop*this.scaleY,{scrollAnchorPos:j,scrollAnchorHeight:t}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(t=-1),this.viewState.scrollAnchorHeight=-1;try{for(let M=0;;M++){if(t<0)if(UI(D))j=-1,t=this.viewState.heightMap.height;else{let M=this.viewState.scrollAnchorAt(i);j=M.from,t=M.top}this.updateState=1;let I=this.viewState.measure(this);if(!I&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(M>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let z=[];4&I||([this.measureRequests,z]=[z,this.measureRequests]);let u=z.map((M=>{try{return M.read(this)}catch(M){return Nu(this.state,M),ie}})),g=nu.create(this,this.state,[]),e=!1;g.flags|=I,N?N.flags|=I:N=g,this.updateState=2,g.empty||(this.updatePlugins(g),this.inputState.update(g),this.updateAttrs(),e=this.docView.update(g),e&&this.docViewUpdate());for(let M=0;M<z.length;M++)if(u[M]!=ie)try{let N=z[M];N.write&&N.write(u[M],this)}catch(M){Nu(this.state,M)}if(e&&this.docView.updateSelection(!0),!g.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,t=-1;continue}{let M=(j<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(j).top)-t;if(M>1||M<-1){i+=M,D.scrollTop=i/this.scaleY,t=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(N&&!N.empty)for(let M of this.state.facet(Fz))M(N)}get themeClasses(){return fg+" "+(this.state.facet(Zg)?Wg:vg)+" "+this.state.facet(mg)}updateAttrs(){let M=te(this,zu,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),N={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Du)?"true":"false",class:"cm-content",style:`${qI.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(N["aria-readonly"]="true"),te(this,uu,N);let D=this.observer.ignore((()=>{let D=gz(this.contentDOM,this.contentAttrs,N),i=gz(this.dom,this.editorAttrs,M);return D||i}));return this.editorAttrs=M,this.contentAttrs=N,D}showAnnouncements(M){let N=!0;for(let D of M)for(let M of D.effects)if(M.is(Ne.announce)){N&&(this.announceDOM.textContent=""),N=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(yu);let M=this.state.facet(Ne.cspNonce);iI.mount(this.root,this.styleModules.concat(Pg).reverse(),M?{nonce:M}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(M){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),M){if(this.measureRequests.indexOf(M)>-1)return;if(null!=M.key)for(let N=0;N<this.measureRequests.length;N++)if(this.measureRequests[N].key===M.key)return void(this.measureRequests[N]=M);this.measureRequests.push(M)}}plugin(M){let N=this.pluginMap.get(M);return(void 0===N||N&&N.spec!=M)&&this.pluginMap.set(M,N=this.plugins.find((N=>N.spec==M))||null),N&&N.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(M){return this.readMeasured(),this.viewState.elementAtHeight(M)}lineBlockAtHeight(M){return this.readMeasured(),this.viewState.lineBlockAtHeight(M)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(M){return this.viewState.lineBlockAt(M)}get contentHeight(){return this.viewState.contentHeight}moveByChar(M,N,D){return pu(this,M,Cu(this,M,N,D))}moveByGroup(M,N){return pu(this,M,Cu(this,M,N,(N=>function(M,N,D){let i=M.state.charCategorizer(N),j=i(D);return M=>{let N=i(M);return j==wt.Space&&(j=N),j==N}}(this,M.head,N))))}visualLineSide(M,N){let D=this.bidiSpans(M),i=this.textDirectionAt(M.from),j=D[N?D.length-1:0];return Pj.cursor(j.side(N,i)+M.from,j.forward(!N,i)?1:-1)}moveToLineBoundary(M,N,D=!0){return function(M,N,D,i){let j=Yu(M,N.head),t=i&&j.type==Lz.Text&&(M.lineWrapping||j.widgetLineBreaks)?M.coordsAtPos(N.assoc<0&&N.head>j.from?N.head-1:N.head):null;if(t){let N=M.dom.getBoundingClientRect(),i=M.textDirectionAt(j.from),I=M.posAtCoords({x:D==(i==Qz.LTR)?N.right-1:N.left+1,y:(t.top+t.bottom)/2});if(null!=I)return Pj.cursor(I,D?-1:1)}return Pj.cursor(D?j.to:j.from,D?-1:1)}(this,M,N,D)}moveVertically(M,N,D){return pu(this,M,function(M,N,D,i){let j=N.head,t=D?1:-1;if(j==(D?M.state.doc.length:0))return Pj.cursor(j,N.assoc);let I,z=N.goalColumn,u=M.contentDOM.getBoundingClientRect(),g=M.coordsAtPos(j,N.assoc||-1),e=M.documentTop;if(g)null==z&&(z=g.left-u.left),I=t<0?g.top:g.bottom;else{let N=M.viewState.lineBlockAt(j);null==z&&(z=Math.min(u.right-u.left,M.defaultCharacterWidth*(j-N.from))),I=(t<0?N.top:N.bottom)+e}let T=u.left+z,A=null!=i?i:M.viewState.heightOracle.textHeight>>1;for(let N=0;;N+=10){let D=I+(A+N)*t,i=wu(M,{x:T,y:D},!1,t);if(D<u.top||D>u.bottom||(t<0?i<j:i>j)){let N=M.docView.coordsForChar(i),j=!N||D<N.top?-1:1;return Pj.cursor(i,j,void 0,z)}}}(this,M,N,D))}domAtPos(M){return this.docView.domAtPos(M)}posAtDOM(M,N=0){return this.docView.posFromDOM(M,N)}posAtCoords(M,N=!0){return this.readMeasured(),wu(this,M,N)}coordsAtPos(M,N=1){this.readMeasured();let D=this.docView.coordsAt(M,N);if(!D||D.left==D.right)return D;let i=this.state.doc.lineAt(M),j=this.bidiSpans(i);return rI(D,j[bz.find(j,M-i.from,-1,N)].dir==Qz.LTR==N>0)}coordsForChar(M){return this.readMeasured(),this.docView.coordsForChar(M)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(M){return!this.state.facet($z)||M<this.viewport.from||M>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(M))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(M){if(M.length>De)return vz(M.length);let N,D=this.textDirectionAt(M.from);for(let i of this.bidiCache)if(i.from==M.from&&i.dir==D&&(i.fresh||pz(i.isolates,N=su(this,M))))return i.order;N||(N=su(this,M));let i=function(M,N,D){if(!M)return[new bz(0,0,N==Sz?1:0)];if(N==Ez&&!D.length&&!Cz.test(M))return vz(M.length);if(D.length)for(;M.length>mz.length;)mz[mz.length]=256;let i=[],j=N==Ez?0:1;return fz(M,j,j,D,0,M.length,i),i}(M.text,D,N);return this.bidiCache.push(new je(M.from,M.to,D,N,!0,i)),i}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||qI.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{hI(this.contentDOM),this.docView.updateSelection()}))}setRoot(M){this._root!=M&&(this._root=M,this.observer.setWindow((9==M.nodeType?M:M.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let M of this.plugins)M.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(M,N={}){return Mu.of(new Kz("number"==typeof M?Pj.cursor(M):M,N.y,N.x,N.yMargin,N.xMargin))}scrollSnapshot(){let{scrollTop:M,scrollLeft:N}=this.scrollDOM,D=this.viewState.scrollAnchorAt(M);return Mu.of(new Kz(Pj.cursor(D.from),"start","start",D.top-M,N,!0))}static domEventHandlers(M){return tu.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return tu.define((()=>({})),{eventObservers:M})}static theme(M,N){let D=iI.newName(),i=[mg.of(D),yu.of(Gg(`.${D}`,M))];return N&&N.dark&&i.push(Zg.of(!0)),i}static baseTheme(M){return tt.lowest(yu.of(Gg("."+fg,M,Vg)))}static findFromDOM(M){var N;let D=M.querySelector(".cm-content"),i=D&&mI.get(D)||mI.get(M);return(null===(N=null==i?void 0:i.rootView)||void 0===N?void 0:N.view)||null}}Ne.styleModule=yu,Ne.inputHandler=Hz,Ne.scrollHandler=qz,Ne.focusChangeEffect=Xz,Ne.perLineTextDirection=$z,Ne.exceptionSink=Jz,Ne.updateListener=Fz,Ne.editable=Du,Ne.mouseSelectionStyle=Bz,Ne.dragMovesSelection=Rz,Ne.clickAddsSelectionRange=Pz,Ne.decorations=gu,Ne.outerDecorations=eu,Ne.atomicRanges=Tu,Ne.bidiIsolatedRanges=Au,Ne.scrollMargins=Lu,Ne.darkTheme=Zg,Ne.cspNonce=Jj.define({combine:M=>M.length?M[0]:""}),Ne.contentAttributes=uu,Ne.editorAttributes=zu,Ne.lineWrapping=Ne.contentAttributes.of({class:"cm-lineWrapping"}),Ne.announce=xt.define();const De=4096,ie={};class je{constructor(M,N,D,i,j,t){this.from=M,this.to=N,this.dir=D,this.isolates=i,this.fresh=j,this.order=t}static update(M,N){if(N.empty&&!M.some((M=>M.fresh)))return M;let D=[],i=M.length?M[M.length-1].dir:Qz.LTR;for(let j=Math.max(0,M.length-10);j<M.length;j++){let t=M[j];t.dir!=i||N.touchesRange(t.from,t.to)||D.push(new je(N.mapPos(t.from,1),N.mapPos(t.to,-1),t.dir,t.isolates,!1,t.order))}return D}}function te(M,N,D){for(let i=M.state.facet(N),j=i.length-1;j>=0;j--){let N=i[j],t="function"==typeof N?N(M):N;t&&Iz(t,D)}return D}const Ie=qI.mac?"mac":qI.windows?"win":qI.linux?"linux":"key";function ze(M,N,D){return N.altKey&&(M="Alt-"+M),N.ctrlKey&&(M="Ctrl-"+M),N.metaKey&&(M="Meta-"+M),!1!==D&&N.shiftKey&&(M="Shift-"+M),M}const ue=tt.default(Ne.domEventHandlers({keydown:(M,N)=>Le(Te(N.state),M,N,"editor")})),ge=Jj.define({enables:ue}),ee=new WeakMap;function Te(M){let N=M.facet(ge),D=ee.get(N);return D||ee.set(N,D=function(M,N=Ie){let D=Object.create(null),i=Object.create(null),j=(M,N)=>{let D=i[M];if(null==D)i[M]=N;else if(D!=N)throw new Error("Key binding "+M+" is used both as a regular binding and as a multi-stroke prefix")},t=(M,i,t,I,z)=>{var u,g;let e=D[M]||(D[M]=Object.create(null)),T=i.split(/ (?!$)/).map((M=>function(M,N){const D=M.split(/-(?!$)/);let i,j,t,I,z=D[D.length-1];"Space"==z&&(z=" ");for(let M=0;M<D.length-1;++M){const z=D[M];if(/^(cmd|meta|m)$/i.test(z))I=!0;else if(/^a(lt)?$/i.test(z))i=!0;else if(/^(c|ctrl|control)$/i.test(z))j=!0;else if(/^s(hift)?$/i.test(z))t=!0;else{if(!/^mod$/i.test(z))throw new Error("Unrecognized modifier name: "+z);"mac"==N?I=!0:j=!0}}return i&&(z="Alt-"+z),j&&(z="Ctrl-"+z),I&&(z="Meta-"+z),t&&(z="Shift-"+z),z}(M,N)));for(let N=1;N<T.length;N++){let D=T.slice(0,N).join(" ");j(D,!0),e[D]||(e[D]={preventDefault:!0,stopPropagation:!1,run:[N=>{let i=Ae={view:N,prefix:D,scope:M};return setTimeout((()=>{Ae==i&&(Ae=null)}),se),!0}]})}let A=T.join(" ");j(A,!1);let s=e[A]||(e[A]={preventDefault:!1,stopPropagation:!1,run:(null===(g=null===(u=e._any)||void 0===u?void 0:u.run)||void 0===g?void 0:g.slice())||[]});t&&s.run.push(t),I&&(s.preventDefault=!0),z&&(s.stopPropagation=!0)};for(let i of M){let M=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let N of M){let M=D[N]||(D[N]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let N in M)M[N].run.push(i.any)}let j=i[N]||i.key;if(j)for(let N of M)t(N,j,i.run,i.preventDefault,i.stopPropagation),i.shift&&t(N,"Shift-"+j,i.shift,i.preventDefault,i.stopPropagation)}return D}(N.reduce(((M,N)=>M.concat(N)),[]))),D}let Ae=null;const se=4e3;function Le(M,N,D,i){let j=function(M){var N=!(uI&&M.metaKey&&M.shiftKey&&!M.ctrlKey&&!M.altKey||gI&&M.shiftKey&&M.key&&1==M.key.length||"Unidentified"==M.key)&&M.key||(M.shiftKey?zI:II)[M.keyCode]||M.key||"Unidentified";return"Esc"==N&&(N="Escape"),"Del"==N&&(N="Delete"),"Left"==N&&(N="ArrowLeft"),"Up"==N&&(N="ArrowUp"),"Right"==N&&(N="ArrowRight"),"Down"==N&&(N="ArrowDown"),N}(N),t=Uj(kj(j,0))==j.length&&" "!=j,I="",z=!1,u=!1,g=!1;Ae&&Ae.view==D&&Ae.scope==i&&(I=Ae.prefix+" ",Vu.indexOf(N.keyCode)<0&&(u=!0,Ae=null));let e,T,A=new Set,s=M=>{if(M){for(let i of M.run)if(!A.has(i)&&(A.add(i),i(D,N)))return M.stopPropagation&&(g=!0),!0;M.preventDefault&&(M.stopPropagation&&(g=!0),u=!0)}return!1},L=M[i];return L&&(s(L[I+ze(j,N,!t)])?z=!0:t&&(N.altKey||N.metaKey||N.ctrlKey)&&!(qI.windows&&N.ctrlKey&&N.altKey)&&(e=II[N.keyCode])&&e!=j?(s(L[I+ze(e,N,!0)])||N.shiftKey&&(T=zI[N.keyCode])!=j&&T!=e&&s(L[I+ze(T,N,!1)]))&&(z=!0):t&&N.shiftKey&&s(L[I+ze(j,N,!0)])&&(z=!0),!z&&s(L._any)&&(z=!0)),u&&(z=!0),z&&g&&N.stopPropagation(),z}class Oe{constructor(M,N,D,i,j){this.className=M,this.left=N,this.top=D,this.width=i,this.height=j}draw(){let M=document.createElement("div");return M.className=this.className,this.adjust(M),M}update(M,N){return N.className==this.className&&(this.adjust(M),!0)}adjust(M){M.style.left=this.left+"px",M.style.top=this.top+"px",null!=this.width&&(M.style.width=this.width+"px"),M.style.height=this.height+"px"}eq(M){return this.left==M.left&&this.top==M.top&&this.width==M.width&&this.height==M.height&&this.className==M.className}static forRange(M,N,D){if(D.empty){let i=M.coordsAtPos(D.head,D.assoc||1);if(!i)return[];let j=ye(M);return[new Oe(N,i.left-j.left,i.top-j.top,null,i.bottom-i.top)]}return function(M,N,D){if(D.to<=M.viewport.from||D.from>=M.viewport.to)return[];let i=Math.max(D.from,M.viewport.from),j=Math.min(D.to,M.viewport.to),t=M.textDirection==Qz.LTR,I=M.contentDOM,z=I.getBoundingClientRect(),u=ye(M),g=I.querySelector(".cm-line"),e=g&&window.getComputedStyle(g),T=z.left+(e?parseInt(e.paddingLeft)+Math.min(0,parseInt(e.textIndent)):0),A=z.right-(e?parseInt(e.paddingRight):0),s=Yu(M,i),L=Yu(M,j),O=s.type==Lz.Text?s:null,y=L.type==Lz.Text?L:null;O&&(M.lineWrapping||s.widgetLineBreaks)&&(O=ce(M,i,O));y&&(M.lineWrapping||L.widgetLineBreaks)&&(y=ce(M,j,y));if(O&&y&&O.from==y.from)return n(l(D.from,D.to,O));{let N=O?l(D.from,null,O):o(s,!1),i=y?l(null,D.to,y):o(L,!0),j=[];return(O||s).to<(y||L).from-(O&&y?1:0)||s.widgetLineBreaks>1&&N.bottom+M.defaultLineHeight/2<i.top?j.push(c(T,N.bottom,A,i.top)):N.bottom<i.top&&M.elementAtHeight((N.bottom+i.top)/2).type==Lz.Text&&(N.bottom=i.top=(N.bottom+i.top)/2),n(N).concat(j).concat(n(i))}function c(M,D,i,j){return new Oe(N,M-u.left,D-u.top-.01,i-M,j-D+.01)}function n({top:M,bottom:N,horizontal:D}){let i=[];for(let j=0;j<D.length;j+=2)i.push(c(D[j],M,D[j+1],N));return i}function l(N,D,i){let j=1e9,I=-1e9,z=[];function u(N,D,u,g,e){let s=M.coordsAtPos(N,N==i.to?-2:2),L=M.coordsAtPos(u,u==i.from?2:-2);s&&L&&(j=Math.min(s.top,L.top,j),I=Math.max(s.bottom,L.bottom,I),e==Qz.LTR?z.push(t&&D?T:s.left,t&&g?A:L.right):z.push(!t&&g?T:L.left,!t&&D?A:s.right))}let g=null!=N?N:i.from,e=null!=D?D:i.to;for(let i of M.visibleRanges)if(i.to>g&&i.from<e)for(let j=Math.max(i.from,g),t=Math.min(i.to,e);;){let i=M.state.doc.lineAt(j);for(let I of M.bidiSpans(i)){let M=I.from+i.from,z=I.to+i.from;if(M>=t)break;z>j&&u(Math.max(M,j),null==N&&M<=g,Math.min(z,t),null==D&&z>=e,I.dir)}if(j=i.to+1,j>=t)break}return 0==z.length&&u(g,null==N,e,null==D,M.textDirection),{top:j,bottom:I,horizontal:z}}function o(M,N){let D=z.top+(N?M.top:M.bottom);return{top:D,bottom:D,horizontal:[]}}}(M,N,D)}}function ye(M){let N=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==Qz.LTR?N.left:N.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:N.top-M.scrollDOM.scrollTop*M.scaleY}}function ce(M,N,D){let i=Pj.cursor(N);return{from:Math.max(D.from,M.moveToLineBoundary(i,!1,!0).from),to:Math.min(D.to,M.moveToLineBoundary(i,!0,!0).from),type:Lz.Text}}class ne{constructor(M,N){this.view=M,this.layer=N,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=M.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),N.above&&this.dom.classList.add("cm-layer-above"),N.class&&this.dom.classList.add(N.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(M.state),M.requestMeasure(this.measureReq),N.mount&&N.mount(this.dom,M)}update(M){M.startState.facet(le)!=M.state.facet(le)&&this.setOrder(M.state),(this.layer.update(M,this.dom)||M.geometryChanged)&&(this.scale(),M.view.requestMeasure(this.measureReq))}docViewUpdate(M){!1!==this.layer.updateOnDocViewUpdate&&M.requestMeasure(this.measureReq)}setOrder(M){let N=0,D=M.facet(le);for(;N<D.length&&D[N]!=this.layer;)N++;this.dom.style.zIndex=String((this.layer.above?150:-1)-N)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:M,scaleY:N}=this.view;M==this.scaleX&&N==this.scaleY||(this.scaleX=M,this.scaleY=N,this.dom.style.transform=`scale(${1/M}, ${1/N})`)}draw(M){if(M.length!=this.drawn.length||M.some(((M,N)=>!function(M,N){return M.constructor==N.constructor&&M.eq(N)}(M,this.drawn[N])))){let N=this.dom.firstChild,D=0;for(let i of M)i.update&&N&&i.constructor&&this.drawn[D].constructor&&i.update(N,this.drawn[D])?(N=N.nextSibling,D++):this.dom.insertBefore(i.draw(),N);for(;N;){let M=N.nextSibling;N.remove(),N=M}this.drawn=M}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const le=Jj.define();function oe(M){return[tu.define((N=>new ne(N,M))),le.of(M)]}const re=!qI.ios,xe=Jj.define({combine:M=>pt(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,N)=>Math.min(M,N),drawRangeCursor:(M,N)=>M||N})});function ae(M){return M.startState.facet(xe)!=M.state.facet(xe)}const Qe=oe({above:!0,markers(M){let{state:N}=M,D=N.facet(xe),i=[];for(let j of N.selection.ranges){let t=j==N.selection.main;if(j.empty?!t||re:D.drawRangeCursor){let N=t?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",D=j.empty?j:Pj.cursor(j.head,j.head>j.anchor?-1:1);for(let j of Oe.forRange(M,N,D))i.push(j)}}return i},update(M,N){M.transactions.some((M=>M.selection))&&(N.style.animationName="cm-blink"==N.style.animationName?"cm-blink2":"cm-blink");let D=ae(M);return D&&Ee(M.state,N),M.docChanged||M.selectionSet||D},mount(M,N){Ee(N.state,M)},class:"cm-cursorLayer"});function Ee(M,N){N.style.animationDuration=M.facet(xe).cursorBlinkRate+"ms"}const Se=oe({above:!1,markers:M=>M.state.selection.ranges.map((N=>N.empty?[]:Oe.forRange(M,"cm-selectionBackground",N))).reduce(((M,N)=>M.concat(N))),update:(M,N)=>M.docChanged||M.selectionSet||M.viewportChanged||ae(M),class:"cm-selectionLayer"}),he={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};re&&(he[".cm-line"].caretColor="transparent !important",he[".cm-content"]={caretColor:"transparent !important"});const de=tt.highest(Ne.theme(he)),ke=xt.define({map:(M,N)=>null==M?null:N.mapPos(M)}),we=Kj.define({create:()=>null,update:(M,N)=>(null!=M&&(M=N.changes.mapPos(M)),N.effects.reduce(((M,N)=>N.is(ke)?N.value:M),M))}),Ue=tu.fromClass(class{constructor(M){this.view=M,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(M){var N;let D=M.state.field(we);null==D?null!=this.cursor&&(null===(N=this.cursor)||void 0===N||N.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(M.startState.field(we)!=D||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,N=M.state.field(we),D=null!=N&&M.coordsAtPos(N);if(!D)return null;let i=M.scrollDOM.getBoundingClientRect();return{left:D.left-i.left+M.scrollDOM.scrollLeft*M.scaleX,top:D.top-i.top+M.scrollDOM.scrollTop*M.scaleY,height:D.bottom-D.top}}drawCursor(M){if(this.cursor){let{scaleX:N,scaleY:D}=this.view;M?(this.cursor.style.left=M.left/N+"px",this.cursor.style.top=M.top/D+"px",this.cursor.style.height=M.height/D+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(M){this.view.state.field(we)!=M&&this.view.dispatch({effects:ke.of(M)})}},{eventObservers:{dragover(M){this.setDropPos(this.view.posAtCoords({x:M.clientX,y:M.clientY}))},dragleave(M){M.target!=this.view.contentDOM&&this.view.contentDOM.contains(M.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Ye(M,N,D,i,j){N.lastIndex=0;for(let t,I=M.iterRange(D,i),z=D;!I.next().done;z+=I.value.length)if(!I.lineBreak)for(;t=N.exec(I.value);)j(z+t.index,t)}class Ce{constructor(M){const{regexp:N,decoration:D,decorate:i,boundary:j,maxLength:t=1e3}=M;if(!N.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=N,i)this.addMatch=(M,N,D,j)=>i(j,D,D+M[0].length,M,N);else if("function"==typeof D)this.addMatch=(M,N,i,j)=>{let t=D(M,N,i);t&&j(i,i+M[0].length,t)};else{if(!D)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(M,N,i,j)=>j(i,i+M[0].length,D)}this.boundary=j,this.maxLength=t}createDeco(M){let N=new Vt,D=N.add.bind(N);for(let{from:N,to:i}of function(M,N){let D=M.visibleRanges;if(1==D.length&&D[0].from==M.viewport.from&&D[0].to==M.viewport.to)return D;let i=[];for(let{from:j,to:t}of D)j=Math.max(M.state.doc.lineAt(j).from,j-N),t=Math.min(M.state.doc.lineAt(t).to,t+N),i.length&&i[i.length-1].to>=j?i[i.length-1].to=t:i.push({from:j,to:t});return i}(M,this.maxLength))Ye(M.state.doc,this.regexp,N,i,((N,i)=>this.addMatch(i,M,N,D)));return N.finish()}updateDeco(M,N){let D=1e9,i=-1;return M.docChanged&&M.changes.iterChanges(((N,j,t,I)=>{I>M.view.viewport.from&&t<M.view.viewport.to&&(D=Math.min(t,D),i=Math.max(I,i))})),M.viewportChanged||i-D>1e3?this.createDeco(M.view):i>-1?this.updateRange(M.view,N.map(M.changes),D,i):N}updateRange(M,N,D,i){for(let j of M.visibleRanges){let t=Math.max(j.from,D),I=Math.min(j.to,i);if(I>t){let D=M.state.doc.lineAt(t),i=D.to<I?M.state.doc.lineAt(I):D,z=Math.max(j.from,D.from),u=Math.min(j.to,i.to);if(this.boundary){for(;t>D.from;t--)if(this.boundary.test(D.text[t-1-D.from])){z=t;break}for(;I<i.to;I++)if(this.boundary.test(i.text[I-i.from])){u=I;break}}let g,e=[],T=(M,N,D)=>e.push(D.range(M,N));if(D==i)for(this.regexp.lastIndex=z-D.from;(g=this.regexp.exec(D.text))&&g.index<u-D.from;)this.addMatch(g,M,g.index+D.from,T);else Ye(M.state.doc,this.regexp,z,u,((N,D)=>this.addMatch(D,M,N,T)));N=N.update({filterFrom:z,filterTo:u,filter:(M,N)=>M<z||N>u,add:e})}}return N}}const be=null!=/x/.unicode?"gu":"g",pe=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",be),me={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 Ze=null;const fe=Jj.define({combine(M){let N=pt(M,{render:null,specialChars:pe,addSpecialChars:null});return(N.replaceTabs=!function(){var M;if(null==Ze&&"undefined"!=typeof document&&document.body){let N=document.body.style;Ze=null!=(null!==(M=N.tabSize)&&void 0!==M?M:N.MozTabSize)}return Ze||!1}())&&(N.specialChars=new RegExp("\t|"+N.specialChars.source,be)),N.addSpecialChars&&(N.specialChars=new RegExp(N.specialChars.source+"|"+N.addSpecialChars.source,be)),N}});let ve=null;class We extends sz{constructor(M,N){super(),this.options=M,this.code=N}eq(M){return M.code==this.code}toDOM(M){let N=function(M){return M>=32?"•":10==M?"␤":String.fromCharCode(9216+M)}(this.code),D=M.state.phrase("Control character")+" "+(me[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,D,N);if(i)return i;let j=document.createElement("span");return j.textContent=N,j.title=D,j.setAttribute("aria-label",D),j.className="cm-specialChar",j}ignoreEvent(){return!1}}class Ve extends sz{constructor(M){super(),this.width=M}eq(M){return M.width==this.width}toDOM(){let M=document.createElement("span");return M.textContent="\t",M.className="cm-tab",M.style.width=this.width+"px",M}ignoreEvent(){return!1}}const Ge=Oz.line({class:"cm-activeLine"}),Pe=tu.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.docChanged||M.selectionSet)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let N=-1,D=[];for(let i of M.state.selection.ranges){let j=M.lineBlockAt(i.head);j.from>N&&(D.push(Ge.range(j.from)),N=j.from)}return Oz.set(D)}},{decorations:M=>M.decorations}),Re=2e3;function Be(M,N){let D=M.posAtCoords({x:N.clientX,y:N.clientY},!1),i=M.state.doc.lineAt(D),j=D-i.from,t=j>Re?-1:j==i.length?function(M,N){let D=M.coordsAtPos(M.viewport.from);return D?Math.round(Math.abs((D.left-N)/M.defaultCharacterWidth)):-1}(M,N.clientX):qt(i.text,M.state.tabSize,D-i.from);return{line:i.number,col:t,off:j}}function Je(M,N){let D=Be(M,N),i=M.state.selection;return D?{update(M){if(M.docChanged){let N=M.changes.mapPos(M.startState.doc.line(D.line).from),j=M.state.doc.lineAt(N);D={line:j.number,col:D.col,off:Math.min(D.off,j.length)},i=i.map(M.changes)}},get(N,j,t){let I=Be(M,N);if(!I)return i;let z=function(M,N,D){let i=Math.min(N.line,D.line),j=Math.max(N.line,D.line),t=[];if(N.off>Re||D.off>Re||N.col<0||D.col<0){let I=Math.min(N.off,D.off),z=Math.max(N.off,D.off);for(let N=i;N<=j;N++){let D=M.doc.line(N);D.length<=z&&t.push(Pj.range(D.from+I,D.to+z))}}else{let I=Math.min(N.col,D.col),z=Math.max(N.col,D.col);for(let N=i;N<=j;N++){let D=M.doc.line(N),i=Kt(D.text,I,M.tabSize,!0);if(i<0)t.push(Pj.cursor(D.to));else{let N=Kt(D.text,z,M.tabSize);t.push(Pj.range(D.from+i,D.from+N))}}}return t}(M.state,D,I);return z.length?t?Pj.create(z.concat(i.ranges)):Pj.create(z):i}}:null}const Fe={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},He={style:"cursor: crosshair"};const Xe="-10000px";class $e{constructor(M,N,D,i){this.facet=N,this.createTooltipView=D,this.removeTooltipView=i,this.input=M.state.facet(N),this.tooltips=this.input.filter((M=>M));let j=null;this.tooltipViews=this.tooltips.map((M=>j=D(M,j)))}update(M,N){var D;let i=M.state.facet(this.facet),j=i.filter((M=>M));if(i===this.input){for(let N of this.tooltipViews)N.update&&N.update(M);return!1}let t=[],I=N?[]:null;for(let D=0;D<j.length;D++){let i=j[D],z=-1;if(i){for(let M=0;M<this.tooltips.length;M++){let N=this.tooltips[M];N&&N.create==i.create&&(z=M)}if(z<0)t[D]=this.createTooltipView(i,D?t[D-1]:null),I&&(I[D]=!!i.above);else{let i=t[D]=this.tooltipViews[z];I&&(I[D]=N[z]),i.update&&i.update(M)}}}for(let M of this.tooltipViews)t.indexOf(M)<0&&(this.removeTooltipView(M),null===(D=M.destroy)||void 0===D||D.call(M));return N&&(I.forEach(((M,D)=>N[D]=M)),N.length=I.length),this.input=i,this.tooltips=j,this.tooltipViews=t,!0}}function _e(M){let{win:N}=M;return{top:0,left:0,bottom:N.innerHeight,right:N.innerWidth}}const qe=Jj.define({combine:M=>{var N,D,i;return{position:qI.ios?"absolute":(null===(N=M.find((M=>M.position)))||void 0===N?void 0:N.position)||"fixed",parent:(null===(D=M.find((M=>M.parent)))||void 0===D?void 0:D.parent)||null,tooltipSpace:(null===(i=M.find((M=>M.tooltipSpace)))||void 0===i?void 0:i.tooltipSpace)||_e}}}),Ke=new WeakMap,MT=tu.fromClass(class{constructor(M){this.view=M,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let N=M.state.facet(qe);this.position=N.position,this.parent=N.parent,this.classes=M.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new $e(M,iT,((M,N)=>this.createTooltip(M,N)),(M=>{this.resizeObserver&&this.resizeObserver.unobserve(M.dom),M.dom.remove()})),this.above=this.manager.tooltips.map((M=>!!M.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((M=>{Date.now()>this.lastTransaction-50&&M.length>0&&M[M.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),M.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 M of this.manager.tooltipViews)this.intersectionObserver.observe(M.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(M){M.transactions.length&&(this.lastTransaction=Date.now());let N=this.manager.update(M,this.above);N&&this.observeIntersection();let D=N||M.geometryChanged,i=M.state.facet(qe);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let M of this.manager.tooltipViews)M.dom.style.position=this.position;D=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let M of this.manager.tooltipViews)this.container.appendChild(M.dom);D=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);D&&this.maybeMeasure()}createTooltip(M,N){let D=M.create(this.view),i=N?N.dom:null;if(D.dom.classList.add("cm-tooltip"),M.arrow&&!D.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let M=document.createElement("div");M.className="cm-tooltip-arrow",D.dom.appendChild(M)}return D.dom.style.position=this.position,D.dom.style.top=Xe,D.dom.style.left="0px",this.container.insertBefore(D.dom,i),D.mount&&D.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(D.dom),D}destroy(){var M,N,D;this.view.win.removeEventListener("resize",this.measureSoon);for(let N of this.manager.tooltipViews)N.dom.remove(),null===(M=N.destroy)||void 0===M||M.call(N);this.parent&&this.container.remove(),null===(N=this.resizeObserver)||void 0===N||N.disconnect(),null===(D=this.intersectionObserver)||void 0===D||D.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let M=this.view.dom.getBoundingClientRect(),N=1,D=1,i=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:M}=this.manager.tooltipViews[0];if(qI.gecko)i=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==Xe&&"0px"==M.style.left){let N=M.getBoundingClientRect();i=Math.abs(N.top+1e4)>1||Math.abs(N.left)>1}}if(i||"absolute"==this.position)if(this.parent){let M=this.parent.getBoundingClientRect();M.width&&M.height&&(N=M.width/this.parent.offsetWidth,D=M.height/this.parent.offsetHeight)}else({scaleX:N,scaleY:D}=this.view.viewState);return{editor:M,parent:this.parent?this.container.getBoundingClientRect():M,pos:this.manager.tooltips.map(((M,N)=>{let D=this.manager.tooltipViews[N];return D.getCoords?D.getCoords(M.pos):this.view.coordsAtPos(M.pos)})),size:this.manager.tooltipViews.map((({dom:M})=>M.getBoundingClientRect())),space:this.view.state.facet(qe).tooltipSpace(this.view),scaleX:N,scaleY:D,makeAbsolute:i}}writeMeasure(M){var N;if(M.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let M of this.manager.tooltipViews)M.dom.style.position="absolute"}let{editor:D,space:i,scaleX:j,scaleY:t}=M,I=[];for(let z=0;z<this.manager.tooltips.length;z++){let u=this.manager.tooltips[z],g=this.manager.tooltipViews[z],{dom:e}=g,T=M.pos[z],A=M.size[z];if(!T||T.bottom<=Math.max(D.top,i.top)||T.top>=Math.min(D.bottom,i.bottom)||T.right<Math.max(D.left,i.left)-.1||T.left>Math.min(D.right,i.right)+.1){e.style.top=Xe;continue}let s=u.arrow?g.dom.querySelector(".cm-tooltip-arrow"):null,L=s?7:0,O=A.right-A.left,y=null!==(N=Ke.get(g))&&void 0!==N?N:A.bottom-A.top,c=g.offset||DT,n=this.view.textDirection==Qz.LTR,l=A.width>i.right-i.left?n?i.left:i.right-A.width:n?Math.min(T.left-(s?14:0)+c.x,i.right-O):Math.max(i.left,T.left-O+(s?14:0)-c.x),o=this.above[z];!u.strictSide&&(o?T.top-(A.bottom-A.top)-c.y<i.top:T.bottom+(A.bottom-A.top)+c.y>i.bottom)&&o==i.bottom-T.bottom>T.top-i.top&&(o=this.above[z]=!o);let r=(o?T.top-i.top:i.bottom-T.bottom)-L;if(r<y&&!1!==g.resize){if(r<this.view.defaultLineHeight){e.style.top=Xe;continue}Ke.set(g,y),e.style.height=(y=r)/t+"px"}else e.style.height&&(e.style.height="");let x=o?T.top-y-L-c.y:T.bottom+L+c.y,a=l+O;if(!0!==g.overlap)for(let M of I)M.left<a&&M.right>l&&M.top<x+y&&M.bottom>x&&(x=o?M.top-y-2-L:M.bottom+L+2);if("absolute"==this.position?(e.style.top=(x-M.parent.top)/t+"px",e.style.left=(l-M.parent.left)/j+"px"):(e.style.top=x/t+"px",e.style.left=l/j+"px"),s){let M=T.left+(n?c.x:-c.x)-(l+14-7);s.style.left=M/j+"px"}!0!==g.overlap&&I.push({left:l,top:x,right:a,bottom:x+y}),e.classList.toggle("cm-tooltip-above",o),e.classList.toggle("cm-tooltip-below",!o),g.positioned&&g.positioned(M.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 M of this.manager.tooltipViews)M.dom.style.top=Xe}},{eventObservers:{scroll(){this.maybeMeasure()}}}),NT=Ne.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:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),DT={x:0,y:0},iT=Jj.define({enables:[MT,NT]}),jT=Jj.define({combine:M=>M.reduce(((M,N)=>M.concat(N)),[])});class tT{static create(M){return new tT(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new $e(M,jT,((M,N)=>this.createHostedView(M,N)),(M=>M.dom.remove()))}createHostedView(M,N){let D=M.create(this.view);return D.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(D.dom,N?N.dom.nextSibling:this.dom.firstChild),this.mounted&&D.mount&&D.mount(this.view),D}mount(M){for(let N of this.manager.tooltipViews)N.mount&&N.mount(M);this.mounted=!0}positioned(M){for(let N of this.manager.tooltipViews)N.positioned&&N.positioned(M)}update(M){this.manager.update(M)}destroy(){var M;for(let N of this.manager.tooltipViews)null===(M=N.destroy)||void 0===M||M.call(N)}passProp(M){let N;for(let D of this.manager.tooltipViews){let i=D[M];if(void 0!==i)if(void 0===N)N=i;else if(N!==i)return}return N}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const IT=iT.compute([jT],(M=>{let N=M.facet(jT);return 0===N.length?null:{pos:Math.min(...N.map((M=>M.pos))),end:Math.max(...N.map((M=>{var N;return null!==(N=M.end)&&void 0!==N?N:M.pos}))),create:tT.create,above:N[0].above,arrow:N.some((M=>M.arrow))}}));class zT{constructor(M,N,D,i,j){this.view=M,this.source=N,this.field=D,this.setHover=i,this.hoverTime=j,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:M.dom,time:0},this.checkHover=this.checkHover.bind(this),M.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),M.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.length)return;let M=Date.now()-this.lastMove.time;M<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-M):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:M,lastMove:N}=this,D=M.docView.nearest(N.target);if(!D)return;let i,j=1;if(D instanceof Nz)i=D.posAtStart;else{if(i=M.posAtCoords(N),null==i)return;let D=M.coordsAtPos(i);if(!D||N.y<D.top||N.y>D.bottom||N.x<D.left-M.defaultCharacterWidth||N.x>D.right+M.defaultCharacterWidth)return;let t=M.bidiSpans(M.state.doc.lineAt(i)).find((M=>M.from<=i&&M.to>=i)),I=t&&t.dir==Qz.RTL?-1:1;j=N.x<D.left?-I:I}let t=this.source(M,i,j);if(null==t?void 0:t.then){let N=this.pending={pos:i};t.then((D=>{this.pending==N&&(this.pending=null,!D||Array.isArray(D)&&!D.length||M.dispatch({effects:this.setHover.of(Array.isArray(D)?D:[D])}))}),(N=>Nu(M.state,N,"hover tooltip")))}else!t||Array.isArray(t)&&!t.length||M.dispatch({effects:this.setHover.of(Array.isArray(t)?t:[t])})}get tooltip(){let M=this.view.plugin(MT),N=M?M.manager.tooltips.findIndex((M=>M.create==tT.create)):-1;return N>-1?M.manager.tooltipViews[N]:null}mousemove(M){var N,D;this.lastMove={x:M.clientX,y:M.clientY,target:M.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:j}=this;if(i.length&&j&&!function(M,N){let D=M.getBoundingClientRect();return N.clientX>=D.left-uT&&N.clientX<=D.right+uT&&N.clientY>=D.top-uT&&N.clientY<=D.bottom+uT}(j.dom,M)||this.pending){let{pos:j}=i[0]||this.pending,t=null!==(D=null===(N=i[0])||void 0===N?void 0:N.end)&&void 0!==D?D:j;(j==t?this.view.posAtCoords(this.lastMove)==j:function(M,N,D,i,j,t){let I=M.scrollDOM.getBoundingClientRect(),z=M.documentTop+M.documentPadding.top+M.contentHeight;if(I.left>i||I.right<i||I.top>j||Math.min(I.bottom,z)<j)return!1;let u=M.posAtCoords({x:i,y:j},!1);return u>=N&&u<=D}(this.view,j,t,M.clientX,M.clientY))||(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(M){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:N}=this;if(N.length){let{tooltip:N}=this;N&&N.dom.contains(M.relatedTarget)?this.watchTooltipLeave(N.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(M){let N=D=>{M.removeEventListener("mouseleave",N),this.active.length&&!this.view.dom.contains(D.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};M.addEventListener("mouseleave",N)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const uT=4;function gT(M,N={}){let D=xt.define(),i=Kj.define({create:()=>[],update(M,i){if(M.length&&(N.hideOnChange&&(i.docChanged||i.selection)?M=[]:N.hideOn&&(M=M.filter((M=>!N.hideOn(i,M)))),i.docChanged)){let N=[];for(let D of M){let M=i.changes.mapPos(D.pos,-1,Cj.TrackDel);if(null!=M){let j=Object.assign(Object.create(null),D);j.pos=M,null!=j.end&&(j.end=i.changes.mapPos(j.end)),N.push(j)}}M=N}for(let N of i.effects)N.is(D)&&(M=N.value),N.is(TT)&&(M=[]);return M},provide:M=>jT.from(M)});return[i,tu.define((j=>new zT(j,M,i,D,N.hoverTime||300))),IT]}function eT(M,N){let D=M.plugin(MT);if(!D)return null;let i=D.manager.tooltips.indexOf(N);return i<0?null:D.manager.tooltipViews[i]}const TT=xt.define(),AT=Jj.define({combine(M){let N,D;for(let i of M)N=N||i.topContainer,D=D||i.bottomContainer;return{topContainer:N,bottomContainer:D}}});function sT(M,N){let D=M.plugin(LT),i=D?D.specs.indexOf(N):-1;return i>-1?D.panels[i]:null}const LT=tu.fromClass(class{constructor(M){this.input=M.state.facet(cT),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((N=>N(M)));let N=M.state.facet(AT);this.top=new OT(M,!0,N.topContainer),this.bottom=new OT(M,!1,N.bottomContainer),this.top.sync(this.panels.filter((M=>M.top))),this.bottom.sync(this.panels.filter((M=>!M.top)));for(let M of this.panels)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}update(M){let N=M.state.facet(AT);this.top.container!=N.topContainer&&(this.top.sync([]),this.top=new OT(M.view,!0,N.topContainer)),this.bottom.container!=N.bottomContainer&&(this.bottom.sync([]),this.bottom=new OT(M.view,!1,N.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let D=M.state.facet(cT);if(D!=this.input){let N=D.filter((M=>M)),i=[],j=[],t=[],I=[];for(let D of N){let N,z=this.specs.indexOf(D);z<0?(N=D(M.view),I.push(N)):(N=this.panels[z],N.update&&N.update(M)),i.push(N),(N.top?j:t).push(N)}this.specs=N,this.panels=i,this.top.sync(j),this.bottom.sync(t);for(let M of I)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}else for(let N of this.panels)N.update&&N.update(M)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:M=>Ne.scrollMargins.of((N=>{let D=N.plugin(M);return D&&{top:D.top.scrollMargin(),bottom:D.bottom.scrollMargin()}}))});class OT{constructor(M,N,D){this.view=M,this.top=N,this.container=D,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(M){for(let N of this.panels)N.destroy&&M.indexOf(N)<0&&N.destroy();this.panels=M,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));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 M=this.container||this.view.dom;M.insertBefore(this.dom,this.top?M.firstChild:null)}let M=this.dom.firstChild;for(let N of this.panels)if(N.dom.parentNode==this.dom){for(;M!=N.dom;)M=yT(M);M=M.nextSibling}else this.dom.insertBefore(N.dom,M);for(;M;)M=yT(M)}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 M of this.classes.split(" "))M&&this.container.classList.remove(M);for(let M of(this.classes=this.view.themeClasses).split(" "))M&&this.container.classList.add(M)}}}function yT(M){let N=M.nextSibling;return M.remove(),N}const cT=Jj.define({enables:LT});class nT extends mt{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}nT.prototype.elementClass="",nT.prototype.toDOM=void 0,nT.prototype.mapMode=Cj.TrackBefore,nT.prototype.startSide=nT.prototype.endSide=-1,nT.prototype.point=!0;const lT=Jj.define(),oT={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Wt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},rT=Jj.define();function xT(M){return[QT(),rT.of(Object.assign(Object.assign({},oT),M))]}const aT=Jj.define({combine:M=>M.some((M=>M))});function QT(M){let N=[ET];return M&&!1===M.fixed&&N.push(aT.of(!0)),N}const ET=tu.fromClass(class{constructor(M){this.view=M,this.prevViewport=M.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=M.state.facet(rT).map((N=>new kT(M,N)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(aT),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),M.scrollDOM.insertBefore(this.dom,M.contentDOM)}update(M){if(this.updateGutters(M)){let N=this.prevViewport,D=M.view.viewport,i=Math.min(N.to,D.to)-Math.max(N.from,D.from);this.syncGutters(i<.8*(D.to-D.from))}M.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(aT)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=M.view.viewport}syncGutters(M){let N=this.dom.nextSibling;M&&this.dom.remove();let D=Wt.iter(this.view.state.facet(lT),this.view.viewport.from),i=[],j=this.gutters.map((M=>new dT(M,this.view.viewport,-this.view.documentPadding.top)));for(let M of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(M.type)){let N=!0;for(let t of M.type)if(t.type==Lz.Text&&N){hT(D,i,t.from);for(let M of j)M.line(this.view,t,i);N=!1}else if(t.widget)for(let M of j)M.widget(this.view,t)}else if(M.type==Lz.Text){hT(D,i,M.from);for(let N of j)N.line(this.view,M,i)}else if(M.widget)for(let N of j)N.widget(this.view,M);for(let M of j)M.finish();M&&this.view.scrollDOM.insertBefore(this.dom,N)}updateGutters(M){let N=M.startState.facet(rT),D=M.state.facet(rT),i=M.docChanged||M.heightChanged||M.viewportChanged||!Wt.eq(M.startState.facet(lT),M.state.facet(lT),M.view.viewport.from,M.view.viewport.to);if(N==D)for(let N of this.gutters)N.update(M)&&(i=!0);else{i=!0;let j=[];for(let i of D){let D=N.indexOf(i);D<0?j.push(new kT(this.view,i)):(this.gutters[D].update(M),j.push(this.gutters[D]))}for(let M of this.gutters)M.dom.remove(),j.indexOf(M)<0&&M.destroy();for(let M of j)this.dom.appendChild(M.dom);this.gutters=j}return i}destroy(){for(let M of this.gutters)M.destroy();this.dom.remove()}},{provide:M=>Ne.scrollMargins.of((N=>{let D=N.plugin(M);return D&&0!=D.gutters.length&&D.fixed?N.textDirection==Qz.LTR?{left:D.dom.offsetWidth*N.scaleX}:{right:D.dom.offsetWidth*N.scaleX}:null}))});function ST(M){return Array.isArray(M)?M:[M]}function hT(M,N,D){for(;M.value&&M.from<=D;)M.from==D&&N.push(M.value),M.next()}class dT{constructor(M,N,D){this.gutter=M,this.height=D,this.i=0,this.cursor=Wt.iter(M.markers,N.from)}addElement(M,N,D){let{gutter:i}=this,j=(N.top-this.height)/M.scaleY,t=N.height/M.scaleY;if(this.i==i.elements.length){let N=new wT(M,t,j,D);i.elements.push(N),i.dom.appendChild(N.dom)}else i.elements[this.i].update(M,t,j,D);this.height=N.bottom,this.i++}line(M,N,D){let i=[];hT(this.cursor,i,N.from),D.length&&(i=i.concat(D));let j=this.gutter.config.lineMarker(M,N,i);j&&i.unshift(j);let t=this.gutter;(0!=i.length||t.config.renderEmptyElements)&&this.addElement(M,N,i)}widget(M,N){let D=this.gutter.config.widgetMarker(M,N.widget,N);D&&this.addElement(M,N,[D])}finish(){let M=this.gutter;for(;M.elements.length>this.i;){let N=M.elements.pop();M.dom.removeChild(N.dom),N.destroy()}}}class kT{constructor(M,N){this.view=M,this.config=N,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let D in N.domEventHandlers)this.dom.addEventListener(D,(i=>{let j,t=i.target;if(t!=this.dom&&this.dom.contains(t)){for(;t.parentNode!=this.dom;)t=t.parentNode;let M=t.getBoundingClientRect();j=(M.top+M.bottom)/2}else j=i.clientY;let I=M.lineBlockAtHeight(j-M.documentTop);N.domEventHandlers[D](M,I,i)&&i.preventDefault()}));this.markers=ST(N.markers(M)),N.initialSpacer&&(this.spacer=new wT(M,0,0,[N.initialSpacer(M)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(M){let N=this.markers;if(this.markers=ST(this.config.markers(M.view)),this.spacer&&this.config.updateSpacer){let N=this.config.updateSpacer(this.spacer.markers[0],M);N!=this.spacer.markers[0]&&this.spacer.update(M.view,0,0,[N])}let D=M.view.viewport;return!Wt.eq(this.markers,N,D.from,D.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(M)}destroy(){for(let M of this.elements)M.destroy()}}class wT{constructor(M,N,D,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(M,N,D,i)}update(M,N,D,i){this.height!=N&&(this.height=N,this.dom.style.height=N+"px"),this.above!=D&&(this.dom.style.marginTop=(this.above=D)?D+"px":""),function(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++)if(!M[D].compare(N[D]))return!1;return!0}(this.markers,i)||this.setMarkers(M,i)}setMarkers(M,N){let D="cm-gutterElement",i=this.dom.firstChild;for(let j=0,t=0;;){let I=t,z=j<N.length?N[j++]:null,u=!1;if(z){let M=z.elementClass;M&&(D+=" "+M);for(let M=t;M<this.markers.length;M++)if(this.markers[M].compare(z)){I=M,u=!0;break}}else I=this.markers.length;for(;t<I;){let M=this.markers[t++];if(M.toDOM){M.destroy(i);let N=i.nextSibling;i.remove(),i=N}}if(!z)break;z.toDOM&&(u?i=i.nextSibling:this.dom.insertBefore(z.toDOM(M),i)),u&&t++}this.dom.className=D,this.markers=N}destroy(){this.setMarkers(null,[])}}const UT=Jj.define(),YT=Jj.define({combine:M=>pt(M,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(M,N){let D=Object.assign({},M);for(let M in N){let i=D[M],j=N[M];D[M]=i?(M,N,D)=>i(M,N,D)||j(M,N,D):j}return D}})});class CT extends nT{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function bT(M,N){return M.state.facet(YT).formatNumber(N,M.state)}const pT=rT.compute([YT],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(UT),lineMarker:(M,N,D)=>D.some((M=>M.toDOM))?null:new CT(bT(M,M.state.doc.lineAt(N.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(YT)!=M.state.facet(YT),initialSpacer:M=>new CT(bT(M,ZT(M.state.doc.lines))),updateSpacer(M,N){let D=bT(N.view,ZT(N.view.state.doc.lines));return D==M.number?M:new CT(D)},domEventHandlers:M.facet(YT).domEventHandlers})));function mT(M={}){return[YT.of(M),QT(),pT]}function ZT(M){let N=9;for(;N<M;)N=10*N+9;return N}const fT=new class extends nT{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},vT=lT.compute(["selection"],(M=>{let N=[],D=-1;for(let i of M.selection.ranges){let j=M.doc.lineAt(i.head).from;j>D&&(D=j,N.push(fT.range(j)))}return Wt.of(N)}));const WT=1024;let VT=0;class GT{constructor(M,N){this.from=M,this.to=N}}class PT{constructor(M={}){this.id=VT++,this.perNode=!!M.perNode,this.deserialize=M.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(M){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof M&&(M=JT.match(M)),N=>{let D=M(N);return void 0===D?null:[this,D]}}}PT.closedBy=new PT({deserialize:M=>M.split(" ")}),PT.openedBy=new PT({deserialize:M=>M.split(" ")}),PT.group=new PT({deserialize:M=>M.split(" ")}),PT.isolate=new PT({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),PT.contextHash=new PT({perNode:!0}),PT.lookAhead=new PT({perNode:!0}),PT.mounted=new PT({perNode:!0});class RT{constructor(M,N,D){this.tree=M,this.overlay=N,this.parser=D}static get(M){return M&&M.props&&M.props[PT.mounted.id]}}const BT=Object.create(null);class JT{constructor(M,N,D,i=0){this.name=M,this.props=N,this.id=D,this.flags=i}static define(M){let N=M.props&&M.props.length?Object.create(null):BT,D=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),i=new JT(M.name||"",N,M.id,D);if(M.props)for(let D of M.props)if(Array.isArray(D)||(D=D(i)),D){if(D[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");N[D[0].id]=D[1]}return i}prop(M){return this.props[M.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(M){if("string"==typeof M){if(this.name==M)return!0;let N=this.prop(PT.group);return!!N&&N.indexOf(M)>-1}return this.id==M}static match(M){let N=Object.create(null);for(let D in M)for(let i of D.split(" "))N[i]=M[D];return M=>{for(let D=M.prop(PT.group),i=-1;i<(D?D.length:0);i++){let j=N[i<0?M.name:D[i]];if(j)return j}}}}JT.none=new JT("",Object.create(null),0,8);class FT{constructor(M){this.types=M;for(let N=0;N<M.length;N++)if(M[N].id!=N)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...M){let N=[];for(let D of this.types){let i=null;for(let N of M){let M=N(D);M&&(i||(i=Object.assign({},D.props)),i[M[0].id]=M[1])}N.push(i?new JT(D.name,i,D.id,D.flags):D)}return new FT(N)}}const HT=new WeakMap,XT=new WeakMap;var $T;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}($T||($T={}));class _T{constructor(M,N,D,i,j){if(this.type=M,this.children=N,this.positions=D,this.length=i,this.props=null,j&&j.length){this.props=Object.create(null);for(let[M,N]of j)this.props["number"==typeof M?M:M.id]=N}}toString(){let M=RT.get(this);if(M&&!M.overlay)return M.tree.toString();let N="";for(let M of this.children){let D=M.toString();D&&(N&&(N+=","),N+=D)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(N.length?"("+N+")":""):N}cursor(M=0){return new eA(this.topNode,M)}cursorAt(M,N=0,D=0){let i=HT.get(this)||this.topNode,j=new eA(i);return j.moveTo(M,N),HT.set(this,j._tree),j}get topNode(){return new iA(this,0,0,null)}resolve(M,N=0){let D=NA(HT.get(this)||this.topNode,M,N,!1);return HT.set(this,D),D}resolveInner(M,N=0){let D=NA(XT.get(this)||this.topNode,M,N,!0);return XT.set(this,D),D}resolveStack(M,N=0){return function(M,N,D){let i=M.resolveInner(N,D),j=null;for(let M=i instanceof iA?i:i.context.parent;M;M=M.parent)if(M.index<0){let t=M.parent;(j||(j=[i])).push(t.resolve(N,D)),M=t}else{let t=RT.get(M.tree);if(t&&t.overlay&&t.overlay[0].from<=N&&t.overlay[t.overlay.length-1].to>=N){let I=new iA(t.tree,t.overlay[0].from+M.from,-1,M);(j||(j=[i])).push(NA(I,N,D,!1))}}return j?uA(j):i}(this,M,N)}iterate(M){let{enter:N,leave:D,from:i=0,to:j=this.length}=M,t=M.mode||0,I=(t&$T.IncludeAnonymous)>0;for(let M=this.cursor(t|$T.IncludeAnonymous);;){let t=!1;if(M.from<=j&&M.to>=i&&(!I&&M.type.isAnonymous||!1!==N(M))){if(M.firstChild())continue;t=!0}for(;t&&D&&(I||!M.type.isAnonymous)&&D(M),!M.nextSibling();){if(!M.parent())return;t=!0}}}prop(M){return M.perNode?this.props?this.props[M.id]:void 0:this.type.prop(M)}get propValues(){let M=[];if(this.props)for(let N in this.props)M.push([+N,this.props[N]]);return M}balance(M={}){return this.children.length<=8?this:LA(JT.none,this.children,this.positions,0,this.children.length,0,this.length,((M,N,D)=>new _T(this.type,M,N,D,this.propValues)),M.makeTree||((M,N,D)=>new _T(JT.none,M,N,D)))}static build(M){return function(M){var N;let{buffer:D,nodeSet:i,maxBufferLength:j=WT,reused:t=[],minRepeatType:I=i.types.length}=M,z=Array.isArray(D)?new qT(D,D.length):D,u=i.types,g=0,e=0;function T(M,N,D,n,l,o){let{id:r,start:x,end:a,size:Q}=z,E=e;for(;Q<0;){if(z.next(),-1==Q){let N=t[r];return D.push(N),void n.push(x-M)}if(-3==Q)return void(g=r);if(-4==Q)return void(e=r);throw new RangeError(`Unrecognized record size: ${Q}`)}let S,h,d=u[r],k=x-M;if(a-x<=j&&(h=y(z.pos-N,l))){let N=new Uint16Array(h.size-h.skip),D=z.pos-h.size,j=N.length;for(;z.pos>D;)j=c(h.start,N,j);S=new KT(N,a-h.start,i),k=h.start-M}else{let M=z.pos-Q;z.next();let N=[],D=[],i=r>=I?r:-1,t=0,u=a;for(;z.pos>M;)i>=0&&z.id==i&&z.size>=0?(z.end<=u-j&&(L(N,D,x,t,z.end,u,i,E),t=N.length,u=z.end),z.next()):o>2500?A(x,M,N,D):T(x,M,N,D,i,o+1);if(i>=0&&t>0&&t<N.length&&L(N,D,x,t,x,u,i,E),N.reverse(),D.reverse(),i>-1&&t>0){let M=s(d);S=LA(d,N,D,0,N.length,0,a-x,M,M)}else S=O(d,N,D,a-x,E-a)}D.push(S),n.push(k)}function A(M,N,D,t){let I=[],u=0,g=-1;for(;z.pos>N;){let{id:M,start:N,end:D,size:i}=z;if(i>4)z.next();else{if(g>-1&&N<g)break;g<0&&(g=D-j),I.push(M,N,D),u++,z.next()}}if(u){let N=new Uint16Array(4*u),j=I[I.length-2];for(let M=I.length-3,D=0;M>=0;M-=3)N[D++]=I[M],N[D++]=I[M+1]-j,N[D++]=I[M+2]-j,N[D++]=D;D.push(new KT(N,I[2]-j,i)),t.push(j-M)}}function s(M){return(N,D,i)=>{let j,t,I=0,z=N.length-1;if(z>=0&&(j=N[z])instanceof _T){if(!z&&j.type==M&&j.length==i)return j;(t=j.prop(PT.lookAhead))&&(I=D[z]+j.length+t)}return O(M,N,D,i,I)}}function L(M,N,D,j,t,I,z,u){let g=[],e=[];for(;M.length>j;)g.push(M.pop()),e.push(N.pop()+D-t);M.push(O(i.types[z],g,e,I-t,u-I)),N.push(t-D)}function O(M,N,D,i,j=0,t){if(g){let M=[PT.contextHash,g];t=t?[M].concat(t):[M]}if(j>25){let M=[PT.lookAhead,j];t=t?[M].concat(t):[M]}return new _T(M,N,D,i,t)}function y(M,N){let D=z.fork(),i=0,t=0,u=0,g=D.end-j,e={size:0,start:0,skip:0};M:for(let j=D.pos-M;D.pos>j;){let M=D.size;if(D.id==N&&M>=0){e.size=i,e.start=t,e.skip=u,u+=4,i+=4,D.next();continue}let z=D.pos-M;if(M<0||z<j||D.start<g)break;let T=D.id>=I?4:0,A=D.start;for(D.next();D.pos>z;){if(D.size<0){if(-3!=D.size)break M;T+=4}else D.id>=I&&(T+=4);D.next()}t=A,i+=M,u+=T}return(N<0||i==M)&&(e.size=i,e.start=t,e.skip=u),e.size>4?e:void 0}function c(M,N,D){let{id:i,start:j,end:t,size:u}=z;if(z.next(),u>=0&&i<I){let I=D;if(u>4){let i=z.pos-(u-4);for(;z.pos>i;)D=c(M,N,D)}N[--D]=I,N[--D]=t-M,N[--D]=j-M,N[--D]=i}else-3==u?g=i:-4==u&&(e=i);return D}let n=[],l=[];for(;z.pos>0;)T(M.start||0,M.bufferStart||0,n,l,-1,0);let o=null!==(N=M.length)&&void 0!==N?N:n.length?l[0]+n[0].length:0;return new _T(u[M.topID],n.reverse(),l.reverse(),o)}(M)}}_T.empty=new _T(JT.none,[],[],0);class qT{constructor(M,N){this.buffer=M,this.index=N}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 qT(this.buffer,this.index)}}class KT{constructor(M,N,D){this.buffer=M,this.length=N,this.set=D}get type(){return JT.none}toString(){let M=[];for(let N=0;N<this.buffer.length;)M.push(this.childString(N)),N=this.buffer[N+3];return M.join(",")}childString(M){let N=this.buffer[M],D=this.buffer[M+3],i=this.set.types[N],j=i.name;if(/\W/.test(j)&&!i.isError&&(j=JSON.stringify(j)),D==(M+=4))return j;let t=[];for(;M<D;)t.push(this.childString(M)),M=this.buffer[M+3];return j+"("+t.join(",")+")"}findChild(M,N,D,i,j){let{buffer:t}=this,I=-1;for(let z=M;z!=N&&!(MA(j,i,t[z+1],t[z+2])&&(I=z,D>0));z=t[z+3]);return I}slice(M,N,D){let i=this.buffer,j=new Uint16Array(N-M),t=0;for(let I=M,z=0;I<N;){j[z++]=i[I++],j[z++]=i[I++]-D;let N=j[z++]=i[I++]-D;j[z++]=i[I++]-M,t=Math.max(t,N)}return new KT(j,t,this.set)}}function MA(M,N,D,i){switch(M){case-2:return D<N;case-1:return i>=N&&D<N;case 0:return D<N&&i>N;case 1:return D<=N&&i>N;case 2:return i>N;case 4:return!0}}function NA(M,N,D,i){for(var j;M.from==M.to||(D<1?M.from>=N:M.from>N)||(D>-1?M.to<=N:M.to<N);){let N=!i&&M instanceof iA&&M.index<0?null:M.parent;if(!N)return M;M=N}let t=i?0:$T.IgnoreOverlays;if(i)for(let i=M,I=i.parent;I;i=I,I=i.parent)i instanceof iA&&i.index<0&&(null===(j=I.enter(N,D,t))||void 0===j?void 0:j.from)!=i.from&&(M=I);for(;;){let i=M.enter(N,D,t);if(!i)return M;M=i}}class DA{cursor(M=0){return new eA(this,M)}getChild(M,N=null,D=null){let i=jA(this,M,N,D);return i.length?i[0]:null}getChildren(M,N=null,D=null){return jA(this,M,N,D)}resolve(M,N=0){return NA(this,M,N,!1)}resolveInner(M,N=0){return NA(this,M,N,!0)}matchContext(M){return tA(this,M)}enterUnfinishedNodesBefore(M){let N=this.childBefore(M),D=this;for(;N;){let M=N.lastChild;if(!M||M.to!=N.to)break;M.type.isError&&M.from==M.to?(D=N,N=M.prevSibling):N=M}return D}get node(){return this}get next(){return this.parent}}class iA extends DA{constructor(M,N,D,i){super(),this._tree=M,this.from=N,this.index=D,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(M,N,D,i,j=0){for(let t=this;;){for(let{children:I,positions:z}=t._tree,u=N>0?I.length:-1;M!=u;M+=N){let u=I[M],g=z[M]+t.from;if(MA(i,D,g,g+u.length))if(u instanceof KT){if(j&$T.ExcludeBuffers)continue;let I=u.findChild(0,u.buffer.length,N,D-g,i);if(I>-1)return new zA(new IA(t,u,M,g),null,I)}else if(j&$T.IncludeAnonymous||!u.type.isAnonymous||TA(u)){let I;if(!(j&$T.IgnoreMounts)&&(I=RT.get(u))&&!I.overlay)return new iA(I.tree,g,M,t);let z=new iA(u,g,M,t);return j&$T.IncludeAnonymous||!z.type.isAnonymous?z:z.nextChild(N<0?u.children.length-1:0,N,D,i)}}if(j&$T.IncludeAnonymous||!t.type.isAnonymous)return null;if(M=t.index>=0?t.index+N:N<0?-1:t._parent._tree.children.length,t=t._parent,!t)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(M){return this.nextChild(0,1,M,2)}childBefore(M){return this.nextChild(this._tree.children.length-1,-1,M,-2)}enter(M,N,D=0){let i;if(!(D&$T.IgnoreOverlays)&&(i=RT.get(this._tree))&&i.overlay){let D=M-this.from;for(let{from:M,to:j}of i.overlay)if((N>0?M<=D:M<D)&&(N<0?j>=D:j>D))return new iA(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,M,N,D)}nextSignificantParent(){let M=this;for(;M.type.isAnonymous&&M._parent;)M=M._parent;return M}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function jA(M,N,D,i){let j=M.cursor(),t=[];if(!j.firstChild())return t;if(null!=D)for(let M=!1;!M;)if(M=j.type.is(D),!j.nextSibling())return t;for(;;){if(null!=i&&j.type.is(i))return t;if(j.type.is(N)&&t.push(j.node),!j.nextSibling())return null==i?t:[]}}function tA(M,N,D=N.length-1){for(let i=M.parent;D>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(N[D]&&N[D]!=i.name)return!1;D--}}return!0}class IA{constructor(M,N,D,i){this.parent=M,this.buffer=N,this.index=D,this.start=i}}class zA extends DA{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(M,N,D){super(),this.context=M,this._parent=N,this.index=D,this.type=M.buffer.set.types[M.buffer.buffer[D]]}child(M,N,D){let{buffer:i}=this.context,j=i.findChild(this.index+4,i.buffer[this.index+3],M,N-this.context.start,D);return j<0?null:new zA(this.context,this,j)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(M){return this.child(1,M,2)}childBefore(M){return this.child(-1,M,-2)}enter(M,N,D=0){if(D&$T.ExcludeBuffers)return null;let{buffer:i}=this.context,j=i.findChild(this.index+4,i.buffer[this.index+3],N>0?1:-1,M-this.context.start,N);return j<0?null:new zA(this.context,this,j)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(M){return this._parent?null:this.context.parent.nextChild(this.context.index+M,M,0,4)}get nextSibling(){let{buffer:M}=this.context,N=M.buffer[this.index+3];return N<(this._parent?M.buffer[this._parent.index+3]:M.buffer.length)?new zA(this.context,this._parent,N):this.externalSibling(1)}get prevSibling(){let{buffer:M}=this.context,N=this._parent?this._parent.index+4:0;return this.index==N?this.externalSibling(-1):new zA(this.context,this._parent,M.findChild(N,this.index,-1,0,4))}get tree(){return null}toTree(){let M=[],N=[],{buffer:D}=this.context,i=this.index+4,j=D.buffer[this.index+3];if(j>i){let t=D.buffer[this.index+1];M.push(D.slice(i,j,t)),N.push(0)}return new _T(this.type,M,N,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function uA(M){if(!M.length)return null;let N=0,D=M[0];for(let i=1;i<M.length;i++){let j=M[i];(j.from>D.from||j.to<D.to)&&(D=j,N=i)}let i=D instanceof iA&&D.index<0?null:D.parent,j=M.slice();return i?j[N]=i:j.splice(N,1),new gA(j,D)}class gA{constructor(M,N){this.heads=M,this.node=N}get next(){return uA(this.heads)}}class eA{get name(){return this.type.name}constructor(M,N=0){if(this.mode=N,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,M instanceof iA)this.yieldNode(M);else{this._tree=M.context.parent,this.buffer=M.context;for(let N=M._parent;N;N=N._parent)this.stack.unshift(N.index);this.bufferNode=M,this.yieldBuf(M.index)}}yieldNode(M){return!!M&&(this._tree=M,this.type=M.type,this.from=M.from,this.to=M.to,!0)}yieldBuf(M,N){this.index=M;let{start:D,buffer:i}=this.buffer;return this.type=N||i.set.types[i.buffer[M]],this.from=D+i.buffer[M+1],this.to=D+i.buffer[M+2],!0}yield(M){return!!M&&(M instanceof iA?(this.buffer=null,this.yieldNode(M)):(this.buffer=M.context,this.yieldBuf(M.index,M.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(M,N,D){if(!this.buffer)return this.yield(this._tree.nextChild(M<0?this._tree._tree.children.length-1:0,M,N,D,this.mode));let{buffer:i}=this.buffer,j=i.findChild(this.index+4,i.buffer[this.index+3],M,N-this.buffer.start,D);return!(j<0)&&(this.stack.push(this.index),this.yieldBuf(j))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(M){return this.enterChild(1,M,2)}childBefore(M){return this.enterChild(-1,M,-2)}enter(M,N,D=this.mode){return this.buffer?!(D&$T.ExcludeBuffers)&&this.enterChild(1,M,N):this.yield(this._tree.enter(M,N,D))}parent(){if(!this.buffer)return this.yieldNode(this.mode&$T.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&$T.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(M)}sibling(M){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+M,M,0,4,this.mode));let{buffer:N}=this.buffer,D=this.stack.length-1;if(M<0){let M=D<0?0:this.stack[D]+4;if(this.index!=M)return this.yieldBuf(N.findChild(M,this.index,-1,0,4))}else{let M=N.buffer[this.index+3];if(M<(D<0?N.buffer.length:N.buffer[this.stack[D]+3]))return this.yieldBuf(M)}return D<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+M,M,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(M){let N,D,{buffer:i}=this;if(i){if(M>0){if(this.index<i.buffer.buffer.length)return!1}else for(let M=0;M<this.index;M++)if(i.buffer.buffer[M+3]<this.index)return!1;({index:N,parent:D}=i)}else({index:N,_parent:D}=this._tree);for(;D;({index:N,_parent:D}=D))if(N>-1)for(let i=N+M,j=M<0?-1:D._tree.children.length;i!=j;i+=M){let M=D._tree.children[i];if(this.mode&$T.IncludeAnonymous||M instanceof KT||!M.type.isAnonymous||TA(M))return!1}return!0}move(M,N){if(N&&this.enterChild(M,0,4))return!0;for(;;){if(this.sibling(M))return!0;if(this.atLastNode(M)||!this.parent())return!1}}next(M=!0){return this.move(1,M)}prev(M=!0){return this.move(-1,M)}moveTo(M,N=0){for(;(this.from==this.to||(N<1?this.from>=M:this.from>M)||(N>-1?this.to<=M:this.to<M))&&this.parent(););for(;this.enterChild(1,M,N););return this}get node(){if(!this.buffer)return this._tree;let M=this.bufferNode,N=null,D=0;if(M&&M.context==this.buffer)M:for(let i=this.index,j=this.stack.length;j>=0;){for(let t=M;t;t=t._parent)if(t.index==i){if(i==this.index)return t;N=t,D=j+1;break M}i=this.stack[--j]}for(let M=D;M<this.stack.length;M++)N=new zA(this.buffer,N,this.stack[M]);return this.bufferNode=new zA(this.buffer,N,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(M,N){for(let D=0;;){let i=!1;if(this.type.isAnonymous||!1!==M(this)){if(this.firstChild()){D++;continue}this.type.isAnonymous||(i=!0)}for(;i&&N&&N(this),i=this.type.isAnonymous,!this.nextSibling();){if(!D)return;this.parent(),D--,i=!0}}}matchContext(M){if(!this.buffer)return tA(this.node,M);let{buffer:N}=this.buffer,{types:D}=N.set;for(let i=M.length-1,j=this.stack.length-1;i>=0;j--){if(j<0)return tA(this.node,M,i);let t=D[N.buffer[this.stack[j]]];if(!t.isAnonymous){if(M[i]&&M[i]!=t.name)return!1;i--}}return!0}}function TA(M){return M.children.some((M=>M instanceof KT||!M.type.isAnonymous||TA(M)))}const AA=new WeakMap;function sA(M,N){if(!M.isAnonymous||N instanceof KT||N.type!=M)return 1;let D=AA.get(N);if(null==D){D=1;for(let i of N.children){if(i.type!=M||!(i instanceof _T)){D=1;break}D+=sA(M,i)}AA.set(N,D)}return D}function LA(M,N,D,i,j,t,I,z,u){let g=0;for(let D=i;D<j;D++)g+=sA(M,N[D]);let e=Math.ceil(1.5*g/8),T=[],A=[];return function N(D,i,j,I,z){for(let g=j;g<I;){let j=g,s=i[g],L=sA(M,D[g]);for(g++;g<I;g++){let N=sA(M,D[g]);if(L+N>=e)break;L+=N}if(g==j+1){if(L>e){let M=D[j];N(M.children,M.positions,0,M.children.length,i[j]+z);continue}T.push(D[j])}else{let N=i[g-1]+D[g-1].length-s;T.push(LA(M,D,i,j,g,s,N,null,u))}A.push(s+z-t)}}(N,D,i,j,0),(z||u)(T,A,I)}class OA{constructor(){this.map=new WeakMap}setBuffer(M,N,D){let i=this.map.get(M);i||this.map.set(M,i=new Map),i.set(N,D)}getBuffer(M,N){let D=this.map.get(M);return D&&D.get(N)}set(M,N){M instanceof zA?this.setBuffer(M.context.buffer,M.index,N):M instanceof iA&&this.map.set(M.tree,N)}get(M){return M instanceof zA?this.getBuffer(M.context.buffer,M.index):M instanceof iA?this.map.get(M.tree):void 0}cursorSet(M,N){M.buffer?this.setBuffer(M.buffer.buffer,M.index,N):this.map.set(M.tree,N)}cursorGet(M){return M.buffer?this.getBuffer(M.buffer.buffer,M.index):this.map.get(M.tree)}}class yA{constructor(M,N,D,i,j=!1,t=!1){this.from=M,this.to=N,this.tree=D,this.offset=i,this.open=(j?1:0)|(t?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(M,N=[],D=!1){let i=[new yA(0,M.length,M,0,!1,D)];for(let D of N)D.to>M.length&&i.push(D);return i}static applyChanges(M,N,D=128){if(!N.length)return M;let i=[],j=1,t=M.length?M[0]:null;for(let I=0,z=0,u=0;;I++){let g=I<N.length?N[I]:null,e=g?g.fromA:1e9;if(e-z>=D)for(;t&&t.from<e;){let N=t;if(z>=N.from||e<=N.to||u){let M=Math.max(N.from,z)-u,D=Math.min(N.to,e)-u;N=M>=D?null:new yA(M,D,N.tree,N.offset+u,I>0,!!g)}if(N&&i.push(N),t.to>e)break;t=j<M.length?M[j++]:null}if(!g)break;z=g.toA,u=g.toA-g.toB}return i}}class cA{startParse(M,N,D){return"string"==typeof M&&(M=new nA(M)),D=D?D.length?D.map((M=>new GT(M.from,M.to))):[new GT(0,0)]:[new GT(0,M.length)],this.createParse(M,N||[],D)}parse(M,N,D){let i=this.startParse(M,N,D);for(;;){let M=i.advance();if(M)return M}}}class nA{constructor(M){this.string=M}get length(){return this.string.length}chunk(M){return this.string.slice(M)}get lineChunks(){return!1}read(M,N){return this.string.slice(M,N)}}new PT({perNode:!0});let lA=0;class oA{constructor(M,N,D){this.set=M,this.base=N,this.modified=D,this.id=lA++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let N=new oA([],null,[]);if(N.set.push(N),M)for(let D of M.set)N.set.push(D);return N}static defineModifier(){let M=new xA;return N=>N.modified.indexOf(M)>-1?N:xA.get(N.base||N,N.modified.concat(M).sort(((M,N)=>M.id-N.id)))}}let rA=0;class xA{constructor(){this.instances=[],this.id=rA++}static get(M,N){if(!N.length)return M;let D=N[0].instances.find((D=>D.base==M&&function(M,N){return M.length==N.length&&M.every(((M,D)=>M==N[D]))}(N,D.modified)));if(D)return D;let i=[],j=new oA(i,M,N);for(let M of N)M.instances.push(j);let t=function(M){let N=[[]];for(let D=0;D<M.length;D++)for(let i=0,j=N.length;i<j;i++)N.push(N[i].concat(M[D]));return N.sort(((M,N)=>N.length-M.length))}(N);for(let N of M.set)if(!N.modified.length)for(let M of t)i.push(xA.get(N,M));return j}}function aA(M){let N=Object.create(null);for(let D in M){let i=M[D];Array.isArray(i)||(i=[i]);for(let M of D.split(" "))if(M){let D=[],j=2,t=M;for(let N=0;;){if("..."==t&&N>0&&N+3==M.length){j=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(t);if(!i)throw new RangeError("Invalid path: "+M);if(D.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),N+=i[0].length,N==M.length)break;let I=M[N++];if(N==M.length&&"!"==I){j=0;break}if("/"!=I)throw new RangeError("Invalid path: "+M);t=M.slice(N)}let I=D.length-1,z=D[I];if(!z)throw new RangeError("Invalid path: "+M);let u=new EA(i,j,I>0?D.slice(0,I):null);N[z]=u.sort(N[z])}}return QA.add(N)}const QA=new PT;class EA{constructor(M,N,D,i){this.tags=M,this.mode=N,this.context=D,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(M){return!M||M.depth<this.depth?(this.next=M,this):(M.next=this.sort(M.next),M)}get depth(){return this.context?this.context.length:0}}function SA(M,N){let D=Object.create(null);for(let N of M)if(Array.isArray(N.tag))for(let M of N.tag)D[M.id]=N.class;else D[N.tag.id]=N.class;let{scope:i,all:j=null}=N||{};return{style:M=>{let N=j;for(let i of M)for(let M of i.set){let i=D[M.id];if(i){N=N?N+" "+i:i;break}}return N},scope:i}}function hA(M,N,D,i=0,j=M.length){let t=new dA(i,Array.isArray(N)?N:[N],D);t.highlightRange(M.cursor(),i,j,"",t.highlighters),t.flush(j)}EA.empty=new EA([],2,null);class dA{constructor(M,N,D){this.at=M,this.highlighters=N,this.span=D,this.class=""}startSpan(M,N){N!=this.class&&(this.flush(M),M>this.at&&(this.at=M),this.class=N)}flush(M){M>this.at&&this.class&&this.span(this.at,M,this.class)}highlightRange(M,N,D,i,j){let{type:t,from:I,to:z}=M;if(I>=D||z<=N)return;t.isTop&&(j=this.highlighters.filter((M=>!M.scope||M.scope(t))));let u=i,g=function(M){let N=M.type.prop(QA);for(;N&&N.context&&!M.matchContext(N.context);)N=N.next;return N||null}(M)||EA.empty,e=function(M,N){let D=null;for(let i of M){let M=i.style(N);M&&(D=D?D+" "+M:M)}return D}(j,g.tags);if(e&&(u&&(u+=" "),u+=e,1==g.mode&&(i+=(i?" ":"")+e)),this.startSpan(Math.max(N,I),u),g.opaque)return;let T=M.tree&&M.tree.prop(PT.mounted);if(T&&T.overlay){let t=M.node.enter(T.overlay[0].from+I,1),g=this.highlighters.filter((M=>!M.scope||M.scope(T.tree.type))),e=M.firstChild();for(let A=0,s=I;;A++){let L=A<T.overlay.length?T.overlay[A]:null,O=L?L.from+I:z,y=Math.max(N,s),c=Math.min(D,O);if(y<c&&e)for(;M.from<c&&(this.highlightRange(M,y,c,i,j),this.startSpan(Math.min(c,M.to),u),!(M.to>=O)&&M.nextSibling()););if(!L||O>D)break;s=L.to+I,s>N&&(this.highlightRange(t.cursor(),Math.max(N,L.from+I),Math.min(D,s),"",g),this.startSpan(Math.min(D,s),u))}e&&M.parent()}else if(M.firstChild()){T&&(i="");do{if(!(M.to<=N)){if(M.from>=D)break;this.highlightRange(M,N,D,i,j),this.startSpan(Math.min(D,M.to),u)}}while(M.nextSibling());M.parent()}}}const kA=oA.define,wA=kA(),UA=kA(),YA=kA(UA),CA=kA(UA),bA=kA(),pA=kA(bA),mA=kA(bA),ZA=kA(),fA=kA(ZA),vA=kA(),WA=kA(),VA=kA(),GA=kA(VA),PA=kA(),RA={comment:wA,lineComment:kA(wA),blockComment:kA(wA),docComment:kA(wA),name:UA,variableName:kA(UA),typeName:YA,tagName:kA(YA),propertyName:CA,attributeName:kA(CA),className:kA(UA),labelName:kA(UA),namespace:kA(UA),macroName:kA(UA),literal:bA,string:pA,docString:kA(pA),character:kA(pA),attributeValue:kA(pA),number:mA,integer:kA(mA),float:kA(mA),bool:kA(bA),regexp:kA(bA),escape:kA(bA),color:kA(bA),url:kA(bA),keyword:vA,self:kA(vA),null:kA(vA),atom:kA(vA),unit:kA(vA),modifier:kA(vA),operatorKeyword:kA(vA),controlKeyword:kA(vA),definitionKeyword:kA(vA),moduleKeyword:kA(vA),operator:WA,derefOperator:kA(WA),arithmeticOperator:kA(WA),logicOperator:kA(WA),bitwiseOperator:kA(WA),compareOperator:kA(WA),updateOperator:kA(WA),definitionOperator:kA(WA),typeOperator:kA(WA),controlOperator:kA(WA),punctuation:VA,separator:kA(VA),bracket:GA,angleBracket:kA(GA),squareBracket:kA(GA),paren:kA(GA),brace:kA(GA),content:ZA,heading:fA,heading1:kA(fA),heading2:kA(fA),heading3:kA(fA),heading4:kA(fA),heading5:kA(fA),heading6:kA(fA),contentSeparator:kA(ZA),list:kA(ZA),quote:kA(ZA),emphasis:kA(ZA),strong:kA(ZA),link:kA(ZA),monospace:kA(ZA),strikethrough:kA(ZA),inserted:kA(),deleted:kA(),changed:kA(),invalid:kA(),meta:PA,documentMeta:kA(PA),annotation:kA(PA),processingInstruction:kA(PA),definition:oA.defineModifier(),constant:oA.defineModifier(),function:oA.defineModifier(),standard:oA.defineModifier(),local:oA.defineModifier(),special:oA.defineModifier()};var BA;SA([{tag:RA.link,class:"tok-link"},{tag:RA.heading,class:"tok-heading"},{tag:RA.emphasis,class:"tok-emphasis"},{tag:RA.strong,class:"tok-strong"},{tag:RA.keyword,class:"tok-keyword"},{tag:RA.atom,class:"tok-atom"},{tag:RA.bool,class:"tok-bool"},{tag:RA.url,class:"tok-url"},{tag:RA.labelName,class:"tok-labelName"},{tag:RA.inserted,class:"tok-inserted"},{tag:RA.deleted,class:"tok-deleted"},{tag:RA.literal,class:"tok-literal"},{tag:RA.string,class:"tok-string"},{tag:RA.number,class:"tok-number"},{tag:[RA.regexp,RA.escape,RA.special(RA.string)],class:"tok-string2"},{tag:RA.variableName,class:"tok-variableName"},{tag:RA.local(RA.variableName),class:"tok-variableName tok-local"},{tag:RA.definition(RA.variableName),class:"tok-variableName tok-definition"},{tag:RA.special(RA.variableName),class:"tok-variableName2"},{tag:RA.definition(RA.propertyName),class:"tok-propertyName tok-definition"},{tag:RA.typeName,class:"tok-typeName"},{tag:RA.namespace,class:"tok-namespace"},{tag:RA.className,class:"tok-className"},{tag:RA.macroName,class:"tok-macroName"},{tag:RA.propertyName,class:"tok-propertyName"},{tag:RA.operator,class:"tok-operator"},{tag:RA.comment,class:"tok-comment"},{tag:RA.meta,class:"tok-meta"},{tag:RA.invalid,class:"tok-invalid"},{tag:RA.punctuation,class:"tok-punctuation"}]);const JA=new PT;function FA(M){return Jj.define({combine:M?N=>N.concat(M):void 0})}const HA=new PT;class XA{constructor(M,N,D=[],i=""){this.data=M,this.name=i,bt.prototype.hasOwnProperty("tree")||Object.defineProperty(bt.prototype,"tree",{get(){return qA(this)}}),this.parser=N,this.extension=[zs.of(this),bt.languageData.of(((M,N,D)=>{let i=$A(M,N,D),j=i.type.prop(JA);if(!j)return[];let t=M.facet(j),I=i.type.prop(HA);if(I){let j=i.resolve(N-i.from,D);for(let N of I)if(N.test(j,M)){let D=M.facet(N.facet);return"replace"==N.type?D:D.concat(t)}}return t}))].concat(D)}isActiveAt(M,N,D=-1){return $A(M,N,D).type.prop(JA)==this.data}findRegions(M){let N=M.facet(zs);if((null==N?void 0:N.data)==this.data)return[{from:0,to:M.doc.length}];if(!N||!N.allowsNesting)return[];let D=[],i=(M,N)=>{if(M.prop(JA)==this.data)return void D.push({from:N,to:N+M.length});let j=M.prop(PT.mounted);if(j){if(j.tree.prop(JA)==this.data){if(j.overlay)for(let M of j.overlay)D.push({from:M.from+N,to:M.to+N});else D.push({from:N,to:N+M.length});return}if(j.overlay){let M=D.length;if(i(j.tree,j.overlay[0].from+N),D.length>M)return}}for(let D=0;D<M.children.length;D++){let j=M.children[D];j instanceof _T&&i(j,M.positions[D]+N)}};return i(qA(M),0),D}get allowsNesting(){return!0}}function $A(M,N,D){let i=M.facet(zs),j=qA(M).topNode;if(!i||i.allowsNesting)for(let M=j;M;M=M.enter(N,D,$T.ExcludeBuffers))M.type.isTop&&(j=M);return j}XA.setState=xt.define();class _A extends XA{constructor(M,N,D){super(M,N,[],D),this.parser=N}static define(M){let N=FA(M.languageData);return new _A(N,M.parser.configure({props:[JA.add((M=>M.isTop?N:void 0))]}),M.name)}configure(M,N){return new _A(this.data,this.parser.configure(M),N||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function qA(M){let N=M.field(XA.state,!1);return N?N.tree:_T.empty}class KA{constructor(M){this.doc=M,this.cursorPos=0,this.string="",this.cursor=M.iter()}get length(){return this.doc.length}syncTo(M){return this.string=this.cursor.next(M-this.cursorPos).value,this.cursorPos=M+this.string.length,this.cursorPos-this.string.length}chunk(M){return this.syncTo(M),this.string}get lineChunks(){return!0}read(M,N){let D=this.cursorPos-this.string.length;return M<D||N>=this.cursorPos?this.doc.sliceString(M,N):this.string.slice(M-D,N-D)}}let Ms=null;class Ns{constructor(M,N,D=[],i,j,t,I,z){this.parser=M,this.state=N,this.fragments=D,this.tree=i,this.treeLen=j,this.viewport=t,this.skipped=I,this.scheduleOn=z,this.parse=null,this.tempSkipped=[]}static create(M,N,D){return new Ns(M,N,[],_T.empty,0,D,[],null)}startParse(){return this.parser.startParse(new KA(this.state.doc),this.fragments)}work(M,N){return null!=N&&N>=this.state.doc.length&&(N=void 0),this.tree!=_T.empty&&this.isDone(null!=N?N:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var D;if("number"==typeof M){let N=Date.now()+M;M=()=>Date.now()>N}for(this.parse||(this.parse=this.startParse()),null!=N&&(null==this.parse.stoppedAt||this.parse.stoppedAt>N)&&N<this.state.doc.length&&this.parse.stopAt(N);;){let i=this.parse.advance();if(i){if(this.fragments=this.withoutTempSkipped(yA.addTree(i,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(D=this.parse.stoppedAt)&&void 0!==D?D:this.state.doc.length,this.tree=i,this.parse=null,!(this.treeLen<(null!=N?N:this.state.doc.length)))return!0;this.parse=this.startParse()}if(M())return!1}}))}takeTree(){let M,N;this.parse&&(M=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>M)&&this.parse.stopAt(M),this.withContext((()=>{for(;!(N=this.parse.advance()););})),this.treeLen=M,this.tree=N,this.fragments=this.withoutTempSkipped(yA.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let N=Ms;Ms=this;try{return M()}finally{Ms=N}}withoutTempSkipped(M){for(let N;N=this.tempSkipped.pop();)M=Ds(M,N.from,N.to);return M}changes(M,N){let{fragments:D,tree:i,treeLen:j,viewport:t,skipped:I}=this;if(this.takeTree(),!M.empty){let N=[];if(M.iterChangedRanges(((M,D,i,j)=>N.push({fromA:M,toA:D,fromB:i,toB:j}))),D=yA.applyChanges(D,N),i=_T.empty,j=0,t={from:M.mapPos(t.from,-1),to:M.mapPos(t.to,1)},this.skipped.length){I=[];for(let N of this.skipped){let D=M.mapPos(N.from,1),i=M.mapPos(N.to,-1);D<i&&I.push({from:D,to:i})}}}return new Ns(this.parser,N,D,i,j,t,I,this.scheduleOn)}updateViewport(M){if(this.viewport.from==M.from&&this.viewport.to==M.to)return!1;this.viewport=M;let N=this.skipped.length;for(let N=0;N<this.skipped.length;N++){let{from:D,to:i}=this.skipped[N];D<M.to&&i>M.from&&(this.fragments=Ds(this.fragments,D,i),this.skipped.splice(N--,1))}return!(this.skipped.length>=N)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(M,N){this.skipped.push({from:M,to:N})}static getSkippingParser(M){return new class extends cA{createParse(N,D,i){let j=i[0].from,t=i[i.length-1].to,I={parsedPos:j,advance(){let N=Ms;if(N){for(let M of i)N.tempSkipped.push(M);M&&(N.scheduleOn=N.scheduleOn?Promise.all([N.scheduleOn,M]):M)}return this.parsedPos=t,new _T(JT.none,[],[],t-j)},stoppedAt:null,stopAt(){}};return I}}}isDone(M){M=Math.min(M,this.state.doc.length);let N=this.fragments;return this.treeLen>=M&&N.length&&0==N[0].from&&N[0].to>=M}static get(){return Ms}}function Ds(M,N,D){return yA.applyChanges(M,[{fromA:N,toA:D,fromB:N,toB:D}])}class is{constructor(M){this.context=M,this.tree=M.tree}apply(M){if(!M.docChanged&&this.tree==this.context.tree)return this;let N=this.context.changes(M.changes,M.state),D=this.context.treeLen==M.startState.doc.length?void 0:Math.max(M.changes.mapPos(this.context.treeLen),N.viewport.to);return N.work(20,D)||N.takeTree(),new is(N)}static init(M){let N=Math.min(3e3,M.doc.length),D=Ns.create(M.facet(zs).parser,M,{from:0,to:N});return D.work(20,N)||D.takeTree(),new is(D)}}XA.state=Kj.define({create:is.init,update(M,N){for(let M of N.effects)if(M.is(XA.setState))return M.value;return N.startState.facet(zs)!=N.state.facet(zs)?is.init(N.state):M.apply(N)}});let js=M=>{let N=setTimeout((()=>M()),500);return()=>clearTimeout(N)};"undefined"!=typeof requestIdleCallback&&(js=M=>{let N=-1,D=setTimeout((()=>{N=requestIdleCallback(M,{timeout:400})}),100);return()=>N<0?clearTimeout(D):cancelIdleCallback(N)});const ts="undefined"!=typeof navigator&&(null===(BA=navigator.scheduling)||void 0===BA?void 0:BA.isInputPending)?()=>navigator.scheduling.isInputPending():null,Is=tu.fromClass(class{constructor(M){this.view=M,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(M){let N=this.view.state.field(XA.state).context;(N.updateViewport(M.view.viewport)||this.view.viewport.to>N.treeLen)&&this.scheduleWork(),(M.docChanged||M.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(N)}scheduleWork(){if(this.working)return;let{state:M}=this.view,N=M.field(XA.state);N.tree==N.context.tree&&N.context.isDone(M.doc.length)||(this.working=js(this.work))}work(M){this.working=null;let N=Date.now();if(this.chunkEnd<N&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=N+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:D,viewport:{to:i}}=this.view,j=D.field(XA.state);if(j.tree==j.context.tree&&j.context.isDone(i+1e5))return;let t=Date.now()+Math.min(this.chunkBudget,100,M&&!ts?Math.max(25,M.timeRemaining()-5):1e9),I=j.context.treeLen<i&&D.doc.length>i+1e3,z=j.context.work((()=>ts&&ts()||Date.now()>t),i+(I?0:1e5));this.chunkBudget-=Date.now()-N,(z||this.chunkBudget<=0)&&(j.context.takeTree(),this.view.dispatch({effects:XA.setState.of(new is(j.context))})),this.chunkBudget>0&&(!z||I)&&this.scheduleWork(),this.checkAsyncSchedule(j.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>Nu(this.view.state,M))).then((()=>this.workScheduled--)),M.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),zs=Jj.define({combine:M=>M.length?M[0]:null,enables:M=>[XA.state,Is,Ne.contentAttributes.compute([M],(N=>{let D=N.facet(M);return D&&D.name?{"data-language":D.name}:{}}))]});class us{constructor(M,N=[]){this.language=M,this.support=N,this.extension=[M,N]}}const gs=Jj.define(),es=Jj.define({combine:M=>{if(!M.length)return" ";let N=M[0];if(!N||/\S/.test(N)||Array.from(N).some((M=>M!=N[0])))throw new Error("Invalid indent unit: "+JSON.stringify(M[0]));return N}});function Ts(M){let N=M.facet(es);return 9==N.charCodeAt(0)?M.tabSize*N.length:N.length}function As(M,N){let D="",i=M.tabSize,j=M.facet(es)[0];if("\t"==j){for(;N>=i;)D+="\t",N-=i;j=" "}for(let M=0;M<N;M++)D+=j;return D}function ss(M,N){M instanceof bt&&(M=new Ls(M));for(let D of M.state.facet(gs)){let i=D(M,N);if(void 0!==i)return i}let D=qA(M.state);return D.length>=N?function(M,N,D){let i=N.resolveStack(D),j=i.node.enterUnfinishedNodesBefore(D);if(j!=i.node){let M=[];for(let N=j;N!=i.node;N=N.parent)M.push(N);for(let N=M.length-1;N>=0;N--)i={node:M[N],next:i}}return ys(i,M,D)}(M,D,N):null}class Ls{constructor(M,N={}){this.state=M,this.options=N,this.unit=Ts(M)}lineAt(M,N=1){let D=this.state.doc.lineAt(M),{simulateBreak:i,simulateDoubleBreak:j}=this.options;return null!=i&&i>=D.from&&i<=D.to?j&&i==M?{text:"",from:M}:(N<0?i<M:i<=M)?{text:D.text.slice(i-D.from),from:i}:{text:D.text.slice(0,i-D.from),from:D.from}:D}textAfterPos(M,N=1){if(this.options.simulateDoubleBreak&&M==this.options.simulateBreak)return"";let{text:D,from:i}=this.lineAt(M,N);return D.slice(M-i,Math.min(D.length,M+100-i))}column(M,N=1){let{text:D,from:i}=this.lineAt(M,N),j=this.countColumn(D,M-i),t=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return t>-1&&(j+=t-this.countColumn(D,D.search(/\S|$/))),j}countColumn(M,N=M.length){return qt(M,this.state.tabSize,N)}lineIndent(M,N=1){let{text:D,from:i}=this.lineAt(M,N),j=this.options.overrideIndentation;if(j){let M=j(i);if(M>-1)return M}return this.countColumn(D,D.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Os=new PT;function ys(M,N,D){for(let i=M;i;i=i.next){let M=cs(i.node);if(M)return M(ls.create(N,D,i))}return 0}function cs(M){let N=M.type.prop(Os);if(N)return N;let D,i=M.firstChild;if(i&&(D=i.type.prop(PT.closedBy))){let N=M.lastChild,i=N&&D.indexOf(N.name)>-1;return M=>xs(M,!0,1,void 0,i&&!function(M){return M.pos==M.options.simulateBreak&&M.options.simulateDoubleBreak}(M)?N.from:void 0)}return null==M.parent?ns:null}function ns(){return 0}class ls extends Ls{constructor(M,N,D){super(M.state,M.options),this.base=M,this.pos=N,this.context=D}get node(){return this.context.node}static create(M,N,D){return new ls(M,N,D)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(M){let N=this.state.doc.lineAt(M.from);for(;;){let D=M.resolve(N.from);for(;D.parent&&D.parent.from==D.from;)D=D.parent;if(os(D,M))break;N=this.state.doc.lineAt(D.from)}return this.lineIndent(N.from)}continue(){return ys(this.context.next,this.base,this.pos)}}function os(M,N){for(let D=N;D;D=D.parent)if(M==D)return!0;return!1}function rs({closing:M,align:N=!0,units:D=1}){return i=>xs(i,N,D,M)}function xs(M,N,D,i,j){let t=M.textAfter,I=t.match(/^\s*/)[0].length,z=i&&t.slice(I,I+i.length)==i||j==M.pos+I,u=N?function(M){let N=M.node,D=N.childAfter(N.from),i=N.lastChild;if(!D)return null;let j=M.options.simulateBreak,t=M.state.doc.lineAt(D.from),I=null==j||j<=t.from?t.to:Math.min(t.to,j);for(let M=D.to;;){let j=N.childAfter(M);if(!j||j==i)return null;if(!j.type.isSkipped)return j.from<I?D:null;M=j.to}}(M):null;return u?z?M.column(u.from):M.column(u.to):M.baseIndent+(z?0:M.unit*D)}function as({except:M,units:N=1}={}){return D=>{let i=M&&M.test(D.textAfter);return D.baseIndent+(i?0:N*D.unit)}}const Qs=Jj.define(),Es=new PT;function Ss(M){let N=M.lastChild;return N&&N.to==M.to&&N.type.isError}function hs(M,N,D){for(let i of M.facet(Qs)){let j=i(M,N,D);if(j)return j}return function(M,N,D){let i=qA(M);if(i.length<D)return null;let j=null;for(let t=i.resolveStack(D,1);t;t=t.next){let I=t.node;if(I.to<=D||I.from>D)continue;if(j&&I.from<N)break;let z=I.type.prop(Es);if(z&&(I.to<i.length-50||i.length==M.doc.length||!Ss(I))){let i=z(I,M);i&&i.from<=D&&i.from>=N&&i.to>D&&(j=i)}}return j}(M,N,D)}function ds(M,N){let D=N.mapPos(M.from,1),i=N.mapPos(M.to,-1);return D>=i?void 0:{from:D,to:i}}const ks=xt.define({map:ds}),ws=xt.define({map:ds});function Us(M){let N=[];for(let{head:D}of M.state.selection.ranges)N.some((M=>M.from<=D&&M.to>=D))||N.push(M.lineBlockAt(D));return N}const Ys=Kj.define({create:()=>Oz.none,update(M,N){M=M.map(N.changes);for(let D of N.effects)if(D.is(ks)&&!bs(M,D.value.from,D.value.to)){let{preparePlaceholder:i}=N.state.facet(vs),j=i?Oz.replace({widget:new Ps(i(N.state,D.value))}):Gs;M=M.update({add:[j.range(D.value.from,D.value.to)]})}else D.is(ws)&&(M=M.update({filter:(M,N)=>D.value.from!=M||D.value.to!=N,filterFrom:D.value.from,filterTo:D.value.to}));if(N.selection){let D=!1,{head:i}=N.selection.main;M.between(i,i,((M,N)=>{M<i&&N>i&&(D=!0)})),D&&(M=M.update({filterFrom:i,filterTo:i,filter:(M,N)=>N<=i||M>=i}))}return M},provide:M=>Ne.decorations.from(M),toJSON(M,N){let D=[];return M.between(0,N.doc.length,((M,N)=>{D.push(M,N)})),D},fromJSON(M){if(!Array.isArray(M)||M.length%2)throw new RangeError("Invalid JSON for fold state");let N=[];for(let D=0;D<M.length;){let i=M[D++],j=M[D++];if("number"!=typeof i||"number"!=typeof j)throw new RangeError("Invalid JSON for fold state");N.push(Gs.range(i,j))}return Oz.set(N,!0)}});function Cs(M,N,D){var i;let j=null;return null===(i=M.field(Ys,!1))||void 0===i||i.between(N,D,((M,N)=>{(!j||j.from>M)&&(j={from:M,to:N})})),j}function bs(M,N,D){let i=!1;return M.between(N,N,((M,j)=>{M==N&&j==D&&(i=!0)})),i}function ps(M,N){return M.field(Ys,!1)?N:N.concat(xt.appendConfig.of(Ws()))}function ms(M,N,D=!0){let i=M.state.doc.lineAt(N.from).number,j=M.state.doc.lineAt(N.to).number;return Ne.announce.of(`${M.state.phrase(D?"Folded lines":"Unfolded lines")} ${i} ${M.state.phrase("to")} ${j}.`)}const Zs=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let N of Us(M)){let D=hs(M.state,N.from,N.to);if(D)return M.dispatch({effects:ps(M.state,[ks.of(D),ms(M,D)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(Ys,!1))return!1;let N=[];for(let D of Us(M)){let i=Cs(M.state,D.from,D.to);i&&N.push(ws.of(i),ms(M,i,!1))}return N.length&&M.dispatch({effects:N}),N.length>0}},{key:"Ctrl-Alt-[",run:M=>{let{state:N}=M,D=[];for(let i=0;i<N.doc.length;){let j=M.lineBlockAt(i),t=hs(N,j.from,j.to);t&&D.push(ks.of(t)),i=(t?M.lineBlockAt(t.to):j).to+1}return D.length&&M.dispatch({effects:ps(M.state,D)}),!!D.length}},{key:"Ctrl-Alt-]",run:M=>{let N=M.state.field(Ys,!1);if(!N||!N.size)return!1;let D=[];return N.between(0,M.state.doc.length,((M,N)=>{D.push(ws.of({from:M,to:N}))})),M.dispatch({effects:D}),!0}}],fs={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},vs=Jj.define({combine:M=>pt(M,fs)});function Ws(M){let N=[Ys,Js];return M&&N.push(vs.of(M)),N}function Vs(M,N){let{state:D}=M,i=D.facet(vs),j=N=>{let D=M.lineBlockAt(M.posAtDOM(N.target)),i=Cs(M.state,D.from,D.to);i&&M.dispatch({effects:ws.of(i)}),N.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(M,j,N);let t=document.createElement("span");return t.textContent=i.placeholderText,t.setAttribute("aria-label",D.phrase("folded code")),t.title=D.phrase("unfold"),t.className="cm-foldPlaceholder",t.onclick=j,t}const Gs=Oz.replace({widget:new class extends sz{toDOM(M){return Vs(M,null)}}});class Ps extends sz{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Vs(M,this.value)}}const Rs={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Bs extends nT{constructor(M,N){super(),this.config=M,this.open=N}eq(M){return this.config==M.config&&this.open==M.open}toDOM(M){if(this.config.markerDOM)return this.config.markerDOM(this.open);let N=document.createElement("span");return N.textContent=this.open?this.config.openText:this.config.closedText,N.title=M.state.phrase(this.open?"Fold line":"Unfold line"),N}}const Js=Ne.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 Fs{constructor(M,N){let D;function i(M){let N=iI.newName();return(D||(D=Object.create(null)))["."+N]=M,N}this.specs=M;const j="string"==typeof N.all?N.all:N.all?i(N.all):void 0,t=N.scope;this.scope=t instanceof XA?M=>M.prop(JA)==t.data:t?M=>M==t:void 0,this.style=SA(M.map((M=>({tag:M.tag,class:M.class||i(Object.assign({},M,{tag:null}))}))),{all:j}).style,this.module=D?new iI(D):null,this.themeType=N.themeType}static define(M,N){return new Fs(M,N||{})}}const Hs=Jj.define(),Xs=Jj.define({combine:M=>M.length?[M[0]]:null});function $s(M){let N=M.facet(Hs);return N.length?N:M.facet(Xs)}class _s{constructor(M){this.markCache=Object.create(null),this.tree=qA(M.state),this.decorations=this.buildDeco(M,$s(M.state)),this.decoratedTo=M.viewport.to}update(M){let N=qA(M.state),D=$s(M.state),i=D!=$s(M.startState),{viewport:j}=M.view,t=M.changes.mapPos(this.decoratedTo,1);N.length<j.to&&!i&&N.type==this.tree.type&&t>=j.to?(this.decorations=this.decorations.map(M.changes),this.decoratedTo=t):(N!=this.tree||M.viewportChanged||i)&&(this.tree=N,this.decorations=this.buildDeco(M.view,D),this.decoratedTo=j.to)}buildDeco(M,N){if(!N||!this.tree.length)return Oz.none;let D=new Vt;for(let{from:i,to:j}of M.visibleRanges)hA(this.tree,N,((M,N,i)=>{D.add(M,N,this.markCache[i]||(this.markCache[i]=Oz.mark({class:i})))}),i,j);return D.finish()}}const qs=tt.high(tu.fromClass(_s,{decorations:M=>M.decorations})),Ks=Fs.define([{tag:RA.meta,color:"#404740"},{tag:RA.link,textDecoration:"underline"},{tag:RA.heading,textDecoration:"underline",fontWeight:"bold"},{tag:RA.emphasis,fontStyle:"italic"},{tag:RA.strong,fontWeight:"bold"},{tag:RA.strikethrough,textDecoration:"line-through"},{tag:RA.keyword,color:"#708"},{tag:[RA.atom,RA.bool,RA.url,RA.contentSeparator,RA.labelName],color:"#219"},{tag:[RA.literal,RA.inserted],color:"#164"},{tag:[RA.string,RA.deleted],color:"#a11"},{tag:[RA.regexp,RA.escape,RA.special(RA.string)],color:"#e40"},{tag:RA.definition(RA.variableName),color:"#00f"},{tag:RA.local(RA.variableName),color:"#30a"},{tag:[RA.typeName,RA.namespace],color:"#085"},{tag:RA.className,color:"#167"},{tag:[RA.special(RA.variableName),RA.macroName],color:"#256"},{tag:RA.definition(RA.propertyName),color:"#00c"},{tag:RA.comment,color:"#940"},{tag:RA.invalid,color:"#f00"}]),ML=Ne.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),NL=1e4,DL="()[]{}",iL=Jj.define({combine:M=>pt(M,{afterCursor:!0,brackets:DL,maxScanDistance:NL,renderMatch:IL})}),jL=Oz.mark({class:"cm-matchingBracket"}),tL=Oz.mark({class:"cm-nonmatchingBracket"});function IL(M){let N=[],D=M.matched?jL:tL;return N.push(D.range(M.start.from,M.start.to)),M.end&&N.push(D.range(M.end.from,M.end.to)),N}const zL=Kj.define({create:()=>Oz.none,update(M,N){if(!N.docChanged&&!N.selection)return M;let D=[],i=N.state.facet(iL);for(let M of N.state.selection.ranges){if(!M.empty)continue;let j=AL(N.state,M.head,-1,i)||M.head>0&&AL(N.state,M.head-1,1,i)||i.afterCursor&&(AL(N.state,M.head,1,i)||M.head<N.state.doc.length&&AL(N.state,M.head+1,-1,i));j&&(D=D.concat(i.renderMatch(j,N.state)))}return Oz.set(D,!0)},provide:M=>Ne.decorations.from(M)}),uL=[zL,ML];const gL=new PT;function eL(M,N,D){let i=M.prop(N<0?PT.openedBy:PT.closedBy);if(i)return i;if(1==M.name.length){let i=D.indexOf(M.name);if(i>-1&&i%2==(N<0?1:0))return[D[i+N]]}return null}function TL(M){let N=M.type.prop(gL);return N?N(M.node):M}function AL(M,N,D,i={}){let j=i.maxScanDistance||NL,t=i.brackets||DL,I=qA(M),z=I.resolveInner(N,D);for(let i=z;i;i=i.parent){let j=eL(i.type,D,t);if(j&&i.from<i.to){let I=TL(i);if(I&&(D>0?N>=I.from&&N<I.to:N>I.from&&N<=I.to))return sL(M,N,D,i,I,j,t)}}return function(M,N,D,i,j,t,I){let z=D<0?M.sliceDoc(N-1,N):M.sliceDoc(N,N+1),u=I.indexOf(z);if(u<0||u%2==0!=D>0)return null;let g={from:D<0?N-1:N,to:D>0?N+1:N},e=M.doc.iterRange(N,D>0?M.doc.length:0),T=0;for(let M=0;!e.next().done&&M<=t;){let t=e.value;D<0&&(M+=t.length);let z=N+M*D;for(let M=D>0?0:t.length-1,N=D>0?t.length:-1;M!=N;M+=D){let N=I.indexOf(t[M]);if(!(N<0||i.resolveInner(z+M,1).type!=j))if(N%2==0==D>0)T++;else{if(1==T)return{start:g,end:{from:z+M,to:z+M+1},matched:N>>1==u>>1};T--}}D>0&&(M+=t.length)}return e.done?{start:g,matched:!1}:null}(M,N,D,I,z.type,j,t)}function sL(M,N,D,i,j,t,I){let z=i.parent,u={from:j.from,to:j.to},g=0,e=null==z?void 0:z.cursor();if(e&&(D<0?e.childBefore(i.from):e.childAfter(i.to)))do{if(D<0?e.to<=i.from:e.from>=i.to){if(0==g&&t.indexOf(e.type.name)>-1&&e.from<e.to){let M=TL(e);return{start:u,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(eL(e.type,D,I))g++;else if(eL(e.type,-D,I)){if(0==g){let M=TL(e);return{start:u,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}g--}}}while(D<0?e.prevSibling():e.nextSibling());return{start:u,matched:!1}}const LL=Object.create(null),OL=[JT.none],yL=[],cL=Object.create(null),nL=Object.create(null);for(let[M,N]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"]])nL[M]=oL(LL,N);function lL(M,N){yL.indexOf(M)>-1||(yL.push(M),console.warn(N))}function oL(M,N){let D=[];for(let i of N.split(" ")){let N=[];for(let D of i.split(".")){let i=M[D]||RA[D];i?"function"==typeof i?N.length?N=N.map(i):lL(D,`Modifier ${D} used at start of tag`):N.length?lL(D,`Tag ${D} used as modifier`):N=Array.isArray(i)?i:[i]:lL(D,`Unknown highlighting tag ${D}`)}for(let M of N)D.push(M)}if(!D.length)return 0;let i=N.replace(/ /g,"_"),j=i+" "+D.map((M=>M.id)),t=cL[j];if(t)return t.id;let I=cL[j]=JT.define({id:OL.length,name:i,props:[aA({[i]:D})]});return OL.push(I),I.id}Qz.RTL,Qz.LTR;function rL(M,N){return({state:D,dispatch:i})=>{if(D.readOnly)return!1;let j=M(N,D);return!!j&&(i(D.update(j)),!0)}}const xL=rL(dL,0),aL=rL(hL,0),QL=rL(((M,N)=>hL(M,N,function(M){let N=[];for(let D of M.selection.ranges){let i=M.doc.lineAt(D.from),j=D.to<=i.to?i:M.doc.lineAt(D.to),t=N.length-1;t>=0&&N[t].to>i.from?N[t].to=j.to:N.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:j.to})}return N}(N))),0);function EL(M,N){let D=M.languageDataAt("commentTokens",N);return D.length?D[0]:{}}const SL=50;function hL(M,N,D=N.selection.ranges){let i=D.map((M=>EL(N,M.from).block));if(!i.every((M=>M)))return null;let j=D.map(((M,D)=>function(M,{open:N,close:D},i,j){let t,I,z=M.sliceDoc(i-SL,i),u=M.sliceDoc(j,j+SL),g=/\s*$/.exec(z)[0].length,e=/^\s*/.exec(u)[0].length,T=z.length-g;if(z.slice(T-N.length,T)==N&&u.slice(e,e+D.length)==D)return{open:{pos:i-g,margin:g&&1},close:{pos:j+e,margin:e&&1}};j-i<=2*SL?t=I=M.sliceDoc(i,j):(t=M.sliceDoc(i,i+SL),I=M.sliceDoc(j-SL,j));let A=/^\s*/.exec(t)[0].length,s=/\s*$/.exec(I)[0].length,L=I.length-s-D.length;return t.slice(A,A+N.length)==N&&I.slice(L,L+D.length)==D?{open:{pos:i+A+N.length,margin:/\s/.test(t.charAt(A+N.length))?1:0},close:{pos:j-s-D.length,margin:/\s/.test(I.charAt(L-1))?1:0}}:null}(N,i[D],M.from,M.to)));if(2!=M&&!j.every((M=>M)))return{changes:N.changes(D.map(((M,N)=>j[N]?[]:[{from:M.from,insert:i[N].open+" "},{from:M.to,insert:" "+i[N].close}])))};if(1!=M&&j.some((M=>M))){let M=[];for(let N,D=0;D<j.length;D++)if(N=j[D]){let j=i[D],{open:t,close:I}=N;M.push({from:t.pos-j.open.length,to:t.pos+t.margin},{from:I.pos-I.margin,to:I.pos+j.close.length})}return{changes:M}}return null}function dL(M,N,D=N.selection.ranges){let i=[],j=-1;for(let{from:M,to:t}of D){let D=i.length,I=1e9,z=EL(N,M).line;if(z){for(let D=M;D<=t;){let u=N.doc.lineAt(D);if(u.from>j&&(M==t||t>u.from)){j=u.from;let M=/^\s*/.exec(u.text)[0].length,N=M==u.length,D=u.text.slice(M,M+z.length)==z?M:-1;M<u.text.length&&M<I&&(I=M),i.push({line:u,comment:D,token:z,indent:M,empty:N,single:!1})}D=u.to+1}if(I<1e9)for(let M=D;M<i.length;M++)i[M].indent<i[M].line.text.length&&(i[M].indent=I);i.length==D+1&&(i[D].single=!0)}}if(2!=M&&i.some((M=>M.comment<0&&(!M.empty||M.single)))){let M=[];for(let{line:N,token:D,indent:j,empty:t,single:I}of i)!I&&t||M.push({from:N.from+j,insert:D+" "});let D=N.changes(M);return{changes:D,selection:N.selection.map(D,1)}}if(1!=M&&i.some((M=>M.comment>=0))){let M=[];for(let{line:N,comment:D,token:j}of i)if(D>=0){let i=N.from+D,t=i+j.length;" "==N.text[t-N.from]&&t++,M.push({from:i,to:t})}return{changes:M}}return null}const kL=lt.define(),wL=lt.define(),UL=Jj.define(),YL=Jj.define({combine:M=>pt(M,{minDepth:100,newGroupDelay:500,joinToEvent:(M,N)=>N},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(M,N)=>(D,i)=>M(D,i)||N(D,i)})}),CL=Kj.define({create:()=>XL.empty,update(M,N){let D=N.state.facet(YL),i=N.annotation(kL);if(i){let j=vL.fromTransaction(N,i.selection),t=i.side,I=0==t?M.undone:M.done;return I=j?WL(I,I.length,D.minDepth,j):RL(I,N.startState.selection),new XL(0==t?i.rest:I,0==t?I:i.rest)}let j=N.annotation(wL);if("full"!=j&&"before"!=j||(M=M.isolate()),!1===N.annotation(at.addToHistory))return N.changes.empty?M:M.addMapping(N.changes.desc);let t=vL.fromTransaction(N),I=N.annotation(at.time),z=N.annotation(at.userEvent);return t?M=M.addChanges(t,I,z,D,N):N.selection&&(M=M.addSelection(N.startState.selection,I,z,D.newGroupDelay)),"full"!=j&&"after"!=j||(M=M.isolate()),M},toJSON:M=>({done:M.done.map((M=>M.toJSON())),undone:M.undone.map((M=>M.toJSON()))}),fromJSON:M=>new XL(M.done.map(vL.fromJSON),M.undone.map(vL.fromJSON))});function bL(M,N){return function({state:D,dispatch:i}){if(!N&&D.readOnly)return!1;let j=D.field(CL,!1);if(!j)return!1;let t=j.pop(M,D,N);return!!t&&(i(t),!0)}}const pL=bL(0,!1),mL=bL(1,!1),ZL=bL(0,!0),fL=bL(1,!0);class vL{constructor(M,N,D,i,j){this.changes=M,this.effects=N,this.mapped=D,this.startSelection=i,this.selectionsAfter=j}setSelAfter(M){return new vL(this.changes,this.effects,this.mapped,this.startSelection,M)}toJSON(){var M,N,D;return{changes:null===(M=this.changes)||void 0===M?void 0:M.toJSON(),mapped:null===(N=this.mapped)||void 0===N?void 0:N.toJSON(),startSelection:null===(D=this.startSelection)||void 0===D?void 0:D.toJSON(),selectionsAfter:this.selectionsAfter.map((M=>M.toJSON()))}}static fromJSON(M){return new vL(M.changes&&pj.fromJSON(M.changes),[],M.mapped&&bj.fromJSON(M.mapped),M.startSelection&&Pj.fromJSON(M.startSelection),M.selectionsAfter.map(Pj.fromJSON))}static fromTransaction(M,N){let D=GL;for(let N of M.startState.facet(UL)){let i=N(M);i.length&&(D=D.concat(i))}return!D.length&&M.changes.empty?null:new vL(M.changes.invert(M.startState.doc),D,void 0,N||M.startState.selection,GL)}static selection(M){return new vL(void 0,GL,void 0,void 0,M)}}function WL(M,N,D,i){let j=N+1>D+20?N-D-1:0,t=M.slice(j,N);return t.push(i),t}function VL(M,N){return M.length?N.length?M.concat(N):M:N}const GL=[],PL=200;function RL(M,N){if(M.length){let D=M[M.length-1],i=D.selectionsAfter.slice(Math.max(0,D.selectionsAfter.length-PL));return i.length&&i[i.length-1].eq(N)?M:(i.push(N),WL(M,M.length-1,1e9,D.setSelAfter(i)))}return[vL.selection([N])]}function BL(M){let N=M[M.length-1],D=M.slice();return D[M.length-1]=N.setSelAfter(N.selectionsAfter.slice(0,N.selectionsAfter.length-1)),D}function JL(M,N){if(!M.length)return M;let D=M.length,i=GL;for(;D;){let j=FL(M[D-1],N,i);if(j.changes&&!j.changes.empty||j.effects.length){let N=M.slice(0,D);return N[D-1]=j,N}N=j.mapped,D--,i=j.selectionsAfter}return i.length?[vL.selection(i)]:GL}function FL(M,N,D){let i=VL(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(N))):GL,D);if(!M.changes)return vL.selection(i);let j=M.changes.map(N),t=N.mapDesc(M.changes,!0),I=M.mapped?M.mapped.composeDesc(t):t;return new vL(j,xt.mapEffects(M.effects,N),I,M.startSelection.map(t),i)}const HL=/^(input\.type|delete)($|\.)/;class XL{constructor(M,N,D=0,i=void 0){this.done=M,this.undone=N,this.prevTime=D,this.prevUserEvent=i}isolate(){return this.prevTime?new XL(this.done,this.undone):this}addChanges(M,N,D,i,j){let t=this.done,I=t[t.length-1];return t=I&&I.changes&&!I.changes.empty&&M.changes&&(!D||HL.test(D))&&(!I.selectionsAfter.length&&N-this.prevTime<i.newGroupDelay&&i.joinToEvent(j,function(M,N){let D=[],i=!1;return M.iterChangedRanges(((M,N)=>D.push(M,N))),N.iterChangedRanges(((M,N,j,t)=>{for(let M=0;M<D.length;){let N=D[M++],I=D[M++];t>=N&&j<=I&&(i=!0)}})),i}(I.changes,M.changes))||"input.type.compose"==D)?WL(t,t.length-1,i.minDepth,new vL(M.changes.compose(I.changes),VL(M.effects,I.effects),I.mapped,I.startSelection,GL)):WL(t,t.length,i.minDepth,M),new XL(t,GL,N,D)}addSelection(M,N,D,i){let j=this.done.length?this.done[this.done.length-1].selectionsAfter:GL;return j.length>0&&N-this.prevTime<i&&D==this.prevUserEvent&&D&&/^select($|\.)/.test(D)&&function(M,N){return M.ranges.length==N.ranges.length&&0===M.ranges.filter(((M,D)=>M.empty!=N.ranges[D].empty)).length}(j[j.length-1],M)?this:new XL(RL(this.done,M),this.undone,N,D)}addMapping(M){return new XL(JL(this.done,M),JL(this.undone,M),this.prevTime,this.prevUserEvent)}pop(M,N,D){let i=0==M?this.done:this.undone;if(0==i.length)return null;let j=i[i.length-1],t=j.selectionsAfter[0]||N.selection;if(D&&j.selectionsAfter.length)return N.update({selection:j.selectionsAfter[j.selectionsAfter.length-1],annotations:kL.of({side:M,rest:BL(i),selection:t}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(j.changes){let D=1==i.length?GL:i.slice(0,i.length-1);return j.mapped&&(D=JL(D,j.mapped)),N.update({changes:j.changes,selection:j.startSelection,effects:j.effects,annotations:kL.of({side:M,rest:D,selection:t}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}XL.empty=new XL(GL,GL);const $L=[{key:"Mod-z",run:pL,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:mL,preventDefault:!0},{linux:"Ctrl-Shift-z",run:mL,preventDefault:!0},{key:"Mod-u",run:ZL,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:fL,preventDefault:!0}];function _L(M,N){return Pj.create(M.ranges.map(N),M.mainIndex)}function qL(M,N){return M.update({selection:N,scrollIntoView:!0,userEvent:"select"})}function KL({state:M,dispatch:N},D){let i=_L(M.selection,D);return!i.eq(M.selection,!0)&&(N(qL(M,i)),!0)}function MO(M,N){return Pj.cursor(N?M.to:M.from)}function NO(M,N){return KL(M,(D=>D.empty?M.moveByChar(D,N):MO(D,N)))}function DO(M){return M.textDirectionAt(M.state.selection.main.head)==Qz.LTR}const iO=M=>NO(M,!DO(M)),jO=M=>NO(M,DO(M));function tO(M,N){return KL(M,(D=>D.empty?M.moveByGroup(D,N):MO(D,N)))}function IO(M,N,D){if(N.type.prop(D))return!0;let i=N.to-N.from;return i&&(i>2||/[^\s,.;:]/.test(M.sliceDoc(N.from,N.to)))||N.firstChild}function zO(M,N,D){let i,j,t=qA(M).resolveInner(N.head),I=D?PT.closedBy:PT.openedBy;for(let i=N.head;;){let N=D?t.childAfter(i):t.childBefore(i);if(!N)break;IO(M,N,I)?t=N:i=D?N.to:N.from}return j=t.type.prop(I)&&(i=D?AL(M,t.from,1):AL(M,t.to,-1))&&i.matched?D?i.end.to:i.end.from:D?t.to:t.from,Pj.cursor(j,D?-1:1)}function uO(M,N){return KL(M,(D=>{if(!D.empty)return MO(D,N);let i=M.moveVertically(D,N);return i.head!=D.head?i:M.moveToLineBoundary(D,N)}))}const gO=M=>uO(M,!1),eO=M=>uO(M,!0);function TO(M){let N,D=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,i=0,j=0;if(D){for(let N of M.state.facet(Ne.scrollMargins)){let D=N(M);(null==D?void 0:D.top)&&(i=Math.max(null==D?void 0:D.top,i)),(null==D?void 0:D.bottom)&&(j=Math.max(null==D?void 0:D.bottom,j))}N=M.scrollDOM.clientHeight-i-j}else N=(M.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:i,marginBottom:j,selfScroll:D,height:Math.max(M.defaultLineHeight,N-5)}}function AO(M,N){let D,i=TO(M),{state:j}=M,t=_L(j.selection,(D=>D.empty?M.moveVertically(D,N,i.height):MO(D,N)));if(t.eq(j.selection))return!1;if(i.selfScroll){let N=M.coordsAtPos(j.selection.main.head),I=M.scrollDOM.getBoundingClientRect(),z=I.top+i.marginTop,u=I.bottom-i.marginBottom;N&&N.top>z&&N.bottom<u&&(D=Ne.scrollIntoView(t.main.head,{y:"start",yMargin:N.top-z}))}return M.dispatch(qL(j,t),{effects:D}),!0}const sO=M=>AO(M,!1),LO=M=>AO(M,!0);function OO(M,N,D){let i=M.lineBlockAt(N.head),j=M.moveToLineBoundary(N,D);if(j.head==N.head&&j.head!=(D?i.to:i.from)&&(j=M.moveToLineBoundary(N,D,!1)),!D&&j.head==i.from&&i.length){let D=/^\s*/.exec(M.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;D&&N.head!=i.from+D&&(j=Pj.cursor(i.from+D))}return j}function yO(M,N){let D=_L(M.state.selection,(M=>{let D=N(M);return Pj.range(M.anchor,D.head,D.goalColumn,D.bidiLevel||void 0)}));return!D.eq(M.state.selection)&&(M.dispatch(qL(M.state,D)),!0)}function cO(M,N){return yO(M,(D=>M.moveByChar(D,N)))}const nO=M=>cO(M,!DO(M)),lO=M=>cO(M,DO(M));function oO(M,N){return yO(M,(D=>M.moveByGroup(D,N)))}function rO(M,N){return yO(M,(D=>M.moveVertically(D,N)))}const xO=M=>rO(M,!1),aO=M=>rO(M,!0);function QO(M,N){return yO(M,(D=>M.moveVertically(D,N,TO(M).height)))}const EO=M=>QO(M,!1),SO=M=>QO(M,!0),hO=({state:M,dispatch:N})=>(N(qL(M,{anchor:0})),!0),dO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.doc.length})),!0),kO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.selection.main.anchor,head:0})),!0),wO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function UO(M,N){if(M.state.readOnly)return!1;let D="delete.selection",{state:i}=M,j=i.changeByRange((i=>{let{from:j,to:t}=i;if(j==t){let I=N(i);I<j?(D="delete.backward",I=YO(M,I,!1)):I>j&&(D="delete.forward",I=YO(M,I,!0)),j=Math.min(j,I),t=Math.max(t,I)}else j=YO(M,j,!1),t=YO(M,t,!0);return j==t?{range:i}:{changes:{from:j,to:t},range:Pj.cursor(j,j<i.head?-1:1)}}));return!j.changes.empty&&(M.dispatch(i.update(j,{scrollIntoView:!0,userEvent:D,effects:"delete.selection"==D?Ne.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function YO(M,N,D){if(M instanceof Ne)for(let i of M.state.facet(Ne.atomicRanges).map((N=>N(M))))i.between(N,N,((M,i)=>{M<N&&i>N&&(N=D?i:M)}));return N}const CO=(M,N,D)=>UO(M,(i=>{let j,t,I=i.from,{state:z}=M,u=z.doc.lineAt(I);if(D&&!N&&I>u.from&&I<u.from+200&&!/[^ \t]/.test(j=u.text.slice(0,I-u.from))){if("\t"==j[j.length-1])return I-1;let M=qt(j,z.tabSize)%Ts(z)||Ts(z);for(let N=0;N<M&&" "==j[j.length-1-N];N++)I--;t=I}else t=Qj(u.text,I-u.from,N,N)+u.from,t==I&&u.number!=(N?z.doc.lines:1)?t+=N?1:-1:!N&&/[\ufe00-\ufe0f]/.test(u.text.slice(t-u.from,I-u.from))&&(t=Qj(u.text,t-u.from,!1,!1)+u.from);return t})),bO=M=>CO(M,!1,!0),pO=M=>CO(M,!0,!1),mO=(M,N)=>UO(M,(D=>{let i=D.head,{state:j}=M,t=j.doc.lineAt(i),I=j.charCategorizer(i);for(let M=null;;){if(i==(N?t.to:t.from)){i==D.head&&t.number!=(N?j.doc.lines:1)&&(i+=N?1:-1);break}let z=Qj(t.text,i-t.from,N)+t.from,u=t.text.slice(Math.min(i,z)-t.from,Math.max(i,z)-t.from),g=I(u);if(null!=M&&g!=M)break;" "==u&&i==D.head||(M=g),i=z}return i})),ZO=M=>mO(M,!1);function fO(M){let N=[],D=-1;for(let i of M.selection.ranges){let j=M.doc.lineAt(i.from),t=M.doc.lineAt(i.to);if(i.empty||i.to!=t.from||(t=M.doc.lineAt(i.to-1)),D>=j.number){let M=N[N.length-1];M.to=t.to,M.ranges.push(i)}else N.push({from:j.from,to:t.to,ranges:[i]});D=t.number+1}return N}function vO(M,N,D){if(M.readOnly)return!1;let i=[],j=[];for(let N of fO(M)){if(D?N.to==M.doc.length:0==N.from)continue;let t=M.doc.lineAt(D?N.to+1:N.from-1),I=t.length+1;if(D){i.push({from:N.to,to:t.to},{from:N.from,insert:t.text+M.lineBreak});for(let D of N.ranges)j.push(Pj.range(Math.min(M.doc.length,D.anchor+I),Math.min(M.doc.length,D.head+I)))}else{i.push({from:t.from,to:N.from},{from:N.to,insert:M.lineBreak+t.text});for(let M of N.ranges)j.push(Pj.range(M.anchor-I,M.head-I))}}return!!i.length&&(N(M.update({changes:i,scrollIntoView:!0,selection:Pj.create(j,M.selection.mainIndex),userEvent:"move.line"})),!0)}function WO(M,N,D){if(M.readOnly)return!1;let i=[];for(let N of fO(M))D?i.push({from:N.from,insert:M.doc.slice(N.from,N.to)+M.lineBreak}):i.push({from:N.to,insert:M.lineBreak+M.doc.slice(N.from,N.to)});return N(M.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const VO=PO(!1),GO=PO(!0);function PO(M){return({state:N,dispatch:D})=>{if(N.readOnly)return!1;let i=N.changeByRange((D=>{let{from:i,to:j}=D,t=N.doc.lineAt(i),I=!M&&i==j&&function(M,N){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(N-1,N+1)))return{from:N,to:N};let D,i=qA(M).resolveInner(N),j=i.childBefore(N),t=i.childAfter(N);return j&&t&&j.to<=N&&t.from>=N&&(D=j.type.prop(PT.closedBy))&&D.indexOf(t.name)>-1&&M.doc.lineAt(j.to).from==M.doc.lineAt(t.from).from&&!/\S/.test(M.sliceDoc(j.to,t.from))?{from:j.to,to:t.from}:null}(N,i);M&&(i=j=(j<=t.to?t:N.doc.lineAt(j)).to);let z=new Ls(N,{simulateBreak:i,simulateDoubleBreak:!!I}),u=ss(z,i);for(null==u&&(u=qt(/^\s*/.exec(N.doc.lineAt(i).text)[0],N.tabSize));j<t.to&&/\s/.test(t.text[j-t.from]);)j++;I?({from:i,to:j}=I):i>t.from&&i<t.from+100&&!/\S/.test(t.text.slice(0,i))&&(i=t.from);let g=["",As(N,u)];return I&&g.push(As(N,z.lineIndent(t.from,-1))),{changes:{from:i,to:j,insert:ej.of(g)},range:Pj.cursor(i+1+g[1].length)}}));return D(N.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function RO(M,N){let D=-1;return M.changeByRange((i=>{let j=[];for(let t=i.from;t<=i.to;){let I=M.doc.lineAt(t);I.number>D&&(i.empty||i.to>I.from)&&(N(I,j,i),D=I.number),t=I.to+1}let t=M.changes(j);return{changes:j,range:Pj.range(t.mapPos(i.anchor,1),t.mapPos(i.head,1))}}))}const BO=[{key:"Ctrl-b",run:iO,shift:nO,preventDefault:!0},{key:"Ctrl-f",run:jO,shift:lO},{key:"Ctrl-p",run:gO,shift:xO},{key:"Ctrl-n",run:eO,shift:aO},{key:"Ctrl-a",run:M=>KL(M,(N=>Pj.cursor(M.lineBlockAt(N.head).from,1))),shift:M=>yO(M,(N=>Pj.cursor(M.lineBlockAt(N.head).from)))},{key:"Ctrl-e",run:M=>KL(M,(N=>Pj.cursor(M.lineBlockAt(N.head).to,-1))),shift:M=>yO(M,(N=>Pj.cursor(M.lineBlockAt(N.head).to)))},{key:"Ctrl-d",run:pO},{key:"Ctrl-h",run:bO},{key:"Ctrl-k",run:M=>UO(M,(N=>{let D=M.lineBlockAt(N.head).to;return N.head<D?D:Math.min(M.state.doc.length,N.head+1)}))},{key:"Ctrl-Alt-h",run:ZO},{key:"Ctrl-o",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=M.changeByRange((M=>({changes:{from:M.from,to:M.to,insert:ej.of(["",""])},range:Pj.cursor(M.from)})));return N(M.update(D,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=M.changeByRange((N=>{if(!N.empty||0==N.from||N.from==M.doc.length)return{range:N};let D=N.from,i=M.doc.lineAt(D),j=D==i.from?D-1:Qj(i.text,D-i.from,!1)+i.from,t=D==i.to?D+1:Qj(i.text,D-i.from,!0)+i.from;return{changes:{from:j,to:t,insert:M.doc.slice(D,t).append(M.doc.slice(j,D))},range:Pj.cursor(t)}}));return!D.changes.empty&&(N(M.update(D,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:LO}],JO=[{key:"ArrowLeft",run:iO,shift:nO,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>tO(M,!DO(M)),shift:M=>oO(M,!DO(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>KL(M,(N=>OO(M,N,!DO(M)))),shift:M=>yO(M,(N=>OO(M,N,!DO(M)))),preventDefault:!0},{key:"ArrowRight",run:jO,shift:lO,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>tO(M,DO(M)),shift:M=>oO(M,DO(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>KL(M,(N=>OO(M,N,DO(M)))),shift:M=>yO(M,(N=>OO(M,N,DO(M)))),preventDefault:!0},{key:"ArrowUp",run:gO,shift:xO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:hO,shift:kO},{mac:"Ctrl-ArrowUp",run:sO,shift:EO},{key:"ArrowDown",run:eO,shift:aO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:dO,shift:wO},{mac:"Ctrl-ArrowDown",run:LO,shift:SO},{key:"PageUp",run:sO,shift:EO},{key:"PageDown",run:LO,shift:SO},{key:"Home",run:M=>KL(M,(N=>OO(M,N,!1))),shift:M=>yO(M,(N=>OO(M,N,!1))),preventDefault:!0},{key:"Mod-Home",run:hO,shift:kO},{key:"End",run:M=>KL(M,(N=>OO(M,N,!0))),shift:M=>yO(M,(N=>OO(M,N,!0))),preventDefault:!0},{key:"Mod-End",run:dO,shift:wO},{key:"Enter",run:VO},{key:"Mod-a",run:({state:M,dispatch:N})=>(N(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:bO,shift:bO},{key:"Delete",run:pO},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ZO},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>mO(M,!0)},{mac:"Mod-Backspace",run:M=>UO(M,(N=>{let D=M.moveToLineBoundary(N,!1).head;return N.head>D?D:Math.max(0,N.head-1)}))},{mac:"Mod-Delete",run:M=>UO(M,(N=>{let D=M.moveToLineBoundary(N,!0).head;return N.head<D?D:Math.min(M.state.doc.length,N.head+1)}))}].concat(BO.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),FO=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>KL(M,(N=>zO(M.state,N,!DO(M)))),shift:M=>yO(M,(N=>zO(M.state,N,!DO(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>KL(M,(N=>zO(M.state,N,DO(M)))),shift:M=>yO(M,(N=>zO(M.state,N,DO(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:N})=>vO(M,N,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:N})=>WO(M,N,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:N})=>vO(M,N,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:N})=>WO(M,N,!0)},{key:"Escape",run:({state:M,dispatch:N})=>{let D=M.selection,i=null;return D.ranges.length>1?i=Pj.create([D.main]):D.main.empty||(i=Pj.create([Pj.cursor(D.main.head)])),!!i&&(N(qL(M,i)),!0)}},{key:"Mod-Enter",run:GO},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:N})=>{let D=fO(M).map((({from:N,to:D})=>Pj.range(N,Math.min(D+1,M.doc.length))));return N(M.update({selection:Pj.create(D),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:M,dispatch:N})=>{let D=_L(M.selection,(N=>{var D;for(let i=qA(M).resolveStack(N.from,1);i;i=i.next){let{node:M}=i;if((M.from<N.from&&M.to>=N.to||M.to>N.to&&M.from<=N.from)&&(null===(D=M.parent)||void 0===D?void 0:D.parent))return Pj.range(M.to,M.from)}return N}));return N(qL(M,D)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:N})=>!M.readOnly&&(N(M.update(RO(M,((N,D)=>{let i=/^\s*/.exec(N.text)[0];if(!i)return;let j=qt(i,M.tabSize),t=0,I=As(M,Math.max(0,j-Ts(M)));for(;t<i.length&&t<I.length&&i.charCodeAt(t)==I.charCodeAt(t);)t++;D.push({from:N.from+t,to:N.from+i.length,insert:I.slice(t)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:N})=>!M.readOnly&&(N(M.update(RO(M,((N,D)=>{D.push({from:N.from,insert:M.facet(es)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=Object.create(null),i=new Ls(M,{overrideIndentation:M=>{let N=D[M];return null==N?-1:N}}),j=RO(M,((N,j,t)=>{let I=ss(i,N.from);if(null==I)return;/\S/.test(N.text)||(I=0);let z=/^\s*/.exec(N.text)[0],u=As(M,I);(z!=u||t.from<N.from+z.length)&&(D[N.from]=I,j.push({from:N.from,to:N.from+z.length,insert:u}))}));return j.changes.empty||N(M.update(j,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:M=>{if(M.state.readOnly)return!1;let{state:N}=M,D=N.changes(fO(N).map((({from:M,to:D})=>(M>0?M--:D<N.doc.length&&D++,{from:M,to:D})))),i=_L(N.selection,(N=>{let D;if(M.lineWrapping){let i=M.lineBlockAt(N.head),j=M.coordsAtPos(N.head,N.assoc||1);j&&(D=i.bottom+M.documentTop-j.bottom+M.defaultLineHeight/2)}return M.moveVertically(N,!0,D)})).map(D);return M.dispatch({changes:D,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:M,dispatch:N})=>function(M,N,D){let i=!1,j=_L(M.selection,(N=>{let j=AL(M,N.head,-1)||AL(M,N.head,1)||N.head>0&&AL(M,N.head-1,1)||N.head<M.doc.length&&AL(M,N.head+1,-1);if(!j||!j.end)return N;i=!0;let t=j.start.from==N.head?j.end.to:j.end.from;return D?Pj.range(N.anchor,t):Pj.cursor(t)}));return!!i&&(N(qL(M,j)),!0)}(M,N,!1)},{key:"Mod-/",run:M=>{let{state:N}=M,D=N.doc.lineAt(N.selection.main.from),i=EL(M.state,D.from);return i.line?xL(M):!!i.block&&QL(M)}},{key:"Alt-A",run:aL}].concat(JO);function HO(){var M=arguments[0];"string"==typeof M&&(M=document.createElement(M));var N=1,D=arguments[1];if(D&&"object"==typeof D&&null==D.nodeType&&!Array.isArray(D)){for(var i in D)if(Object.prototype.hasOwnProperty.call(D,i)){var j=D[i];"string"==typeof j?M.setAttribute(i,j):null!=j&&(M[i]=j)}N++}for(;N<arguments.length;N++)XO(M,arguments[N]);return M}function XO(M,N){if("string"==typeof N)M.appendChild(document.createTextNode(N));else if(null==N);else if(null!=N.nodeType)M.appendChild(N);else{if(!Array.isArray(N))throw new RangeError("Unsupported child node: "+N);for(var D=0;D<N.length;D++)XO(M,N[D])}}const $O="function"==typeof String.prototype.normalize?M=>M.normalize("NFKD"):M=>M;class _O{constructor(M,N,D=0,i=M.length,j,t){this.test=t,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=M.iterRange(D,i),this.bufferStart=D,this.normalize=j?M=>j($O(M)):$O,this.query=this.normalize(N)}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 kj(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let M=this.peek();if(M<0)return this.done=!0,this;let N=wj(M),D=this.bufferStart+this.bufferPos;this.bufferPos+=Uj(M);let i=this.normalize(N);for(let M=0,j=D;;M++){let t=i.charCodeAt(M),I=this.match(t,j,this.bufferPos+this.bufferStart);if(M==i.length-1){if(I)return this.value=I,this;break}j==D&&M<N.length&&N.charCodeAt(M)==t&&j++}}}match(M,N,D){let i=null;for(let N=0;N<this.matches.length;N+=2){let j=this.matches[N],t=!1;this.query.charCodeAt(j)==M&&(j==this.query.length-1?i={from:this.matches[N+1],to:D}:(this.matches[N]++,t=!0)),t||(this.matches.splice(N,2),N-=2)}return this.query.charCodeAt(0)==M&&(1==this.query.length?i={from:N,to:D}:this.matches.push(1,N)),i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null),i}}"undefined"!=typeof Symbol&&(_O.prototype[Symbol.iterator]=function(){return this});const qO={from:-1,to:-1,match:/.*/.exec("")},KO="gm"+(null==/x/.unicode?"":"u");class My{constructor(M,N,D,i=0,j=M.length){if(this.text=M,this.to=j,this.curLine="",this.done=!1,this.value=qO,/\\[sWDnr]|\n|\r|\[\^/.test(N))return new iy(M,N,D,i,j);this.re=new RegExp(N,KO+((null==D?void 0:D.ignoreCase)?"i":"")),this.test=null==D?void 0:D.test,this.iter=M.iter();let t=M.lineAt(i);this.curLineStart=t.from,this.matchPos=jy(M,i),this.getLine(this.curLineStart)}getLine(M){this.iter.next(M),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.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 M=this.matchPos-this.curLineStart;;){this.re.lastIndex=M;let N=this.matchPos<=this.to&&this.re.exec(this.curLine);if(N){let D=this.curLineStart+N.index,i=D+N[0].length;if(this.matchPos=jy(this.text,i+(D==i?1:0)),D==this.curLineStart+this.curLine.length&&this.nextLine(),(D<i||D>this.value.to)&&(!this.test||this.test(D,i,N)))return this.value={from:D,to:i,match:N},this;M=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),M=0}}}}const Ny=new WeakMap;class Dy{constructor(M,N){this.from=M,this.text=N}get to(){return this.from+this.text.length}static get(M,N,D){let i=Ny.get(M);if(!i||i.from>=D||i.to<=N){let i=new Dy(N,M.sliceString(N,D));return Ny.set(M,i),i}if(i.from==N&&i.to==D)return i;let{text:j,from:t}=i;return t>N&&(j=M.sliceString(N,t)+j,t=N),i.to<D&&(j+=M.sliceString(i.to,D)),Ny.set(M,new Dy(t,j)),new Dy(N,j.slice(N-t,D-t))}}class iy{constructor(M,N,D,i,j){this.text=M,this.to=j,this.done=!1,this.value=qO,this.matchPos=jy(M,i),this.re=new RegExp(N,KO+((null==D?void 0:D.ignoreCase)?"i":"")),this.test=null==D?void 0:D.test,this.flat=Dy.get(M,i,this.chunkEnd(i+5e3))}chunkEnd(M){return M>=this.to?this.to:this.text.lineAt(M).to}next(){for(;;){let M=this.re.lastIndex=this.matchPos-this.flat.from,N=this.re.exec(this.flat.text);if(N&&!N[0]&&N.index==M&&(this.re.lastIndex=M+1,N=this.re.exec(this.flat.text)),N){let M=this.flat.from+N.index,D=M+N[0].length;if((this.flat.to>=this.to||N.index+N[0].length<=this.flat.text.length-10)&&(!this.test||this.test(M,D,N)))return this.value={from:M,to:D,match:N},this.matchPos=jy(this.text,D+(M==D?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Dy.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function jy(M,N){if(N>=M.length)return N;let D,i=M.lineAt(N);for(;N<i.to&&(D=i.text.charCodeAt(N-i.from))>=56320&&D<57344;)N++;return N}function ty(M){let N=HO("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),D=HO("form",{class:"cm-gotoLine",onkeydown:N=>{27==N.keyCode?(N.preventDefault(),M.dispatch({effects:Iy.of(!1)}),M.focus()):13==N.keyCode&&(N.preventDefault(),i())},onsubmit:M=>{M.preventDefault(),i()}},HO("label",M.state.phrase("Go to line"),": ",N)," ",HO("button",{class:"cm-button",type:"submit"},M.state.phrase("go")));function i(){let D=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(N.value);if(!D)return;let{state:i}=M,j=i.doc.lineAt(i.selection.main.head),[,t,I,z,u]=D,g=z?+z.slice(1):0,e=I?+I:j.number;if(I&&u){let M=e/100;t&&(M=M*("-"==t?-1:1)+j.number/i.doc.lines),e=Math.round(i.doc.lines*M)}else I&&t&&(e=e*("-"==t?-1:1)+j.number);let T=i.doc.line(Math.max(1,Math.min(i.doc.lines,e))),A=Pj.cursor(T.from+Math.max(0,Math.min(g,T.length)));M.dispatch({effects:[Iy.of(!1),Ne.scrollIntoView(A.from,{y:"center"})],selection:A}),M.focus()}return{dom:D}}"undefined"!=typeof Symbol&&(My.prototype[Symbol.iterator]=iy.prototype[Symbol.iterator]=function(){return this});const Iy=xt.define(),zy=Kj.define({create:()=>!0,update(M,N){for(let D of N.effects)D.is(Iy)&&(M=D.value);return M},provide:M=>cT.from(M,(M=>M?ty:null))}),uy=Ne.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),gy={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},ey=Jj.define({combine:M=>pt(M,gy,{highlightWordAroundCursor:(M,N)=>M||N,minSelectionLength:Math.min,maxMatches:Math.min})});const Ty=Oz.mark({class:"cm-selectionMatch"}),Ay=Oz.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function sy(M,N,D,i){return!(0!=D&&M(N.sliceDoc(D-1,D))==wt.Word||i!=N.doc.length&&M(N.sliceDoc(i,i+1))==wt.Word)}const Ly=tu.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.selectionSet||M.docChanged||M.viewportChanged)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let N=M.state.facet(ey),{state:D}=M,i=D.selection;if(i.ranges.length>1)return Oz.none;let j,t=i.main,I=null;if(t.empty){if(!N.highlightWordAroundCursor)return Oz.none;let M=D.wordAt(t.head);if(!M)return Oz.none;I=D.charCategorizer(t.head),j=D.sliceDoc(M.from,M.to)}else{let M=t.to-t.from;if(M<N.minSelectionLength||M>200)return Oz.none;if(N.wholeWords){if(j=D.sliceDoc(t.from,t.to),I=D.charCategorizer(t.head),!sy(I,D,t.from,t.to)||!function(M,N,D,i){return M(N.sliceDoc(D,D+1))==wt.Word&&M(N.sliceDoc(i-1,i))==wt.Word}(I,D,t.from,t.to))return Oz.none}else if(j=D.sliceDoc(t.from,t.to),!j)return Oz.none}let z=[];for(let i of M.visibleRanges){let M=new _O(D.doc,j,i.from,i.to);for(;!M.next().done;){let{from:i,to:j}=M.value;if((!I||sy(I,D,i,j))&&(t.empty&&i<=t.from&&j>=t.to?z.push(Ay.range(i,j)):(i>=t.to||j<=t.from)&&z.push(Ty.range(i,j)),z.length>N.maxMatches))return Oz.none}}return Oz.set(z)}},{decorations:M=>M.decorations}),Oy=Ne.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const yy=Jj.define({combine:M=>pt(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new By(M),scrollToMatch:M=>Ne.scrollIntoView(M)})});class cy{constructor(M){this.search=M.search,this.caseSensitive=!!M.caseSensitive,this.literal=!!M.literal,this.regexp=!!M.regexp,this.replace=M.replace||"",this.valid=!!this.search&&(!this.regexp||function(M){try{return new RegExp(M,KO),!0}catch(M){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!M.wholeWord}unquote(M){return this.literal?M:M.replace(/\\([nrt\\])/g,((M,N)=>"n"==N?"\n":"r"==N?"\r":"t"==N?"\t":"\\"))}eq(M){return this.search==M.search&&this.replace==M.replace&&this.caseSensitive==M.caseSensitive&&this.regexp==M.regexp&&this.wholeWord==M.wholeWord}create(){return this.regexp?new Qy(this):new oy(this)}getCursor(M,N=0,D){let i=M.doc?M:bt.create({doc:M});return null==D&&(D=i.doc.length),this.regexp?ry(this,i,N,D):ly(this,i,N,D)}}class ny{constructor(M){this.spec=M}}function ly(M,N,D,i){return new _O(N.doc,M.unquoted,D,i,M.caseSensitive?void 0:M=>M.toLowerCase(),M.wholeWord?function(M,N){return(D,i,j,t)=>((t>D||t+j.length<i)&&(t=Math.max(0,D-2),j=M.sliceString(t,Math.min(M.length,i+2))),!(N(xy(j,D-t))==wt.Word&&N(ay(j,D-t))==wt.Word||N(ay(j,i-t))==wt.Word&&N(xy(j,i-t))==wt.Word))}(N.doc,N.charCategorizer(N.selection.main.head)):void 0)}class oy extends ny{constructor(M){super(M)}nextMatch(M,N,D){let i=ly(this.spec,M,D,M.doc.length).nextOverlapping();return i.done&&(i=ly(this.spec,M,0,N).nextOverlapping()),i.done?null:i.value}prevMatchInRange(M,N,D){for(let i=D;;){let D=Math.max(N,i-1e4-this.spec.unquoted.length),j=ly(this.spec,M,D,i),t=null;for(;!j.nextOverlapping().done;)t=j.value;if(t)return t;if(D==N)return null;i-=1e4}}prevMatch(M,N,D){return this.prevMatchInRange(M,0,N)||this.prevMatchInRange(M,D,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace)}matchAll(M,N){let D=ly(this.spec,M,0,M.doc.length),i=[];for(;!D.next().done;){if(i.length>=N)return null;i.push(D.value)}return i}highlight(M,N,D,i){let j=ly(this.spec,M,Math.max(0,N-this.spec.unquoted.length),Math.min(D+this.spec.unquoted.length,M.doc.length));for(;!j.next().done;)i(j.value.from,j.value.to)}}function ry(M,N,D,i){return new My(N.doc,M.search,{ignoreCase:!M.caseSensitive,test:M.wholeWord?(j=N.charCategorizer(N.selection.main.head),(M,N,D)=>!D[0].length||(j(xy(D.input,D.index))!=wt.Word||j(ay(D.input,D.index))!=wt.Word)&&(j(ay(D.input,D.index+D[0].length))!=wt.Word||j(xy(D.input,D.index+D[0].length))!=wt.Word)):void 0},D,i);var j}function xy(M,N){return M.slice(Qj(M,N,!1),N)}function ay(M,N){return M.slice(N,Qj(M,N))}class Qy extends ny{nextMatch(M,N,D){let i=ry(this.spec,M,D,M.doc.length).next();return i.done&&(i=ry(this.spec,M,0,N).next()),i.done?null:i.value}prevMatchInRange(M,N,D){for(let i=1;;i++){let j=Math.max(N,D-1e4*i),t=ry(this.spec,M,j,D),I=null;for(;!t.next().done;)I=t.value;if(I&&(j==N||I.from>j+10))return I;if(j==N)return null}}prevMatch(M,N,D){return this.prevMatchInRange(M,0,N)||this.prevMatchInRange(M,D,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((N,D)=>"$"==D?"$":"&"==D?M.match[0]:"0"!=D&&+D<M.match.length?M.match[D]:N))}matchAll(M,N){let D=ry(this.spec,M,0,M.doc.length),i=[];for(;!D.next().done;){if(i.length>=N)return null;i.push(D.value)}return i}highlight(M,N,D,i){let j=ry(this.spec,M,Math.max(0,N-250),Math.min(D+250,M.doc.length));for(;!j.next().done;)i(j.value.from,j.value.to)}}const Ey=xt.define(),Sy=xt.define(),hy=Kj.define({create:M=>new dy(vy(M).create(),null),update(M,N){for(let D of N.effects)D.is(Ey)?M=new dy(D.value.create(),M.panel):D.is(Sy)&&(M=new dy(M.query,D.value?fy:null));return M},provide:M=>cT.from(M,(M=>M.panel))});class dy{constructor(M,N){this.query=M,this.panel=N}}const ky=Oz.mark({class:"cm-searchMatch"}),wy=Oz.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Uy=tu.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(hy))}update(M){let N=M.state.field(hy);(N!=M.startState.field(hy)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(N))}highlight({query:M,panel:N}){if(!N||!M.spec.valid)return Oz.none;let{view:D}=this,i=new Vt;for(let N=0,j=D.visibleRanges,t=j.length;N<t;N++){let{from:I,to:z}=j[N];for(;N<t-1&&z>j[N+1].from-500;)z=j[++N].to;M.highlight(D.state,I,z,((M,N)=>{let j=D.state.selection.ranges.some((D=>D.from==M&&D.to==N));i.add(M,N,j?wy:ky)}))}return i.finish()}},{decorations:M=>M.decorations});function Yy(M){return N=>{let D=N.state.field(hy,!1);return D&&D.query.spec.valid?M(N,D):Gy(N)}}const Cy=Yy(((M,{query:N})=>{let{to:D}=M.state.selection.main,i=N.nextMatch(M.state,D,D);if(!i)return!1;let j=Pj.single(i.from,i.to),t=M.state.facet(yy);return M.dispatch({selection:j,effects:[Xy(M,i),t.scrollToMatch(j.main,M)],userEvent:"select.search"}),Vy(M),!0})),by=Yy(((M,{query:N})=>{let{state:D}=M,{from:i}=D.selection.main,j=N.prevMatch(D,i,i);if(!j)return!1;let t=Pj.single(j.from,j.to),I=M.state.facet(yy);return M.dispatch({selection:t,effects:[Xy(M,j),I.scrollToMatch(t.main,M)],userEvent:"select.search"}),Vy(M),!0})),py=Yy(((M,{query:N})=>{let D=N.matchAll(M.state,1e3);return!(!D||!D.length)&&(M.dispatch({selection:Pj.create(D.map((M=>Pj.range(M.from,M.to)))),userEvent:"select.search.matches"}),!0)})),my=Yy(((M,{query:N})=>{let{state:D}=M,{from:i,to:j}=D.selection.main;if(D.readOnly)return!1;let t=N.nextMatch(D,i,i);if(!t)return!1;let I,z,u=[],g=[];if(t.from==i&&t.to==j&&(z=D.toText(N.getReplacement(t)),u.push({from:t.from,to:t.to,insert:z}),t=N.nextMatch(D,t.from,t.to),g.push(Ne.announce.of(D.phrase("replaced match on line $",D.doc.lineAt(i).number)+"."))),t){let N=0==u.length||u[0].from>=t.to?0:t.to-t.from-z.length;I=Pj.single(t.from-N,t.to-N),g.push(Xy(M,t)),g.push(D.facet(yy).scrollToMatch(I.main,M))}return M.dispatch({changes:u,selection:I,effects:g,userEvent:"input.replace"}),!0})),Zy=Yy(((M,{query:N})=>{if(M.state.readOnly)return!1;let D=N.matchAll(M.state,1e9).map((M=>{let{from:D,to:i}=M;return{from:D,to:i,insert:N.getReplacement(M)}}));if(!D.length)return!1;let i=M.state.phrase("replaced $ matches",D.length)+".";return M.dispatch({changes:D,effects:Ne.announce.of(i),userEvent:"input.replace.all"}),!0}));function fy(M){return M.state.facet(yy).createPanel(M)}function vy(M,N){var D,i,j,t,I;let z=M.selection.main,u=z.empty||z.to>z.from+100?"":M.sliceDoc(z.from,z.to);if(N&&!u)return N;let g=M.facet(yy);return new cy({search:(null!==(D=null==N?void 0:N.literal)&&void 0!==D?D:g.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:null!==(i=null==N?void 0:N.caseSensitive)&&void 0!==i?i:g.caseSensitive,literal:null!==(j=null==N?void 0:N.literal)&&void 0!==j?j:g.literal,regexp:null!==(t=null==N?void 0:N.regexp)&&void 0!==t?t:g.regexp,wholeWord:null!==(I=null==N?void 0:N.wholeWord)&&void 0!==I?I:g.wholeWord})}function Wy(M){let N=sT(M,fy);return N&&N.dom.querySelector("[main-field]")}function Vy(M){let N=Wy(M);N&&N==M.root.activeElement&&N.select()}const Gy=M=>{let N=M.state.field(hy,!1);if(N&&N.panel){let D=Wy(M);if(D&&D!=M.root.activeElement){let i=vy(M.state,N.query.spec);i.valid&&M.dispatch({effects:Ey.of(i)}),D.focus(),D.select()}}else M.dispatch({effects:[Sy.of(!0),N?Ey.of(vy(M.state,N.query.spec)):xt.appendConfig.of(_y)]});return!0},Py=M=>{let N=M.state.field(hy,!1);if(!N||!N.panel)return!1;let D=sT(M,fy);return D&&D.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Sy.of(!1)}),!0},Ry=[{key:"Mod-f",run:Gy,scope:"editor search-panel"},{key:"F3",run:Cy,shift:by,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Cy,shift:by,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Py,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:M,dispatch:N})=>{let D=M.selection;if(D.ranges.length>1||D.main.empty)return!1;let{from:i,to:j}=D.main,t=[],I=0;for(let N=new _O(M.doc,M.sliceDoc(i,j));!N.next().done;){if(t.length>1e3)return!1;N.value.from==i&&(I=t.length),t.push(Pj.range(N.value.from,N.value.to))}return N(M.update({selection:Pj.create(t,I),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let N=sT(M,ty);if(!N){let D=[Iy.of(!0)];null==M.state.field(zy,!1)&&D.push(xt.appendConfig.of([zy,uy])),M.dispatch({effects:D}),N=sT(M,ty)}return N&&N.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:M,dispatch:N})=>{let{ranges:D}=M.selection;if(D.some((M=>M.from===M.to)))return(({state:M,dispatch:N})=>{let{selection:D}=M,i=Pj.create(D.ranges.map((N=>M.wordAt(N.head)||Pj.cursor(N.head))),D.mainIndex);return!i.eq(D)&&(N(M.update({selection:i})),!0)})({state:M,dispatch:N});let i=M.sliceDoc(D[0].from,D[0].to);if(M.selection.ranges.some((N=>M.sliceDoc(N.from,N.to)!=i)))return!1;let j=function(M,N){let{main:D,ranges:i}=M.selection,j=M.wordAt(D.head),t=j&&j.from==D.from&&j.to==D.to;for(let D=!1,j=new _O(M.doc,N,i[i.length-1].to);;){if(j.next(),!j.done){if(D&&i.some((M=>M.from==j.value.from)))continue;if(t){let N=M.wordAt(j.value.from);if(!N||N.from!=j.value.from||N.to!=j.value.to)continue}return j.value}if(D)return null;j=new _O(M.doc,N,0,Math.max(0,i[i.length-1].from-1)),D=!0}}(M,i);return!!j&&(N(M.update({selection:M.selection.addRange(Pj.range(j.from,j.to),!1),effects:Ne.scrollIntoView(j.to)})),!0)},preventDefault:!0}];class By{constructor(M){this.view=M;let N=this.query=M.state.field(hy).query.spec;function D(M,N,D){return HO("button",{class:"cm-button",name:M,onclick:N,type:"button"},D)}this.commit=this.commit.bind(this),this.searchField=HO("input",{value:N.search,placeholder:Jy(M,"Find"),"aria-label":Jy(M,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=HO("input",{value:N.replace,placeholder:Jy(M,"Replace"),"aria-label":Jy(M,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=HO("input",{type:"checkbox",name:"case",form:"",checked:N.caseSensitive,onchange:this.commit}),this.reField=HO("input",{type:"checkbox",name:"re",form:"",checked:N.regexp,onchange:this.commit}),this.wordField=HO("input",{type:"checkbox",name:"word",form:"",checked:N.wholeWord,onchange:this.commit}),this.dom=HO("div",{onkeydown:M=>this.keydown(M),class:"cm-search"},[this.searchField,D("next",(()=>Cy(M)),[Jy(M,"next")]),D("prev",(()=>by(M)),[Jy(M,"previous")]),D("select",(()=>py(M)),[Jy(M,"all")]),HO("label",null,[this.caseField,Jy(M,"match case")]),HO("label",null,[this.reField,Jy(M,"regexp")]),HO("label",null,[this.wordField,Jy(M,"by word")]),...M.state.readOnly?[]:[HO("br"),this.replaceField,D("replace",(()=>my(M)),[Jy(M,"replace")]),D("replaceAll",(()=>Zy(M)),[Jy(M,"replace all")])],HO("button",{name:"close",onclick:()=>Py(M),"aria-label":Jy(M,"close"),type:"button"},["×"])])}commit(){let M=new cy({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});M.eq(this.query)||(this.query=M,this.view.dispatch({effects:Ey.of(M)}))}keydown(M){!function(M,N,D){return Le(Te(M.state),N,M,D)}(this.view,M,"search-panel")?13==M.keyCode&&M.target==this.searchField?(M.preventDefault(),(M.shiftKey?by:Cy)(this.view)):13==M.keyCode&&M.target==this.replaceField&&(M.preventDefault(),my(this.view)):M.preventDefault()}update(M){for(let N of M.transactions)for(let M of N.effects)M.is(Ey)&&!M.value.eq(this.query)&&this.setQuery(M.value)}setQuery(M){this.query=M,this.searchField.value=M.search,this.replaceField.value=M.replace,this.caseField.checked=M.caseSensitive,this.reField.checked=M.regexp,this.wordField.checked=M.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(yy).top}}function Jy(M,N){return M.state.phrase(N)}const Fy=30,Hy=/[\s\.,:;?!]/;function Xy(M,{from:N,to:D}){let i=M.state.doc.lineAt(N),j=M.state.doc.lineAt(D).to,t=Math.max(i.from,N-Fy),I=Math.min(j,D+Fy),z=M.state.sliceDoc(t,I);if(t!=i.from)for(let M=0;M<Fy;M++)if(!Hy.test(z[M+1])&&Hy.test(z[M])){z=z.slice(M);break}if(I!=j)for(let M=z.length-1;M>z.length-Fy;M--)if(!Hy.test(z[M-1])&&Hy.test(z[M])){z=z.slice(0,M);break}return Ne.announce.of(`${M.state.phrase("current match")}. ${z} ${M.state.phrase("on line")} ${i.number}.`)}const $y=Ne.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),_y=[hy,tt.low(Uy),$y];class qy{constructor(M,N,D){this.state=M,this.pos=N,this.explicit=D,this.abortListeners=[]}tokenBefore(M){let N=qA(this.state).resolveInner(this.pos,-1);for(;N&&M.indexOf(N.name)<0;)N=N.parent;return N?{from:N.from,to:this.pos,text:this.state.sliceDoc(N.from,this.pos),type:N.type}:null}matchBefore(M){let N=this.state.doc.lineAt(this.pos),D=Math.max(N.from,this.pos-250),i=N.text.slice(D-N.from,this.pos-N.from),j=i.search(ic(M,!1));return j<0?null:{from:D+j,to:this.pos,text:i.slice(j)}}get aborted(){return null==this.abortListeners}addEventListener(M,N){"abort"==M&&this.abortListeners&&this.abortListeners.push(N)}}function Ky(M){let N=Object.keys(M).join(""),D=/\w/.test(N);return D&&(N=N.replace(/\w/g,"")),`[${D?"\\w":""}${N.replace(/[^\w\s]/g,"\\$&")}]`}function Mc(M){let N=M.map((M=>"string"==typeof M?{label:M}:M)),[D,i]=N.every((M=>/^\w+$/.test(M.label)))?[/\w*$/,/\w+$/]:function(M){let N=Object.create(null),D=Object.create(null);for(let{label:i}of M){N[i[0]]=!0;for(let M=1;M<i.length;M++)D[i[M]]=!0}let i=Ky(N)+Ky(D)+"*$";return[new RegExp("^"+i),new RegExp(i)]}(N);return M=>{let j=M.matchBefore(i);return j||M.explicit?{from:j?j.from:M.pos,options:N,validFor:D}:null}}class Nc{constructor(M,N,D,i){this.completion=M,this.source=N,this.match=D,this.score=i}}function Dc(M){return M.selection.main.from}function ic(M,N){var D;let{source:i}=M,j=N&&"^"!=i[0],t="$"!=i[i.length-1];return j||t?new RegExp(`${j?"^":""}(?:${i})${t?"$":""}`,null!==(D=M.flags)&&void 0!==D?D:M.ignoreCase?"i":""):M}const jc=lt.define();const tc=new WeakMap;function Ic(M){if(!Array.isArray(M))return M;let N=tc.get(M);return N||tc.set(M,N=Mc(M)),N}const zc=xt.define(),uc=xt.define();class gc{constructor(M){this.pattern=M,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let N=0;N<M.length;){let D=kj(M,N),i=Uj(D);this.chars.push(D);let j=M.slice(N,N+i),t=j.toUpperCase();this.folded.push(kj(t==j?j.toLowerCase():t,0)),N+=i}this.astral=M.length!=this.chars.length}ret(M,N){return this.score=M,this.matched=N,this}match(M){if(0==this.pattern.length)return this.ret(-100,[]);if(M.length<this.pattern.length)return null;let{chars:N,folded:D,any:i,precise:j,byWord:t}=this;if(1==N.length){let i=kj(M,0),j=Uj(i),t=j==M.length?0:-100;if(i==N[0]);else{if(i!=D[0])return null;t+=-200}return this.ret(t,[0,j])}let I=M.indexOf(this.pattern);if(0==I)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let z=N.length,u=0;if(I<0){for(let j=0,t=Math.min(M.length,200);j<t&&u<z;){let t=kj(M,j);t!=N[u]&&t!=D[u]||(i[u++]=j),j+=Uj(t)}if(u<z)return null}let g=0,e=0,T=!1,A=0,s=-1,L=-1,O=/[a-z]/.test(M),y=!0;for(let i=0,u=Math.min(M.length,200),c=0;i<u&&e<z;){let u=kj(M,i);I<0&&(g<z&&u==N[g]&&(j[g++]=i),A<z&&(u==N[A]||u==D[A]?(0==A&&(s=i),L=i+1,A++):A=0));let n,l=u<255?u>=48&&u<=57||u>=97&&u<=122?2:u>=65&&u<=90?1:0:(n=wj(u))!=n.toLowerCase()?1:n!=n.toUpperCase()?2:0;(!i||1==l&&O||0==c&&0!=l)&&(N[e]==u||D[e]==u&&(T=!0)?t[e++]=i:t.length&&(y=!1)),c=l,i+=Uj(u)}return e==z&&0==t[0]&&y?this.result((T?-200:0)-100,t,M):A==z&&0==s?this.ret(-200-M.length+(L==M.length?0:-100),[0,L]):I>-1?this.ret(-700-M.length,[I,I+this.pattern.length]):A==z?this.ret(-900-M.length,[s,L]):e==z?this.result((T?-200:0)-100-700+(y?0:-1100),t,M):2==N.length?null:this.result((i[0]?-700:0)-200-1100,i,M)}result(M,N,D){let i=[],j=0;for(let M of N){let N=M+(this.astral?Uj(kj(D,M)):1);j&&i[j-1]==M?i[j-1]=N:(i[j++]=M,i[j++]=N)}return this.ret(M-D.length,i)}}class ec{constructor(M){this.pattern=M,this.matched=[],this.score=0,this.folded=M.toLowerCase()}match(M){if(M.length<this.pattern.length)return null;let N=M.slice(0,this.pattern.length),D=N==this.pattern?0:N.toLowerCase()==this.folded?-200:null;return null==D?null:(this.matched=[0,N.length],this.score=D+(M.length==this.pattern.length?0:-100),this)}}const Tc=Jj.define({combine:M=>pt(M,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:sc,filterStrict:!1,compareCompletions:(M,N)=>M.label.localeCompare(N.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(M,N)=>M&&N,closeOnBlur:(M,N)=>M&&N,icons:(M,N)=>M&&N,tooltipClass:(M,N)=>D=>Ac(M(D),N(D)),optionClass:(M,N)=>D=>Ac(M(D),N(D)),addToOptions:(M,N)=>M.concat(N),filterStrict:(M,N)=>M||N})});function Ac(M,N){return M?N?M+" "+N:M:N}function sc(M,N,D,i,j,t){let I,z,u=M.textDirection==Qz.RTL,g=u,e=!1,T="top",A=N.left-j.left,s=j.right-N.right,L=i.right-i.left,O=i.bottom-i.top;if(g&&A<Math.min(L,s)?g=!1:!g&&s<Math.min(L,A)&&(g=!0),L<=(g?A:s))I=Math.max(j.top,Math.min(D.top,j.bottom-O))-N.top,z=Math.min(400,g?A:s);else{e=!0,z=Math.min(400,(u?N.right:j.right-N.left)-30);let M=j.bottom-N.bottom;M>=O||M>N.top?I=D.bottom-N.top:(T="bottom",I=N.bottom-D.top)}return{style:`${T}: ${I/((N.bottom-N.top)/t.offsetHeight)}px; max-width: ${z/((N.right-N.left)/t.offsetWidth)}px`,class:"cm-completionInfo-"+(e?u?"left-narrow":"right-narrow":g?"left":"right")}}function Lc(M,N,D){if(M<=D)return{from:0,to:M};if(N<0&&(N=0),N<=M>>1){let M=Math.floor(N/D);return{from:M*D,to:(M+1)*D}}let i=Math.floor((M-N)/D);return{from:M-(i+1)*D,to:M-i*D}}class Oc{constructor(M,N,D){this.view=M,this.stateField=N,this.applyCompletion=D,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:M=>this.placeInfo(M),key:this},this.space=null,this.currentClass="";let i=M.state.field(N),{options:j,selected:t}=i.open,I=M.state.facet(Tc);this.optionContent=function(M){let N=M.addToOptions.slice();return M.icons&&N.push({render(M){let N=document.createElement("div");return N.classList.add("cm-completionIcon"),M.type&&N.classList.add(...M.type.split(/\s+/g).map((M=>"cm-completionIcon-"+M))),N.setAttribute("aria-hidden","true"),N},position:20}),N.push({render(M,N,D,i){let j=document.createElement("span");j.className="cm-completionLabel";let t=M.displayLabel||M.label,I=0;for(let M=0;M<i.length;){let N=i[M++],D=i[M++];N>I&&j.appendChild(document.createTextNode(t.slice(I,N)));let z=j.appendChild(document.createElement("span"));z.appendChild(document.createTextNode(t.slice(N,D))),z.className="cm-completionMatchedText",I=D}return I<t.length&&j.appendChild(document.createTextNode(t.slice(I))),j},position:50},{render(M){if(!M.detail)return null;let N=document.createElement("span");return N.className="cm-completionDetail",N.textContent=M.detail,N},position:80}),N.sort(((M,N)=>M.position-N.position)).map((M=>M.render))}(I),this.optionClass=I.optionClass,this.tooltipClass=I.tooltipClass,this.range=Lc(j.length,t,I.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(M.state),this.dom.addEventListener("mousedown",(D=>{let{options:i}=M.state.field(N).open;for(let N,j=D.target;j&&j!=this.dom;j=j.parentNode)if("LI"==j.nodeName&&(N=/-(\d+)$/.exec(j.id))&&+N[1]<i.length)return this.applyCompletion(M,i[+N[1]]),void D.preventDefault()})),this.dom.addEventListener("focusout",(N=>{let D=M.state.field(this.stateField,!1);D&&D.tooltip&&M.state.facet(Tc).closeOnBlur&&N.relatedTarget!=M.contentDOM&&M.dispatch({effects:uc.of(null)})})),this.showOptions(j,i.id)}mount(){this.updateSel()}showOptions(M,N){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(M,N,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(M){var N;let D=M.state.field(this.stateField),i=M.startState.field(this.stateField);if(this.updateTooltipClass(M.state),D!=i){let{options:j,selected:t,disabled:I}=D.open;i.open&&i.open.options==j||(this.range=Lc(j.length,t,M.state.facet(Tc).maxRenderedOptions),this.showOptions(j,D.id)),this.updateSel(),I!=(null===(N=i.open)||void 0===N?void 0:N.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!I)}}updateTooltipClass(M){let N=this.tooltipClass(M);if(N!=this.currentClass){for(let M of this.currentClass.split(" "))M&&this.dom.classList.remove(M);for(let M of N.split(" "))M&&this.dom.classList.add(M);this.currentClass=N}}positioned(M){this.space=M,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let M=this.view.state.field(this.stateField),N=M.open;if((N.selected>-1&&N.selected<this.range.from||N.selected>=this.range.to)&&(this.range=Lc(N.options.length,N.selected,this.view.state.facet(Tc).maxRenderedOptions),this.showOptions(N.options,M.id)),this.updateSelectedOption(N.selected)){this.destroyInfo();let{completion:D}=N.options[N.selected],{info:i}=D;if(!i)return;let j="string"==typeof i?document.createTextNode(i):i(D);if(!j)return;"then"in j?j.then((N=>{N&&this.view.state.field(this.stateField,!1)==M&&this.addInfoPane(N,D)})).catch((M=>Nu(this.view.state,M,"completion info"))):this.addInfoPane(j,D)}}addInfoPane(M,N){this.destroyInfo();let D=this.info=document.createElement("div");if(D.className="cm-tooltip cm-completionInfo",null!=M.nodeType)D.appendChild(M),this.infoDestroy=null;else{let{dom:N,destroy:i}=M;D.appendChild(N),this.infoDestroy=i||null}this.dom.appendChild(D),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(M){let N=null;for(let D=this.list.firstChild,i=this.range.from;D;D=D.nextSibling,i++)"LI"==D.nodeName&&D.id?i==M?D.hasAttribute("aria-selected")||(D.setAttribute("aria-selected","true"),N=D):D.hasAttribute("aria-selected")&&D.removeAttribute("aria-selected"):i--;return N&&function(M,N){let D=M.getBoundingClientRect(),i=N.getBoundingClientRect(),j=D.height/M.offsetHeight;i.top<D.top?M.scrollTop-=(D.top-i.top)/j:i.bottom>D.bottom&&(M.scrollTop+=(i.bottom-D.bottom)/j)}(this.list,N),N}measureInfo(){let M=this.dom.querySelector("[aria-selected]");if(!M||!this.info)return null;let N=this.dom.getBoundingClientRect(),D=this.info.getBoundingClientRect(),i=M.getBoundingClientRect(),j=this.space;if(!j){let M=this.dom.ownerDocument.defaultView||window;j={left:0,top:0,right:M.innerWidth,bottom:M.innerHeight}}return i.top>Math.min(j.bottom,N.bottom)-10||i.bottom<Math.max(j.top,N.top)+10?null:this.view.state.facet(Tc).positionInfo(this.view,N,i,D,j,this.dom)}placeInfo(M){this.info&&(M?(M.style&&(this.info.style.cssText=M.style),this.info.className="cm-tooltip cm-completionInfo "+(M.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(M,N,D){const i=document.createElement("ul");i.id=N,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions"));let j=null;for(let t=D.from;t<D.to;t++){let{completion:I,match:z}=M[t],{section:u}=I;if(u){let M="string"==typeof u?u:u.name;if(M!=j&&(t>D.from||0==D.from))if(j=M,"string"!=typeof u&&u.header)i.appendChild(u.header(u));else{i.appendChild(document.createElement("completion-section")).textContent=M}}const g=i.appendChild(document.createElement("li"));g.id=N+"-"+t,g.setAttribute("role","option");let e=this.optionClass(I);e&&(g.className=e);for(let M of this.optionContent){let N=M(I,this.view.state,this.view,z);N&&g.appendChild(N)}}return D.from&&i.classList.add("cm-completionListIncompleteTop"),D.to<M.length&&i.classList.add("cm-completionListIncompleteBottom"),i}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function yc(M,N){return D=>new Oc(D,M,N)}function cc(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class nc{constructor(M,N,D,i,j,t){this.options=M,this.attrs=N,this.tooltip=D,this.timestamp=i,this.selected=j,this.disabled=t}setSelected(M,N){return M==this.selected||M>=this.options.length?this:new nc(this.options,rc(N,M),this.tooltip,this.timestamp,M,this.disabled)}static build(M,N,D,i,j){let t=function(M,N){let D=[],i=null,j=M=>{D.push(M);let{section:N}=M.completion;if(N){i||(i=[]);let M="string"==typeof N?N:N.name;i.some((N=>N.name==M))||i.push("string"==typeof N?{name:M}:N)}},t=N.facet(Tc);for(let i of M)if(i.hasResult()){let M=i.result.getMatch;if(!1===i.result.filter)for(let N of i.result.options)j(new Nc(N,i.source,M?M(N):[],1e9-D.length));else{let D,I=N.sliceDoc(i.from,i.to),z=t.filterStrict?new ec(I):new gc(I);for(let N of i.result.options)if(D=z.match(N.label)){let t=N.displayLabel?M?M(N,D.matched):[]:D.matched;j(new Nc(N,i.source,t,D.score+(N.boost||0)))}}}if(i){let M=Object.create(null),N=0,j=(M,N)=>{var D,i;return(null!==(D=M.rank)&&void 0!==D?D:1e9)-(null!==(i=N.rank)&&void 0!==i?i:1e9)||(M.name<N.name?-1:1)};for(let D of i.sort(j))N-=1e5,M[D.name]=N;for(let N of D){let{section:D}=N.completion;D&&(N.score+=M["string"==typeof D?D:D.name])}}let I=[],z=null,u=t.compareCompletions;for(let M of D.sort(((M,N)=>N.score-M.score||u(M.completion,N.completion)))){let N=M.completion;!z||z.label!=N.label||z.detail!=N.detail||null!=z.type&&null!=N.type&&z.type!=N.type||z.apply!=N.apply||z.boost!=N.boost?I.push(M):cc(M.completion)>cc(z)&&(I[I.length-1]=M),z=M.completion}return I}(M,N);if(!t.length)return i&&M.some((M=>1==M.state))?new nc(i.options,i.attrs,i.tooltip,i.timestamp,i.selected,!0):null;let I=N.facet(Tc).selectOnOpen?0:-1;if(i&&i.selected!=I&&-1!=i.selected){let M=i.options[i.selected].completion;for(let N=0;N<t.length;N++)if(t[N].completion==M){I=N;break}}return new nc(t,rc(D,I),{pos:M.reduce(((M,N)=>N.hasResult()?Math.min(M,N.from):M),1e8),create:wc,above:j.aboveCursor},i?i.timestamp:Date.now(),I,!1)}map(M){return new nc(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class lc{constructor(M,N,D){this.active=M,this.id=N,this.open=D}static start(){return new lc(xc,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(M){let{state:N}=M,D=N.facet(Tc),i=(D.override||N.languageDataAt("autocomplete",Dc(N)).map(Ic)).map((N=>{let i=this.active.find((M=>M.source==N))||new Qc(N,this.active.some((M=>0!=M.state))?1:0);return i.update(M,D)}));i.length==this.active.length&&i.every(((M,N)=>M==this.active[N]))&&(i=this.active);let j=this.open;j&&M.docChanged&&(j=j.map(M.changes)),M.selection||i.some((N=>N.hasResult()&&M.changes.touchesRange(N.from,N.to)))||!function(M,N){if(M==N)return!0;for(let D=0,i=0;;){for(;D<M.length&&!M[D].hasResult;)D++;for(;i<N.length&&!N[i].hasResult;)i++;let j=D==M.length,t=i==N.length;if(j||t)return j==t;if(M[D++].result!=N[i++].result)return!1}}(i,this.active)?j=nc.build(i,N,this.id,j,D):j&&j.disabled&&!i.some((M=>1==M.state))&&(j=null),!j&&i.every((M=>1!=M.state))&&i.some((M=>M.hasResult()))&&(i=i.map((M=>M.hasResult()?new Qc(M.source,0):M)));for(let N of M.effects)N.is(hc)&&(j=j&&j.setSelected(N.value,this.id));return i==this.active&&j==this.open?this:new lc(i,this.id,j)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:oc}}const oc={"aria-autocomplete":"list"};function rc(M,N){let D={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return N>-1&&(D["aria-activedescendant"]=M+"-"+N),D}const xc=[];function ac(M,N){if(M.isUserEvent("input.complete")){let D=M.annotation(jc);if(D&&N.activateOnCompletion(D))return"input"}return M.isUserEvent("input.type")?"input":M.isUserEvent("delete.backward")?"delete":null}class Qc{constructor(M,N,D=-1){this.source=M,this.state=N,this.explicitPos=D}hasResult(){return!1}update(M,N){let D=ac(M,N),i=this;D?i=i.handleUserEvent(M,D,N):M.docChanged?i=i.handleChange(M):M.selection&&0!=i.state&&(i=new Qc(i.source,0));for(let N of M.effects)if(N.is(zc))i=new Qc(i.source,1,N.value?Dc(M.state):-1);else if(N.is(uc))i=new Qc(i.source,0);else if(N.is(Sc))for(let M of N.value)M.source==i.source&&(i=M);return i}handleUserEvent(M,N,D){return"delete"!=N&&D.activateOnTyping?new Qc(this.source,1):this.map(M.changes)}handleChange(M){return M.changes.touchesRange(Dc(M.startState))?new Qc(this.source,0):this.map(M.changes)}map(M){return M.empty||this.explicitPos<0?this:new Qc(this.source,this.state,M.mapPos(this.explicitPos))}}class Ec extends Qc{constructor(M,N,D,i,j){super(M,2,N),this.result=D,this.from=i,this.to=j}hasResult(){return!0}handleUserEvent(M,N,D){var i;let j=this.result;j.map&&!M.changes.empty&&(j=j.map(j,M.changes));let t=M.changes.mapPos(this.from),I=M.changes.mapPos(this.to,1),z=Dc(M.state);if((this.explicitPos<0?z<=t:z<this.from)||z>I||!j||"delete"==N&&Dc(M.startState)==this.from)return new Qc(this.source,"input"==N&&D.activateOnTyping?1:0);let u=this.explicitPos<0?-1:M.changes.mapPos(this.explicitPos);return function(M,N,D,i){if(!M)return!1;let j=N.sliceDoc(D,i);return"function"==typeof M?M(j,D,i,N):ic(M,!0).test(j)}(j.validFor,M.state,t,I)?new Ec(this.source,u,j,t,I):j.update&&(j=j.update(j,t,I,new qy(M.state,z,u>=0)))?new Ec(this.source,u,j,j.from,null!==(i=j.to)&&void 0!==i?i:Dc(M.state)):new Qc(this.source,1,u)}handleChange(M){return M.changes.touchesRange(this.from,this.to)?new Qc(this.source,0):this.map(M.changes)}map(M){if(M.empty)return this;return(this.result.map?this.result.map(this.result,M):this.result)?new Ec(this.source,this.explicitPos<0?-1:M.mapPos(this.explicitPos),this.result,M.mapPos(this.from),M.mapPos(this.to,1)):new Qc(this.source,0)}}const Sc=xt.define({map:(M,N)=>M.map((M=>M.map(N)))}),hc=xt.define(),dc=Kj.define({create:()=>lc.start(),update:(M,N)=>M.update(N),provide:M=>[iT.from(M,(M=>M.tooltip)),Ne.contentAttributes.from(M,(M=>M.attrs))]});function kc(M,N){const D=N.completion.apply||N.completion.label;let i=M.state.field(dc).active.find((M=>M.source==N.source));return i instanceof Ec&&("string"==typeof D?M.dispatch(Object.assign(Object.assign({},function(M,N,D,i){let{main:j}=M.selection,t=D-j.from,I=i-j.from;return Object.assign(Object.assign({},M.changeByRange((z=>z!=j&&D!=i&&M.sliceDoc(z.from+t,z.from+I)!=M.sliceDoc(D,i)?{range:z}:{changes:{from:z.from+t,to:i==j.from?z.to:z.from+I,insert:N},range:Pj.cursor(z.from+t+N.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,D,i.from,i.to)),{annotations:jc.of(N.completion)})):D(M,N.completion,i.from,i.to),!0)}const wc=yc(dc,kc);function Uc(M,N="option"){return D=>{let i=D.state.field(dc,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<D.state.facet(Tc).interactionDelay)return!1;let j,t=1;"page"==N&&(j=eT(D,i.open.tooltip))&&(t=Math.max(2,Math.floor(j.dom.offsetHeight/j.dom.querySelector("li").offsetHeight)-1));let{length:I}=i.open.options,z=i.open.selected>-1?i.open.selected+t*(M?1:-1):M?0:I-1;return z<0?z="page"==N?0:I-1:z>=I&&(z="page"==N?I-1:0),D.dispatch({effects:hc.of(z)}),!0}}class Yc{constructor(M,N){this.active=M,this.context=N,this.time=Date.now(),this.updates=[],this.done=void 0}}const Cc=tu.fromClass(class{constructor(M){this.view=M,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let N of M.state.field(dc).active)1==N.state&&this.startQuery(N)}update(M){let N=M.state.field(dc),D=M.state.facet(Tc);if(!M.selectionSet&&!M.docChanged&&M.startState.field(dc)==N)return;let i=M.transactions.some((M=>(M.selection||M.docChanged)&&!ac(M,D)));for(let N=0;N<this.running.length;N++){let D=this.running[N];if(i||D.updates.length+M.transactions.length>50&&Date.now()-D.time>1e3){for(let M of D.context.abortListeners)try{M()}catch(M){Nu(this.view.state,M)}D.context.abortListeners=null,this.running.splice(N--,1)}else D.updates.push(...M.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),M.transactions.some((M=>M.effects.some((M=>M.is(zc)))))&&(this.pendingStart=!0);let j=this.pendingStart?50:D.activateOnTypingDelay;if(this.debounceUpdate=N.active.some((M=>1==M.state&&!this.running.some((N=>N.active.source==M.source))))?setTimeout((()=>this.startUpdate()),j):-1,0!=this.composing)for(let N of M.transactions)"input"==ac(N,D)?this.composing=2:2==this.composing&&N.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:M}=this.view,N=M.field(dc);for(let M of N.active)1!=M.state||this.running.some((N=>N.active.source==M.source))||this.startQuery(M)}startQuery(M){let{state:N}=this.view,D=Dc(N),i=new qy(N,D,M.explicitPos==D),j=new Yc(M,i);this.running.push(j),Promise.resolve(M.source(i)).then((M=>{j.context.aborted||(j.done=M||null,this.scheduleAccept())}),(M=>{this.view.dispatch({effects:uc.of(null)}),Nu(this.view.state,M)}))}scheduleAccept(){this.running.every((M=>void 0!==M.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(Tc).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let N=[],D=this.view.state.facet(Tc);for(let i=0;i<this.running.length;i++){let j=this.running[i];if(void 0===j.done)continue;if(this.running.splice(i--,1),j.done){let i=new Ec(j.active.source,j.active.explicitPos,j.done,j.done.from,null!==(M=j.done.to)&&void 0!==M?M:Dc(j.updates.length?j.updates[0].startState:this.view.state));for(let M of j.updates)i=i.update(M,D);if(i.hasResult()){N.push(i);continue}}let t=this.view.state.field(dc).active.find((M=>M.source==j.active.source));if(t&&1==t.state)if(null==j.done){let M=new Qc(j.active.source,0);for(let N of j.updates)M=M.update(N,D);1!=M.state&&N.push(M)}else this.startQuery(t)}N.length&&this.view.dispatch({effects:Sc.of(N)})}},{eventHandlers:{blur(M){let N=this.view.state.field(dc,!1);if(N&&N.tooltip&&this.view.state.facet(Tc).closeOnBlur){let D=N.open&&eT(this.view,N.open.tooltip);D&&D.dom.contains(M.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:uc.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:zc.of(!1)})),20),this.composing=0}}}),bc="object"==typeof navigator&&/Win/.test(navigator.platform),pc=tt.highest(Ne.domEventHandlers({keydown(M,N){let D=N.state.field(dc,!1);if(!D||!D.open||D.open.disabled||D.open.selected<0||M.key.length>1||M.ctrlKey&&(!bc||!M.altKey)||M.metaKey)return!1;let i=D.open.options[D.open.selected],j=D.active.find((M=>M.source==i.source)),t=i.completion.commitCharacters||j.result.commitCharacters;return t&&t.indexOf(M.key)>-1&&kc(N,i),!1}})),mc=Ne.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 Zc{constructor(M,N,D,i){this.field=M,this.line=N,this.from=D,this.to=i}}class fc{constructor(M,N,D){this.field=M,this.from=N,this.to=D}map(M){let N=M.mapPos(this.from,-1,Cj.TrackDel),D=M.mapPos(this.to,1,Cj.TrackDel);return null==N||null==D?null:new fc(this.field,N,D)}}class vc{constructor(M,N){this.lines=M,this.fieldPositions=N}instantiate(M,N){let D=[],i=[N],j=M.doc.lineAt(N),t=/^\s*/.exec(j.text)[0];for(let j of this.lines){if(D.length){let D=t,I=/^\t*/.exec(j)[0].length;for(let N=0;N<I;N++)D+=M.facet(es);i.push(N+D.length-I),j=D+j.slice(I)}D.push(j),N+=j.length+1}let I=this.fieldPositions.map((M=>new fc(M.field,i[M.line]+M.from,i[M.line]+M.to)));return{text:D,ranges:I}}static parse(M){let N,D=[],i=[],j=[];for(let t of M.split(/\r\n?|\n/)){for(;N=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(t);){let M=N[1]?+N[1]:null,I=N[2]||N[3]||"",z=-1;for(let N=0;N<D.length;N++)(null!=M?D[N].seq==M:I&&D[N].name==I)&&(z=N);if(z<0){let N=0;for(;N<D.length&&(null==M||null!=D[N].seq&&D[N].seq<M);)N++;D.splice(N,0,{seq:M,name:I}),z=N;for(let M of j)M.field>=z&&M.field++}j.push(new Zc(z,i.length,N.index,N.index+I.length)),t=t.slice(0,N.index)+I+t.slice(N.index+N[0].length)}for(let M;M=/\\([{}])/.exec(t);){t=t.slice(0,M.index)+M[1]+t.slice(M.index+M[0].length);for(let N of j)N.line==i.length&&N.from>M.index&&(N.from--,N.to--)}i.push(t)}return new vc(i,j)}}let Wc=Oz.widget({widget:new class extends sz{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Vc=Oz.mark({class:"cm-snippetField"});class Gc{constructor(M,N){this.ranges=M,this.active=N,this.deco=Oz.set(M.map((M=>(M.from==M.to?Wc:Vc).range(M.from,M.to))))}map(M){let N=[];for(let D of this.ranges){let i=D.map(M);if(!i)return null;N.push(i)}return new Gc(N,this.active)}selectionInsideField(M){return M.ranges.every((M=>this.ranges.some((N=>N.field==this.active&&N.from<=M.from&&N.to>=M.to))))}}const Pc=xt.define({map:(M,N)=>M&&M.map(N)}),Rc=xt.define(),Bc=Kj.define({create:()=>null,update(M,N){for(let D of N.effects){if(D.is(Pc))return D.value;if(D.is(Rc)&&M)return new Gc(M.ranges,D.value)}return M&&N.docChanged&&(M=M.map(N.changes)),M&&N.selection&&!M.selectionInsideField(N.selection)&&(M=null),M},provide:M=>Ne.decorations.from(M,(M=>M?M.deco:Oz.none))});function Jc(M,N){return Pj.create(M.filter((M=>M.field==N)).map((M=>Pj.range(M.from,M.to))))}function Fc(M){let N=vc.parse(M);return(M,D,i,j)=>{let{text:t,ranges:I}=N.instantiate(M.state,i),z={changes:{from:i,to:j,insert:ej.of(t)},scrollIntoView:!0,annotations:D?[jc.of(D),at.userEvent.of("input.complete")]:void 0};if(I.length&&(z.selection=Jc(I,0)),I.some((M=>M.field>0))){let N=new Gc(I,0),D=z.effects=[Pc.of(N)];void 0===M.state.field(Bc,!1)&&D.push(xt.appendConfig.of([Bc,_c,Kc,mc]))}M.dispatch(M.state.update(z))}}function Hc(M){return({state:N,dispatch:D})=>{let i=N.field(Bc,!1);if(!i||M<0&&0==i.active)return!1;let j=i.active+M,t=M>0&&!i.ranges.some((N=>N.field==j+M));return D(N.update({selection:Jc(i.ranges,j),effects:Pc.of(t?null:new Gc(i.ranges,j)),scrollIntoView:!0})),!0}}const Xc=[{key:"Tab",run:Hc(1),shift:Hc(-1)},{key:"Escape",run:({state:M,dispatch:N})=>!!M.field(Bc,!1)&&(N(M.update({effects:Pc.of(null)})),!0)}],$c=Jj.define({combine:M=>M.length?M[0]:Xc}),_c=tt.highest(ge.compute([$c],(M=>M.facet($c))));function qc(M,N){return Object.assign(Object.assign({},N),{apply:Fc(M)})}const Kc=Ne.domEventHandlers({mousedown(M,N){let D,i=N.state.field(Bc,!1);if(!i||null==(D=N.posAtCoords({x:M.clientX,y:M.clientY})))return!1;let j=i.ranges.find((M=>M.from<=D&&M.to>=D));return!(!j||j.field==i.active)&&(N.dispatch({selection:Jc(i.ranges,j.field),effects:Pc.of(i.ranges.some((M=>M.field>j.field))?new Gc(i.ranges,j.field):null),scrollIntoView:!0}),!0)}}),Mn={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Nn=xt.define({map(M,N){let D=N.mapPos(M,-1,Cj.TrackAfter);return null==D?void 0:D}}),Dn=new class extends mt{};Dn.startSide=1,Dn.endSide=-1;const jn=Kj.define({create:()=>Wt.empty,update(M,N){if(M=M.map(N.changes),N.selection){let D=N.state.doc.lineAt(N.selection.main.head);M=M.update({filter:M=>M>=D.from&&M<=D.to})}for(let D of N.effects)D.is(Nn)&&(M=M.update({add:[Dn.range(D.value,D.value+1)]}));return M}});const tn="()[]{}<>";function In(M){for(let N=0;N<tn.length;N+=2)if(tn.charCodeAt(N)==M)return tn.charAt(N+1);return wj(M<128?M:M+1)}function zn(M,N){return M.languageDataAt("closeBrackets",N)[0]||Mn}const un="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),gn=Ne.inputHandler.of(((M,N,D,i)=>{if((un?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let j=M.state.selection.main;if(i.length>2||2==i.length&&1==Uj(kj(i,0))||N!=j.from||D!=j.to)return!1;let t=function(M,N){let D=zn(M,M.selection.main.head),i=D.brackets||Mn.brackets;for(let j of i){let t=In(kj(j,0));if(N==j)return t==j?On(M,j,i.indexOf(j+j+j)>-1,D):sn(M,j,t,D.before||Mn.before);if(N==t&&Tn(M,M.selection.main.from))return Ln(M,j,t)}return null}(M.state,i);return!!t&&(M.dispatch(t),!0)})),en=[{key:"Backspace",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=zn(M,M.selection.main.head).brackets||Mn.brackets,i=null,j=M.changeByRange((N=>{if(N.empty){let i=function(M,N){let D=M.sliceString(N-2,N);return Uj(kj(D,0))==D.length?D:D.slice(1)}(M.doc,N.head);for(let j of D)if(j==i&&An(M.doc,N.head)==In(kj(j,0)))return{changes:{from:N.head-j.length,to:N.head+j.length},range:Pj.cursor(N.head-j.length)}}return{range:i=N}}));return i||N(M.update(j,{scrollIntoView:!0,userEvent:"delete.backward"})),!i}}];function Tn(M,N){let D=!1;return M.field(jn).between(0,M.doc.length,(M=>{M==N&&(D=!0)})),D}function An(M,N){let D=M.sliceString(N,N+2);return D.slice(0,Uj(kj(D,0)))}function sn(M,N,D,i){let j=null,t=M.changeByRange((t=>{if(!t.empty)return{changes:[{insert:N,from:t.from},{insert:D,from:t.to}],effects:Nn.of(t.to+N.length),range:Pj.range(t.anchor+N.length,t.head+N.length)};let I=An(M.doc,t.head);return!I||/\s/.test(I)||i.indexOf(I)>-1?{changes:{insert:N+D,from:t.head},effects:Nn.of(t.head+N.length),range:Pj.cursor(t.head+N.length)}:{range:j=t}}));return j?null:M.update(t,{scrollIntoView:!0,userEvent:"input.type"})}function Ln(M,N,D){let i=null,j=M.changeByRange((N=>N.empty&&An(M.doc,N.head)==D?{changes:{from:N.head,to:N.head+D.length,insert:D},range:Pj.cursor(N.head+D.length)}:i={range:N}));return i?null:M.update(j,{scrollIntoView:!0,userEvent:"input.type"})}function On(M,N,D,i){let j=i.stringPrefixes||Mn.stringPrefixes,t=null,I=M.changeByRange((i=>{if(!i.empty)return{changes:[{insert:N,from:i.from},{insert:N,from:i.to}],effects:Nn.of(i.to+N.length),range:Pj.range(i.anchor+N.length,i.head+N.length)};let I,z=i.head,u=An(M.doc,z);if(u==N){if(yn(M,z))return{changes:{insert:N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)};if(Tn(M,z)){let i=D&&M.sliceDoc(z,z+3*N.length)==N+N+N?N+N+N:N;return{changes:{from:z,to:z+i.length,insert:i},range:Pj.cursor(z+i.length)}}}else{if(D&&M.sliceDoc(z-2*N.length,z)==N+N&&(I=cn(M,z-2*N.length,j))>-1&&yn(M,I))return{changes:{insert:N+N+N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)};if(M.charCategorizer(z)(u)!=wt.Word&&cn(M,z,j)>-1&&!function(M,N,D,i){let j=qA(M).resolveInner(N,-1),t=i.reduce(((M,N)=>Math.max(M,N.length)),0);for(let I=0;I<5;I++){let I=M.sliceDoc(j.from,Math.min(j.to,j.from+D.length+t)),z=I.indexOf(D);if(!z||z>-1&&i.indexOf(I.slice(0,z))>-1){let N=j.firstChild;for(;N&&N.from==j.from&&N.to-N.from>D.length+z;){if(M.sliceDoc(N.to-D.length,N.to)==D)return!1;N=N.firstChild}return!0}let u=j.to==N&&j.parent;if(!u)break;j=u}return!1}(M,z,N,j))return{changes:{insert:N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)}}return{range:t=i}}));return t?null:M.update(I,{scrollIntoView:!0,userEvent:"input.type"})}function yn(M,N){let D=qA(M).resolveInner(N+1);return D.parent&&D.from==N}function cn(M,N,D){let i=M.charCategorizer(N);if(i(M.sliceDoc(N-1,N))!=wt.Word)return N;for(let j of D){let D=N-j.length;if(M.sliceDoc(D,N)==j&&i(M.sliceDoc(D-1,D))!=wt.Word)return D}return-1}function nn(M={}){return[pc,dc,Tc.of(M),Cc,on,mc]}const ln=[{key:"Ctrl-Space",run:M=>!!M.state.field(dc,!1)&&(M.dispatch({effects:zc.of(!0)}),!0)},{key:"Escape",run:M=>{let N=M.state.field(dc,!1);return!(!N||!N.active.some((M=>0!=M.state)))&&(M.dispatch({effects:uc.of(null)}),!0)}},{key:"ArrowDown",run:Uc(!0)},{key:"ArrowUp",run:Uc(!1)},{key:"PageDown",run:Uc(!0,"page")},{key:"PageUp",run:Uc(!1,"page")},{key:"Enter",run:M=>{let N=M.state.field(dc,!1);return!(M.state.readOnly||!N||!N.open||N.open.selected<0||N.open.disabled||Date.now()-N.open.timestamp<M.state.facet(Tc).interactionDelay)&&kc(M,N.open.options[N.open.selected])}}],on=tt.highest(ge.computeN([Tc],(M=>M.facet(Tc).defaultKeymap?[ln]:[])));class rn{constructor(M,N,D){this.from=M,this.to=N,this.diagnostic=D}}class xn{constructor(M,N,D){this.diagnostics=M,this.panel=N,this.selected=D}static init(M,N,D){let i=M,j=D.facet(Cn).markerFilter;j&&(i=j(i,D));let t=Oz.set(i.map((M=>M.from==M.to||M.from==M.to-1&&D.doc.lineAt(M.from).to==M.from?Oz.widget({widget:new mn(M),diagnostic:M}).range(M.from):Oz.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M,inclusive:!0}).range(M.from,M.to))),!0);return new xn(t,N,an(t))}}function an(M,N=null,D=0){let i=null;return M.between(D,1e9,((M,D,{spec:j})=>{if(!N||j.diagnostic==N)return i=new rn(M,D,j.diagnostic),!1})),i}const Qn=xt.define(),En=xt.define(),Sn=xt.define(),hn=Kj.define({create:()=>new xn(Oz.none,null,null),update(M,N){if(N.docChanged){let D=M.diagnostics.map(N.changes),i=null;if(M.selected){let j=N.changes.mapPos(M.selected.from,1);i=an(D,M.selected.diagnostic,j)||an(D,null,j)}M=new xn(D,M.panel,i)}for(let D of N.effects)D.is(Qn)?M=xn.init(D.value,M.panel,N.state):D.is(En)?M=new xn(M.diagnostics,D.value?fn.open:null,M.selected):D.is(Sn)&&(M=new xn(M.diagnostics,M.panel,D.value));return M},provide:M=>[cT.from(M,(M=>M.panel)),Ne.decorations.from(M,(M=>M.diagnostics))]}),dn=Oz.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function kn(M,N,D){let{diagnostics:i}=M.state.field(hn),j=[],t=2e8,I=0;i.between(N-(D<0?1:0),N+(D>0?1:0),((M,i,{spec:z})=>{N>=M&&N<=i&&(M==i||(N>M||D>0)&&(N<i||D<0))&&(j.push(z.diagnostic),t=Math.min(M,t),I=Math.max(i,I))}));let z=M.state.facet(Cn).tooltipFilter;return z&&(j=z(j,M.state)),j.length?{pos:t,end:I,above:M.state.doc.lineAt(t).to<I,create:()=>({dom:wn(M,j)})}:null}function wn(M,N){return HO("ul",{class:"cm-tooltip-lint"},N.map((N=>pn(M,N,!1))))}const Un=M=>{let N=M.state.field(hn,!1);return!(!N||!N.panel)&&(M.dispatch({effects:En.of(!1)}),!0)},Yn=[{key:"Mod-Shift-m",run:M=>{let N=M.state.field(hn,!1);var D,i;N&&N.panel||M.dispatch({effects:(D=M.state,i=[En.of(!0)],D.field(hn,!1)?i:i.concat(xt.appendConfig.of(Vn)))});let j=sT(M,fn.open);return j&&j.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let N=M.state.field(hn,!1);if(!N)return!1;let D=M.state.selection.main,i=N.diagnostics.iter(D.to+1);return!(!i.value&&(i=N.diagnostics.iter(0),!i.value||i.from==D.from&&i.to==D.to))&&(M.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)}}],Cn=Jj.define({combine:M=>Object.assign({sources:M.map((M=>M.source)).filter((M=>null!=M))},pt(M.map((M=>M.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(M,N)=>M?N?D=>M(D)||N(D):M:N}))});function bn(M){let N=[];if(M)M:for(let{name:D}of M){for(let M=0;M<D.length;M++){let i=D[M];if(/[a-zA-Z]/.test(i)&&!N.some((M=>M.toLowerCase()==i.toLowerCase()))){N.push(i);continue M}}N.push("")}return N}function pn(M,N,D){var i;let j=D?bn(N.actions):[];return HO("li",{class:"cm-diagnostic cm-diagnostic-"+N.severity},HO("span",{class:"cm-diagnosticText"},N.renderMessage?N.renderMessage(M):N.message),null===(i=N.actions)||void 0===i?void 0:i.map(((D,i)=>{let t=!1,I=i=>{if(i.preventDefault(),t)return;t=!0;let j=an(M.state.field(hn).diagnostics,N);j&&D.apply(M,j.from,j.to)},{name:z}=D,u=j[i]?z.indexOf(j[i]):-1,g=u<0?z:[z.slice(0,u),HO("u",z.slice(u,u+1)),z.slice(u+1)];return HO("button",{type:"button",class:"cm-diagnosticAction",onclick:I,onmousedown:I,"aria-label":` Action: ${z}${u<0?"":` (access key "${j[i]})"`}.`},g)})),N.source&&HO("div",{class:"cm-diagnosticSource"},N.source))}class mn extends sz{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return HO("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class Zn{constructor(M,N){this.diagnostic=N,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=pn(M,N,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class fn{constructor(M){this.view=M,this.items=[];this.list=HO("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:N=>{if(27==N.keyCode)Un(this.view),this.view.focus();else if(38==N.keyCode||33==N.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==N.keyCode||34==N.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==N.keyCode)this.moveSelection(0);else if(35==N.keyCode)this.moveSelection(this.items.length-1);else if(13==N.keyCode)this.view.focus();else{if(!(N.keyCode>=65&&N.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:D}=this.items[this.selectedIndex],i=bn(D.actions);for(let j=0;j<i.length;j++)if(i[j].toUpperCase().charCodeAt(0)==N.keyCode){let N=an(this.view.state.field(hn).diagnostics,D);N&&D.actions[j].apply(M,N.from,N.to)}}}N.preventDefault()},onclick:M=>{for(let N=0;N<this.items.length;N++)this.items[N].dom.contains(M.target)&&this.moveSelection(N)}}),this.dom=HO("div",{class:"cm-panel-lint"},this.list,HO("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Un(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(hn).selected;if(!M)return-1;for(let N=0;N<this.items.length;N++)if(this.items[N].diagnostic==M.diagnostic)return N;return-1}update(){let{diagnostics:M,selected:N}=this.view.state.field(hn),D=0,i=!1,j=null;for(M.between(0,this.view.state.doc.length,((M,t,{spec:I})=>{let z,u=-1;for(let M=D;M<this.items.length;M++)if(this.items[M].diagnostic==I.diagnostic){u=M;break}u<0?(z=new Zn(this.view,I.diagnostic),this.items.splice(D,0,z),i=!0):(z=this.items[u],u>D&&(this.items.splice(D,u-D),i=!0)),N&&z.diagnostic==N.diagnostic?z.dom.hasAttribute("aria-selected")||(z.dom.setAttribute("aria-selected","true"),j=z):z.dom.hasAttribute("aria-selected")&&z.dom.removeAttribute("aria-selected"),D++}));D<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)i=!0,this.items.pop();0==this.items.length&&(this.items.push(new Zn(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),i=!0),j?(this.list.setAttribute("aria-activedescendant",j.id),this.view.requestMeasure({key:this,read:()=>({sel:j.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:M,panel:N})=>{let D=N.height/this.list.offsetHeight;M.top<N.top?this.list.scrollTop-=(N.top-M.top)/D:M.bottom>N.bottom&&(this.list.scrollTop+=(M.bottom-N.bottom)/D)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let M=this.list.firstChild;function N(){let N=M;M=N.nextSibling,N.remove()}for(let D of this.items)if(D.dom.parentNode==this.list){for(;M!=D.dom;)N();M=D.dom.nextSibling}else this.list.insertBefore(D.dom,M);for(;M;)N()}moveSelection(M){if(this.selectedIndex<0)return;let N=an(this.view.state.field(hn).diagnostics,this.items[M].diagnostic);N&&this.view.dispatch({selection:{anchor:N.from,head:N.to},scrollIntoView:!0,effects:Sn.of(N)})}static open(M){return new fn(M)}}function vn(M){return function(M,N='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${N}>${encodeURIComponent(M)}</svg>')`}(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${M}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Wn=Ne.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:vn("#d11")},".cm-lintRange-warning":{backgroundImage:vn("orange")},".cm-lintRange-info":{backgroundImage:vn("#999")},".cm-lintRange-hint":{backgroundImage:vn("#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}}}),Vn=[hn,Ne.decorations.compute([hn],(M=>{let{selected:N,panel:D}=M.field(hn);return N&&D&&N.from!=N.to?Oz.set([dn.range(N.from,N.to)]):Oz.none})),gT(kn,{hideOn:function(M,N){let D=N.pos,i=N.end||D,j=M.state.facet(Cn).hideOn(M,D,i);if(null!=j)return j;let t=M.startState.doc.lineAt(N.pos);return!(!M.effects.some((M=>M.is(Qn)))&&!M.changes.touchesRange(t.from,Math.max(t.to,i)))}}),Wn];class Gn{constructor(M,N,D,i,j,t,I,z,u,g=0,e){this.p=M,this.stack=N,this.state=D,this.reducePos=i,this.pos=j,this.score=t,this.buffer=I,this.bufferBase=z,this.curContext=u,this.lookAhead=g,this.parent=e}toString(){return`[${this.stack.filter(((M,N)=>N%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(M,N,D=0){let i=M.parser.context;return new Gn(M,[],N,D,D,0,[],0,i?new Pn(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(M,N){this.stack.push(this.state,N,this.bufferBase+this.buffer.length),this.state=M}reduce(M){var N;let D=M>>19,i=65535&M,{parser:j}=this.p,t=j.dynamicPrecedence(i);if(t&&(this.score+=t),0==D)return this.pushState(j.getGoto(this.state,i,!0),this.reducePos),i<j.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),void this.reduceContext(i,this.reducePos);let I=this.stack.length-3*(D-1)-(262144&M?6:0),z=I?this.stack[I-2]:this.p.ranges[0].from,u=this.reducePos-z;u>=2e3&&!(null===(N=this.p.parser.nodeSet.types[i])||void 0===N?void 0:N.isAnonymous)&&(z==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=z,this.p.lastBigReductionSize=u));let g=I?this.stack[I-1]:0,e=this.bufferBase+this.buffer.length-g;if(i<j.minRepeatTerm||131072&M){let M=j.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,z,M,e+4,!0)}if(262144&M)this.state=this.stack[I];else{let M=this.stack[I-3];this.state=j.getGoto(M,i,!0)}for(;this.stack.length>I;)this.stack.pop();this.reduceContext(i,z)}storeNode(M,N,D,i=4,j=!1){if(0==M&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let M=this,i=this.buffer.length;if(0==i&&M.parent&&(i=M.bufferBase-M.parent.bufferBase,M=M.parent),i>0&&0==M.buffer[i-4]&&M.buffer[i-1]>-1){if(N==D)return;if(M.buffer[i-2]>=N)return void(M.buffer[i-2]=D)}}if(j&&this.pos!=D){let j=this.buffer.length;if(j>0&&0!=this.buffer[j-4])for(;j>0&&this.buffer[j-2]>D;)this.buffer[j]=this.buffer[j-4],this.buffer[j+1]=this.buffer[j-3],this.buffer[j+2]=this.buffer[j-2],this.buffer[j+3]=this.buffer[j-1],j-=4,i>4&&(i-=4);this.buffer[j]=M,this.buffer[j+1]=N,this.buffer[j+2]=D,this.buffer[j+3]=i}else this.buffer.push(M,N,D,i)}shift(M,N,D,i){if(131072&M)this.pushState(65535&M,this.pos);else if(262144&M)this.pos=i,this.shiftContext(N,D),N<=this.p.parser.maxNode&&this.buffer.push(N,D,i,4);else{let j=M,{parser:t}=this.p;(i>this.pos||N<=t.maxNode)&&(this.pos=i,t.stateFlag(j,1)||(this.reducePos=i)),this.pushState(j,D),this.shiftContext(N,D),N<=t.maxNode&&this.buffer.push(N,D,i,4)}}apply(M,N,D,i){65536&M?this.reduce(M):this.shift(M,N,D,i)}useNode(M,N){let D=this.p.reused.length-1;(D<0||this.p.reused[D]!=M)&&(this.p.reused.push(M),D++);let i=this.pos;this.reducePos=this.pos=i+M.length,this.pushState(N,i),this.buffer.push(D,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,M,this,this.p.stream.reset(this.pos-M.length)))}split(){let M=this,N=M.buffer.length;for(;N>0&&M.buffer[N-2]>M.reducePos;)N-=4;let D=M.buffer.slice(N),i=M.bufferBase+N;for(;M&&i==M.bufferBase;)M=M.parent;return new Gn(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,D,i,this.curContext,this.lookAhead,M)}recoverByDelete(M,N){let D=M<=this.p.parser.maxNode;D&&this.storeNode(M,this.pos,N,4),this.storeNode(0,this.pos,N,D?8:4),this.pos=this.reducePos=N,this.score-=190}canShift(M){for(let N=new Rn(this);;){let D=this.p.parser.stateSlot(N.state,4)||this.p.parser.hasAction(N.state,M);if(0==D)return!1;if(!(65536&D))return!0;N.reduce(D)}}recoverByInsert(M){if(this.stack.length>=300)return[];let N=this.p.parser.nextStates(this.state);if(N.length>8||this.stack.length>=120){let D=[];for(let i,j=0;j<N.length;j+=2)(i=N[j+1])!=this.state&&this.p.parser.hasAction(i,M)&&D.push(N[j],i);if(this.stack.length<120)for(let M=0;D.length<8&&M<N.length;M+=2){let i=N[M+1];D.some(((M,N)=>1&N&&M==i))||D.push(N[M],i)}N=D}let D=[];for(let M=0;M<N.length&&D.length<4;M+=2){let i=N[M+1];if(i==this.state)continue;let j=this.split();j.pushState(i,this.pos),j.storeNode(0,j.pos,j.pos,4,!0),j.shiftContext(N[M],this.pos),j.reducePos=this.pos,j.score-=200,D.push(j)}return D}forceReduce(){let{parser:M}=this.p,N=M.stateSlot(this.state,5);if(!(65536&N))return!1;if(!M.validAction(this.state,N)){let D=N>>19,i=65535&N,j=this.stack.length-3*D;if(j<0||M.getGoto(this.stack[j],i,!1)<0){let M=this.findForcedReduction();if(null==M)return!1;N=M}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(N),!0}findForcedReduction(){let{parser:M}=this.p,N=[],D=(i,j)=>{if(!N.includes(i))return N.push(i),M.allActions(i,(N=>{if(393216&N);else if(65536&N){let D=(N>>19)-j;if(D>1){let i=65535&N,j=this.stack.length-3*D;if(j>=0&&M.getGoto(this.stack[j],i,!1)>=0)return D<<19|65536|i}}else{let M=D(N,j+1);if(null!=M)return M}}))};return D(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(3!=this.stack.length)return!1;let{parser:M}=this.p;return 65535==M.data[M.stateSlot(this.state,1)]&&!M.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(M){if(this.state!=M.state||this.stack.length!=M.stack.length)return!1;for(let N=0;N<this.stack.length;N+=3)if(this.stack[N]!=M.stack[N])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(M){return this.p.parser.dialect.flags[M]}shiftContext(M,N){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,M,this,this.p.stream.reset(N)))}reduceContext(M,N){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,M,this,this.p.stream.reset(N)))}emitContext(){let M=this.buffer.length-1;(M<0||-3!=this.buffer[M])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let M=this.buffer.length-1;(M<0||-4!=this.buffer[M])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(M){if(M!=this.curContext.context){let N=new Pn(this.curContext.tracker,M);N.hash!=this.curContext.hash&&this.emitContext(),this.curContext=N}}setLookAhead(M){M>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=M)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Pn{constructor(M,N){this.tracker=M,this.context=N,this.hash=M.strict?M.hash(N):0}}class Rn{constructor(M){this.start=M,this.state=M.state,this.stack=M.stack,this.base=this.stack.length}reduce(M){let N=65535&M,D=M>>19;0==D?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(D-1);let i=this.start.p.parser.getGoto(this.stack[this.base-3],N,!0);this.state=i}}class Bn{constructor(M,N,D){this.stack=M,this.pos=N,this.index=D,this.buffer=M.buffer,0==this.index&&this.maybeNext()}static create(M,N=M.bufferBase+M.buffer.length){return new Bn(M,N,N-M.bufferBase)}maybeNext(){let M=this.stack.parent;null!=M&&(this.index=this.stack.bufferBase-M.bufferBase,this.stack=M,this.buffer=M.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,0==this.index&&this.maybeNext()}fork(){return new Bn(this.stack,this.pos,this.index)}}function Jn(M,N=Uint16Array){if("string"!=typeof M)return M;let D=null;for(let i=0,j=0;i<M.length;){let t=0;for(;;){let N=M.charCodeAt(i++),D=!1;if(126==N){t=65535;break}N>=92&&N--,N>=34&&N--;let j=N-32;if(j>=46&&(j-=46,D=!0),t+=j,D)break;t*=46}D?D[j++]=t:D=new N(t)}return D}class Fn{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Hn=new Fn;class Xn{constructor(M,N){this.input=M,this.ranges=N,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Hn,this.rangeIndex=0,this.pos=this.chunkPos=N[0].from,this.range=N[0],this.end=N[N.length-1].to,this.readNext()}resolveOffset(M,N){let D=this.range,i=this.rangeIndex,j=this.pos+M;for(;j<D.from;){if(!i)return null;let M=this.ranges[--i];j-=D.from-M.to,D=M}for(;N<0?j>D.to:j>=D.to;){if(i==this.ranges.length-1)return null;let M=this.ranges[++i];j+=M.from-D.to,D=M}return j}clipPos(M){if(M>=this.range.from&&M<this.range.to)return M;for(let N of this.ranges)if(N.to>M)return Math.max(M,N.from);return this.end}peek(M){let N,D,i=this.chunkOff+M;if(i>=0&&i<this.chunk.length)N=this.pos+M,D=this.chunk.charCodeAt(i);else{let i=this.resolveOffset(M,1);if(null==i)return-1;if(N=i,N>=this.chunk2Pos&&N<this.chunk2Pos+this.chunk2.length)D=this.chunk2.charCodeAt(N-this.chunk2Pos);else{let M=this.rangeIndex,i=this.range;for(;i.to<=N;)i=this.ranges[++M];this.chunk2=this.input.chunk(this.chunk2Pos=N),N+this.chunk2.length>i.to&&(this.chunk2=this.chunk2.slice(0,i.to-N)),D=this.chunk2.charCodeAt(0)}}return N>=this.token.lookAhead&&(this.token.lookAhead=N+1),D}acceptToken(M,N=0){let D=N?this.resolveOffset(N,-1):this.pos;if(null==D||D<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=M,this.token.end=D}acceptTokenTo(M,N){this.token.value=M,this.token.end=N}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:M,chunkPos:N}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=M,this.chunk2Pos=N,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let M=this.input.chunk(this.pos),N=this.pos+M.length;this.chunk=N>this.range.to?M.slice(0,this.range.to-this.pos):M,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(M=1){for(this.chunkOff+=M;this.pos+M>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();M-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=M,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(M,N){if(N?(this.token=N,N.start=M,N.lookAhead=M+1,N.value=N.extended=-1):this.token=Hn,this.pos!=M){if(this.pos=M,M==this.end)return this.setDone(),this;for(;M<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;M>=this.range.to;)this.range=this.ranges[++this.rangeIndex];M>=this.chunkPos&&M<this.chunkPos+this.chunk.length?this.chunkOff=M-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(M,N){if(M>=this.chunkPos&&N<=this.chunkPos+this.chunk.length)return this.chunk.slice(M-this.chunkPos,N-this.chunkPos);if(M>=this.chunk2Pos&&N<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(M-this.chunk2Pos,N-this.chunk2Pos);if(M>=this.range.from&&N<=this.range.to)return this.input.read(M,N);let D="";for(let i of this.ranges){if(i.from>=N)break;i.to>M&&(D+=this.input.read(Math.max(i.from,M),Math.min(i.to,N)))}return D}}class $n{constructor(M,N){this.data=M,this.id=N}token(M,N){let{parser:D}=N.p;Kn(this.data,M,N,this.id,D.data,D.tokenPrecTable)}}$n.prototype.contextual=$n.prototype.fallback=$n.prototype.extend=!1;class _n{constructor(M,N,D){this.precTable=N,this.elseToken=D,this.data="string"==typeof M?Jn(M):M}token(M,N){let D=M.pos,i=0;for(;;){let D=M.next<0,j=M.resolveOffset(1,1);if(Kn(this.data,M,N,0,this.data,this.precTable),M.token.value>-1)break;if(null==this.elseToken)return;if(D||i++,null==j)break;M.reset(j,M.token)}i&&(M.reset(D,M.token),M.acceptToken(this.elseToken,i))}}_n.prototype.contextual=$n.prototype.fallback=$n.prototype.extend=!1;class qn{constructor(M,N={}){this.token=M,this.contextual=!!N.contextual,this.fallback=!!N.fallback,this.extend=!!N.extend}}function Kn(M,N,D,i,j,t){let I=0,z=1<<i,{dialect:u}=D.p.parser;M:for(;z&M[I];){let D=M[I+1];for(let i=I+3;i<D;i+=2)if((M[i+1]&z)>0){let D=M[i];if(u.allows(D)&&(-1==N.token.value||N.token.value==D||Nl(D,N.token.value,j,t))){N.acceptToken(D);break}}let i=N.next,g=0,e=M[I+2];if(!(N.next<0&&e>g&&65535==M[D+3*e-3])){for(;g<e;){let j=g+e>>1,t=D+j+(j<<1),z=M[t],u=M[t+1]||65536;if(i<z)e=j;else{if(!(i>=u)){I=M[t+2],N.advance();continue M}g=j+1}}break}I=M[D+3*e-1]}}function Ml(M,N,D){for(let i,j=N;65535!=(i=M[j]);j++)if(i==D)return j-N;return-1}function Nl(M,N,D,i){let j=Ml(D,i,N);return j<0||Ml(D,i,M)<j}const Dl="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let il=null;function jl(M,N,D){let i=M.cursor($T.IncludeAnonymous);for(i.moveTo(N);;)if(!(D<0?i.childBefore(N):i.childAfter(N)))for(;;){if((D<0?i.to<N:i.from>N)&&!i.type.isError)return D<0?Math.max(0,Math.min(i.to-1,N-25)):Math.min(M.length,Math.max(i.from+1,N+25));if(D<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return D<0?0:M.length}}class tl{constructor(M,N){this.fragments=M,this.nodeSet=N,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let M=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(M){for(this.safeFrom=M.openStart?jl(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?jl(M.tree,M.to+M.offset,-1)-M.offset:M.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(M.tree),this.start.push(-M.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(M){if(M<this.nextStart)return null;for(;this.fragment&&this.safeTo<=M;)this.nextFragment();if(!this.fragment)return null;for(;;){let N=this.trees.length-1;if(N<0)return this.nextFragment(),null;let D=this.trees[N],i=this.index[N];if(i==D.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let j=D.children[i],t=this.start[N]+D.positions[i];if(t>M)return this.nextStart=t,null;if(j instanceof _T){if(t==M){if(t<this.safeFrom)return null;let M=t+j.length;if(M<=this.safeTo){let N=j.prop(PT.lookAhead);if(!N||M+N<this.fragment.to)return j}}this.index[N]++,t+j.length>=Math.max(this.safeFrom,M)&&(this.trees.push(j),this.start.push(t),this.index.push(0))}else this.index[N]++,this.nextStart=t+j.length}}}class Il{constructor(M,N){this.stream=N,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new Fn))}getActions(M){let N=0,D=null,{parser:i}=M.p,{tokenizers:j}=i,t=i.stateSlot(M.state,3),I=M.curContext?M.curContext.hash:0,z=0;for(let i=0;i<j.length;i++){if(!(1<<i&t))continue;let u=j[i],g=this.tokens[i];if((!D||u.fallback)&&((u.contextual||g.start!=M.pos||g.mask!=t||g.context!=I)&&(this.updateCachedToken(g,u,M),g.mask=t,g.context=I),g.lookAhead>g.end+25&&(z=Math.max(g.lookAhead,z)),0!=g.value)){let i=N;if(g.extended>-1&&(N=this.addActions(M,g.extended,g.end,N)),N=this.addActions(M,g.value,g.end,N),!u.extend&&(D=g,N>i))break}}for(;this.actions.length>N;)this.actions.pop();return z&&M.setLookAhead(z),D||M.pos!=this.stream.end||(D=new Fn,D.value=M.p.parser.eofTerm,D.start=D.end=M.pos,N=this.addActions(M,D.value,D.end,N)),this.mainToken=D,this.actions}getMainToken(M){if(this.mainToken)return this.mainToken;let N=new Fn,{pos:D,p:i}=M;return N.start=D,N.end=Math.min(D+1,i.stream.end),N.value=D==i.stream.end?i.parser.eofTerm:0,N}updateCachedToken(M,N,D){let i=this.stream.clipPos(D.pos);if(N.token(this.stream.reset(i,M),D),M.value>-1){let{parser:N}=D.p;for(let i=0;i<N.specialized.length;i++)if(N.specialized[i]==M.value){let j=N.specializers[i](this.stream.read(M.start,M.end),D);if(j>=0&&D.p.parser.dialect.allows(j>>1)){1&j?M.extended=j>>1:M.value=j>>1;break}}}else M.value=0,M.end=this.stream.clipPos(i+1)}putAction(M,N,D,i){for(let N=0;N<i;N+=3)if(this.actions[N]==M)return i;return this.actions[i++]=M,this.actions[i++]=N,this.actions[i++]=D,i}addActions(M,N,D,i){let{state:j}=M,{parser:t}=M.p,{data:I}=t;for(let M=0;M<2;M++)for(let z=t.stateSlot(j,M?2:1);;z+=3){if(65535==I[z]){if(1!=I[z+1]){0==i&&2==I[z+1]&&(i=this.putAction(Al(I,z+2),N,D,i));break}z=Al(I,z+2)}I[z]==N&&(i=this.putAction(Al(I,z+1),N,D,i))}return i}}class zl{constructor(M,N,D,i){this.parser=M,this.input=N,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Xn(N,i),this.tokens=new Il(M,this.stream),this.topTerm=M.top[1];let{from:j}=i[0];this.stacks=[Gn.start(this,M.top[0],j)],this.fragments=D.length&&this.stream.end-j>4*M.bufferLength?new tl(D,M.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let M,N,D=this.stacks,i=this.minStackPos,j=this.stacks=[];if(this.bigReductionCount>300&&1==D.length){let[M]=D;for(;M.forceReduce()&&M.stack.length&&M.stack[M.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let t=0;t<D.length;t++){let I=D[t];for(;;){if(this.tokens.mainToken=null,I.pos>i)j.push(I);else{if(this.advanceStack(I,j,D))continue;{M||(M=[],N=[]),M.push(I);let D=this.tokens.getMainToken(I);N.push(D.value,D.end)}}break}}if(!j.length){let N=M&&function(M){let N=null;for(let D of M){let M=D.p.stoppedAt;(D.pos==D.p.stream.end||null!=M&&D.pos>M)&&D.p.parser.stateFlag(D.state,2)&&(!N||N.score<D.score)&&(N=D)}return N}(M);if(N)return Dl&&console.log("Finish with "+this.stackID(N)),this.stackToTree(N);if(this.parser.strict)throw Dl&&M&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+i);this.recovering||(this.recovering=5)}if(this.recovering&&M){let D=null!=this.stoppedAt&&M[0].pos>this.stoppedAt?M[0]:this.runRecovery(M,N,j);if(D)return Dl&&console.log("Force-finish "+this.stackID(D)),this.stackToTree(D.forceAll())}if(this.recovering){let M=1==this.recovering?1:3*this.recovering;if(j.length>M)for(j.sort(((M,N)=>N.score-M.score));j.length>M;)j.pop();j.some((M=>M.reducePos>i))&&this.recovering--}else if(j.length>1){M:for(let M=0;M<j.length-1;M++){let N=j[M];for(let D=M+1;D<j.length;D++){let i=j[D];if(N.sameState(i)||N.buffer.length>500&&i.buffer.length>500){if(!((N.score-i.score||N.buffer.length-i.buffer.length)>0)){j.splice(M--,1);continue M}j.splice(D--,1)}}}j.length>12&&j.splice(12,j.length-12)}this.minStackPos=j[0].pos;for(let M=1;M<j.length;M++)j[M].pos<this.minStackPos&&(this.minStackPos=j[M].pos);return null}stopAt(M){if(null!=this.stoppedAt&&this.stoppedAt<M)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=M}advanceStack(M,N,D){let i=M.pos,{parser:j}=this,t=Dl?this.stackID(M)+" -> ":"";if(null!=this.stoppedAt&&i>this.stoppedAt)return M.forceReduce()?M:null;if(this.fragments){let N=M.curContext&&M.curContext.tracker.strict,D=N?M.curContext.hash:0;for(let I=this.fragments.nodeAt(i);I;){let i=this.parser.nodeSet.types[I.type.id]==I.type?j.getGoto(M.state,I.type.id):-1;if(i>-1&&I.length&&(!N||(I.prop(PT.contextHash)||0)==D))return M.useNode(I,i),Dl&&console.log(t+this.stackID(M)+` (via reuse of ${j.getName(I.type.id)})`),!0;if(!(I instanceof _T)||0==I.children.length||I.positions[0]>0)break;let z=I.children[0];if(!(z instanceof _T&&0==I.positions[0]))break;I=z}}let I=j.stateSlot(M.state,4);if(I>0)return M.reduce(I),Dl&&console.log(t+this.stackID(M)+` (via always-reduce ${j.getName(65535&I)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let z=this.tokens.getActions(M);for(let I=0;I<z.length;){let u=z[I++],g=z[I++],e=z[I++],T=I==z.length||!D,A=T?M:M.split(),s=this.tokens.mainToken;if(A.apply(u,g,s?s.start:A.pos,e),Dl&&console.log(t+this.stackID(A)+` (via ${65536&u?`reduce of ${j.getName(65535&u)}`:"shift"} for ${j.getName(g)} @ ${i}${A==M?"":", split"})`),T)return!0;A.pos>i?N.push(A):D.push(A)}return!1}advanceFully(M,N){let D=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>D)return ul(M,N),!0}}runRecovery(M,N,D){let i=null,j=!1;for(let t=0;t<M.length;t++){let I=M[t],z=N[t<<1],u=N[1+(t<<1)],g=Dl?this.stackID(I)+" -> ":"";if(I.deadEnd){if(j)continue;if(j=!0,I.restart(),Dl&&console.log(g+this.stackID(I)+" (restarted)"),this.advanceFully(I,D))continue}let e=I.split(),T=g;for(let M=0;e.forceReduce()&&M<10;M++){if(Dl&&console.log(T+this.stackID(e)+" (via force-reduce)"),this.advanceFully(e,D))break;Dl&&(T=this.stackID(e)+" -> ")}for(let M of I.recoverByInsert(z))Dl&&console.log(g+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,D);this.stream.end>I.pos?(u==I.pos&&(u++,z=0),I.recoverByDelete(z,u),Dl&&console.log(g+this.stackID(I)+` (via recover-delete ${this.parser.getName(z)})`),ul(I,D)):(!i||i.score<I.score)&&(i=I)}return i}stackToTree(M){return M.close(),_T.build({buffer:Bn.create(M),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:M.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(M){let N=(il||(il=new WeakMap)).get(M);return N||il.set(M,N=String.fromCodePoint(this.nextStackID++)),N+M}}function ul(M,N){for(let D=0;D<N.length;D++){let i=N[D];if(i.pos==M.pos&&i.sameState(M))return void(N[D].score<M.score&&(N[D]=M))}N.push(M)}class gl{constructor(M,N,D){this.source=M,this.flags=N,this.disabled=D}allows(M){return!this.disabled||0==this.disabled[M]}}const el=M=>M;class Tl extends cA{constructor(M){if(super(),this.wrappers=[],14!=M.version)throw new RangeError(`Parser version (${M.version}) doesn't match runtime version (14)`);let N=M.nodeNames.split(" ");this.minRepeatTerm=N.length;for(let D=0;D<M.repeatNodeCount;D++)N.push("");let D=Object.keys(M.topRules).map((N=>M.topRules[N][1])),i=[];for(let M=0;M<N.length;M++)i.push([]);function j(M,N,D){i[M].push([N,N.deserialize(String(D))])}if(M.nodeProps)for(let N of M.nodeProps){let M=N[0];"string"==typeof M&&(M=PT[M]);for(let D=1;D<N.length;){let i=N[D++];if(i>=0)j(i,M,N[D++]);else{let t=N[D+-i];for(let I=-i;I>0;I--)j(N[D++],M,t);D++}}}this.nodeSet=new FT(N.map(((N,j)=>JT.define({name:j>=this.minRepeatTerm?void 0:N,id:j,props:i[j],top:D.indexOf(j)>-1,error:0==j,skipped:M.skippedNodes&&M.skippedNodes.indexOf(j)>-1})))),M.propSources&&(this.nodeSet=this.nodeSet.extend(...M.propSources)),this.strict=!1,this.bufferLength=WT;let t=Jn(M.tokenData);this.context=M.context,this.specializerSpecs=M.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let M=0;M<this.specializerSpecs.length;M++)this.specialized[M]=this.specializerSpecs[M].term;this.specializers=this.specializerSpecs.map(sl),this.states=Jn(M.states,Uint32Array),this.data=Jn(M.stateData),this.goto=Jn(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new $n(t,M):M)),this.topRules=M.topRules,this.dialects=M.dialects||{},this.dynamicPrecedences=M.dynamicPrecedences||null,this.tokenPrecTable=M.tokenPrec,this.termNames=M.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(M,N,D){let i=new zl(this,M,N,D);for(let j of this.wrappers)i=j(i,M,N,D);return i}getGoto(M,N,D=!1){let i=this.goto;if(N>=i[0])return-1;for(let j=i[N+1];;){let N=i[j++],t=1&N,I=i[j++];if(t&&D)return I;for(let D=j+(N>>1);j<D;j++)if(i[j]==M)return I;if(t)return-1}}hasAction(M,N){let D=this.data;for(let i=0;i<2;i++)for(let j,t=this.stateSlot(M,i?2:1);;t+=3){if(65535==(j=D[t])){if(1!=D[t+1]){if(2==D[t+1])return Al(D,t+2);break}j=D[t=Al(D,t+2)]}if(j==N||0==j)return Al(D,t+1)}return 0}stateSlot(M,N){return this.states[6*M+N]}stateFlag(M,N){return(this.stateSlot(M,0)&N)>0}validAction(M,N){return!!this.allActions(M,(M=>M==N||null))}allActions(M,N){let D=this.stateSlot(M,4),i=D?N(D):void 0;for(let D=this.stateSlot(M,1);null==i;D+=3){if(65535==this.data[D]){if(1!=this.data[D+1])break;D=Al(this.data,D+2)}i=N(Al(this.data,D+1))}return i}nextStates(M){let N=[];for(let D=this.stateSlot(M,1);;D+=3){if(65535==this.data[D]){if(1!=this.data[D+1])break;D=Al(this.data,D+2)}if(!(1&this.data[D+2])){let M=this.data[D+1];N.some(((N,D)=>1&D&&N==M))||N.push(this.data[D],M)}}return N}configure(M){let N=Object.assign(Object.create(Tl.prototype),this);if(M.props&&(N.nodeSet=this.nodeSet.extend(...M.props)),M.top){let D=this.topRules[M.top];if(!D)throw new RangeError(`Invalid top rule name ${M.top}`);N.top=D}return M.tokenizers&&(N.tokenizers=this.tokenizers.map((N=>{let D=M.tokenizers.find((M=>M.from==N));return D?D.to:N}))),M.specializers&&(N.specializers=this.specializers.slice(),N.specializerSpecs=this.specializerSpecs.map(((D,i)=>{let j=M.specializers.find((M=>M.from==D.external));if(!j)return D;let t=Object.assign(Object.assign({},D),{external:j.to});return N.specializers[i]=sl(t),t}))),M.contextTracker&&(N.context=M.contextTracker),M.dialect&&(N.dialect=this.parseDialect(M.dialect)),null!=M.strict&&(N.strict=M.strict),M.wrap&&(N.wrappers=N.wrappers.concat(M.wrap)),null!=M.bufferLength&&(N.bufferLength=M.bufferLength),N}hasWrappers(){return this.wrappers.length>0}getName(M){return this.termNames?this.termNames[M]:String(M<=this.maxNode&&this.nodeSet.types[M].name||M)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(M){let N=this.dynamicPrecedences;return null==N?0:N[M]||0}parseDialect(M){let N=Object.keys(this.dialects),D=N.map((()=>!1));if(M)for(let i of M.split(" ")){let M=N.indexOf(i);M>=0&&(D[M]=!0)}let i=null;for(let M=0;M<N.length;M++)if(!D[M])for(let D,j=this.dialects[N[M]];65535!=(D=this.data[j++]);)(i||(i=new Uint8Array(this.maxTerm+1)))[D]=1;return new gl(M,D,i)}static deserialize(M){return new Tl(M)}}function Al(M,N){return M[N]|M[N+1]<<16}function sl(M){if(M.external){let N=M.extend?1:0;return(D,i)=>M.external(D,i)<<1|N}return M.get}const Ll=[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],Ol=new class{constructor(M){this.start=M.start,this.shift=M.shift||el,this.reduce=M.reduce||el,this.reuse=M.reuse||el,this.hash=M.hash||(()=>0),this.strict=!1!==M.strict}}({start:!1,shift:(M,N)=>5==N||6==N||315==N?M:316==N,strict:!1}),yl=new qn(((M,N)=>{let{next:D}=M;(125==D||-1==D||N.context)&&M.acceptToken(313)}),{contextual:!0,fallback:!0}),cl=new qn(((M,N)=>{let D,{next:i}=M;Ll.indexOf(i)>-1||(47!=i||47!=(D=M.peek(1))&&42!=D)&&(125==i||59==i||-1==i||N.context||M.acceptToken(312))}),{contextual:!0}),nl=new qn(((M,N)=>{let{next:D}=M;if(43==D||45==D){if(M.advance(),D==M.next){M.advance();let D=!N.context&&N.canShift(1);M.acceptToken(D?1:2)}}else 63==D&&46==M.peek(1)&&(M.advance(),M.advance(),(M.next<48||M.next>57)&&M.acceptToken(3))}),{contextual:!0});function ll(M,N){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!N&&M>=48&&M<=57}const ol=new qn(((M,N)=>{if(60!=M.next||!N.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let D=0;for(;Ll.indexOf(M.next)>-1;)M.advance(),D++;if(ll(M.next,!0)){for(M.advance(),D++;ll(M.next,!1);)M.advance(),D++;for(;Ll.indexOf(M.next)>-1;)M.advance(),D++;if(44==M.next)return;for(let N=0;;N++){if(7==N){if(!ll(M.next,!0))return;break}if(M.next!="extends".charCodeAt(N))break;M.advance(),D++}}M.acceptToken(4,-D)})),rl=aA({"get set async static":RA.modifier,"for while do if else switch try catch finally return throw break continue default case":RA.controlKeyword,"in of await yield void typeof delete instanceof":RA.operatorKeyword,"let var const using function class extends":RA.definitionKeyword,"import export from":RA.moduleKeyword,"with debugger as new":RA.keyword,TemplateString:RA.special(RA.string),super:RA.atom,BooleanLiteral:RA.bool,this:RA.self,null:RA.null,Star:RA.modifier,VariableName:RA.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":RA.function(RA.variableName),VariableDefinition:RA.definition(RA.variableName),Label:RA.labelName,PropertyName:RA.propertyName,PrivatePropertyName:RA.special(RA.propertyName),"CallExpression/MemberExpression/PropertyName":RA.function(RA.propertyName),"FunctionDeclaration/VariableDefinition":RA.function(RA.definition(RA.variableName)),"ClassDeclaration/VariableDefinition":RA.definition(RA.className),PropertyDefinition:RA.definition(RA.propertyName),PrivatePropertyDefinition:RA.definition(RA.special(RA.propertyName)),UpdateOp:RA.updateOperator,"LineComment Hashbang":RA.lineComment,BlockComment:RA.blockComment,Number:RA.number,String:RA.string,Escape:RA.escape,ArithOp:RA.arithmeticOperator,LogicOp:RA.logicOperator,BitOp:RA.bitwiseOperator,CompareOp:RA.compareOperator,RegExp:RA.regexp,Equals:RA.definitionOperator,Arrow:RA.function(RA.punctuation),": Spread":RA.punctuation,"( )":RA.paren,"[ ]":RA.squareBracket,"{ }":RA.brace,"InterpolationStart InterpolationEnd":RA.special(RA.brace),".":RA.derefOperator,", ;":RA.separator,"@":RA.meta,TypeName:RA.typeName,TypeDefinition:RA.definition(RA.typeName),"type enum interface implements namespace module declare":RA.definitionKeyword,"abstract global Privacy readonly override":RA.modifier,"is keyof unique infer":RA.operatorKeyword,JSXAttributeValue:RA.attributeValue,JSXText:RA.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":RA.angleBracket,"JSXIdentifier JSXNameSpacedName":RA.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":RA.attributeName,"JSXBuiltin/JSXIdentifier":RA.standard(RA.tagName)}),xl={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,extends:54,this:58,true:66,false:66,null:78,void:82,typeof:86,super:102,new:136,delete:148,yield:157,await:161,class:166,public:229,private:229,protected:229,readonly:231,instanceof:250,satisfies:253,in:254,const:256,import:290,keyof:345,unique:349,infer:355,is:391,abstract:411,implements:413,type:415,let:418,var:420,using:423,interface:429,enum:433,namespace:439,module:441,declare:445,global:449,for:468,of:477,while:480,with:484,do:488,if:492,else:494,switch:498,case:504,try:510,catch:514,finally:518,return:522,throw:526,break:530,continue:534,debugger:538},al={__proto__:null,async:123,get:125,set:127,declare:189,public:191,private:191,protected:191,static:193,abstract:195,override:197,readonly:203,accessor:205,new:395},Ql={__proto__:null,"<":187},El=Tl.deserialize({version:14,states:"$=dO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ?NdO'#CiO+RO!bO'#CjO+aO#tO'#CjO+oO!0LbO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DwO0fQ^O'#EPOOQ?Mr'#EX'#EXO1PQWO'#EUOOQO'#Em'#EmOOQO'#Ih'#IhO1XQWO'#GpO1dQWO'#ElO1iQWO'#ElO3hQ?NdO'#JmO6[Q?NdO'#JnO6uQWO'#F[O6zQ&jO'#FsOOQ?Mr'#Fe'#FeO7VO,YO'#FeO7eQ7[O'#FzO9RQWO'#FyOOQ?Mr'#Jn'#JnOOQ?Mp'#Jm'#JmO9WQWO'#GtOOQU'#KZ'#KZO9cQWO'#IUO9hQ?MxO'#IVOOQU'#JZ'#JZOOQU'#IZ'#IZQ`Q^OOO`Q^OOO9pQMnO'#DsO9wQ^O'#D{O:OQ^O'#D}O9^QWO'#GpO:VQ7[O'#CoO:eQWO'#EkO:pQWO'#EvO:uQ7[O'#FdO;dQWO'#GpOOQO'#K['#K[O;iQWO'#K[O;wQWO'#GxO;wQWO'#GyO;wQWO'#G{O9^QWO'#HOO<nQWO'#HRO>VQWO'#CeO>gQWO'#H_O>oQWO'#HeO>oQWO'#HgO`Q^O'#HiO>oQWO'#HkO>oQWO'#HnO>tQWO'#HtO>yQ?MyO'#HzO%[Q^O'#H|O?UQ?MyO'#IOO?aQ?MyO'#IQO9hQ?MxO'#ISO?lQ?NdO'#CiO@nQ`O'#DiQOQWOOO%[Q^O'#D}OAUQWO'#EQO:VQ7[O'#EkOAaQWO'#EkOAlQpO'#FdOOQU'#Cg'#CgOOQ?Mp'#Dn'#DnOOQ?Mp'#Jq'#JqO%[Q^O'#JqOOQO'#Jt'#JtOOQO'#Id'#IdOBlQ`O'#EdOOQ?Mp'#Ec'#EcOOQ?Mp'#Jx'#JxOChQ?NQO'#EdOCrQ`O'#ETOOQO'#Js'#JsODWQ`O'#JtOEeQ`O'#ETOCrQ`O'#EdPErO#@ItO'#CbPOOO)CDx)CDxOOOO'#I['#I[OE}O!bO,59UOOQ?Mr,59U,59UOOOO'#I]'#I]OF]O#tO,59UO%[Q^O'#D`OOOO'#I_'#I_OFkO!0LbO,59xOOQ?Mr,59x,59xOFyQ^O'#I`OG^QWO'#JoOI]QrO'#JoO+}Q^O'#JoOIdQWO,5:OOIzQWO'#EmOJXQWO'#KOOJdQWO'#J}OJdQWO'#J}OJlQWO,5;ZOJqQWO'#J|OOQ?Mv,5:Z,5:ZOJxQ^O,5:ZOLvQ?NdO,5:cOMgQWO,5:kONQQ?MxO'#J{ONXQWO'#JzO9WQWO'#JzONmQWO'#JzONuQWO,5;YONzQWO'#JzO!#PQrO'#JnOOQ?Mr'#Ci'#CiO%[Q^O'#EPO!#oQrO,5:pOOQQ'#Ju'#JuOOQO-E<f-E<fO9^QWO,5=[O!$VQWO,5=[O!$[Q^O,5;WO!&_Q7[O'#EhO!'xQWO,5;WO!'}Q^O'#DvO!(XQ`O,5;aO!(aQ`O,5;aO%[Q^O,5;aOOQU'#FS'#FSOOQU'#FU'#FUO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bOOQU'#FY'#FYO!(oQ^O,5;sOOQ?Mr,5;x,5;xOOQ?Mr,5;y,5;yOOQ?Mr,5;{,5;{O%[Q^O'#IlO!*rQ?MxO,5<gO!&_Q7[O,5;bO!+aQ7[O,5;bO!-RQ7[O'#EZO%[Q^O,5;vOOQ?Mr,5;z,5;zO!-YQ&jO'#FiO!.VQ&jO'#KSO!-qQ&jO'#KSO!.^Q&jO'#KSOOQO'#KS'#KSO!.rQ&jO,5<ROOOS,5<_,5<_O!/TQ^O'#FuOOOS'#Ik'#IkO7VO,YO,5<PO!/[Q&jO'#FwOOQ?Mr,5<P,5<PO!/{Q!LQO'#CvOOQ?Mr'#Cz'#CzO!0`QWO'#CzO!0eO!0LbO'#DOO!1RQ7[O,5<dO!1YQWO,5<fO!2uQ$ISO'#GVO!3SQWO'#GWO!3XQWO'#GWO!4wQ$ISO'#G[O!5sQ`O'#G`OOQO'#Gk'#GkO!+hQ7[O'#GjOOQO'#Gm'#GmO!+hQ7[O'#GlO!6fQ!LQO'#JgOOQ?Mr'#Jg'#JgO!6pQWO'#JfO!7OQWO'#JeO!7WQWO'#CuOOQ?Mr'#Cx'#CxOOQ?Mr'#DS'#DSOOQ?Mr'#DU'#DUO1SQWO'#DWO!+hQ7[O'#F}O!+hQ7[O'#GPO!7`QWO'#GRO!7eQWO'#GSO!3XQWO'#GYO!+hQ7[O'#G_O!7jQWO'#EnO!8XQWO,5<eOOQ?Mp'#Cr'#CrO!8aQWO'#EoO!9ZQ`O'#EpOOQ?Mp'#J|'#J|O!9bQ?MxO'#K]O9hQ?MxO,5=`O`Q^O,5>pOOQU'#Jc'#JcOOQU,5>q,5>qOOQU-E<X-E<XO!;aQ?NdO,5:_O!9UQ`O,5:]O!=zQ?NdO,5:gO%[Q^O,5:gO!@bQ?NdO,5:iOOQO,5@v,5@vO!ARQ7[O,5=[O!AaQ?MxO'#JdO9RQWO'#JdO!ArQ?MxO,59ZO!A}Q`O,59ZO!BVQ7[O,59ZO:VQ7[O,59ZO!BbQWO,5;WO!BjQWO'#H^O!COQWO'#K`O%[Q^O,5;|O!9UQ`O,5<OO!CWQWO,5=wO!C]QWO,5=wO!CbQWO,5=wO9hQ?MxO,5=wO;wQWO,5=gOOQO'#Cv'#CvO!CpQ`O,5=dO!CxQ7[O,5=eO!DTQWO,5=gO!DYQpO,5=jO!DbQWO'#K[O>tQWO'#HTO9^QWO'#HVO!DgQWO'#HVO:VQ7[O'#HXO!DlQWO'#HXOOQU,5=m,5=mO!DqQWO'#HYO!ESQWO'#CoO!EXQWO,59PO!EcQWO,59PO!GhQ^O,59POOQU,59P,59PO!GxQ?MxO,59PO%[Q^O,59PO!JTQ^O'#HaOOQU'#Hb'#HbOOQU'#Hc'#HcO`Q^O,5=yO!JkQWO,5=yO`Q^O,5>PO`Q^O,5>RO!JpQWO,5>TO`Q^O,5>VO!JuQWO,5>YO!JzQ^O,5>`OOQU,5>f,5>fO%[Q^O,5>fO9hQ?MxO,5>hOOQU,5>j,5>jO# UQWO,5>jOOQU,5>l,5>lO# UQWO,5>lOOQU,5>n,5>nO# rQ`O'#D[O%[Q^O'#JqO# |Q`O'#JqO#!kQ`O'#DjO#!|Q`O'#DjO#%_Q^O'#DjO#%fQWO'#JpO#%nQWO,5:TO#%sQWO'#EqO#&RQWO'#KPO#&ZQWO,5;[O#&`Q`O'#DjO#&mQ`O'#ESOOQ?Mr,5:l,5:lO%[Q^O,5:lO#&tQWO,5:lO>tQWO,5;VO!A}Q`O,5;VO!BVQ7[O,5;VO:VQ7[O,5;VO#&|QWO,5@]O#'RQ(CYO,5:pOOQO-E<b-E<bO#(XQ?NQO,5;OOCrQ`O,5:oO#(cQ`O,5:oOCrQ`O,5;OO!ArQ?MxO,5:oOOQ?Mp'#Eg'#EgOOQO,5;O,5;OO%[Q^O,5;OO#(pQ?MxO,5;OO#({Q?MxO,5;OO!A}Q`O,5:oOOQO,5;U,5;UO#)ZQ?MxO,5;OPOOO'#IY'#IYP#)oO#@ItO,58|POOO,58|,58|OOOO-E<Y-E<YOOQ?Mr1G.p1G.pOOOO-E<Z-E<ZO#)zQpO,59zOOOO-E<]-E<]OOQ?Mr1G/d1G/dO#*PQrO,5>zO+}Q^O,5>zOOQO,5?Q,5?QO#*ZQ^O'#I`OOQO-E<^-E<^O#*hQWO,5@ZO#*pQrO,5@ZO#*wQWO,5@iOOQ?Mr1G/j1G/jO%[Q^O,5@jO#+PQWO'#IfOOQO-E<d-E<dO#*wQWO,5@iOOQ?Mp1G0u1G0uOOQ?Mv1G/u1G/uOOQ?Mv1G0V1G0VO%[Q^O,5@gO#+eQ?MxO,5@gO#+vQ?MxO,5@gO#+}QWO,5@fO9WQWO,5@fO#,VQWO,5@fO#,eQWO'#IiO#+}QWO,5@fOOQ?Mp1G0t1G0tO!(XQ`O,5:rO!(dQ`O,5:rOOQQ,5:t,5:tO#-VQYO,5:tO#-_Q7[O1G2vO9^QWO1G2vOOQ?Mr1G0r1G0rO#-mQ?NdO1G0rO#.rQ?NbO,5;SOOQ?Mr'#GU'#GUO#/`Q?NdO'#JgO!$[Q^O1G0rO#1hQrO'#JrO%[Q^O'#JrO#1rQWO,5:bOOQ?Mr'#D['#D[OOQ?Mr1G0{1G0{O%[Q^O1G0{OOQ?Mr1G1e1G1eO#1wQWO1G0{O#4]Q?NdO1G0|O#4dQ?NdO1G0|O#6zQ?NdO1G0|O#7RQ?NdO1G0|O#9YQ?NdO1G0|O#9pQ?NdO1G0|O#<gQ?NdO1G0|O#<nQ?NdO1G0|O#?OQ?NdO1G0|O#?]Q?NdO1G0|O#AWQ?NdO1G0|O#DWQ07bO'#CiO#FRQ07bO1G1_O#FYQ07bO'#JnO#FmQ?NdO,5?WOOQ?Mp-E<j-E<jO#GaQ?NdO1G0|OOQ?Mr1G0|1G0|O#IiQ7[O'#JwO#IsQWO,5:uO#IxQ?NdO1G1bO#JlQ&jO,5<VO#JtQ&jO,5<WO#J|Q&jO'#FnO#KeQWO'#FmOOQO'#KT'#KTOOQO'#Ij'#IjO#KjQ&jO1G1mOOQ?Mr1G1m1G1mOOOS1G1x1G1xO#K{Q07bO'#JmO#LVQWO,5<aO!(oQ^O,5<aOOOS-E<i-E<iOOQ?Mr1G1k1G1kO#L[Q`O'#KSOOQ?Mr,5<c,5<cO#LdQ`O,5<cOOQ?Mr,59f,59fO!&_Q7[O'#DQOOOO'#I^'#I^O#LiO!0LbO,59jOOQ?Mr,59j,59jO%[Q^O1G2OO!7eQWO'#InO#LtQ7[O,5<xOOQ?Mr,5<u,5<uO!+hQ7[O'#IqO#MdQ7[O,5=UO!+hQ7[O'#IsO#NVQ7[O,5=WO!&_Q7[O,5=YOOQO1G2Q1G2QO#NaQpO'#CrO#NtQ$ISO'#EoO$ sQ`O'#G`O$!aQpO,5<qO$!hQWO'#KWO9WQWO'#KWO$!vQWO,5<sO!+hQ7[O,5<rO$!{QWO'#GXO$#^QWO,5<rO$#cQpO'#GUO$#pQpO'#KXO$#zQWO'#KXO!&_Q7[O'#KXO$$PQWO,5<vO$$UQ`O'#GaO!5nQ`O'#GaO$$gQWO'#GcO$$lQWO'#GeO!3XQWO'#GhO$$qQ?MxO'#IpO$$|Q`O,5<zOOQ?Mv,5<z,5<zO$%TQ`O'#GaO$%cQ`O'#GbO$%kQ`O'#GbO$%pQ7[O,5=UO$&QQ7[O,5=WOOQ?Mr,5=Z,5=ZO!+hQ7[O,5@QO!+hQ7[O,5@QO$&bQWO'#IuO$&mQWO,5@PO$&uQWO,59aO$'iQ!LSO,59rOOQ?Mr'#Jk'#JkO$([Q7[O,5<iO$(}Q7[O,5<kO@fQWO,5<mOOQ?Mr,5<n,5<nO$)XQWO,5<tO$)^Q7[O,5<yO$)nQWO'#JzO!$[Q^O1G2PO$)sQWO1G2PO9WQWO'#J}O9WQWO'#EqO%[Q^O'#EqO9WQWO'#IwO$)xQ?MxO,5@wOOQU1G2z1G2zOOQU1G4[1G4[OOQ?Mr1G/y1G/yOOQ?Mr1G/w1G/wO$+zQ?NdO1G0ROOQU1G2v1G2vO!&_Q7[O1G2vO%[Q^O1G2vO#-bQWO1G2vO$.OQ7[O'#EhOOQ?Mp,5@O,5@OO$.YQ?MxO,5@OOOQU1G.u1G.uO!ArQ?MxO1G.uO!A}Q`O1G.uO!BVQ7[O1G.uO$.kQWO1G0rO$.pQWO'#CiO$.{QWO'#KaO$/TQWO,5=xO$/YQWO'#KaO$/_QWO'#KaO$/mQWO'#I}O$/{QWO,5@zO$0TQrO1G1hOOQ?Mr1G1j1G1jO9^QWO1G3cO@fQWO1G3cO$0[QWO1G3cO$0aQWO1G3cOOQU1G3c1G3cO!DTQWO1G3RO!&_Q7[O1G3OO$0fQWO1G3OOOQU1G3P1G3PO!&_Q7[O1G3PO$0kQWO1G3PO$0sQ`O'#G}OOQU1G3R1G3RO!5nQ`O'#IyO!DYQpO1G3UOOQU1G3U1G3UOOQU,5=o,5=oO$0{Q7[O,5=qO9^QWO,5=qO$$lQWO,5=sO9RQWO,5=sO!A}Q`O,5=sO!BVQ7[O,5=sO:VQ7[O,5=sO$1ZQWO'#K_O$1fQWO,5=tOOQU1G.k1G.kO$1kQ?MxO1G.kO@fQWO1G.kO$1vQWO1G.kO9hQ?MxO1G.kO$4OQrO,5@|O$4]QWO,5@|O9WQWO,5@|O$4hQ^O,5={O$4oQWO,5={OOQU1G3e1G3eO`Q^O1G3eOOQU1G3k1G3kOOQU1G3m1G3mO>oQWO1G3oO$4tQ^O1G3qO$8xQ^O'#HpOOQU1G3t1G3tO$9VQWO'#HvO>tQWO'#HxOOQU1G3z1G3zO$9_Q^O1G3zO9hQ?MxO1G4QOOQU1G4S1G4SOOQ?Mp'#G]'#G]O9hQ?MxO1G4UO9hQ?MxO1G4WO$=fQWO,5@]O!(oQ^O,5;]O9WQWO,5;]O>tQWO,5:UO!(oQ^O,5:UO!A}Q`O,5:UO$=kQ07bO,5:UOOQO,5;],5;]O$=uQ`O'#IaO$>]QWO,5@[OOQ?Mr1G/o1G/oO$>eQ`O'#IgO$>oQWO,5@kOOQ?Mp1G0v1G0vO#!|Q`O,5:UOOQO'#Ic'#IcO$>wQ`O,5:nOOQ?Mv,5:n,5:nO#&wQWO1G0WOOQ?Mr1G0W1G0WO%[Q^O1G0WOOQ?Mr1G0q1G0qO>tQWO1G0qO!A}Q`O1G0qO!BVQ7[O1G0qOOQ?Mp1G5w1G5wO!ArQ?MxO1G0ZOOQO1G0j1G0jO%[Q^O1G0jO$?OQ?MxO1G0jO$?ZQ?MxO1G0jO!A}Q`O1G0ZOCrQ`O1G0ZO$?iQ?MxO1G0jOOQO1G0Z1G0ZO$?}Q?NdO1G0jPOOO-E<W-E<WPOOO1G.h1G.hOOOO1G/f1G/fO$@XQpO,5<gO$@aQrO1G4fOOQO1G4l1G4lO%[Q^O,5>zO$@kQWO1G5uO$@sQWO1G6TO$@{QrO1G6UO9WQWO,5?QO$AVQ?NdO1G6RO%[Q^O1G6RO$AgQ?MxO1G6RO$AxQWO1G6QO$AxQWO1G6QO9WQWO1G6QO$BQQWO,5?TO9WQWO,5?TOOQO,5?T,5?TO$BfQWO,5?TO$)nQWO,5?TOOQO-E<g-E<gOOQQ1G0^1G0^OOQQ1G0`1G0`O#-YQWO1G0`OOQU7+(b7+(bO!&_Q7[O7+(bO%[Q^O7+(bO$BtQWO7+(bO$CPQ7[O7+(bO$C_Q?NdO,5=UO$EgQ?NdO,5=WO$GoQ?NdO,5=UO$I}Q?NdO,5=WO$L]Q?NdO,59rO$NbQ?NdO,5<iO%!jQ?NdO,5<kO%$rQ?NdO,5<yOOQ?Mr7+&^7+&^O%'QQ?NdO7+&^O%'tQ^O'#IbO%(RQWO,5@^O%(ZQrO,5@^OOQ?Mr1G/|1G/|O%(eQWO7+&gOOQ?Mr7+&g7+&gO%(jQ07bO,5:cO%[Q^O7+&yO%(tQ07bO,5:_O%)RQ07bO,5:gO%)]Q07bO,5:iO%)gQ7[O'#IeO%)qQWO,5@cOOQ?Mr1G0a1G0aOOQO1G1q1G1qOOQO1G1r1G1rO%)yQtO,5<YO!(oQ^O,5<XOOQO-E<h-E<hOOQ?Mr7+'X7+'XOOOS7+'d7+'dOOOS1G1{1G1{O%*UQWO1G1{OOQ?Mr1G1}1G1}O%*ZQpO,59lOOOO-E<[-E<[OOQ?Mr1G/U1G/UO%*bQ?NdO7+'jOOQ?Mr,5?Y,5?YO%+UQpO,5?YOOQ?Mr1G2d1G2dP!&_Q7[O'#InPOQ?Mr-E<l-E<lO%+tQ7[O,5?]OOQ?Mr-E<o-E<oO%,gQ7[O,5?_OOQ?Mr-E<q-E<qO%,qQpO1G2tO%,xQpO'#CrO%-`Q7[O'#J}O%-gQ^O'#EqOOQ?Mr1G2]1G2]O%-qQWO'#ImO%.VQWO,5@rO%.VQWO,5@rO%._QWO,5@rO%.jQWO,5@rOOQO1G2_1G2_O%.xQ7[O1G2^O!+hQ7[O1G2^O%/YQ$ISO'#IoO%/gQWO,5@sO!&_Q7[O,5@sO%/oQpO,5@sOOQ?Mr1G2b1G2bOOQ?Mp,5<{,5<{OOQ?Mp,5<|,5<|O$)nQWO,5<|OCcQWO,5<|O!A}Q`O,5<{OOQO'#Gd'#GdO%/yQWO,5<}OOQ?Mp,5=P,5=PO$)nQWO,5=SOOQO,5?[,5?[OOQO-E<n-E<nOOQ?Mv1G2f1G2fO!5nQ`O,5<{O%0RQWO,5<|O$$gQWO,5<}O!5nQ`O,5<|O!+hQ7[O'#IqO%0uQ7[O1G2pO!+hQ7[O'#IsO%1hQ7[O1G2rO%1rQ7[O1G5lO%1|Q7[O1G5lOOQO,5?a,5?aOOQO-E<s-E<sOOQO1G.{1G.{O!9UQ`O,59tO%[Q^O,59tOOQ?Mr,5<h,5<hO%2ZQWO1G2XO!+hQ7[O1G2`O%2`Q?NdO7+'kOOQ?Mr7+'k7+'kO!$[Q^O7+'kO%3SQWO,5;]OOQ?Mp,5?c,5?cOOQ?Mp-E<u-E<uO%3XQpO'#KYO#&wQWO7+(bO4UQrO7+(bO$BwQWO7+(bO%3cQ?NbO'#CiO%3vQ?NbO,5=QO%4hQWO,5=QOOQ?Mp1G5j1G5jOOQU7+$a7+$aO!ArQ?MxO7+$aO!A}Q`O7+$aO!$[Q^O7+&^O%4mQWO'#I|O%5UQWO,5@{OOQO1G3d1G3dO9^QWO,5@{O%5UQWO,5@{O%5^QWO,5@{OOQO,5?i,5?iOOQO-E<{-E<{OOQ?Mr7+'S7+'SO%5cQWO7+(}O9hQ?MxO7+(}O9^QWO7+(}O@fQWO7+(}OOQU7+(m7+(mO%5hQ?NbO7+(jO!&_Q7[O7+(jO%5rQpO7+(kOOQU7+(k7+(kO!&_Q7[O7+(kO%5yQWO'#K^O%6UQWO,5=iOOQO,5?e,5?eOOQO-E<w-E<wOOQU7+(p7+(pO%7eQ`O'#HWOOQU1G3]1G3]O!&_Q7[O1G3]O%[Q^O1G3]O%7lQWO1G3]O%7wQ7[O1G3]O9hQ?MxO1G3_O$$lQWO1G3_O9RQWO1G3_O!A}Q`O1G3_O!BVQ7[O1G3_O%8VQWO'#I{O%8kQWO,5@yO%8sQ`O,5@yOOQ?Mp1G3`1G3`OOQU7+$V7+$VO@fQWO7+$VO9hQ?MxO7+$VO%9OQWO7+$VO%[Q^O1G6hO%[Q^O1G6iO%9TQ?MxO1G6hO%9_Q^O1G3gO%9fQWO1G3gO%9kQ^O1G3gOOQU7+)P7+)PO9hQ?MxO7+)ZO`Q^O7+)]OOQU'#Kd'#KdOOQU'#JO'#JOO%9rQ^O,5>[OOQU,5>[,5>[O%[Q^O'#HqO%:PQWO'#HsOOQU,5>b,5>bO9WQWO,5>bOOQU,5>d,5>dOOQU7+)f7+)fOOQU7+)l7+)lOOQU7+)p7+)pOOQU7+)r7+)rO%:UQ`O1G5wO%:jQ07bO1G0wO%:tQWO1G0wOOQO1G/p1G/pO%;PQ07bO1G/pO>tQWO1G/pO!(oQ^O'#DjOOQO,5>{,5>{OOQO-E<_-E<_OOQO,5?R,5?ROOQO-E<e-E<eO!A}Q`O1G/pOOQO-E<a-E<aOOQ?Mv1G0Y1G0YOOQ?Mr7+%r7+%rO#&wQWO7+%rOOQ?Mr7+&]7+&]O>tQWO7+&]O!A}Q`O7+&]OOQO7+%u7+%uO$?}Q?NdO7+&UOOQO7+&U7+&UO%[Q^O7+&UO%;ZQ?MxO7+&UO!ArQ?MxO7+%uO!A}Q`O7+%uO%;fQ?MxO7+&UO%;tQ?NdO7++mO%[Q^O7++mO%<UQWO7++lO%<UQWO7++lOOQO1G4o1G4oO9WQWO1G4oO%<^QWO1G4oOOQQ7+%z7+%zO#&wQWO<<K|O4UQrO<<K|O%<lQWO<<K|OOQU<<K|<<K|O!&_Q7[O<<K|O%[Q^O<<K|O%<tQWO<<K|O%=PQ?NdO,5?]O%?XQ?NdO,5?_O%AaQ?NdO1G2^O%CoQ?NdO1G2pO%EwQ?NdO1G2rO%HPQrO,5>|O%[Q^O,5>|OOQO-E<`-E<`O%HZQWO1G5xOOQ?Mr<<JR<<JRO%HcQ07bO1G0rO%JjQ07bO1G0|O%JqQ07bO1G0|O%LrQ07bO1G0|O%LyQ07bO1G0|O%NkQ07bO1G0|O& RQ07bO1G0|O&#cQ07bO1G0|O&#jQ07bO1G0|O&%eQ07bO1G0|O&%rQ07bO1G0|O&'mQ07bO1G0|O&(QQ?NdO<<JeO&)VQ07bO1G0|O&*xQ07bO'#JgO&,{Q07bO1G1bO&-YQ07bO1G0RO&-dQ7[O,5?POOQO-E<c-E<cO!(oQ^O'#FpOOQO'#KU'#KUOOQO1G1t1G1tO&-nQWO1G1sO&-sQ07bO,5?WOOOS7+'g7+'gOOOO1G/W1G/WOOQ?Mr1G4t1G4tO!+hQ7[O7+(`O&0TQrO'#CiO&0_QWO,5?XO9WQWO,5?XOOQO-E<k-E<kO&0mQWO1G6^O&0mQWO1G6^O&0uQWO1G6^O&1QQ7[O7+'xO&1bQpO,5?ZO&1lQWO,5?ZO!&_Q7[O,5?ZOOQO-E<m-E<mO&1qQpO1G6_O&1{QWO1G6_OOQ?Mp1G2h1G2hO$)nQWO1G2hOOQ?Mp1G2g1G2gO&2TQWO1G2iO!&_Q7[O1G2iOOQ?Mp1G2n1G2nO!A}Q`O1G2gOCcQWO1G2hO&2YQWO1G2iO&2bQWO1G2hO&3UQ7[O,5?]OOQ?Mr-E<p-E<pO&3wQ7[O,5?_OOQ?Mr-E<r-E<rO!+hQ7[O7++WOOQ?Mr1G/`1G/`O&4RQWO1G/`OOQ?Mr7+'s7+'sO&4WQ7[O7+'zO&4hQ?NdO<<KVOOQ?Mr<<KV<<KVO&5[QWO1G0wO!&_Q7[O'#IvO&5aQWO,5@tO&7cQrO<<K|O!&_Q7[O1G2lOOQU<<G{<<G{O!ArQ?MxO<<G{O&7jQ?NdO<<IxOOQ?Mr<<Ix<<IxOOQO,5?h,5?hO&8^QWO,5?hO&8cQWO,5?hOOQO-E<z-E<zO&8qQWO1G6gO&8qQWO1G6gO9^QWO1G6gO@fQWO<<LiOOQU<<Li<<LiO&8yQWO<<LiO9hQ?MxO<<LiOOQU<<LU<<LUO%5hQ?NbO<<LUOOQU<<LV<<LVO%5rQpO<<LVO&9OQ`O'#IxO&9ZQWO,5@xO!(oQ^O,5@xOOQU1G3T1G3TO%-gQ^O'#JqOOQO'#Iz'#IzO9hQ?MxO'#IzO&9cQ`O,5=rOOQU,5=r,5=rO&9jQ`O'#EdO&:OQWO7+(wO&:TQWO7+(wOOQU7+(w7+(wO!&_Q7[O7+(wO%[Q^O7+(wO&:]QWO7+(wOOQU7+(y7+(yO9hQ?MxO7+(yO$$lQWO7+(yO9RQWO7+(yO!A}Q`O7+(yO&:hQWO,5?gOOQO-E<y-E<yOOQO'#HZ'#HZO&:sQWO1G6eO9hQ?MxO<<GqOOQU<<Gq<<GqO@fQWO<<GqO&:{QWO7+,SO&;QQWO7+,TO%[Q^O7+,SO%[Q^O7+,TOOQU7+)R7+)RO&;VQWO7+)RO&;[Q^O7+)RO&;cQWO7+)ROOQU<<Lu<<LuOOQU<<Lw<<LwOOQU-E<|-E<|OOQU1G3v1G3vO&;hQWO,5>]OOQU,5>_,5>_O&;mQWO1G3|O9WQWO7+&cO!(oQ^O7+&cOOQO7+%[7+%[O&;rQ07bO1G6UO>tQWO7+%[OOQ?Mr<<I^<<I^OOQ?Mr<<Iw<<IwO>tQWO<<IwOOQO<<Ip<<IpO$?}Q?NdO<<IpO%[Q^O<<IpOOQO<<Ia<<IaO!ArQ?MxO<<IaO&;|Q?MxO<<IpO&<XQ?NdO<= XO&<iQWO<= WOOQO7+*Z7+*ZO9WQWO7+*ZOOQUANAhANAhO&<qQrOANAhO!&_Q7[OANAhO#&wQWOANAhO4UQrOANAhO&<xQWOANAhO%[Q^OANAhO&=QQ?NdO7+'xO&?`Q?NdO,5?]O&AhQ?NdO,5?_O&CpQ?NdO7+'zO&FOQrO1G4hO&FYQ07bO7+&^O&HZQ07bO,5=UO&J_Q07bO,5=WO&JoQ07bO,5=UO&KPQ07bO,5=WO&KaQ07bO,59rO&MdQ07bO,5<iO' dQ07bO,5<kO'#dQ07bO,5<yO'%VQ07bO7+'jO'%dQ07bO7+'kO'%qQWO,5<[OOQO7+'_7+'_O'%vQ7[O<<KzOOQO1G4s1G4sO'%}QWO1G4sO'&YQWO1G4sO'&hQWO7++xO'&hQWO7++xO!&_Q7[O1G4uO'&pQpO1G4uO'&zQWO7++yOOQ?Mp7+(S7+(SO$)nQWO7+(TO''SQpO7+(TOOQ?Mp7+(R7+(RO$)nQWO7+(SO''ZQWO7+(TO!&_Q7[O7+(TOCcQWO7+(SO''`Q7[O<<NrOOQ?Mr7+$z7+$zO''jQpO,5?bOOQO-E<t-E<tO''tQ?NbO7+(WOOQUAN=gAN=gO9^QWO1G5SOOQO1G5S1G5SO'(UQWO1G5SO'(ZQWO7+,RO'(ZQWO7+,RO9hQ?MxOANBTO@fQWOANBTOOQUANBTANBTOOQUANApANApOOQUANAqANAqO'(cQWO,5?dOOQO-E<v-E<vO'(nQ07bO1G6dOOQO,5?f,5?fOOQO-E<x-E<xOOQU1G3^1G3^O%-gQ^O,5<}OOQU<<Lc<<LcO!&_Q7[O<<LcO&:OQWO<<LcO'(xQWO<<LcO%[Q^O<<LcOOQU<<Le<<LeO9hQ?MxO<<LeO$$lQWO<<LeO9RQWO<<LeO')QQ`O1G5RO')]QWO7+,POOQUAN=]AN=]O9hQ?MxOAN=]OOQU<= n<= nOOQU<= o<= oO')eQWO<= nO')jQWO<= oOOQU<<Lm<<LmO')oQWO<<LmO')tQ^O<<LmOOQU1G3w1G3wO>tQWO7+)hO'){QWO<<I}O'*WQ07bO<<I}OOQO<<Hv<<HvOOQ?MrAN?cAN?cOOQOAN?[AN?[O$?}Q?NdOAN?[OOQOAN>{AN>{O%[Q^OAN?[OOQO<<Mu<<MuOOQUG27SG27SO!&_Q7[OG27SO#&wQWOG27SO'*bQrOG27SO4UQrOG27SO'*iQWOG27SO'*qQ07bO<<JeO'+OQ07bO1G2^O',qQ07bO,5?]O'.qQ07bO,5?_O'0qQ07bO1G2pO'2qQ07bO1G2rO'4qQ07bO<<KVO'5OQ07bO<<IxOOQO1G1v1G1vO!+hQ7[OANAfOOQO7+*_7+*_O'5]QWO7+*_O'5hQWO<= dO'5pQpO7+*aOOQ?Mp<<Ko<<KoO$)nQWO<<KoOOQ?Mp<<Kn<<KnO'5zQpO<<KoO$)nQWO<<KnOOQO7+*n7+*nO9^QWO7+*nO'6RQWO<= mOOQUG27oG27oO9hQ?MxOG27oO!(oQ^O1G5OO'6ZQWO7+,OO&:OQWOANA}OOQUANA}ANA}O!&_Q7[OANA}O'6cQWOANA}OOQUANBPANBPO9hQ?MxOANBPO$$lQWOANBPOOQO'#H['#H[OOQO7+*m7+*mOOQUG22wG22wOOQUANEYANEYOOQUANEZANEZOOQUANBXANBXO'6kQWOANBXOOQU<<MS<<MSO!(oQ^OAN?iOOQOG24vG24vO$?}Q?NdOG24vO#&wQWOLD,nOOQULD,nLD,nO!&_Q7[OLD,nO'6pQrOLD,nO'6wQ07bO7+'xO'8jQ07bO,5?]O':jQ07bO,5?_O'<jQ07bO7+'zO'>]Q7[OG27QOOQO<<My<<MyOOQ?MpANAZANAZO$)nQWOANAZOOQ?MpANAYANAYOOQO<<NY<<NYOOQULD-ZLD-ZO'>mQ07bO7+*jOOQUG27iG27iO&:OQWOG27iO!&_Q7[OG27iOOQUG27kG27kO9hQ?MxOG27kOOQUG27sG27sO'>wQ07bOG25TOOQOLD*bLD*bOOQU!$(!Y!$(!YO#&wQWO!$(!YO!&_Q7[O!$(!YO'?RQ?NdOG27QOOQ?MpG26uG26uOOQULD-TLD-TO&:OQWOLD-TOOQULD-VLD-VOOQU!)9Et!)9EtO#&wQWO!)9EtOOQU!$(!o!$(!oOOQU!.K;`!.K;`O'AaQ07bOG27QO!(oQ^O'#DwO1PQWO'#EUO'CSQrO'#JmO'CZQMnO'#DsO'CbQ^O'#D{O'CiQrO'#CiO'FPQrO'#CiO!(oQ^O'#D}O'FaQ^O,5;WO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O'#IlO'HdQWO,5<gO'HlQ7[O,5;bO'JVQ7[O,5;bO!(oQ^O,5;vO!&_Q7[O'#GjO'HlQ7[O'#GjO!&_Q7[O'#GlO'HlQ7[O'#GlO1SQWO'#DWO1SQWO'#DWO!&_Q7[O'#F}O'HlQ7[O'#F}O!&_Q7[O'#GPO'HlQ7[O'#GPO!&_Q7[O'#G_O'HlQ7[O'#G_O!(oQ^O,5:gO'J^Q`O'#D[O!(oQ^O,5@jO'FaQ^O1G0rO'JhQ07bO'#CiO!(oQ^O1G2OO!&_Q7[O'#IqO'HlQ7[O'#IqO!&_Q7[O'#IsO'HlQ7[O'#IsO'JrQpO'#CrO!&_Q7[O,5<rO'HlQ7[O,5<rO'FaQ^O1G2PO!(oQ^O7+&yO!&_Q7[O1G2^O'HlQ7[O1G2^O!&_Q7[O'#IqO'HlQ7[O'#IqO!&_Q7[O'#IsO'HlQ7[O'#IsO!&_Q7[O1G2`O'HlQ7[O1G2`O'FaQ^O7+'kO'FaQ^O7+&^O!&_Q7[OANAfO'HlQ7[OANAfO'KVQWO'#ElO'K[QWO'#ElO'KdQWO'#F[O'KiQWO'#EvO'KnQWO'#KOO'KyQWO'#J|O'LUQWO,5;WO'LZQ7[O,5<dO'LbQWO'#GWO'LgQWO'#GWO'LlQWO,5<eO'LtQWO,5;WO'L|Q07bO1G1_O'MTQWO,5<rO'MYQWO,5<rO'M_QWO,5<tO'MdQWO,5<tO'MiQWO1G2PO'MnQWO1G0rO'MsQ7[O<<KzO'MzQ7[O<<KzO7eQ7[O'#FzO9RQWO'#FyOAaQWO'#EkO!(oQ^O,5;sO!3XQWO'#GWO!3XQWO'#GWO!3XQWO'#GYO!3XQWO'#GYO!+hQ7[O7+(`O!+hQ7[O7+(`O%,qQpO1G2tO%,qQpO1G2tO!&_Q7[O,5=YO!&_Q7[O,5=Y",stateData:"( O~O'wOS'xOSTOS'yRQ~OPYOQYOSfOY!VOaqOdzOeyOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![XO!fuO!iZO!lYO!mYO!nYO!pvO!rwO!uxO!y]O#t!PO$V|O%e}O%g!QO%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO%v!UO&S!WO&Y!XO&[!YO&^!ZO&`![O&c!]O&i!^O&o!_O&q!`O&s!aO&u!bO&w!cO(OSO(QTO(TUO([VO(j[O(yiO~OWtO~P`OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oa!wOp!nO!P!oO!_!yO!`!vO!a!vO!y:lO#Q!pO#R!pO#S!xO#T!pO#U!pO#X!zO#Y!zO(P!lO(QTO(TUO(`!mO(j!sO~O'y!{O~OP]XR]X[]Xa]Xo]X}]X!P]X!Y]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X'u]X([]X(m]X(t]X(u]X~O!d%PX~P(qO_!}O(Q#PO(R!}O(S#PO~O_#QO(S#PO(T#PO(U#QO~Ou#SO!R#TO(]#TO(^#VO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O:pO(QTO(TUO([VO(j[O(yiO~O!X#ZO!Y#WO!V(cP!V(qP~P+}O!Z#cO~P`OPYOQYOSfOd!jOe!iOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(QTO(TUO([VO(j[O(yiO~Om#mO!X#iO!y]O#f#lO#g#iO(O:qO!h(nP~P.iO!i#oO(O#nO~O!u#sO!y]O%e#tO~O#h#uO~O!d#vO#h#uO~OP$]OR#zO[$cOo$QO}#yO!P#{O!Y$`O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~Oa(aX'u(aX's(aX!h(aX!V(aX![(aX%f(aX!d(aX~P1qO#P$dO#]$eO$P$eOP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#s(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX![(bX%f(bX~Oa(bX'u(bX's(bX!V(bX!h(bXs(bX!d(bX~P4UO#]$eO~O$[$hO$^$gO$e$mO~OSfO![$nO$h$oO$j$qO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{%[O!P$|O![$}O!f%aO!i$yO#g%bO$V%_O$r%]O$t%^O$w%`O(O$sO(QTO(TUO([$vO(t%OO(u%QOg(XP~O!i%cO~O!P%fO![%gO(O%eO~O!d%kO~Oa%lO'u%lO~O}%pO~P%[O(P!lO~P%[O%k%tO~P%[Oh%WO!i%cO(O%eO(P!lO~Oe%{O!i%cO(O%eO~O#s$SO~O}&QO![%}O!i&PO%g&TO(O%eO(P!lO(QTO(TUO`)SP~O!u#sO~O%p&VO!P)OX![)OX(O)OX~O(O&WO~O!r&]O#t!PO%g!QO%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO~Od&bOe&aO!u&_O%e&`O%x&^O~P;|Od&eOeyO![&dO!r&]O!uxO!y]O#t!PO%e}O%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO%v!UO~Ob&hO#]&kO%g&fO(P!lO~P=RO!i&lO!r&pO~O!i#oO~O![XO~Oa%lO't&xO'u%lO~Oa%lO't&{O'u%lO~Oa%lO't&}O'u%lO~O's]X!V]Xs]X!h]X&W]X![]X%f]X!d]X~P(qO!_'[O!`'TO!a'TO(P!lO(QTO(TUO~Op'RO!P'QO!X'UO(`'PO!Z(dP!Z(sP~P@YOk'_O![']O(O%eO~Oe'dO!i%cO(O%eO~O}&QO!i&PO~Op!nO!P!oO!y:lO#Q!pO#R!pO#T!pO#U!pO(P!lO(QTO(TUO(`!mO(j!sO~O!_'jO!`'iO!a'iO#S!pO#X'kO#Y'kO~PAtOa%lOh%WO!d#vO!i%cO'u%lO(m'mO~O!m'qO#]'oO~PCSOp!nO!P!oO(QTO(TUO(`!mO(j!sO~O![XOp(hX!P(hX!_(hX!`(hX!a(hX!y(hX#Q(hX#R(hX#S(hX#T(hX#U(hX#X(hX#Y(hX(P(hX(Q(hX(T(hX(`(hX(j(hX~O!`'iO!a'iO(P!lO~PCrO'z'uO'{'uO'|'wO~O_!}O(Q'yO(R!}O(S'yO~O_#QO(S'yO(T'yO(U#QO~Ou#SO!R#TO(]#TO(^'}O~O!X(PO!V'SX!V'YX!Y'SX!Y'YX~P+}O!Y(RO!V(cX~OP$]OR#zO[$cOo$QO}#yO!P#{O!Y(RO!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~O!V(cX~PGfO!V(WO~O!V(pX!Y(pX!d(pX!h(pX(m(pX~O#](pX#h#aX!Z(pX~PIiO#](XO!V(rX!Y(rX~O!Y(YO!V(qX~O!V(]O~O#]$eO~PIiO!Z(^O~P`OR#zO}#yO!P#{O!i#xO([VOP!ka[!kao!ka!Y!ka!m!ka#O!ka#k!ka#l!ka#m!ka#n!ka#o!ka#p!ka#q!ka#r!ka#s!ka#u!ka#w!ka#y!ka#z!ka(m!ka(t!ka(u!ka~Oa!ka'u!ka's!ka!V!ka!h!kas!ka![!ka%f!ka!d!ka~PKPO!h(_O~O!d#vO#](`O(m'mO!Y(oXa(oX'u(oX~O!h(oX~PMlO!P%fO![%gO!y]O#f(eO#g(dO(O%eO~O!Y(fO!h(nX~O!h(hO~O!P%fO![%gO#g(dO(O%eO~OP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#s(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX~O!d#vO!h(bX~P! YOR(jO}(iO!i#xO#P$dO!y!xa!P!xa~O!u!xa%e!xa![!xa#f!xa#g!xa(O!xa~P!#ZO!u(nO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![XO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~O#h(tO~O!X(vO!h(fP~P%[O(`(xO(j[O~O!P(zO!i#xO(`(xO(j[O~OP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![!eO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(O)YO(QTO(TUO([VO(j[O(y<dO~O!Y$`Oa$oa'u$oa's$oa!h$oa!V$oa![$oa%f$oa!d$oa~O#t)`O~P!&_Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{%[O!P$|O![$}O!f%aO!i$yO#g%bO$V%_O$r%]O$t%^O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~Og(kP~P!+hO})eO!d)dO![$]X$Y$]X$[$]X$^$]X$e$]X~O!d)dO![(vX$Y(vX$[(vX$^(vX$e(vX~O})eO~P!-qO})eO![(vX$Y(vX$[(vX$^(vX$e(vX~O![)gO$Y)kO$[)fO$^)fO$e)lO~O!X)oO~P!(oO$[$hO$^$gO$e)sO~Ok$xX}$xX!P$xX#P$xX(t$xX(u$xX~OgjXg$xXkjX!YjX#]jX~P!/gOp)uO~Ou)vO(])wO(^)yO~Ok*SO}){O!P)|O(t%OO(u%QO~Og)zO~P!0pOg*TO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P*VO![*WO!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(QTO(TUO([$vO(t%OO(u%QO~O!X*ZO(O*UO!h(zP~P!1_O#h*]O~O!i*^O~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(O*`O(QTO(TUO([$vO(t%OO(u%QO~O!X*cO!V({P~P!3^Oo*oO!P*gO!_*mO!`*fO!a*fO!i*^O#X*nO%]*iO(P!lO(`!mO~O!Z*lO~P!5RO#P$dOk(ZX}(ZX!P(ZX(t(ZX(u(ZX!Y(ZX#](ZX~Og(ZX#}(ZX~P!5zOk*tO#]*sOg(YX!Y(YX~O!Y*uOg(XX~O(O&WOg(XP~O!i*|O~O(O(rO~Om+QO!P%fO!X#iO![%gO!y]O#f#lO#g#iO(O%eO!h(nP~O!d#vO#h+RO~O!P%fO!X+TO!Y(YO![%gO(O%eO!V(qP~Op'XO!P+VO!X+UO(QTO(TUO(`(xO~O!Z(sP~P!8uO!Y+WOa)PX'u)PX~OP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~Oa!ga!Y!ga'u!ga's!ga!V!ga!h!gas!ga![!ga%f!ga!d!ga~P!9mOR#zO}#yO!P#{O!i#xO([VOP!oa[!oao!oa!Y!oa!m!oa#O!oa#k!oa#l!oa#m!oa#n!oa#o!oa#p!oa#q!oa#r!oa#s!oa#u!oa#w!oa#y!oa#z!oa(m!oa(t!oa(u!oa~Oa!oa'u!oa's!oa!V!oa!h!oas!oa![!oa%f!oa!d!oa~P!<TOR#zO}#yO!P#{O!i#xO([VOP!qa[!qao!qa!Y!qa!m!qa#O!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#s!qa#u!qa#w!qa#y!qa#z!qa(m!qa(t!qa(u!qa~Oa!qa'u!qa's!qa!V!qa!h!qas!qa![!qa%f!qa!d!qa~P!>kOh%WOk+aO![']O%f+`O~O!d+cOa(WX![(WX'u(WX!Y(WX~Oa%lO![XO'u%lO~Oh%WO!i%cO~Oh%WO!i%cO(O%eO~O!d#vO#h(tO~Ob+nO%g+oO(O+kO(QTO(TUO!Z)TP~O!Y+pO`)SX~O[+tO~O`+uO~O![%}O(O%eO(P!lO`)SP~Oh%WO#]+zO~Oh%WOk+}O![$}O~O![,PO~O},RO![XO~O%k%tO~O!u,WO~Oe,]O~Ob,^O(O#nO(QTO(TUO!Z)RP~Oe%{O~O%g!QO(O&WO~P=RO[,cO`,bO~OPYOQYOSfOdzOeyOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO!fuO!iZO!lYO!mYO!nYO!pvO!uxO!y]O%e}O(QTO(TUO([VO(j[O(yiO~O![!eO!r!gO$V!kO(O!dO~P!EkO`,bOa%lO'u%lO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oa,hO!rwO#t!OO%i!OO%j!OO%k!OO~P!HTO!i&lO~O&Y,nO~O![,pO~O&k,rO&m,sOP&haQ&haS&haY&haa&had&hae&ham&hao&hap&haq&haw&hay&ha{&ha!P&ha!T&ha!U&ha![&ha!f&ha!i&ha!l&ha!m&ha!n&ha!p&ha!r&ha!u&ha!y&ha#t&ha$V&ha%e&ha%g&ha%i&ha%j&ha%k&ha%n&ha%p&ha%s&ha%t&ha%v&ha&S&ha&Y&ha&[&ha&^&ha&`&ha&c&ha&i&ha&o&ha&q&ha&s&ha&u&ha&w&ha's&ha(O&ha(Q&ha(T&ha([&ha(j&ha(y&ha!Z&ha&a&hab&ha&f&ha~O(O,xO~Oh!bX!Y!OX!Z!OX!d!OX!d!bX!i!bX#]!OX~O!Y!bX!Z!bX~P# ZO!d,}O#],|Oh(eX!Y#eX!Y(eX!Z#eX!Z(eX!d(eX!i(eX~Oh%WO!d-PO!i%cO!Y!^X!Z!^X~Op!nO!P!oO(QTO(TUO(`!mO~OP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![!eO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(QTO(TUO([VO(j[O(y<dO~O(O;fO~P##_O!Y-TO!Z(dX~O!Z-VO~O!d,}O#],|O!Y#eX!Z#eX~O!Y-WO!Z(sX~O!Z-YO~O!`-ZO!a-ZO(P!lO~P#!|O!Z-^O~P'_Ok-aO![']O~O!V-fO~Op!xa!_!xa!`!xa!a!xa#Q!xa#R!xa#S!xa#T!xa#U!xa#X!xa#Y!xa(P!xa(Q!xa(T!xa(`!xa(j!xa~P!#ZO!m-kO#]-iO~PCSO!`-mO!a-mO(P!lO~PCrOa%lO#]-iO'u%lO~Oa%lO!d#vO#]-iO'u%lO~Oa%lO!d#vO!m-kO#]-iO'u%lO(m'mO~O'z'uO'{'uO'|-rO~Os-sO~O!V'Sa!Y'Sa~P!9mO!X-wO!V'SX!Y'SX~P%[O!Y(RO!V(ca~O!V(ca~PGfO!Y(YO!V(qa~O!P%fO!X-{O![%gO(O%eO!V'YX!Y'YX~O#]-}O!Y(oa!h(oaa(oa'u(oa~O!d#vO~P#+eO!Y(fO!h(na~O!P%fO![%gO#g.RO(O%eO~Om.WO!P%fO!X.TO![%gO!y]O#f.VO#g.TO(O%eO!Y']X!h']X~OR.[O!i#xO~Oh%WOk._O![']O%f.^O~Oa#`i!Y#`i'u#`i's#`i!V#`i!h#`is#`i![#`i%f#`i!d#`i~P!9mOk<pO}){O!P)|O(t%OO(u%QO~O#h#[aa#[a#]#[a'u#[a!Y#[a!h#[a![#[a!V#[a~P#.aO#h(ZXP(ZXR(ZX[(ZXa(ZXo(ZX!i(ZX!m(ZX#O(ZX#k(ZX#l(ZX#m(ZX#n(ZX#o(ZX#p(ZX#q(ZX#r(ZX#s(ZX#u(ZX#w(ZX#y(ZX#z(ZX'u(ZX([(ZX(m(ZX!h(ZX!V(ZX's(ZXs(ZX![(ZX%f(ZX!d(ZX~P!5zO!Y.lO!h(fX~P!9mO!h.oO~O!V.qO~OP$]OR#zO}#yO!P#{O!i#xO!m$]O([VO[#jia#jio#ji!Y#ji#O#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#k#ji~P#1|O#k$OO~P#1|OP$]OR#zO}#yO!P#{O!i#xO!m$]O#k$OO#l$PO#m$PO#n$PO([VO[#jia#ji!Y#ji#O#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~Oo#ji~P#4kOo$QO~P#4kOP$]OR#zOo$QO}#yO!P#{O!i#xO!m$]O#k$OO#l$PO#m$PO#n$PO#o$RO([VOa#ji!Y#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O[#ji#O#ji#p#ji#q#ji#r#ji#s#ji~P#7YO[$cO#O$SO#p$SO#q$SO#r$bO#s$SO~P#7YOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO([VO(u#}Oa#ji!Y#ji#y#ji#z#ji'u#ji(m#ji(t#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#w$VO~P#:WO#w#ji~P#:WOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO([VOa#ji!Y#ji#y#ji#z#ji'u#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#w#ji(t#ji(u#ji~P#<uO#w$VO(t#|O(u#}O~P#<uOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO([VO(t#|O(u#}O~Oa#ji!Y#ji#z#ji'u#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~P#?jOP]XR]X[]Xo]X}]X!P]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X!Y]X!Z]X~O#}]X~P#BQOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO#w:{O#y:}O#z;OO([VO(m$ZO(t#|O(u#}O~O#}.sO~P#D_O#P$dO#];TO$P;TO#}(bX!Z(bX~P! YOa'`a!Y'`a'u'`a's'`a!h'`a!V'`as'`a!['`a%f'`a!d'`a~P!9mOP#jiR#ji[#jia#jio#ji!Y#ji!i#ji!m#ji#O#ji#k#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji([#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~P#.aO!Y.wOg(kX~P!0pOg.yO~Oa$Oi!Y$Oi'u$Oi's$Oi!V$Oi!h$Ois$Oi![$Oi%f$Oi!d$Oi~P!9mO$[.zO$^.zO~O$[.{O$^.{O~O!d)dO#].|O![$bX$Y$bX$[$bX$^$bX$e$bX~O!X.}O~O![)gO$Y/PO$[)fO$^)fO$e/QO~O!Y;PO!Z(aX~P#D_O!Z/RO~O!d)dO$e(vX~O$e/TO~Ou)vO(])wO(^/WO~O!V/[O~P!&_O(t%OOk%^a}%^a!P%^a(u%^a!Y%^a#]%^a~Og%^a#}%^a~P#L{O(u%QOk%`a}%`a!P%`a(t%`a!Y%`a#]%`a~Og%`a#}%`a~P#MnO!YfX!dfX!hfX!h$xX(mfX~P!/gO!X/eO!Y(YO(O/dO!V(qP!V({P~P!1_Oo*oO!_*mO!`*fO!a*fO!i*^O#X*nO%]*iO(P!lO~Op'XO!P/fO!X+UO!Z*lO(QTO(TUO(`;cO!Z(sP~P$ XO!h/gO~P#.aO!Y/hO!d#vO(m'mO!h(zX~O!h/mO~O!P%fO!X*ZO![%gO(O%eO!h(zP~O#h/oO~O!V$xX!Y$xX!d%PX~P!/gO!Y/pO!V({X~P#.aO!d/rO~O!V/tO~Oh%WOo/xO!d#vO!i%cO(m'mO~O(O/zO~O!d+cO~Oa%lO!Y0OO'u%lO~O!Z0QO~P!5RO!`0RO!a0RO(P!lO(`!mO~O!P0TO(`!mO~O#X0UO~Og%^a!Y%^a#]%^a#}%^a~P!0pOg%`a!Y%`a#]%`a#}%`a~P!0pO(O&WOg'iX!Y'iX~O!Y*uOg(Xa~Og0_O~OR0`O}0`O!P0aO#P$dOkza(tza(uza!Yza#]za~Ogza#}za~P$&zO}){O!P)|Ok$qa(t$qa(u$qa!Y$qa#]$qa~Og$qa#}$qa~P$'sO}){O!P)|Ok$sa(t$sa(u$sa!Y$sa#]$sa~Og$sa#}$sa~P$(fO#h0dO~Og%Ra!Y%Ra#]%Ra#}%Ra~P!0pO!d#vO~O#h0gO~O!Y+WOa)Pa'u)Pa~OR#zO}#yO!P#{O!i#xO([VOP!oi[!oio!oi!Y!oi!m!oi#O!oi#k!oi#l!oi#m!oi#n!oi#o!oi#p!oi#q!oi#r!oi#s!oi#u!oi#w!oi#y!oi#z!oi(m!oi(t!oi(u!oi~Oa!oi'u!oi's!oi!V!oi!h!ois!oi![!oi%f!oi!d!oi~P$*TOh%WOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(QTO(TUO([$vO(t%OO(u%QO~Om0pO(O0oO~P$,kO!d+cOa(Wa![(Wa'u(Wa!Y(Wa~O#h0vO~O[]X!YfX!ZfX~O!Y0wO!Z)TX~O!Z0yO~O[0zO~Ob0|O(O+kO(QTO(TUO~O![%}O(O%eO`'qX!Y'qX~O!Y+pO`)Sa~O!h1PO~P!9mO[1SO~O`1TO~O#]1WO~Ok1ZO![$}O~O(`(xO!Z)QP~Oh%WOk1dO![1aO%f1cO~O[1nO!Y1lO!Z)RX~O!Z1oO~O`1qOa%lO'u%lO~O(O#nO(QTO(TUO~O#P$dO#]$eO$P$eOP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX~O#s1tO&W1uOa(bX~P$2RO#]$eO#s1tO&W1uO~Oa1wO~P%[Oa1yO~O&a1|OP&_iQ&_iS&_iY&_ia&_id&_ie&_im&_io&_ip&_iq&_iw&_iy&_i{&_i!P&_i!T&_i!U&_i![&_i!f&_i!i&_i!l&_i!m&_i!n&_i!p&_i!r&_i!u&_i!y&_i#t&_i$V&_i%e&_i%g&_i%i&_i%j&_i%k&_i%n&_i%p&_i%s&_i%t&_i%v&_i&S&_i&Y&_i&[&_i&^&_i&`&_i&c&_i&i&_i&o&_i&q&_i&s&_i&u&_i&w&_i's&_i(O&_i(Q&_i(T&_i([&_i(j&_i(y&_i!Z&_ib&_i&f&_i~Ob2SO!Z2QO&f2RO~P`O![XO!i2UO~O&m,sOP&hiQ&hiS&hiY&hia&hid&hie&him&hio&hip&hiq&hiw&hiy&hi{&hi!P&hi!T&hi!U&hi![&hi!f&hi!i&hi!l&hi!m&hi!n&hi!p&hi!r&hi!u&hi!y&hi#t&hi$V&hi%e&hi%g&hi%i&hi%j&hi%k&hi%n&hi%p&hi%s&hi%t&hi%v&hi&S&hi&Y&hi&[&hi&^&hi&`&hi&c&hi&i&hi&o&hi&q&hi&s&hi&u&hi&w&hi's&hi(O&hi(Q&hi(T&hi([&hi(j&hi(y&hi!Z&hi&a&hib&hi&f&hi~O!V2[O~O!Y!^a!Z!^a~P#D_Op!nO!P!oO!X2bO(`!mO!Y'TX!Z'TX~P@YO!Y-TO!Z(da~O!Y'ZX!Z'ZX~P!8uO!Y-WO!Z(sa~O!Z2iO~P'_Oa%lO#]2rO'u%lO~Oa%lO!d#vO#]2rO'u%lO~Oa%lO!d#vO!m2vO#]2rO'u%lO(m'mO~Oa%lO'u%lO~P!9mO!Y$`Os$oa~O!V'Si!Y'Si~P!9mO!Y(RO!V(ci~O!Y(YO!V(qi~O!V(ri!Y(ri~P!9mO!Y(oi!h(oia(oi'u(oi~P!9mO#]2xO!Y(oi!h(oia(oi'u(oi~O!Y(fO!h(ni~O!P%fO![%gO!y]O#f2}O#g2|O(O%eO~O!P%fO![%gO#g2|O(O%eO~Ok3UO![']O%f3TO~Oh%WOk3UO![']O%f3TO~O#h%^aP%^aR%^a[%^aa%^ao%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a'u%^a([%^a(m%^a!h%^a!V%^a's%^as%^a![%^a%f%^a!d%^a~P#L{O#h%`aP%`aR%`a[%`aa%`ao%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a'u%`a([%`a(m%`a!h%`a!V%`a's%`as%`a![%`a%f%`a!d%`a~P#MnO#h%^aP%^aR%^a[%^aa%^ao%^a!Y%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a'u%^a([%^a(m%^a!h%^a!V%^a's%^a#]%^as%^a![%^a%f%^a!d%^a~P#.aO#h%`aP%`aR%`a[%`aa%`ao%`a!Y%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a'u%`a([%`a(m%`a!h%`a!V%`a's%`a#]%`as%`a![%`a%f%`a!d%`a~P#.aO#hzaPza[zaazaoza!iza!mza#Oza#kza#lza#mza#nza#oza#pza#qza#rza#sza#uza#wza#yza#zza'uza([za(mza!hza!Vza'szasza![za%fza!dza~P$&zO#h$qaP$qaR$qa[$qaa$qao$qa!i$qa!m$qa#O$qa#k$qa#l$qa#m$qa#n$qa#o$qa#p$qa#q$qa#r$qa#s$qa#u$qa#w$qa#y$qa#z$qa'u$qa([$qa(m$qa!h$qa!V$qa's$qas$qa![$qa%f$qa!d$qa~P$'sO#h$saP$saR$sa[$saa$sao$sa!i$sa!m$sa#O$sa#k$sa#l$sa#m$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#u$sa#w$sa#y$sa#z$sa'u$sa([$sa(m$sa!h$sa!V$sa's$sas$sa![$sa%f$sa!d$sa~P$(fO#h%RaP%RaR%Ra[%Raa%Rao%Ra!Y%Ra!i%Ra!m%Ra#O%Ra#k%Ra#l%Ra#m%Ra#n%Ra#o%Ra#p%Ra#q%Ra#r%Ra#s%Ra#u%Ra#w%Ra#y%Ra#z%Ra'u%Ra([%Ra(m%Ra!h%Ra!V%Ra's%Ra#]%Ras%Ra![%Ra%f%Ra!d%Ra~P#.aOa#`q!Y#`q'u#`q's#`q!V#`q!h#`qs#`q![#`q%f#`q!d#`q~P!9mO!X3^O!Y'UX!h'UX~P%[O!Y.lO!h(fa~O!Y.lO!h(fa~P!9mO!V3aO~O#}!ka!Z!ka~PKPO#}!ga!Y!ga!Z!ga~P#D_O#}!oa!Z!oa~P!<TO#}!qa!Z!qa~P!>kOg'XX!Y'XX~P!+hO!Y.wOg(ka~OSfO![3uO$c3vO~O!Z3zO~Os3{O~P#.aOa$lq!Y$lq'u$lq's$lq!V$lq!h$lqs$lq![$lq%f$lq!d$lq~P!9mO!V3|O~P#.aO}){O!P)|O(u%QOk'ea(t'ea!Y'ea#]'ea~Og'ea#}'ea~P%+]O}){O!P)|Ok'ga(t'ga(u'ga!Y'ga#]'ga~Og'ga#}'ga~P%,OO(m$ZO~P#.aO!VfX!V$xX!YfX!Y$xX!d%PX#]fX~P!/gO(O;lO~P!1_OmkO(O4OO~P.iO!P%fO!X4QO![%gO(O%eO!Y'aX!h'aX~O!Y/hO!h(za~O!Y/hO!d#vO!h(za~O!Y/hO!d#vO(m'mO!h(za~Og$zi!Y$zi#]$zi#}$zi~P!0pO!X4YO!V'cX!Y'cX~P!3^O!Y/pO!V({a~O!Y/pO!V({a~P#.aO!d#vO#s4bO~Oo4eO!d#vO(m'mO~O(t%OOk%^i}%^i!P%^i(u%^i!Y%^i#]%^i~Og%^i#}%^i~P%0^O(u%QOk%`i}%`i!P%`i(t%`i!Y%`i#]%`i~Og%`i#}%`i~P%1POg(Yi!Y(Yi~P!0pO#]4lOg(Yi!Y(Yi~P!0pO!h4oO~Oa$mq!Y$mq'u$mq's$mq!V$mq!h$mqs$mq![$mq%f$mq!d$mq~P!9mO!V4sO~O!Y4tO![(|X~P#.aOa$xX![$xX%Z]X'u$xX!Y$xX~P!/gO%Z4wOalXklX}lX!PlX![lX'ulX(tlX(ulX!YlX~O%Z4wO~Ob4}O%g5OO(O+kO(QTO(TUO!Y'pX!Z'pX~O!Y0wO!Z)Ta~O[5SO~O`5TO~Oa%lO'u%lO~P#.aO![$}O~P#.aO!Y5]O#]5_O!Z)QX~O!Z5`O~Op!nO!P5aO!_!yO!`!vO!a!vO!y:lO#Q!pO#R!pO#S!pO#T!pO#U!pO#X5fO#Y!zO(P!lO(QTO(TUO(`!mO(j!sO~O!Z5eO~P%6ZOk5kO![1aO%f5jO~Oh%WOk5kO![1aO%f5jO~Ob5rO(O#nO(QTO(TUO!Y'oX!Z'oX~O!Y1lO!Z)Ra~O(QTO(TUO(`5tO~O`5xO~O#s5{O&W5|O~PMlO!h5}O~P%[Oa6PO~Oa6PO~P%[Ob2SO!Z6UO&f2RO~P`O!d6WO~O!d6YOh(ei!Y(ei!Z(ei!d(ei!i(ei~O!Y#ei!Z#ei~P#D_O#]6ZO!Y#ei!Z#ei~O!Y!^i!Z!^i~P#D_Oa%lO#]6dO'u%lO~Oa%lO!d#vO#]6dO'u%lO~O!Y(oq!h(oqa(oq'u(oq~P!9mO!Y(fO!h(nq~O!P%fO![%gO#g6kO(O%eO~O![']O%f6nO~Ok6rO![']O%f6nO~O#h'eaP'eaR'ea['eaa'eao'ea!i'ea!m'ea#O'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#s'ea#u'ea#w'ea#y'ea#z'ea'u'ea(['ea(m'ea!h'ea!V'ea's'eas'ea!['ea%f'ea!d'ea~P%+]O#h'gaP'gaR'ga['gaa'gao'ga!i'ga!m'ga#O'ga#k'ga#l'ga#m'ga#n'ga#o'ga#p'ga#q'ga#r'ga#s'ga#u'ga#w'ga#y'ga#z'ga'u'ga(['ga(m'ga!h'ga!V'ga's'gas'ga!['ga%f'ga!d'ga~P%,OO#h$ziP$ziR$zi[$zia$zio$zi!Y$zi!i$zi!m$zi#O$zi#k$zi#l$zi#m$zi#n$zi#o$zi#p$zi#q$zi#r$zi#s$zi#u$zi#w$zi#y$zi#z$zi'u$zi([$zi(m$zi!h$zi!V$zi's$zi#]$zis$zi![$zi%f$zi!d$zi~P#.aO#h%^iP%^iR%^i[%^ia%^io%^i!i%^i!m%^i#O%^i#k%^i#l%^i#m%^i#n%^i#o%^i#p%^i#q%^i#r%^i#s%^i#u%^i#w%^i#y%^i#z%^i'u%^i([%^i(m%^i!h%^i!V%^i's%^is%^i![%^i%f%^i!d%^i~P%0^O#h%`iP%`iR%`i[%`ia%`io%`i!i%`i!m%`i#O%`i#k%`i#l%`i#m%`i#n%`i#o%`i#p%`i#q%`i#r%`i#s%`i#u%`i#w%`i#y%`i#z%`i'u%`i([%`i(m%`i!h%`i!V%`i's%`is%`i![%`i%f%`i!d%`i~P%1PO!Y'Ua!h'Ua~P!9mO!Y.lO!h(fi~O#}#`i!Y#`i!Z#`i~P#D_OP$]OR#zO}#yO!P#{O!i#xO!m$]O([VO[#jio#ji#O#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~O#k#ji~P%HpO#k:tO~P%HpOP$]OR#zO}#yO!P#{O!i#xO!m$]O#k:tO#l:uO#m:uO#n:uO([VO[#ji#O#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~Oo#ji~P%JxOo:vO~P%JxOP$]OR#zOo:vO}#yO!P#{O!i#xO!m$]O#k:tO#l:uO#m:uO#n:uO#o:wO([VO#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~O[#ji#O#ji#p#ji#q#ji#r#ji#s#ji~P%MQO[;SO#O:xO#p:xO#q:xO#r;RO#s:xO~P%MQOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO([VO(u#}O#y#ji#z#ji#}#ji(m#ji(t#ji!Y#ji!Z#ji~O#w:{O~P& iO#w#ji~P& iOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO([VO#y#ji#z#ji#}#ji(m#ji!Y#ji!Z#ji~O#w#ji(t#ji(u#ji~P&#qO#w:{O(t#|O(u#}O~P&#qOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO#w:{O#y:}O([VO(t#|O(u#}O~O#z#ji#}#ji(m#ji!Y#ji!Z#ji~P&&POa#{y!Y#{y'u#{y's#{y!V#{y!h#{ys#{y![#{y%f#{y!d#{y~P!9mOk<qO}){O!P)|O(t%OO(u%QO~OP#jiR#ji[#jio#ji!i#ji!m#ji#O#ji#k#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji([#ji(m#ji!Y#ji!Z#ji~P&(tO#P$dOP(ZXR(ZX[(ZXk(ZXo(ZX}(ZX!P(ZX!i(ZX!m(ZX#O(ZX#k(ZX#l(ZX#m(ZX#n(ZX#o(ZX#p(ZX#q(ZX#r(ZX#s(ZX#u(ZX#w(ZX#y(ZX#z(ZX#}(ZX([(ZX(m(ZX(t(ZX(u(ZX!Y(ZX!Z(ZX~O#}$Oi!Y$Oi!Z$Oi~P#D_O#}!oi!Z!oi~P$*TOg'Xa!Y'Xa~P!0pO!Z7UO~O!Y'`a!Z'`a~P#D_OP]XR]X[]Xo]X}]X!P]X!V]X!Y]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X~O!d%WX#s%WX~P&-}O!d#vO(m'mO!Y'aa!h'aa~O!Y/hO!h(zi~O!Y/hO!d#vO!h(zi~Og$zq!Y$zq#]$zq#}$zq~P!0pO!V'ca!Y'ca~P#.aO!d7]O~O!Y/pO!V({i~P#.aO!Y/pO!V({i~O!V7aO~O!d#vO#s7fO~Oo7gO!d#vO(m'mO~O}){O!P)|O(u%QOk'fa(t'fa!Y'fa#]'fa~Og'fa#}'fa~P&2mO}){O!P)|Ok'ha(t'ha(u'ha!Y'ha#]'ha~Og'ha#}'ha~P&3`O!V7iO~Og$|q!Y$|q#]$|q#}$|q~P!0pOa$my!Y$my'u$my's$my!V$my!h$mys$my![$my%f$my!d$my~P!9mO!d6YO~O!Y4tO![(|a~O![']OP$SaR$Sa[$Sao$Sa}$Sa!P$Sa!Y$Sa!i$Sa!m$Sa#O$Sa#k$Sa#l$Sa#m$Sa#n$Sa#o$Sa#p$Sa#q$Sa#r$Sa#s$Sa#u$Sa#w$Sa#y$Sa#z$Sa([$Sa(m$Sa(t$Sa(u$Sa~O%f6nO~P&5iOa#`y!Y#`y'u#`y's#`y!V#`y!h#`ys#`y![#`y%f#`y!d#`y~P!9mO[7nO~Ob7pO(O+kO(QTO(TUO~O!Y0wO!Z)Ti~O`7tO~O(`(xO!Y'lX!Z'lX~O!Y5]O!Z)Qa~O!Z7}O~P%6ZOp!nO!P8OO(QTO(TUO(`!mO(j!sO~O![1aO~O![1aO%f8QO~Ok8TO![1aO%f8QO~O[8YO!Y'oa!Z'oa~O!Y1lO!Z)Ri~O!h8^O~O!h8_O~O!h8bO~O!h8bO~P%[Oa8dO~O!d8eO~O!h8fO~O!Y(ri!Z(ri~P#D_Oa%lO#]8nO'u%lO~O!Y(oy!h(oya(oy'u(oy~P!9mO!Y(fO!h(ny~O%f8qO~P&5iO![']O%f8qO~O#h$zqP$zqR$zq[$zqa$zqo$zq!Y$zq!i$zq!m$zq#O$zq#k$zq#l$zq#m$zq#n$zq#o$zq#p$zq#q$zq#r$zq#s$zq#u$zq#w$zq#y$zq#z$zq'u$zq([$zq(m$zq!h$zq!V$zq's$zq#]$zqs$zq![$zq%f$zq!d$zq~P#.aO#h'faP'faR'fa['faa'fao'fa!i'fa!m'fa#O'fa#k'fa#l'fa#m'fa#n'fa#o'fa#p'fa#q'fa#r'fa#s'fa#u'fa#w'fa#y'fa#z'fa'u'fa(['fa(m'fa!h'fa!V'fa's'fas'fa!['fa%f'fa!d'fa~P&2mO#h'haP'haR'ha['haa'hao'ha!i'ha!m'ha#O'ha#k'ha#l'ha#m'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#u'ha#w'ha#y'ha#z'ha'u'ha(['ha(m'ha!h'ha!V'ha's'has'ha!['ha%f'ha!d'ha~P&3`O#h$|qP$|qR$|q[$|qa$|qo$|q!Y$|q!i$|q!m$|q#O$|q#k$|q#l$|q#m$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#u$|q#w$|q#y$|q#z$|q'u$|q([$|q(m$|q!h$|q!V$|q's$|q#]$|qs$|q![$|q%f$|q!d$|q~P#.aO!Y'Ui!h'Ui~P!9mO#}#`q!Y#`q!Z#`q~P#D_O(t%OOP%^aR%^a[%^ao%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a#}%^a([%^a(m%^a!Y%^a!Z%^a~Ok%^a}%^a!P%^a(u%^a~P&FgO(u%QOP%`aR%`a[%`ao%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a#}%`a([%`a(m%`a!Y%`a!Z%`a~Ok%`a}%`a!P%`a(t%`a~P&HkOk<qO}){O!P)|O(u%QO~P&FgOk<qO}){O!P)|O(t%OO~P&HkOR0`O}0`O!P0aO#P$dOPza[zakzaoza!iza!mza#Oza#kza#lza#mza#nza#oza#pza#qza#rza#sza#uza#wza#yza#zza#}za([za(mza(tza(uza!Yza!Zza~O}){O!P)|OP$qaR$qa[$qak$qao$qa!i$qa!m$qa#O$qa#k$qa#l$qa#m$qa#n$qa#o$qa#p$qa#q$qa#r$qa#s$qa#u$qa#w$qa#y$qa#z$qa#}$qa([$qa(m$qa(t$qa(u$qa!Y$qa!Z$qa~O}){O!P)|OP$saR$sa[$sak$sao$sa!i$sa!m$sa#O$sa#k$sa#l$sa#m$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#u$sa#w$sa#y$sa#z$sa#}$sa([$sa(m$sa(t$sa(u$sa!Y$sa!Z$sa~OP%RaR%Ra[%Rao%Ra!i%Ra!m%Ra#O%Ra#k%Ra#l%Ra#m%Ra#n%Ra#o%Ra#p%Ra#q%Ra#r%Ra#s%Ra#u%Ra#w%Ra#y%Ra#z%Ra#}%Ra([%Ra(m%Ra!Y%Ra!Z%Ra~P&(tO#}$lq!Y$lq!Z$lq~P#D_O#}$mq!Y$mq!Z$mq~P#D_O!Z9OO~O#}9PO~P!0pO!d#vO!Y'ai!h'ai~O!d#vO(m'mO!Y'ai!h'ai~O!Y/hO!h(zq~O!V'ci!Y'ci~P#.aO!Y/pO!V({q~O!V9VO~P#.aO!V9VO~Og(Yy!Y(Yy~P!0pO!Y'ja!['ja~P#.aOa%Yq![%Yq'u%Yq!Y%Yq~P#.aO[9[O~O!Y0wO!Z)Tq~O#]9`O!Y'la!Z'la~O!Y5]O!Z)Qi~P#D_O![1aO%f9dO~O(QTO(TUO(`9iO~O!Y1lO!Z)Rq~O!h9lO~O!h9mO~O!h9nO~O!h9nO~P%[O#]9qO!Y#ey!Z#ey~O!Y#ey!Z#ey~P#D_O%f9vO~P&5iO![']O%f9vO~O#}#{y!Y#{y!Z#{y~P#D_OP$ziR$zi[$zio$zi!i$zi!m$zi#O$zi#k$zi#l$zi#m$zi#n$zi#o$zi#p$zi#q$zi#r$zi#s$zi#u$zi#w$zi#y$zi#z$zi#}$zi([$zi(m$zi!Y$zi!Z$zi~P&(tO}){O!P)|O(u%QOP'eaR'ea['eak'eao'ea!i'ea!m'ea#O'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#s'ea#u'ea#w'ea#y'ea#z'ea#}'ea(['ea(m'ea(t'ea!Y'ea!Z'ea~O}){O!P)|OP'gaR'ga['gak'gao'ga!i'ga!m'ga#O'ga#k'ga#l'ga#m'ga#n'ga#o'ga#p'ga#q'ga#r'ga#s'ga#u'ga#w'ga#y'ga#z'ga#}'ga(['ga(m'ga(t'ga(u'ga!Y'ga!Z'ga~O(t%OOP%^iR%^i[%^ik%^io%^i}%^i!P%^i!i%^i!m%^i#O%^i#k%^i#l%^i#m%^i#n%^i#o%^i#p%^i#q%^i#r%^i#s%^i#u%^i#w%^i#y%^i#z%^i#}%^i([%^i(m%^i(u%^i!Y%^i!Z%^i~O(u%QOP%`iR%`i[%`ik%`io%`i}%`i!P%`i!i%`i!m%`i#O%`i#k%`i#l%`i#m%`i#n%`i#o%`i#p%`i#q%`i#r%`i#s%`i#u%`i#w%`i#y%`i#z%`i#}%`i([%`i(m%`i(t%`i!Y%`i!Z%`i~O#}$my!Y$my!Z$my~P#D_O#}#`y!Y#`y!Z#`y~P#D_O!d#vO!Y'aq!h'aq~O!Y/hO!h(zy~O!V'cq!Y'cq~P#.aO!V:PO~P#.aO!Y0wO!Z)Ty~O!Y5]O!Z)Qq~O![1aO%f:WO~O!h:ZO~O%f:`O~P&5iOP$zqR$zq[$zqo$zq!i$zq!m$zq#O$zq#k$zq#l$zq#m$zq#n$zq#o$zq#p$zq#q$zq#r$zq#s$zq#u$zq#w$zq#y$zq#z$zq#}$zq([$zq(m$zq!Y$zq!Z$zq~P&(tO}){O!P)|O(u%QOP'faR'fa['fak'fao'fa!i'fa!m'fa#O'fa#k'fa#l'fa#m'fa#n'fa#o'fa#p'fa#q'fa#r'fa#s'fa#u'fa#w'fa#y'fa#z'fa#}'fa(['fa(m'fa(t'fa!Y'fa!Z'fa~O}){O!P)|OP'haR'ha['hak'hao'ha!i'ha!m'ha#O'ha#k'ha#l'ha#m'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#u'ha#w'ha#y'ha#z'ha#}'ha(['ha(m'ha(t'ha(u'ha!Y'ha!Z'ha~OP$|qR$|q[$|qo$|q!i$|q!m$|q#O$|q#k$|q#l$|q#m$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#u$|q#w$|q#y$|q#z$|q#}$|q([$|q(m$|q!Y$|q!Z$|q~P&(tOg%b!Z!Y%b!Z#]%b!Z#}%b!Z~P!0pO!Y'lq!Z'lq~P#D_O!Y#e!Z!Z#e!Z~P#D_O#h%b!ZP%b!ZR%b!Z[%b!Za%b!Zo%b!Z!Y%b!Z!i%b!Z!m%b!Z#O%b!Z#k%b!Z#l%b!Z#m%b!Z#n%b!Z#o%b!Z#p%b!Z#q%b!Z#r%b!Z#s%b!Z#u%b!Z#w%b!Z#y%b!Z#z%b!Z'u%b!Z([%b!Z(m%b!Z!h%b!Z!V%b!Z's%b!Z#]%b!Zs%b!Z![%b!Z%f%b!Z!d%b!Z~P#.aOP%b!ZR%b!Z[%b!Zo%b!Z!i%b!Z!m%b!Z#O%b!Z#k%b!Z#l%b!Z#m%b!Z#n%b!Z#o%b!Z#p%b!Z#q%b!Z#r%b!Z#s%b!Z#u%b!Z#w%b!Z#y%b!Z#z%b!Z#}%b!Z([%b!Z(m%b!Z!Y%b!Z!Z%b!Z~P&(tOs(aX~P1qO}%pO~P!(oO(P!lO~P!(oO!VfX!YfX#]fX~P&-}OP]XR]X[]Xo]X}]X!P]X!Y]X!YfX!i]X!m]X#O]X#P]X#]]X#]fX#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X~O!dfX!h]X!hfX(mfX~P'CvOP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![XO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(O)YO(QTO(TUO([VO(j[O(y<dO~O!Y;PO!Z$oa~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;ZO!P$|O![$}O!f<kO!i$yO#g;aO$V%_O$r;]O$t;_O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~O#t)`O~P'HlOo!bX(m!bX~P# ZO!Z]X!ZfX~P'CvO!VfX!V$xX!YfX!Y$xX#]fX~P!/gO#h:sO~O!d#vO#h:sO~O#];TO~O#s:xO~O#];dO!Y(rX!Z(rX~O#];TO!Y(pX!Z(pX~O#h;eO~Og;gO~P!0pO#h;mO~O#h;nO~O!d#vO#h;oO~O!d#vO#h;eO~O#};pO~P#D_O#h;qO~O#h;rO~O#h;wO~O#h;xO~O#h;yO~O#h;zO~O#};{O~P!0pO#};|O~P!0pO#P#Q#R#T#U#X#f#g#r(y$r$t$w%Z%e%f%g%n%p%s%t%v%x~'yT#l!U'w(P#mp#k#no}'x$['x(O$^(`~",goto:"$2y)XPPPPPP)YPP)]P)nP+O/PPPPP5wPP6_PP<U?kP@OP@OPPP@OPBOP@OP@OP@OPBSPBXPBvPGoPPPGsPPPPGsJuPPPJ{KwPGsPGsPPNVGsPPPGsPGsP!!^GsP!%s!&x!'RP!'u!'y!'u!+VPPPPPPP!+v!&xPP!,W!-QP!/tGsGs!/y!3U!7l!7l!;jPPP!;rGsPPPPPPPPPPP!?QP!@_PPGs!ApPGsPGsGsGsGsGsPGs!CSP!F]P!IbP!If!Ip!It!ItP!FYP!Ix!IxP!L}P!MRGsGs!MX#!]BS@OP@OP@O@OP##i@O@O#%s@O#(c@O#*g@O@O#+V#-c#-c#-h#-q#-c#-zP#-cP@O#.d@O#2T@O@O5wPPP#5zPPP#6e#6eP#6eP#6{#6ePP#7RP#6xP#6x#7f#6x#8Q#8W5t)]#8Z)]P#8b#8b#8bP)]P)]P)]P)]PP)]P#8h#8kP#8k)]P#8oP#8rP)]P)]P)]P)]P)]P)])]PP#8x#9O#9Z#9a#9g#9m#9s#:R#:X#:c#:i#:s#:y#;Z#;a#<R#<e#<k#<q#=P#=f#?T#?c#?j#AO#A^#Bx#CW#C^#Cd#Cj#Ct#Cz#DQ#D[#Dn#DtPPPPPPPPPP#DzPPPPPPP#Eo#Hv#JV#J^#JfPPP$ lP$ u$$m$+V$+Y$+]$+x$+{$,S$,[P$,b$,eP$-R$-V$-}$/]$/b$/xPP$/}$0T$0XP$0[$0`$0d$1Y$1q$2Y$2^$2a$2d$2j$2m$2q$2uR!|RoqOXst!Z#d%k&o&q&r&t,k,p1|2PY!vQ']-]1a5dQ%rvQ%zyQ&R|Q&g!VS'T!e-TQ'c!iS'i!r!yU*f$}*W*kQ+i%{Q+v&TQ,[&aQ-Z'[Q-e'dQ-m'jQ0R*mQ1k,]R;b:o%QdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V,h,k,p-a-i-w-}.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3^5a5k5{5|6P6d8O8T8d8nS#q]:l!r)[$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gU*y%[;Y;ZQ+n%}Q,^&dQ,e&lQ0m+aQ0q+cQ0|+oQ1s,cQ3Q._Q4}0wQ5r1lQ6p3UQ7p5OR8t6r'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gt!nQ!r!v!y!z'T'[']'i'j'k-T-Z-]-m1a5d5f$z$ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qQ&U|Q'R!eU'X%g*W-WQ+n%}Q,^&dQ0c*|Q0|+oQ1R+uQ1r,bQ1s,cQ4}0wQ5W1TQ5r1lQ5u1nQ5v1qQ7p5OQ7s5TQ8]5xQ9_7tR9j8YrnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PR,`&h&x^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<f<g[#]WZ#W#Z'U(P!b%hm#h#i#l$y%c%f(Y(d(e(f*V*Z*^+T+U+W,g,}-{.R.S.T.V/e/h2U2|2}4Q6Y6kQ%uxQ%yyS&O|&TQ&[!TQ'`!hQ'b!iQ(m#sS+h%z%{Q+l%}Q,V&_Q,Z&aS-d'c'dQ.a(nQ0u+iQ0{+oQ0}+pQ1Q+tQ1f,WS1j,[,]Q2n-eQ4|0wQ5Q0zQ5V1SQ5q1kQ7o5OQ7r5SQ9Z7nR:R9[!O${i$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m!S%wy!i!u%y%z%{'S'b'c'd'h'r*e+h+i-Q-d-e-l/y0u2g2n2u4dQ+b%uQ+{&XQ,O&YQ,Y&aQ.`(mQ1e,VU1i,Z,[,]Q3V.aQ5l1fS5p1j1kQ8X5q#[<h#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qo<i;R;S;V;X;];_;a;i;k;n;r;t;v;x;|W%Ui%W*u<dS&X!Q&fQ&Y!RQ&Z!SR+y&V${%Ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qT)w$v)xV*y%[;Y;ZW'X!e%g*W-WS(y#y#zQ+]%pQ+s&QS.Y(i(jQ1[,PQ4m0`R7x5]'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<g$i$_c#Y#e%o%q%s(O(U(p(u(})O)P)Q)R)S)T)U)V)W)X)Z)])c)m+^+r-R-p-u-z-|.k.n.r.t.u.v/X0e2]2`2p2w3]3b3c3d3e3f3g3h3i3j3k3l3m3n3q3r3y4q4z6]6c6h6w6x7R7S7z8h8l8v8|8}9s:T:[:m<ZT#TV#U'PkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ'V!eR2c-Tv!nQ!e!r!v!y!z'T'[']'i'j'k-T-Z-]-m1a5d5fU*e$}*W*kS/y*f*mQ0S*nQ1^,RQ4d0RR4g0UnqOXst!Z#d%k&o&q&r&t,k,p1|2PQ&v!^Q's!xS(o#u:sQ+f%xQ,T&[Q,U&^Q-b'aQ-o'lS.j(t;eS0f+R;oQ0s+gQ1`,SQ2T,rQ2V,sQ2_-OQ2l-cQ2o-gS4r0g;yQ4x0tS4{0v;zQ6[2aQ6`2mQ6e2tQ7m4yQ8i6^Q8j6aQ8m6fR9p8f$d$^c#Y#e%q%s(O(U(p(u(})O)P)Q)R)S)T)U)V)W)X)Z)])c)m+^+r-R-p-u-z-|.k.n.r.u.v/X0e2]2`2p2w3]3b3c3d3e3f3g3h3i3j3k3l3m3n3q3r3y4q4z6]6c6h6w6x7R7S7z8h8l8v8|8}9s:T:[:m<ZS(k#p'fQ({#zS+[%o.tS.Z(j(lR3O.['OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gS#q]:lQ&q!XQ&r!YQ&t![Q&u!]R1{,nQ'^!hQ+_%uQ-`'`S.](m+bQ2j-_W3S.`.a0l0nQ6_2kW6l3P3R3V4vU8p6m6o6qU9u8r8s8uS:^9t9wQ:f:_R:i:gU!wQ']-]T5b1a5d!Q_OXZ`st!V!Z#d#h%c%k&f&h&o&q&r&t(f,k,p.S1|2P]!pQ!r']-]1a5dT#q]:l%[{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nS(y#y#zS.Y(i(j!s<Q$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gU$fd)[,eS(l#p'fU*r%S(s3pU0b*x.f6}Q4v0mQ6m3QQ8s6pR9w8tm!tQ!r!v!y!z']'i'j'k-]-m1a5d5fQ'q!uS(b#g1vS-k'h'tQ/k*YQ/w*eQ2v-nQ4U/lS4_/x0SQ7X4PS7d4e4gQ9R7YR9Y7gQ#wbQ'p!uS(a#g1vS(c#m+QQ+S%dQ+d%vQ+j%|U-j'h'q'tQ.O(bQ/j*YQ/v*eQ/|*hQ0r+eQ1g,XS2s-k-nQ2{.WS4T/k/lS4^/w0SQ4a/{Q4c/}Q5n1hQ6g2vQ7W4PQ7[4US7`4_4gQ7e4fQ8V5oS9Q7X7YQ9U7aQ9W7dQ9g8WQ9}9RQ:O9VQ:Q9YQ:Y9hQ:b:PQ<T<OQ<`<XR<a<YV!wQ']-]%[aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nS#wz!j!r;}$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gR<T<f%[bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nQ%dj!S%vy!i!u%y%z%{'S'b'c'd'h'r*e+h+i-Q-d-e-l/y0u2g2n2u4dS%|z!jQ+e%wQ,X&aW1h,Y,Z,[,]U5o1i1j1kS8W5p5qQ9h8X!r<O$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ<X<eR<Y<f%OeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nY#bWZ#W#Z(P!b%hm#h#i#l$y%c%f(Y(d(e(f*V*Z*^+T+U+W,g,}-{.R.S.T.V/e/h2U2|2}4Q6Y6kQ,f&l!p<P$[$n)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gR<S'UU'Y!e%g*WR2e-W%QdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V,h,k,p-a-i-w-}.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3^5a5k5{5|6P6d8O8T8d8n!r)[$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ,e&lQ0m+aQ3Q._Q6p3UR8t6r!b$Uc#Y%o(O(U(p(u)W)X)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:m!P:z)Z)m-R.t2]2`3b3l3m3q3y6]6x7R7S7z8h8v8|8}:T:[<Z!f$Wc#Y%o(O(U(p(u)T)U)W)X)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:m!T:|)Z)m-R.t2]2`3b3i3j3l3m3q3y6]6x7R7S7z8h8v8|8}:T:[<Z!^$[c#Y%o(O(U(p(u)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:mQ3}/cz<g)Z)m-R.t2]2`3b3q3y6]6x7R7S7z8h8v8|8}:T:[<ZQ<l<nR<m<o'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gS$oh$pR3v.|'VgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n$p%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.|.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gT$kf$qQ$ifS)f$l)jR)r$qT$jf$qT)h$l)j'VhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n$p%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.|.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gT$oh$pQ$rhR)q$p%[jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8n!s<e$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<g#elOPXZst!Z!`!o#S#d#o#{$n%k&h&k&l&o&q&r&t&x'Q'_(z)o+V+a,h,k,p-a._.}/f0a1d1t1u1w1y1|2P2R3U3u5a5k5{5|6P6r8O8T8d!O%Si$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m#[(s#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qQ*}%`Q/Y){o3p;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!O$zi$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mQ*_${U*h$}*W*kQ+O%aQ/}*i#[<V#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn<W;R;S;V;X;];_;a;i;k;n;r;t;v;x;|Q<[<hQ<]<iQ<^<jR<_<k!O%Si$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m#[(s#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qo3p;R;S;V;X;];_;a;i;k;n;r;t;v;x;|noOXst!Z#d%k&o&q&r&t,k,p1|2PS*b$|*VQ,y&{Q,z&}R4X/p$z%Ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qQ+|&YQ1Y,OQ5Z1XR7w5[V*j$}*W*kU*j$}*W*kT5c1a5dU/{*g/f5aT4f0T8OQ+d%vQ/|*hQ0r+eQ1g,XQ5n1hQ8V5oQ9g8WR:Y9h!O%Pi$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mr*O$w)a*P*q+P/n0Z0[3s4V4p7V7h9|<U<b<cS0V*p0W#[;U#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn;V;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!^;h(q)_*X*a.b.e.i/U/Z/c/s0k1V1X3Y4W4[5Y5[6s6v7^7b7j7l9T9X:a<n<o`;i3o6y6|7Q8w9x9{:jS;s.d3ZT;t6{8z!O%Ri$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mv*Q$w)a*R*p+P/_/n0Z0[3s4V4h4p7V7h9|<U<b<cS0X*q0Y#[;W#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn;X;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!b;j(q)_*X*a.c.d.i/U/Z/c/s0k1V1X3W3Y4W4[5Y5[6s6t6v7^7b7j7l9T9X:a<n<od;k3o6z6{7Q8w8x9x9y9{:jS;u.e3[T;v6|8{rnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PQ&c!UR,h&lrnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PR&c!UQ,Q&ZR1U+ysnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PQ1b,VS5i1e1fU8P5g5h5lS9c8R8SS:U9b9eQ:c:VR:h:dQ&j!VR,a&fR5u1nS&O|&TR0}+pQ&o!WR,k&pR,q&uT1},p2PR,u&vQ,t&vR2W,uQ'v!{R-q'vSsOtQ#dXT%ns#dQ#OTR'x#OQ#RUR'z#RQ)x$vR/V)xQ#UVR'|#UQ#XWU(S#X(T-xQ(T#YR-x(UQ-U'VR2d-UQ.m(uS3_.m3`R3`.nQ-]']R2h-]Y!rQ']-]1a5dR'g!rQ.x)aR3t.xU#_W%f*VU(Z#_([-yQ([#`R-y(VQ-X'YR2f-Xt`OXst!V!Z#d%k&f&h&o&q&r&t,k,p1|2PS#hZ%cU#r`#h.SR.S(fQ(g#jQ.P(cW.X(g.P2y6iQ2y.QR6i2zQ)j$lR/O)jQ$phR)p$pQ$acU)^$a-t;QQ-t:mR;Q)mQ/i*YW4R/i4S7Z9SU4S/j/k/lS7Z4T4UR9S7[$X)}$w(q)_)a*X*a*p*q*z*{+P.d.e.g.h.i/U/Z/_/a/c/n/s0Z0[0k1V1X3W3X3Y3o3s4V4W4[4h4j4p5Y5[6s6t6u6v6{6|7O7P7Q7V7^7b7h7j7l8w8x8y9T9X9x9y9z9{9|:a:j<U<b<c<n<oQ/q*aU4Z/q4]7_Q4]/sR7_4[S*k$}*WR0P*kr*P$w)a*p*q+P/n0Z0[3s4V4p7V7h9|<U<b<c!^.b(q)_*X*a.d.e.i/U/Z/c/s0k1V1X3Y4W4[5Y5[6s6v7^7b7j7l9T9X:a<n<oU/`*P.b6ya6y3o6{6|7Q8w9x9{:jQ0W*pQ3Z.dU4i0W3Z8zR8z6{v*R$w)a*p*q+P/_/n0Z0[3s4V4h4p7V7h9|<U<b<c!b.c(q)_*X*a.d.e.i/U/Z/c/s0k1V1X3W3Y4W4[5Y5[6s6t6v7^7b7j7l9T9X:a<n<oU/b*R.c6ze6z3o6{6|7Q8w8x9x9y9{:jQ0Y*qQ3[.eU4k0Y3[8{R8{6|Q*v%VR0^*vQ4u0kR7k4uQ+X%iR0j+XQ5^1[S7y5^9aR9a7zQ,S&[R1_,SQ5d1aR7|5dQ1m,^S5s1m8ZR8Z5uQ0x+lW5P0x5R7q9]Q5R0{Q7q5QR9]7rQ+q&OR1O+qQ2P,pR6T2PYrOXst#dQ&s!ZQ+Z%kQ,j&oQ,l&qQ,m&rQ,o&tQ1z,kS1},p2PR6S1|Q%mpQ&w!_Q&z!aQ&|!bQ'O!cQ'n!uQ+Y%jQ+f%xQ+x&UQ,`&jQ,w&yW-h'h'p'q'tQ-o'lQ0O*jQ0s+gS1p,a,dQ2X,vQ2Y,yQ2Z,zQ2o-gW2q-j-k-n-pQ4x0tQ5U1RQ5X1VQ5m1gQ5w1rQ6R1{U6b2p2s2vQ6e2tQ7m4yQ7u5WQ7v5YQ7{5cQ8U5nQ8[5vS8k6c6gQ8m6fQ9^7sQ9f8VQ9k8]Q9r8lQ:S9_Q:X9gQ:]9sR:e:YQ%xyQ'a!iQ'l!uU+g%y%z%{Q-O'SU-c'b'c'dS-g'h'rQ/u*eS0t+h+iQ2a-QS2m-d-eQ2t-lQ4`/yQ4y0uQ6^2gQ6a2nQ6f2uR7c4dS$xi<dR*w%WU%Vi%W<dR0]*uQ$wiS(q#v+cS)_$b$cQ)a$dQ*X$yS*a$|*VQ*p%PQ*q%RQ*z%]Q*{%^Q+P%bQ.d;UQ.e;WQ.g;[Q.h;^Q.i;`Q/U)vS/Z)|/]Q/_*OQ/a*QQ/c*SQ/n*]S/s*c/eQ0Z*sQ0[*th0k+`.^1c3T5j6n8Q8q9d9v:W:`Q1V+zQ1X+}Q3W;hQ3X;jQ3Y;mS3o;R;SQ3s.wQ4V/oQ4W/pQ4[/rQ4h0VQ4j0XQ4p0dQ5Y1WQ5[1ZQ6s;qQ6t;sQ6u;uQ6v;wQ6{;VQ6|;XQ7O;]Q7P;_Q7Q;aQ7V3}Q7^4YQ7b4bQ7h4lQ7j4tQ7l4wQ8w;nQ8x;iQ8y;kQ9T7]Q9X7fQ9x;rQ9y;tQ9z;vQ9{;xQ9|9PQ:a;{Q:j;|Q<U<dQ<b<lQ<c<mQ<n<pR<o<qQ*x%[Q.f;YR6};ZnpOXst!Z#d%k&o&q&r&t,k,p1|2PQ!fPS#fZ#oQ&y!`U'e!o5a8OQ'{#SQ(|#{Q)n$nS,d&h&kQ,i&lQ,v&xQ,{'QQ-_'_Q.p(zQ/S)oS0h+V/fQ0n+aQ1x,hQ2k-aQ3R._Q3x.}Q4n0aQ5h1dQ5y1tQ5z1uQ6O1wQ6Q1yQ6V2RQ6q3UQ7T3uQ8S5kQ8`5{Q8a5|Q8c6PQ8u6rQ9e8TR9o8d#YcOPXZst!Z!`!o#d#o#{%k&h&k&l&o&q&r&t&x'Q'_(z+V+a,h,k,p-a._/f0a1d1t1u1w1y1|2P2R3U5a5k5{5|6P6r8O8T8dQ#YWQ#eYQ%ouQ%qvS%sw!gS(O#W(RQ(U#ZQ(p#uQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)]$`Q)c$eW)m$n)o.}3uQ+^%rQ+r&PS-R'U2bQ-p'oS-u(P-wQ-z(XQ-|(`Q.k(tQ.n(vQ.r:kQ.t:nQ.u:oQ.v:rQ/X)zQ0e+RQ2],|Q2`-PQ2p-iQ2w-}Q3].lQ3b:sQ3c:tQ3d:uQ3e:vQ3f:wQ3g:xQ3h:yQ3i:zQ3j:{Q3k:|Q3l:}Q3m;OQ3n.sQ3q;TQ3r;bQ3y;PQ4q0gQ4z0vQ6];dQ6c2rQ6h2xQ6w3^Q6x;eQ7R;gQ7S;oQ7z5_Q8h6ZQ8l6dQ8v;pQ8|;yQ8};zQ9s8nQ:T9`Q:[9qQ:m#SR<Z<gR#[WR'W!el!tQ!r!v!y!z']'i'j'k-]-m1a5d5fS'S!e-TS-Q'T'[R2g-ZR(w#xQ!fQT-[']-]]!qQ!r']-]1a5dQ#p]R'f:lR)b$dY!uQ']-]1a5dQ'h!rS'r!v!yS't!z5fS-l'i'jQ-n'kR2u-mT#kZ%cS#jZ%cS%im,gU(c#h#i#lS.Q(d(eQ.U(fQ0i+WQ2z.RU2{.S.T.VS6j2|2}R8o6kd#^W#W#Z%f(P(Y*V+T-{/er#gZm#h#i#l%c(d(e(f+W.R.S.T.V2|2}6kS*Y$y*^Q/l*ZQ1v,gQ2^,}Q4P/hQ6X2UQ7Y4QQ8g6YT<R'U+UV#aW%f*VU#`W%f*VS(Q#W(YU(V#Z+T/eS-S'U+UT-v(P-{V'Z!e%g*WQ$lfR)t$qT)i$l)jR3w.|T*[$y*^T*d$|*VQ0l+`Q3P.^Q5g1cQ6o3TQ8R5jQ8r6nQ9b8QQ9t8qQ:V9dQ:_9vQ:d:WR:g:`nqOXst!Z#d%k&o&q&r&t,k,p1|2PQ&i!VR,`&ftmOXst!U!V!Z#d%k&f&o&q&r&t,k,p1|2PR,g&lT%jm,gR1],PR,_&dQ&S|R+w&TR+m%}T&m!W&pT&n!W&pT2O,p2P",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang 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 : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < 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 InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression InstantiationExpression 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:376,context:Ol,nodeProps:[["isolate",-8,5,6,14,34,36,48,50,52,""],["group",-26,9,17,19,65,204,208,212,213,215,218,221,231,233,239,241,243,245,248,254,260,262,264,266,268,270,271,"Statement",-34,13,14,29,32,33,39,48,51,52,54,59,67,69,73,77,79,81,82,107,108,117,118,135,138,140,141,142,143,144,146,147,166,167,169,"Expression",-23,28,30,34,38,40,42,171,173,175,176,178,179,180,182,183,184,186,187,188,198,200,202,203,"Type",-3,85,100,106,"ClassItem"],["openedBy",23,"<",35,"InterpolationStart",53,"[",57,"{",70,"(",159,"JSXStartCloseTag"],["closedBy",24,">",37,"InterpolationEnd",47,"]",58,"}",71,")",164,"JSXEndTag"]],propSources:[rl],skippedNodes:[0,5,6,274],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$h&j(Rp(U!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$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$h&j(RpOY(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(RpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$h&j(Rp(U!b'w0/lOX%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%Z07[.ST(S#S$h&j'x0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$h&j(Rp(U!b'x0/lOY%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)3p/x`$h&j!m),Q(Rp(U!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(KW1V`#u(Ch$h&j(Rp(U!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(KW2d_#u(Ch$h&j(Rp(U!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'At3l_(Q':f$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$h&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$c`$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$c``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$c`$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(U!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$c`(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$h&j(Rp(U!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$h&j(Rp(U!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$h&j(U!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$h&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(U!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$h&j(RpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(RpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Rp(U!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$h&j(j%1l(Rp(U!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$h&j(Rp(U!b$[#t(O,2j(`$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$h&j(Rp(U!b$[#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$h&j(Rp(U!b#m(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$h&j$P(Ch(Rp(U!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,#xLva(u+JY$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$h&j#y(Ch(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(T';W$h&j(RpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$h&j(RpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$h&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$c`$h&j(RpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(RpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$c`(RpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!i/.^$h&j(Rp(U!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#&U!)O_!h!Lf$h&j(Rp(U!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-!n!*[b$h&j(Rp(U!b(P%&f#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$h&j(Rp(U!b#k(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$h&j(Rp(U!bo+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!Y+Jf$h&j(Rp(U!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%Z07[!/ec$h&j(Rp(U!b}.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_!X!L^$h&j(Rp(U!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'Ad!3eg$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$h&j(Rp(U!b#l(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$h&j(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$h&j(U!b!U7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$h&j!U7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$h&j!U7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!U7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!U7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$h&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$h&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$h&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$h&j(U!b!U7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(U!b!U7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(U!b!U7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(U!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$h&j(U!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$h&j(Rp!U7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$h&j(Rp!U7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Rp!U7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Rp!U7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(RpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$h&j(RpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$h&j(Rp(U!b!U7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Rp(U!b!U7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Rp(U!b!U7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Rp(U!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$h&j(Rp(U!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$h&j(Rp(U!b'y0/l!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$h&j(Rp(U!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$h&j(U!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$h&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(U!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$h&j(RpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(RpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Rp(U!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$h&j$P(Ch(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Y#t$h&j(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$h&j(Rp(U!bp'9tOY%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'Ad#?rd$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!d$b$h&j#})Lv(Rp(U!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)[#Jv_al$h&j(Rp(U!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%Z04f#LS^h#)`#O-<U(Rp(U!b(y7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$j&j(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#o(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$P(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#p(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#]*!Y$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#h(Cl$h&j(Rp(U!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*)x$%Vag!*r#p(Ch$e#|$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#p(Ch$h&j(Rp(U!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(KW$'qa#o(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#o(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(m(Ct$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$h&j#z(Ch(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!y$Ip$h&j(Rp(U!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%Z04f$.X_!P0,v$h&j(Rp(U!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(n$/]Z$h&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$h&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$h&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$h&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$h&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!V#)l$h&j(Rp(U!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(KW$6U`#w(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$h&j(Rp(U!b([+4QOY%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%Z07[$8qk$h&j(Rp(U!b(O,2j$^#t(`$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$h&j(Rp(U!b$^#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X![#Hb(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(t+JY$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z(Kd$?V_!Z(Cds`$h&j(Rp(U!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?O$@a_!n7`$h&j(Rp(U!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%Z07[$Aq|$h&j(Rp(U!b'w0/l$[#t(O,2j(`$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$h&j(Rp(U!b'x0/l$[#t(O,2j(`$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[cl,nl,ol,2,3,4,5,6,7,8,9,10,11,12,13,14,yl,new _n("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOu~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!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(^~~",141,335),new _n("j~RQYZXz{^~^O'{~~aP!P!Qd~iO'|~~",25,318)],topRules:{Script:[0,7],SingleExpression:[1,272],SingleClassItem:[2,273]},dialects:{jsx:0,ts:14769},dynamicPrecedences:{77:1,79:1,91:1,167:1,196:1},specialized:[{term:322,get:M=>xl[M]||-1},{term:338,get:M=>al[M]||-1},{term:92,get:M=>Ql[M]||-1}],tokenPrec:14793}),Sl=[qc("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),qc("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),qc("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),qc("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),qc("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),qc("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),qc("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),qc("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),qc("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),qc('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),qc('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],hl=Sl.concat([qc("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),qc("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),qc("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),dl=new OA,kl=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function wl(M){return(N,D)=>{let i=N.node.getChild("VariableDefinition");return i&&D(i,M),!0}}const Ul=["FunctionDeclaration"],Yl={FunctionDeclaration:wl("function"),ClassDeclaration:wl("class"),ClassExpression:()=>!0,EnumDeclaration:wl("constant"),TypeAliasDeclaration:wl("type"),NamespaceDeclaration:wl("namespace"),VariableDefinition(M,N){M.matchContext(Ul)||N(M,"variable")},TypeDefinition(M,N){N(M,"type")},__proto__:null};function Cl(M,N){let D=dl.get(N);if(D)return D;let i=[],j=!0;function t(N,D){let j=M.sliceString(N.from,N.to);i.push({label:j,type:D})}return N.cursor($T.IncludeAnonymous).iterate((N=>{if(j)j=!1;else if(N.name){let M=Yl[N.name];if(M&&M(N,t)||kl.has(N.name))return!1}else if(N.to-N.from>8192){for(let D of Cl(M,N.node))i.push(D);return!1}})),dl.set(N,i),i}const bl=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,pl=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function ml(M){let N=qA(M.state).resolveInner(M.pos,-1);if(pl.indexOf(N.name)>-1)return null;let D="VariableName"==N.name||N.to-N.from<20&&bl.test(M.state.sliceDoc(N.from,N.to));if(!D&&!M.explicit)return null;let i=[];for(let D=N;D;D=D.parent)kl.has(D.name)&&(i=i.concat(Cl(M.state.doc,D)));return{options:i,from:D?N.from:M.pos,validFor:bl}}function Zl(M,N,D){var i;let j=[];for(;;){let t,I=N.firstChild;if("VariableName"==(null==I?void 0:I.name))return j.push(M(I)),{path:j.reverse(),name:D};if("MemberExpression"!=(null==I?void 0:I.name)||"PropertyName"!=(null===(i=t=I.lastChild)||void 0===i?void 0:i.name))return null;j.push(M(t)),N=I}}function fl(M){let N=new Map;return D=>{let i=function(M){let N=N=>M.state.doc.sliceString(N.from,N.to),D=qA(M.state).resolveInner(M.pos,-1);return"PropertyName"==D.name?Zl(N,D.parent,N(D)):"."!=D.name&&"?."!=D.name||"MemberExpression"!=D.parent.name?pl.indexOf(D.name)>-1?null:"VariableName"==D.name||D.to-D.from<20&&bl.test(N(D))?{path:[],name:N(D)}:"MemberExpression"==D.name?Zl(N,D,""):M.explicit?{path:[],name:""}:null:Zl(N,D.parent,"")}(D);if(!i)return null;let j=M;for(let M of i.path)if(j=j[M],!j)return null;let t=N.get(j);return t||N.set(j,t=function(M,N){let D=[],i=new Set;for(let j=0;;j++){for(let t of(Object.getOwnPropertyNames||Object.keys)(M)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(t)||i.has(t))continue;let I;i.add(t);try{I=M[t]}catch(M){continue}D.push({label:t,type:"function"==typeof I?/^[A-Z]/.test(t)?"class":N?"function":"method":N?"variable":"property",boost:-j})}let t=Object.getPrototypeOf(M);if(!t)return D;M=t}}(j,!i.path.length)),{from:D.pos-i.name.length,options:t,validFor:bl}}}const vl=_A.define({name:"javascript",parser:El.configure({props:[Os.add({IfStatement:as({except:/^\s*({|else\b)/}),TryStatement:as({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:M=>M.baseIndent,SwitchBody:M=>{let N=M.textAfter,D=/^\s*\}/.test(N),i=/^\s*(case|default)\b/.test(N);return M.baseIndent+(D?0:i?1:2)*M.unit},Block:rs({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":as({except:/^{/}),JSXElement(M){let N=/^\s*<\//.test(M.textAfter);return M.lineIndent(M.node.from)+(N?0:M.unit)},JSXEscape(M){let N=/\s*\}/.test(M.textAfter);return M.lineIndent(M.node.from)+(N?0:M.unit)},"JSXOpenTag JSXSelfClosingTag":M=>M.column(M.node.from)+M.unit}),Es.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":function(M){let N=M.firstChild,D=M.lastChild;return N&&N.to<D.from?{from:N.to,to:D.type.isError?M.to:D.from}:null},BlockComment:M=>({from:M.from+2,to:M.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Wl={test:M=>/^JSX/.test(M.name),facet:FA({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Vl=vl.configure({dialect:"ts"},"typescript"),Gl=vl.configure({dialect:"jsx",props:[HA.add((M=>M.isTop?[Wl]:void 0))]}),Pl=vl.configure({dialect:"jsx ts",props:[HA.add((M=>M.isTop?[Wl]:void 0))]},"typescript");let Rl=M=>({label:M,type:"keyword"});const Bl="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(Rl),Jl=Bl.concat(["declare","implements","private","protected","public"].map(Rl));function Fl(M={}){let N=M.jsx?M.typescript?Pl:Gl:M.typescript?Vl:vl,D=M.typescript?hl.concat(Jl):Sl.concat(Bl);return new us(N,[vl.data.of({autocomplete:(i=pl,j=Mc(D),M=>{for(let N=qA(M.state).resolveInner(M.pos,-1);N;N=N.parent){if(i.indexOf(N.name)>-1)return null;if(N.type.isTop)break}return j(M)})}),vl.data.of({autocomplete:ml}),M.jsx?$l:[]]);var i,j}function Hl(M,N,D=M.length){for(let i=null==N?void 0:N.firstChild;i;i=i.nextSibling)if("JSXIdentifier"==i.name||"JSXBuiltin"==i.name||"JSXNamespacedName"==i.name||"JSXMemberExpression"==i.name)return M.sliceString(i.from,Math.min(i.to,D));return""}const Xl="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),$l=Ne.inputHandler.of(((M,N,D,i,j)=>{if((Xl?M.composing:M.compositionStarted)||M.state.readOnly||N!=D||">"!=i&&"/"!=i||!vl.isActiveAt(M.state,N,-1))return!1;let t=j(),{state:I}=t,z=I.changeByRange((M=>{var N;let D,{head:j}=M,t=qA(I).resolveInner(j-1,-1);if("JSXStartTag"==t.name&&(t=t.parent),I.doc.sliceString(j-1,j)!=i||"JSXAttributeValue"==t.name&&t.to>j);else{if(">"==i&&"JSXFragmentTag"==t.name)return{range:M,changes:{from:j,insert:"</>"}};if("/"==i&&"JSXStartCloseTag"==t.name){let M=t.parent,i=M.parent;if(i&&M.from==j-2&&((D=Hl(I.doc,i.firstChild,j))||"JSXFragmentTag"==(null===(N=i.firstChild)||void 0===N?void 0:N.name))){let M=`${D}>`;return{range:Pj.cursor(j+M.length,-1),changes:{from:j,insert:M}}}}else if(">"==i){let N=function(M){for(;;){if("JSXOpenTag"==M.name||"JSXSelfClosingTag"==M.name||"JSXFragmentTag"==M.name)return M;if("JSXEscape"==M.name||!M.parent)return null;M=M.parent}}(t);if(N&&!/^\/?>|^<\//.test(I.doc.sliceString(j,j+2))&&(D=Hl(I.doc,N,j)))return{range:M,changes:{from:j,insert:`</${D}>`}}}}return{range:M}}));return!z.changes.empty&&(M.dispatch([t,I.update(z,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),_l=M=>void 0===M||M,ql=(M={})=>{let N=[];_l(M.defaultKeymap)&&N.push(...FO),_l(M.closeBracketsKeymap)&&N.push(...en),_l(M.searchKeymap)&&N.push(...Ry),_l(M.historyKeymap)&&N.push(...$L),_l(M.foldKeymap)&&N.push(...Zs),_l(M.lintKeymap)&&N.push(...Yn);const D=[];return _l(M.lineNumbers)&&D.push(mT()),_l(M.highlightActiveLineGutter)&&D.push(vT),_l(M.highlightSpecialChars)&&D.push(function(M={}){return[fe.of(M),ve||(ve=tu.fromClass(class{constructor(M){this.view=M,this.decorations=Oz.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(fe)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new Ce({regexp:M.specialChars,decoration:(N,D,i)=>{let{doc:j}=D.state,t=kj(N[0],0);if(9==t){let M=j.lineAt(i),N=D.state.tabSize,t=qt(M.text,N,i-M.from);return Oz.replace({widget:new Ve((N-t%N)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[t]||(this.decorationCache[t]=Oz.replace({widget:new We(M,t)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let N=M.state.facet(fe);M.startState.facet(fe)!=N?(this.decorator=this.makeDecorator(N),this.decorations=this.decorator.createDeco(M.view)):this.decorations=this.decorator.updateDeco(M,this.decorations)}},{decorations:M=>M.decorations}))]}()),_l(M.history)&&D.push(function(M={}){return[CL,YL.of(M),Ne.domEventHandlers({beforeinput(M,N){let D="historyUndo"==M.inputType?pL:"historyRedo"==M.inputType?mL:null;return!!D&&(M.preventDefault(),D(N))}})]}()),_l(M.foldGutter)&&D.push(function(M={}){let N=Object.assign(Object.assign({},Rs),M),D=new Bs(N,!0),i=new Bs(N,!1),j=tu.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(zs)!=M.state.facet(zs)||M.startState.field(Ys,!1)!=M.state.field(Ys,!1)||qA(M.startState)!=qA(M.state)||N.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let N=new Vt;for(let j of M.viewportLineBlocks){let t=Cs(M.state,j.from,j.to)?i:hs(M.state,j.from,j.to)?D:null;t&&N.add(j.from,j.from,t)}return N.finish()}}),{domEventHandlers:t}=N;return[j,xT({class:"cm-foldGutter",markers(M){var N;return(null===(N=M.plugin(j))||void 0===N?void 0:N.markers)||Wt.empty},initialSpacer:()=>new Bs(N,!1),domEventHandlers:Object.assign(Object.assign({},t),{click:(M,N,D)=>{if(t.click&&t.click(M,N,D))return!0;let i=Cs(M.state,N.from,N.to);if(i)return M.dispatch({effects:ws.of(i)}),!0;let j=hs(M.state,N.from,N.to);return!!j&&(M.dispatch({effects:ks.of(j)}),!0)}})}),Ws()]}()),_l(M.drawSelection)&&D.push(function(M={}){return[xe.of(M),Qe,Se,de,_z.of(!0)]}()),_l(M.dropCursor)&&D.push([we,Ue]),_l(M.allowMultipleSelections)&&D.push(bt.allowMultipleSelections.of(!0)),_l(M.indentOnInput)&&D.push(bt.transactionFilter.of((M=>{if(!M.docChanged||!M.isUserEvent("input.type")&&!M.isUserEvent("input.complete"))return M;let N=M.startState.languageDataAt("indentOnInput",M.startState.selection.main.head);if(!N.length)return M;let D=M.newDoc,{head:i}=M.newSelection.main,j=D.lineAt(i);if(i>j.from+200)return M;let t=D.sliceString(j.from,i);if(!N.some((M=>M.test(t))))return M;let{state:I}=M,z=-1,u=[];for(let{head:M}of I.selection.ranges){let N=I.doc.lineAt(M);if(N.from==z)continue;z=N.from;let D=ss(I,N.from);if(null==D)continue;let i=/^\s*/.exec(N.text)[0],j=As(I,D);i!=j&&u.push({from:N.from,to:N.from+i.length,insert:j})}return u.length?[M,{changes:u,sequential:!0}]:M}))),_l(M.syntaxHighlighting)&&D.push(function(M,N){let D,i=[qs];return M instanceof Fs&&(M.module&&i.push(Ne.styleModule.of(M.module)),D=M.themeType),(null==N?void 0:N.fallback)?i.push(Xs.of(M)):D?i.push(Hs.computeN([Ne.darkTheme],(N=>N.facet(Ne.darkTheme)==("dark"==D)?[M]:[]))):i.push(Hs.of(M)),i}(Ks,{fallback:!0})),_l(M.bracketMatching)&&D.push(function(M={}){return[iL.of(M),uL]}()),_l(M.closeBrackets)&&D.push([gn,jn]),_l(M.autocompletion)&&D.push(nn()),_l(M.rectangularSelection)&&D.push(function(M){let N=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return Ne.mouseSelectionStyle.of(((M,D)=>N(D)?Je(M,D):null))}()),_l(M.crosshairCursor)&&D.push(function(M={}){let[N,D]=Fe[M.key||"Alt"],i=tu.fromClass(class{constructor(M){this.view=M,this.isDown=!1}set(M){this.isDown!=M&&(this.isDown=M,this.view.update([]))}},{eventObservers:{keydown(M){this.set(M.keyCode==N||D(M))},keyup(M){M.keyCode!=N&&D(M)||this.set(!1)},mousemove(M){this.set(D(M))}}});return[i,Ne.contentAttributes.of((M=>{var N;return(null===(N=M.plugin(i))||void 0===N?void 0:N.isDown)?He:null}))]}()),_l(M.highlightActiveLine)&&D.push(Pe),_l(M.highlightSelectionMatches)&&D.push(function(M){let N=[Oy,Ly];return M&&N.push(ey.of(M)),N}()),M.tabSize&&"number"==typeof M.tabSize&&D.push(es.of(" ".repeat(M.tabSize))),D.concat([ge.of(N.flat())]).filter(Boolean)},Kl={"&":{fontSize:"14px",fontFamily:"Colfax-regular",fontWeight:"400"},".cm-content":{},".cm-scroller":{}};M.NileCodeEditor=class extends kN{constructor(){super(...arguments),this.multiline=!1,this.value="",this.customAutoCompletions={},this.updateValue=!1,this.errorMessage="",this.error=!1,this.noborder=!1,this.expandable=!1,this.readonly=!1,this.lineNumbersComp=new zt,this.restrictSingleLineComp=new zt,this.readOnlyComp=new zt}static get styles(){return[gj]}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.emit("nile-destroy")}convertToSingleLine(M){return M.replace(/\s+/g," ").trim()}handleValueChange(){}getLineNumbersExension(){return this.multiline?mT():[]}getReadOnlyExtension(){return bt.readOnly.of(this.readonly)}getSingleLineExtension(){return this.multiline?[]:bt.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}firstUpdated(){const M=this.lineNumbersComp.of(this.getLineNumbersExension()),N=this.readOnlyComp.of(this.getReadOnlyExtension()),D=this.restrictSingleLineComp.of(this.getSingleLineExtension()),i=vl.data.of({autocomplete:fl(this.customAutoCompletions)});let j=bt.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[ql({lineNumbers:!1,highlightActiveLine:!1,foldGutter:!1}),M,N,D,i,nn(),Fl(),this.setTheme(),Ne.updateListener.of((M=>{M.docChanged&&this.emitValues(this.view.state.doc.toString())}))]});this.view=new Ne({state:j,parent:this.codeEditor}),this.addOpenListeners()}addOpenListeners(){this.view.contentDOM.addEventListener("blur",(()=>this.toggleFocusAndBlur("blur"))),this.view.contentDOM.addEventListener("focus",(()=>this.toggleFocusAndBlur("focus")))}singleLineMultiLineToggle(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:this.multiline?this.value:this.convertToSingleLine(this.value)}})}updated(M){super.updated(M),M.has("value")&&this.updateValue&&this.singleLineMultiLineToggle(),M.has("multiline")&&(this.view.dispatch({effects:[this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())]}),this.singleLineMultiLineToggle()),M.has("readonly")&&this.view.dispatch({effects:this.readOnlyComp.reconfigure(this.getReadOnlyExtension())})}toggleFocusAndBlur(M){"blur"===M&&this.emit("nile-blur",{onBlur:!0}),"focus"===M&&this.emit("nile-focus",{onFocus:!0})}setTheme(){return Ne.theme(Kl)}emitValues(M){this.emit("nile-change",{value:M})}expandCodeEditor(){this.emit("nile-expand",{expand:!0})}restrictSingleLine(){return bt.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}render(){const M=!!this.errorMessage,N=!!this.error,D=!!this.noborder;return EM`<div
6680
+ `;class ej{lineAt(M){if(M<0||M>this.length)throw new RangeError(`Invalid position ${M} in document of length ${this.length}`);return this.lineInner(M,!1,1,0)}line(M){if(M<1||M>this.lines)throw new RangeError(`Invalid line number ${M} in ${this.lines}-line document`);return this.lineInner(M,!0,1,0)}replace(M,N,D){[M,N]=lj(this,M,N);let i=[];return this.decompose(0,M,i,2),D.length&&D.decompose(0,D.length,i,3),this.decompose(N,this.length,i,1),Aj.from(i,this.length-(N-M)+D.length)}append(M){return this.replace(this.length,this.length,M)}slice(M,N=this.length){[M,N]=lj(this,M,N);let D=[];return this.decompose(M,N,D,0),Aj.from(D,N-M)}eq(M){if(M==this)return!0;if(M.length!=this.length||M.lines!=this.lines)return!1;let N=this.scanIdentical(M,1),D=this.length-this.scanIdentical(M,-1),i=new Oj(this),j=new Oj(M);for(let M=N,t=N;;){if(i.next(M),j.next(M),M=0,i.lineBreak!=j.lineBreak||i.done!=j.done||i.value!=j.value)return!1;if(t+=i.value.length,i.done||t>=D)return!0}}iter(M=1){return new Oj(this,M)}iterRange(M,N=this.length){return new yj(this,M,N)}iterLines(M,N){let D;if(null==M)D=this.iter();else{null==N&&(N=this.lines+1);let i=this.line(M).from;D=this.iterRange(i,Math.max(i,N==this.lines+1?this.length:N<=1?0:this.line(N-1).to))}return new cj(D)}toString(){return this.sliceString(0)}toJSON(){let M=[];return this.flatten(M),M}constructor(){}static of(M){if(0==M.length)throw new RangeError("A document must have at least one line");return 1!=M.length||M[0]?M.length<=32?new Tj(M):Aj.from(Tj.split(M,[])):ej.empty}}class Tj extends ej{constructor(M,N=function(M){let N=-1;for(let D of M)N+=D.length+1;return N}(M)){super(),this.text=M,this.length=N}get lines(){return this.text.length}get children(){return null}lineInner(M,N,D,i){for(let j=0;;j++){let t=this.text[j],I=i+t.length;if((N?D:I)>=M)return new nj(i,I,D,t);i=I+1,D++}}decompose(M,N,D,i){let j=M<=0&&N>=this.length?this:new Tj(Lj(this.text,M,N),Math.min(N,this.length)-Math.max(0,M));if(1&i){let M=D.pop(),N=sj(j.text,M.text.slice(),0,j.length);if(N.length<=32)D.push(new Tj(N,M.length+j.length));else{let M=N.length>>1;D.push(new Tj(N.slice(0,M)),new Tj(N.slice(M)))}}else D.push(j)}replace(M,N,D){if(!(D instanceof Tj))return super.replace(M,N,D);[M,N]=lj(this,M,N);let i=sj(this.text,sj(D.text,Lj(this.text,0,M)),N),j=this.length+D.length-(N-M);return i.length<=32?new Tj(i,j):Aj.from(Tj.split(i,[]),j)}sliceString(M,N=this.length,D="\n"){[M,N]=lj(this,M,N);let i="";for(let j=0,t=0;j<=N&&t<this.text.length;t++){let I=this.text[t],z=j+I.length;j>M&&t&&(i+=D),M<z&&N>j&&(i+=I.slice(Math.max(0,M-j),N-j)),j=z+1}return i}flatten(M){for(let N of this.text)M.push(N)}scanIdentical(){return 0}static split(M,N){let D=[],i=-1;for(let j of M)D.push(j),i+=j.length+1,32==D.length&&(N.push(new Tj(D,i)),D=[],i=-1);return i>-1&&N.push(new Tj(D,i)),N}}class Aj extends ej{constructor(M,N){super(),this.children=M,this.length=N,this.lines=0;for(let N of M)this.lines+=N.lines}lineInner(M,N,D,i){for(let j=0;;j++){let t=this.children[j],I=i+t.length,z=D+t.lines-1;if((N?z:I)>=M)return t.lineInner(M,N,D,i);i=I+1,D=z+1}}decompose(M,N,D,i){for(let j=0,t=0;t<=N&&j<this.children.length;j++){let I=this.children[j],z=t+I.length;if(M<=z&&N>=t){let j=i&((t<=M?1:0)|(z>=N?2:0));t>=M&&z<=N&&!j?D.push(I):I.decompose(M-t,N-t,D,j)}t=z+1}}replace(M,N,D){if([M,N]=lj(this,M,N),D.lines<this.lines)for(let i=0,j=0;i<this.children.length;i++){let t=this.children[i],I=j+t.length;if(M>=j&&N<=I){let z=t.replace(M-j,N-j,D),u=this.lines-t.lines+z.lines;if(z.lines<u>>4&&z.lines>u>>6){let j=this.children.slice();return j[i]=z,new Aj(j,this.length-(N-M)+D.length)}return super.replace(j,I,z)}j=I+1}return super.replace(M,N,D)}sliceString(M,N=this.length,D="\n"){[M,N]=lj(this,M,N);let i="";for(let j=0,t=0;j<this.children.length&&t<=N;j++){let I=this.children[j],z=t+I.length;t>M&&j&&(i+=D),M<z&&N>t&&(i+=I.sliceString(M-t,N-t,D)),t=z+1}return i}flatten(M){for(let N of this.children)N.flatten(M)}scanIdentical(M,N){if(!(M instanceof Aj))return 0;let D=0,[i,j,t,I]=N>0?[0,0,this.children.length,M.children.length]:[this.children.length-1,M.children.length-1,-1,-1];for(;;i+=N,j+=N){if(i==t||j==I)return D;let z=this.children[i],u=M.children[j];if(z!=u)return D+z.scanIdentical(u,N);D+=z.length+1}}static from(M,N=M.reduce(((M,N)=>M+N.length+1),-1)){let D=0;for(let N of M)D+=N.lines;if(D<32){let D=[];for(let N of M)N.flatten(D);return new Tj(D,N)}let i=Math.max(32,D>>5),j=i<<1,t=i>>1,I=[],z=0,u=-1,g=[];function e(M){let N;if(M.lines>j&&M instanceof Aj)for(let N of M.children)e(N);else M.lines>t&&(z>t||!z)?(T(),I.push(M)):M instanceof Tj&&z&&(N=g[g.length-1])instanceof Tj&&M.lines+N.lines<=32?(z+=M.lines,u+=M.length+1,g[g.length-1]=new Tj(N.text.concat(M.text),N.length+1+M.length)):(z+M.lines>i&&T(),z+=M.lines,u+=M.length+1,g.push(M))}function T(){0!=z&&(I.push(1==g.length?g[0]:Aj.from(g,u)),u=-1,z=g.length=0)}for(let N of M)e(N);return T(),1==I.length?I[0]:new Aj(I,N)}}function sj(M,N,D=0,i=1e9){for(let j=0,t=0,I=!0;t<M.length&&j<=i;t++){let z=M[t],u=j+z.length;u>=D&&(u>i&&(z=z.slice(0,i-j)),j<D&&(z=z.slice(D-j)),I?(N[N.length-1]+=z,I=!1):N.push(z)),j=u+1}return N}function Lj(M,N,D){return sj(M,[""],N,D)}ej.empty=new Tj([""],0);class Oj{constructor(M,N=1){this.dir=N,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[M],this.offsets=[N>0?1:(M instanceof Tj?M.text.length:M.children.length)<<1]}nextInner(M,N){for(this.done=this.lineBreak=!1;;){let D=this.nodes.length-1,i=this.nodes[D],j=this.offsets[D],t=j>>1,I=i instanceof Tj?i.text.length:i.children.length;if(t==(N>0?I:0)){if(0==D)return this.done=!0,this.value="",this;N>0&&this.offsets[D-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&j)==(N>0?0:1)){if(this.offsets[D]+=N,0==M)return this.lineBreak=!0,this.value="\n",this;M--}else if(i instanceof Tj){let j=i.text[t+(N<0?-1:0)];if(this.offsets[D]+=N,j.length>Math.max(0,M))return this.value=0==M?j:N>0?j.slice(M):j.slice(0,j.length-M),this;M-=j.length}else{let j=i.children[t+(N<0?-1:0)];M>j.length?(M-=j.length,this.offsets[D]+=N):(N<0&&this.offsets[D]--,this.nodes.push(j),this.offsets.push(N>0?1:(j instanceof Tj?j.text.length:j.children.length)<<1))}}}next(M=0){return M<0&&(this.nextInner(-M,-this.dir),M=this.value.length),this.nextInner(M,this.dir)}}class yj{constructor(M,N,D){this.value="",this.done=!1,this.cursor=new Oj(M,N>D?-1:1),this.pos=N>D?M.length:0,this.from=Math.min(N,D),this.to=Math.max(N,D)}nextInner(M,N){if(N<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;M+=Math.max(0,N<0?this.pos-this.to:this.from-this.pos);let D=N<0?this.pos-this.from:this.to-this.pos;M>D&&(M=D),D-=M;let{value:i}=this.cursor.next(M);return this.pos+=(i.length+M)*N,this.value=i.length<=D?i:N<0?i.slice(i.length-D):i.slice(0,D),this.done=!this.value,this}next(M=0){return M<0?M=Math.max(M,this.from-this.pos):M>0&&(M=Math.min(M,this.to-this.pos)),this.nextInner(M,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class cj{constructor(M){this.inner=M,this.afterBreak=!0,this.value="",this.done=!1}next(M=0){let{done:N,lineBreak:D,value:i}=this.inner.next(M);return N&&this.afterBreak?(this.value="",this.afterBreak=!1):N?(this.done=!0,this.value=""):D?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(ej.prototype[Symbol.iterator]=function(){return this.iter()},Oj.prototype[Symbol.iterator]=yj.prototype[Symbol.iterator]=cj.prototype[Symbol.iterator]=function(){return this});class nj{constructor(M,N,D,i){this.from=M,this.to=N,this.number=D,this.text=i}get length(){return this.to-this.from}}function lj(M,N,D){return[N=Math.max(0,Math.min(M.length,N)),Math.max(N,Math.min(M.length,D))]}let oj="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((M=>M?parseInt(M,36):1));for(let M=1;M<oj.length;M++)oj[M]+=oj[M-1];function rj(M){for(let N=1;N<oj.length;N+=2)if(oj[N]>M)return oj[N-1]<=M;return!1}function xj(M){return M>=127462&&M<=127487}const aj=8205;function Qj(M,N,D=!0,i=!0){return(D?Ej:Sj)(M,N,i)}function Ej(M,N,D){if(N==M.length)return N;N&&hj(M.charCodeAt(N))&&dj(M.charCodeAt(N-1))&&N--;let i=kj(M,N);for(N+=Uj(i);N<M.length;){let j=kj(M,N);if(i==aj||j==aj||D&&rj(j))N+=Uj(j),i=j;else{if(!xj(j))break;{let D=0,i=N-2;for(;i>=0&&xj(kj(M,i));)D++,i-=2;if(D%2==0)break;N+=2}}}return N}function Sj(M,N,D){for(;N>0;){let i=Ej(M,N-2,D);if(i<N)return i;N--}return 0}function hj(M){return M>=56320&&M<57344}function dj(M){return M>=55296&&M<56320}function kj(M,N){let D=M.charCodeAt(N);if(!dj(D)||N+1==M.length)return D;let i=M.charCodeAt(N+1);return hj(i)?i-56320+(D-55296<<10)+65536:D}function wj(M){return M<=65535?String.fromCharCode(M):(M-=65536,String.fromCharCode(55296+(M>>10),56320+(1023&M)))}function Uj(M){return M<65536?1:2}const Yj=/\r\n?|\n/;var Cj=function(M){return M[M.Simple=0]="Simple",M[M.TrackDel=1]="TrackDel",M[M.TrackBefore=2]="TrackBefore",M[M.TrackAfter=3]="TrackAfter",M}(Cj||(Cj={}));class bj{constructor(M){this.sections=M}get length(){let M=0;for(let N=0;N<this.sections.length;N+=2)M+=this.sections[N];return M}get newLength(){let M=0;for(let N=0;N<this.sections.length;N+=2){let D=this.sections[N+1];M+=D<0?this.sections[N]:D}return M}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(M){for(let N=0,D=0,i=0;N<this.sections.length;){let j=this.sections[N++],t=this.sections[N++];t<0?(M(D,i,j),i+=j):i+=t,D+=j}}iterChangedRanges(M,N=!1){fj(this,M,N)}get invertedDesc(){let M=[];for(let N=0;N<this.sections.length;){let D=this.sections[N++],i=this.sections[N++];i<0?M.push(D,i):M.push(i,D)}return new bj(M)}composeDesc(M){return this.empty?M:M.empty?this:Wj(this,M)}mapDesc(M,N=!1){return M.empty?this:vj(this,M,N)}mapPos(M,N=-1,D=Cj.Simple){let i=0,j=0;for(let t=0;t<this.sections.length;){let I=this.sections[t++],z=this.sections[t++],u=i+I;if(z<0){if(u>M)return j+(M-i);j+=I}else{if(D!=Cj.Simple&&u>=M&&(D==Cj.TrackDel&&i<M&&u>M||D==Cj.TrackBefore&&i<M||D==Cj.TrackAfter&&u>M))return null;if(u>M||u==M&&N<0&&!I)return M==i||N<0?j:j+z;j+=z}i=u}if(M>i)throw new RangeError(`Position ${M} is out of range for changeset of length ${i}`);return j}touchesRange(M,N=M){for(let D=0,i=0;D<this.sections.length&&i<=N;){let j=i+this.sections[D++];if(this.sections[D++]>=0&&i<=N&&j>=M)return!(i<M&&j>N)||"cover";i=j}return!1}toString(){let M="";for(let N=0;N<this.sections.length;){let D=this.sections[N++],i=this.sections[N++];M+=(M?" ":"")+D+(i>=0?":"+i:"")}return M}toJSON(){return this.sections}static fromJSON(M){if(!Array.isArray(M)||M.length%2||M.some((M=>"number"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new bj(M)}static create(M){return new bj(M)}}class pj extends bj{constructor(M,N){super(M),this.inserted=N}apply(M){if(this.length!=M.length)throw new RangeError("Applying change set to a document with the wrong length");return fj(this,((N,D,i,j,t)=>M=M.replace(i,i+(D-N),t)),!1),M}mapDesc(M,N=!1){return vj(this,M,N,!0)}invert(M){let N=this.sections.slice(),D=[];for(let i=0,j=0;i<N.length;i+=2){let t=N[i],I=N[i+1];if(I>=0){N[i]=I,N[i+1]=t;let z=i>>1;for(;D.length<z;)D.push(ej.empty);D.push(t?M.slice(j,j+t):ej.empty)}j+=t}return new pj(N,D)}compose(M){return this.empty?M:M.empty?this:Wj(this,M,!0)}map(M,N=!1){return M.empty?this:vj(this,M,N,!0)}iterChanges(M,N=!1){fj(this,M,N)}get desc(){return bj.create(this.sections)}filter(M){let N=[],D=[],i=[],j=new Vj(this);M:for(let t=0,I=0;;){let z=t==M.length?1e9:M[t++];for(;I<z||I==z&&0==j.len;){if(j.done)break M;let M=Math.min(j.len,z-I);mj(i,M,-1);let t=-1==j.ins?-1:0==j.off?j.ins:0;mj(N,M,t),t>0&&Zj(D,N,j.text),j.forward(M),I+=M}let u=M[t++];for(;I<u;){if(j.done)break M;let M=Math.min(j.len,u-I);mj(N,M,-1),mj(i,M,-1==j.ins?-1:0==j.off?j.ins:0),j.forward(M),I+=M}}return{changes:new pj(N,D),filtered:bj.create(i)}}toJSON(){let M=[];for(let N=0;N<this.sections.length;N+=2){let D=this.sections[N],i=this.sections[N+1];i<0?M.push(D):0==i?M.push([D]):M.push([D].concat(this.inserted[N>>1].toJSON()))}return M}static of(M,N,D){let i=[],j=[],t=0,I=null;function z(M=!1){if(!M&&!i.length)return;t<N&&mj(i,N-t,-1);let D=new pj(i,j);I=I?I.compose(D.map(I)):D,i=[],j=[],t=0}return function M(u){if(Array.isArray(u))for(let N of u)M(N);else if(u instanceof pj){if(u.length!=N)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${N})`);z(),I=I?I.compose(u.map(I)):u}else{let{from:M,to:I=M,insert:g}=u;if(M>I||M<0||I>N)throw new RangeError(`Invalid change range ${M} to ${I} (in doc of length ${N})`);let e=g?"string"==typeof g?ej.of(g.split(D||Yj)):g:ej.empty,T=e.length;if(M==I&&0==T)return;M<t&&z(),M>t&&mj(i,M-t,-1),mj(i,I-M,T),Zj(j,i,e),t=I}}(M),z(!I),I}static empty(M){return new pj(M?[M,-1]:[],[])}static fromJSON(M){if(!Array.isArray(M))throw new RangeError("Invalid JSON representation of ChangeSet");let N=[],D=[];for(let i=0;i<M.length;i++){let j=M[i];if("number"==typeof j)N.push(j,-1);else{if(!Array.isArray(j)||"number"!=typeof j[0]||j.some(((M,N)=>N&&"string"!=typeof M)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==j.length)N.push(j[0],0);else{for(;D.length<i;)D.push(ej.empty);D[i]=ej.of(j.slice(1)),N.push(j[0],D[i].length)}}}return new pj(N,D)}static createSet(M,N){return new pj(M,N)}}function mj(M,N,D,i=!1){if(0==N&&D<=0)return;let j=M.length-2;j>=0&&D<=0&&D==M[j+1]?M[j]+=N:0==N&&0==M[j]?M[j+1]+=D:i?(M[j]+=N,M[j+1]+=D):M.push(N,D)}function Zj(M,N,D){if(0==D.length)return;let i=N.length-2>>1;if(i<M.length)M[M.length-1]=M[M.length-1].append(D);else{for(;M.length<i;)M.push(ej.empty);M.push(D)}}function fj(M,N,D){let i=M.inserted;for(let j=0,t=0,I=0;I<M.sections.length;){let z=M.sections[I++],u=M.sections[I++];if(u<0)j+=z,t+=z;else{let g=j,e=t,T=ej.empty;for(;g+=z,e+=u,u&&i&&(T=T.append(i[I-2>>1])),!(D||I==M.sections.length||M.sections[I+1]<0);)z=M.sections[I++],u=M.sections[I++];N(j,g,t,e,T),j=g,t=e}}}function vj(M,N,D,i=!1){let j=[],t=i?[]:null,I=new Vj(M),z=new Vj(N);for(let M=-1;;)if(-1==I.ins&&-1==z.ins){let M=Math.min(I.len,z.len);mj(j,M,-1),I.forward(M),z.forward(M)}else if(z.ins>=0&&(I.ins<0||M==I.i||0==I.off&&(z.len<I.len||z.len==I.len&&!D))){let N=z.len;for(mj(j,z.ins,-1);N;){let D=Math.min(I.len,N);I.ins>=0&&M<I.i&&I.len<=D&&(mj(j,0,I.ins),t&&Zj(t,j,I.text),M=I.i),I.forward(D),N-=D}z.next()}else{if(!(I.ins>=0)){if(I.done&&z.done)return t?pj.createSet(j,t):bj.create(j);throw new Error("Mismatched change set lengths")}{let N=0,D=I.len;for(;D;)if(-1==z.ins){let M=Math.min(D,z.len);N+=M,D-=M,z.forward(M)}else{if(!(0==z.ins&&z.len<D))break;D-=z.len,z.next()}mj(j,N,M<I.i?I.ins:0),t&&M<I.i&&Zj(t,j,I.text),M=I.i,I.forward(I.len-D)}}}function Wj(M,N,D=!1){let i=[],j=D?[]:null,t=new Vj(M),I=new Vj(N);for(let M=!1;;){if(t.done&&I.done)return j?pj.createSet(i,j):bj.create(i);if(0==t.ins)mj(i,t.len,0,M),t.next();else if(0!=I.len||I.done){if(t.done||I.done)throw new Error("Mismatched change set lengths");{let N=Math.min(t.len2,I.len),D=i.length;if(-1==t.ins){let D=-1==I.ins?-1:I.off?0:I.ins;mj(i,N,D,M),j&&D&&Zj(j,i,I.text)}else-1==I.ins?(mj(i,t.off?0:t.len,N,M),j&&Zj(j,i,t.textBit(N))):(mj(i,t.off?0:t.len,I.off?0:I.ins,M),j&&!I.off&&Zj(j,i,I.text));M=(t.ins>N||I.ins>=0&&I.len>N)&&(M||i.length>D),t.forward2(N),I.forward(N)}}else mj(i,0,I.ins,M),j&&Zj(j,i,I.text),I.next()}}class Vj{constructor(M){this.set=M,this.i=0,this.next()}next(){let{sections:M}=this.set;this.i<M.length?(this.len=M[this.i++],this.ins=M[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:M}=this.set,N=this.i-2>>1;return N>=M.length?ej.empty:M[N]}textBit(M){let{inserted:N}=this.set,D=this.i-2>>1;return D>=N.length&&!M?ej.empty:N[D].slice(this.off,null==M?void 0:this.off+M)}forward(M){M==this.len?this.next():(this.len-=M,this.off+=M)}forward2(M){-1==this.ins?this.forward(M):M==this.ins?this.next():(this.ins-=M,this.off+=M)}}class Gj{constructor(M,N,D){this.from=M,this.to=N,this.flags=D}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let M=7&this.flags;return 7==M?null:M}get goalColumn(){let M=this.flags>>6;return 16777215==M?void 0:M}map(M,N=-1){let D,i;return this.empty?D=i=M.mapPos(this.from,N):(D=M.mapPos(this.from,1),i=M.mapPos(this.to,-1)),D==this.from&&i==this.to?this:new Gj(D,i,this.flags)}extend(M,N=M){if(M<=this.anchor&&N>=this.anchor)return Pj.range(M,N);let D=Math.abs(M-this.anchor)>Math.abs(N-this.anchor)?M:N;return Pj.range(this.anchor,D)}eq(M,N=!1){return!(this.anchor!=M.anchor||this.head!=M.head||N&&this.empty&&this.assoc!=M.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(M){if(!M||"number"!=typeof M.anchor||"number"!=typeof M.head)throw new RangeError("Invalid JSON representation for SelectionRange");return Pj.range(M.anchor,M.head)}static create(M,N,D){return new Gj(M,N,D)}}class Pj{constructor(M,N){this.ranges=M,this.mainIndex=N}map(M,N=-1){return M.empty?this:Pj.create(this.ranges.map((D=>D.map(M,N))),this.mainIndex)}eq(M,N=!1){if(this.ranges.length!=M.ranges.length||this.mainIndex!=M.mainIndex)return!1;for(let D=0;D<this.ranges.length;D++)if(!this.ranges[D].eq(M.ranges[D],N))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new Pj([this.main],0)}addRange(M,N=!0){return Pj.create([M].concat(this.ranges),N?0:this.mainIndex+1)}replaceRange(M,N=this.mainIndex){let D=this.ranges.slice();return D[N]=M,Pj.create(D,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((M=>M.toJSON())),main:this.mainIndex}}static fromJSON(M){if(!M||!Array.isArray(M.ranges)||"number"!=typeof M.main||M.main>=M.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Pj(M.ranges.map((M=>Gj.fromJSON(M))),M.main)}static single(M,N=M){return new Pj([Pj.range(M,N)],0)}static create(M,N=0){if(0==M.length)throw new RangeError("A selection needs at least one range");for(let D=0,i=0;i<M.length;i++){let j=M[i];if(j.empty?j.from<=D:j.from<D)return Pj.normalized(M.slice(),N);D=j.to}return new Pj(M,N)}static cursor(M,N=0,D,i){return Gj.create(M,M,(0==N?0:N<0?8:16)|(null==D?7:Math.min(6,D))|(null!=i?i:16777215)<<6)}static range(M,N,D,i){let j=(null!=D?D:16777215)<<6|(null==i?7:Math.min(6,i));return N<M?Gj.create(N,M,48|j):Gj.create(M,N,(N>M?8:0)|j)}static normalized(M,N=0){let D=M[N];M.sort(((M,N)=>M.from-N.from)),N=M.indexOf(D);for(let D=1;D<M.length;D++){let i=M[D],j=M[D-1];if(i.empty?i.from<=j.to:i.from<j.to){let t=j.from,I=Math.max(i.to,j.to);D<=N&&N--,M.splice(--D,2,i.anchor>i.head?Pj.range(I,t):Pj.range(t,I))}}return new Pj(M,N)}}function Rj(M,N){for(let D of M.ranges)if(D.to>N)throw new RangeError("Selection points outside of document")}let Bj=0;class Jj{constructor(M,N,D,i,j){this.combine=M,this.compareInput=N,this.compare=D,this.isStatic=i,this.id=Bj++,this.default=M([]),this.extensions="function"==typeof j?j(this):j}get reader(){return this}static define(M={}){return new Jj(M.combine||(M=>M),M.compareInput||((M,N)=>M===N),M.compare||(M.combine?(M,N)=>M===N:Fj),!!M.static,M.enables)}of(M){return new Hj([],this,0,M)}compute(M,N){if(this.isStatic)throw new Error("Can't compute a static facet");return new Hj(M,this,1,N)}computeN(M,N){if(this.isStatic)throw new Error("Can't compute a static facet");return new Hj(M,this,2,N)}from(M,N){return N||(N=M=>M),this.compute([M],(D=>N(D.field(M))))}}function Fj(M,N){return M==N||M.length==N.length&&M.every(((M,D)=>M===N[D]))}class Hj{constructor(M,N,D,i){this.dependencies=M,this.facet=N,this.type=D,this.value=i,this.id=Bj++}dynamicSlot(M){var N;let D=this.value,i=this.facet.compareInput,j=this.id,t=M[j]>>1,I=2==this.type,z=!1,u=!1,g=[];for(let D of this.dependencies)"doc"==D?z=!0:"selection"==D?u=!0:1&(null!==(N=M[D.id])&&void 0!==N?N:1)||g.push(M[D.id]);return{create:M=>(M.values[t]=D(M),1),update(M,N){if(z&&N.docChanged||u&&(N.docChanged||N.selection)||$j(M,g)){let N=D(M);if(I?!Xj(N,M.values[t],i):!i(N,M.values[t]))return M.values[t]=N,1}return 0},reconfigure:(M,N)=>{let z,u=N.config.address[j];if(null!=u){let j=Tt(N,u);if(this.dependencies.every((D=>D instanceof Jj?N.facet(D)===M.facet(D):!(D instanceof Kj)||N.field(D,!1)==M.field(D,!1)))||(I?Xj(z=D(M),j,i):i(z=D(M),j)))return M.values[t]=j,0}else z=D(M);return M.values[t]=z,1}}}}function Xj(M,N,D){if(M.length!=N.length)return!1;for(let i=0;i<M.length;i++)if(!D(M[i],N[i]))return!1;return!0}function $j(M,N){let D=!1;for(let i of N)1&et(M,i)&&(D=!0);return D}function _j(M,N,D){let i=D.map((N=>M[N.id])),j=D.map((M=>M.type)),t=i.filter((M=>!(1&M))),I=M[N.id]>>1;function z(M){let D=[];for(let N=0;N<i.length;N++){let t=Tt(M,i[N]);if(2==j[N])for(let M of t)D.push(M);else D.push(t)}return N.combine(D)}return{create(M){for(let N of i)et(M,N);return M.values[I]=z(M),1},update(M,D){if(!$j(M,t))return 0;let i=z(M);return N.compare(i,M.values[I])?0:(M.values[I]=i,1)},reconfigure(M,j){let t=$j(M,i),u=j.config.facets[N.id],g=j.facet(N);if(u&&!t&&Fj(D,u))return M.values[I]=g,0;let e=z(M);return N.compare(e,g)?(M.values[I]=g,0):(M.values[I]=e,1)}}}const qj=Jj.define({static:!0});class Kj{constructor(M,N,D,i,j){this.id=M,this.createF=N,this.updateF=D,this.compareF=i,this.spec=j,this.provides=void 0}static define(M){let N=new Kj(Bj++,M.create,M.update,M.compare||((M,N)=>M===N),M);return M.provide&&(N.provides=M.provide(N)),N}create(M){let N=M.facet(qj).find((M=>M.field==this));return((null==N?void 0:N.create)||this.createF)(M)}slot(M){let N=M[this.id]>>1;return{create:M=>(M.values[N]=this.create(M),1),update:(M,D)=>{let i=M.values[N],j=this.updateF(i,D);return this.compareF(i,j)?0:(M.values[N]=j,1)},reconfigure:(M,D)=>null!=D.config.address[this.id]?(M.values[N]=D.field(this),0):(M.values[N]=this.create(M),1)}}init(M){return[this,qj.of({field:this,create:M})]}get extension(){return this}}const Mt=4,Nt=3,Dt=2,it=1;function jt(M){return N=>new It(N,M)}const tt={highest:jt(0),high:jt(it),default:jt(Dt),low:jt(Nt),lowest:jt(Mt)};class It{constructor(M,N){this.inner=M,this.prec=N}}class zt{of(M){return new ut(this,M)}reconfigure(M){return zt.reconfigure.of({compartment:this,extension:M})}get(M){return M.config.compartments.get(this)}}class ut{constructor(M,N){this.compartment=M,this.inner=N}}class gt{constructor(M,N,D,i,j,t){for(this.base=M,this.compartments=N,this.dynamicSlots=D,this.address=i,this.staticValues=j,this.facets=t,this.statusTemplate=[];this.statusTemplate.length<D.length;)this.statusTemplate.push(0)}staticFacet(M){let N=this.address[M.id];return null==N?M.default:this.staticValues[N>>1]}static resolve(M,N,D){let i=[],j=Object.create(null),t=new Map;for(let D of function(M,N,D){let i=[[],[],[],[],[]],j=new Map;function t(M,I){let z=j.get(M);if(null!=z){if(z<=I)return;let N=i[z].indexOf(M);N>-1&&i[z].splice(N,1),M instanceof ut&&D.delete(M.compartment)}if(j.set(M,I),Array.isArray(M))for(let N of M)t(N,I);else if(M instanceof ut){if(D.has(M.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=N.get(M.compartment)||M.inner;D.set(M.compartment,i),t(i,I)}else if(M instanceof It)t(M.inner,M.prec);else if(M instanceof Kj)i[I].push(M),M.provides&&t(M.provides,I);else if(M instanceof Hj)i[I].push(M),M.facet.extensions&&t(M.facet.extensions,Dt);else{let N=M.extension;if(!N)throw new Error(`Unrecognized extension value in extension set (${M}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(N,I)}}return t(M,Dt),i.reduce(((M,N)=>M.concat(N)))}(M,N,t))D instanceof Kj?i.push(D):(j[D.facet.id]||(j[D.facet.id]=[])).push(D);let I=Object.create(null),z=[],u=[];for(let M of i)I[M.id]=u.length<<1,u.push((N=>M.slot(N)));let g=null==D?void 0:D.config.facets;for(let M in j){let N=j[M],i=N[0].facet,t=g&&g[M]||[];if(N.every((M=>0==M.type)))if(I[i.id]=z.length<<1|1,Fj(t,N))z.push(D.facet(i));else{let M=i.combine(N.map((M=>M.value)));z.push(D&&i.compare(M,D.facet(i))?D.facet(i):M)}else{for(let M of N)0==M.type?(I[M.id]=z.length<<1|1,z.push(M.value)):(I[M.id]=u.length<<1,u.push((N=>M.dynamicSlot(N))));I[i.id]=u.length<<1,u.push((M=>_j(M,i,N)))}}let e=u.map((M=>M(I)));return new gt(M,t,e,I,z,j)}}function et(M,N){if(1&N)return 2;let D=N>>1,i=M.status[D];if(4==i)throw new Error("Cyclic dependency between fields and/or facets");if(2&i)return i;M.status[D]=4;let j=M.computeSlot(M,M.config.dynamicSlots[D]);return M.status[D]=2|j}function Tt(M,N){return 1&N?M.config.staticValues[N>>1]:M.values[N>>1]}const At=Jj.define(),st=Jj.define({combine:M=>M.some((M=>M)),static:!0}),Lt=Jj.define({combine:M=>M.length?M[0]:void 0,static:!0}),Ot=Jj.define(),yt=Jj.define(),ct=Jj.define(),nt=Jj.define({combine:M=>!!M.length&&M[0]});class lt{constructor(M,N){this.type=M,this.value=N}static define(){return new ot}}class ot{of(M){return new lt(this,M)}}class rt{constructor(M){this.map=M}of(M){return new xt(this,M)}}class xt{constructor(M,N){this.type=M,this.value=N}map(M){let N=this.type.map(this.value,M);return void 0===N?void 0:N==this.value?this:new xt(this.type,N)}is(M){return this.type==M}static define(M={}){return new rt(M.map||(M=>M))}static mapEffects(M,N){if(!M.length)return M;let D=[];for(let i of M){let M=i.map(N);M&&D.push(M)}return D}}xt.reconfigure=xt.define(),xt.appendConfig=xt.define();class at{constructor(M,N,D,i,j,t){this.startState=M,this.changes=N,this.selection=D,this.effects=i,this.annotations=j,this.scrollIntoView=t,this._doc=null,this._state=null,D&&Rj(D,N.newLength),j.some((M=>M.type==at.time))||(this.annotations=j.concat(at.time.of(Date.now())))}static create(M,N,D,i,j,t){return new at(M,N,D,i,j,t)}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(M){for(let N of this.annotations)if(N.type==M)return N.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(M){let N=this.annotation(at.userEvent);return!(!N||!(N==M||N.length>M.length&&N.slice(0,M.length)==M&&"."==N[M.length]))}}function Qt(M,N){let D=[];for(let i=0,j=0;;){let t,I;if(i<M.length&&(j==N.length||N[j]>=M[i]))t=M[i++],I=M[i++];else{if(!(j<N.length))return D;t=N[j++],I=N[j++]}!D.length||D[D.length-1]<t?D.push(t,I):D[D.length-1]<I&&(D[D.length-1]=I)}}function Et(M,N,D){var i;let j,t,I;return D?(j=N.changes,t=pj.empty(N.changes.length),I=M.changes.compose(N.changes)):(j=N.changes.map(M.changes),t=M.changes.mapDesc(N.changes,!0),I=M.changes.compose(j)),{changes:I,selection:N.selection?N.selection.map(t):null===(i=M.selection)||void 0===i?void 0:i.map(j),effects:xt.mapEffects(M.effects,j).concat(xt.mapEffects(N.effects,t)),annotations:M.annotations.length?M.annotations.concat(N.annotations):N.annotations,scrollIntoView:M.scrollIntoView||N.scrollIntoView}}function St(M,N,D){let i=N.selection,j=kt(N.annotations);return N.userEvent&&(j=j.concat(at.userEvent.of(N.userEvent))),{changes:N.changes instanceof pj?N.changes:pj.of(N.changes||[],D,M.facet(Lt)),selection:i&&(i instanceof Pj?i:Pj.single(i.anchor,i.head)),effects:kt(N.effects),annotations:j,scrollIntoView:!!N.scrollIntoView}}function ht(M,N,D){let i=St(M,N.length?N[0]:{},M.doc.length);N.length&&!1===N[0].filter&&(D=!1);for(let j=1;j<N.length;j++){!1===N[j].filter&&(D=!1);let t=!!N[j].sequential;i=Et(i,St(M,N[j],t?i.changes.newLength:M.doc.length),t)}let j=at.create(M,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return function(M){let N=M.startState,D=N.facet(ct),i=M;for(let j=D.length-1;j>=0;j--){let t=D[j](M);t&&Object.keys(t).length&&(i=Et(i,St(N,t,M.changes.newLength),!0))}return i==M?M:at.create(N,M.changes,M.selection,i.effects,i.annotations,i.scrollIntoView)}(D?function(M){let N=M.startState,D=!0;for(let i of N.facet(Ot)){let N=i(M);if(!1===N){D=!1;break}Array.isArray(N)&&(D=!0===D?N:Qt(D,N))}if(!0!==D){let i,j;if(!1===D)j=M.changes.invertedDesc,i=pj.empty(N.doc.length);else{let N=M.changes.filter(D);i=N.changes,j=N.filtered.mapDesc(N.changes).invertedDesc}M=at.create(N,i,M.selection&&M.selection.map(j),xt.mapEffects(M.effects,j),M.annotations,M.scrollIntoView)}let i=N.facet(yt);for(let D=i.length-1;D>=0;D--){let j=i[D](M);M=j instanceof at?j:Array.isArray(j)&&1==j.length&&j[0]instanceof at?j[0]:ht(N,kt(j),!1)}return M}(j):j)}at.time=lt.define(),at.userEvent=lt.define(),at.addToHistory=lt.define(),at.remote=lt.define();const dt=[];function kt(M){return null==M?dt:Array.isArray(M)?M:[M]}var wt=function(M){return M[M.Word=0]="Word",M[M.Space=1]="Space",M[M.Other=2]="Other",M}(wt||(wt={}));const Ut=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Yt;try{Yt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(lM){}function Ct(M){return N=>{if(!/\S/.test(N))return wt.Space;if(function(M){if(Yt)return Yt.test(M);for(let N=0;N<M.length;N++){let D=M[N];if(/\w/.test(D)||D>"€"&&(D.toUpperCase()!=D.toLowerCase()||Ut.test(D)))return!0}return!1}(N))return wt.Word;for(let D=0;D<M.length;D++)if(N.indexOf(M[D])>-1)return wt.Word;return wt.Other}}class bt{constructor(M,N,D,i,j,t){this.config=M,this.doc=N,this.selection=D,this.values=i,this.status=M.statusTemplate.slice(),this.computeSlot=j,t&&(t._state=this);for(let M=0;M<this.config.dynamicSlots.length;M++)et(this,M<<1);this.computeSlot=null}field(M,N=!0){let D=this.config.address[M.id];if(null!=D)return et(this,D),Tt(this,D);if(N)throw new RangeError("Field is not present in this state")}update(...M){return ht(this,M,!0)}applyTransaction(M){let N,D=this.config,{base:i,compartments:j}=D;for(let N of M.effects)N.is(zt.reconfigure)?(D&&(j=new Map,D.compartments.forEach(((M,N)=>j.set(N,M))),D=null),j.set(N.value.compartment,N.value.extension)):N.is(xt.reconfigure)?(D=null,i=N.value):N.is(xt.appendConfig)&&(D=null,i=kt(i).concat(N.value));if(D)N=M.startState.values.slice();else{D=gt.resolve(i,j,this),N=new bt(D,this.doc,this.selection,D.dynamicSlots.map((()=>null)),((M,N)=>N.reconfigure(M,this)),null).values}let t=M.startState.facet(st)?M.newSelection:M.newSelection.asSingle();new bt(D,M.newDoc,t,N,((N,D)=>D.update(N,M)),M)}replaceSelection(M){return"string"==typeof M&&(M=this.toText(M)),this.changeByRange((N=>({changes:{from:N.from,to:N.to,insert:M},range:Pj.cursor(N.from+M.length)})))}changeByRange(M){let N=this.selection,D=M(N.ranges[0]),i=this.changes(D.changes),j=[D.range],t=kt(D.effects);for(let D=1;D<N.ranges.length;D++){let I=M(N.ranges[D]),z=this.changes(I.changes),u=z.map(i);for(let M=0;M<D;M++)j[M]=j[M].map(u);let g=i.mapDesc(z,!0);j.push(I.range.map(g)),i=i.compose(u),t=xt.mapEffects(t,u).concat(xt.mapEffects(kt(I.effects),g))}return{changes:i,selection:Pj.create(j,N.mainIndex),effects:t}}changes(M=[]){return M instanceof pj?M:pj.of(M,this.doc.length,this.facet(bt.lineSeparator))}toText(M){return ej.of(M.split(this.facet(bt.lineSeparator)||Yj))}sliceDoc(M=0,N=this.doc.length){return this.doc.sliceString(M,N,this.lineBreak)}facet(M){let N=this.config.address[M.id];return null==N?M.default:(et(this,N),Tt(this,N))}toJSON(M){let N={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(M)for(let D in M){let i=M[D];i instanceof Kj&&null!=this.config.address[i.id]&&(N[D]=i.spec.toJSON(this.field(M[D]),this))}return N}static fromJSON(M,N={},D){if(!M||"string"!=typeof M.doc)throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(D)for(let N in D)if(Object.prototype.hasOwnProperty.call(M,N)){let j=D[N],t=M[N];i.push(j.init((M=>j.spec.fromJSON(t,M))))}return bt.create({doc:M.doc,selection:Pj.fromJSON(M.selection),extensions:N.extensions?i.concat([N.extensions]):i})}static create(M={}){let N=gt.resolve(M.extensions||[],new Map),D=M.doc instanceof ej?M.doc:ej.of((M.doc||"").split(N.staticFacet(bt.lineSeparator)||Yj)),i=M.selection?M.selection instanceof Pj?M.selection:Pj.single(M.selection.anchor,M.selection.head):Pj.single(0);return Rj(i,D.length),N.staticFacet(st)||(i=i.asSingle()),new bt(N,D,i,N.dynamicSlots.map((()=>null)),((M,N)=>N.create(M)),null)}get tabSize(){return this.facet(bt.tabSize)}get lineBreak(){return this.facet(bt.lineSeparator)||"\n"}get readOnly(){return this.facet(nt)}phrase(M,...N){for(let N of this.facet(bt.phrases))if(Object.prototype.hasOwnProperty.call(N,M)){M=N[M];break}return N.length&&(M=M.replace(/\$(\$|\d*)/g,((M,D)=>{if("$"==D)return"$";let i=+(D||1);return!i||i>N.length?M:N[i-1]}))),M}languageDataAt(M,N,D=-1){let i=[];for(let j of this.facet(At))for(let t of j(this,N,D))Object.prototype.hasOwnProperty.call(t,M)&&i.push(t[M]);return i}charCategorizer(M){return Ct(this.languageDataAt("wordChars",M).join(""))}wordAt(M){let{text:N,from:D,length:i}=this.doc.lineAt(M),j=this.charCategorizer(M),t=M-D,I=M-D;for(;t>0;){let M=Qj(N,t,!1);if(j(N.slice(M,t))!=wt.Word)break;t=M}for(;I<i;){let M=Qj(N,I);if(j(N.slice(I,M))!=wt.Word)break;I=M}return t==I?null:Pj.range(t+D,I+D)}}function pt(M,N,D={}){let i={};for(let N of M)for(let M of Object.keys(N)){let j=N[M],t=i[M];if(void 0===t)i[M]=j;else if(t===j||void 0===j);else{if(!Object.hasOwnProperty.call(D,M))throw new Error("Config merge conflict for field "+M);i[M]=D[M](t,j)}}for(let M in N)void 0===i[M]&&(i[M]=N[M]);return i}bt.allowMultipleSelections=st,bt.tabSize=Jj.define({combine:M=>M.length?M[0]:4}),bt.lineSeparator=Lt,bt.readOnly=nt,bt.phrases=Jj.define({compare(M,N){let D=Object.keys(M),i=Object.keys(N);return D.length==i.length&&D.every((D=>M[D]==N[D]))}}),bt.languageData=At,bt.changeFilter=Ot,bt.transactionFilter=yt,bt.transactionExtender=ct,zt.reconfigure=xt.define();class mt{eq(M){return this==M}range(M,N=M){return Zt.create(M,N,this)}}mt.prototype.startSide=mt.prototype.endSide=0,mt.prototype.point=!1,mt.prototype.mapMode=Cj.TrackDel;let Zt=class M{constructor(M,N,D){this.from=M,this.to=N,this.value=D}static create(N,D,i){return new M(N,D,i)}};function ft(M,N){return M.from-N.from||M.value.startSide-N.value.startSide}class vt{constructor(M,N,D,i){this.from=M,this.to=N,this.value=D,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(M,N,D,i=0){let j=D?this.to:this.from;for(let t=i,I=j.length;;){if(t==I)return t;let i=t+I>>1,z=j[i]-M||(D?this.value[i].endSide:this.value[i].startSide)-N;if(i==t)return z>=0?t:I;z>=0?I=i:t=i+1}}between(M,N,D,i){for(let j=this.findIndex(N,-1e9,!0),t=this.findIndex(D,1e9,!1,j);j<t;j++)if(!1===i(this.from[j]+M,this.to[j]+M,this.value[j]))return!1}map(M,N){let D=[],i=[],j=[],t=-1,I=-1;for(let z=0;z<this.value.length;z++){let u,g,e=this.value[z],T=this.from[z]+M,A=this.to[z]+M;if(T==A){let M=N.mapPos(T,e.startSide,e.mapMode);if(null==M)continue;if(u=g=M,e.startSide!=e.endSide&&(g=N.mapPos(T,e.endSide),g<u))continue}else if(u=N.mapPos(T,e.startSide),g=N.mapPos(A,e.endSide),u>g||u==g&&e.startSide>0&&e.endSide<=0)continue;(g-u||e.endSide-e.startSide)<0||(t<0&&(t=u),e.point&&(I=Math.max(I,g-u)),D.push(e),i.push(u-t),j.push(g-t))}return{mapped:D.length?new vt(i,j,D,I):null,pos:t}}}class Wt{constructor(M,N,D,i){this.chunkPos=M,this.chunk=N,this.nextLayer=D,this.maxPoint=i}static create(M,N,D,i){return new Wt(M,N,D,i)}get length(){let M=this.chunk.length-1;return M<0?0:Math.max(this.chunkEnd(M),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let M=this.nextLayer.size;for(let N of this.chunk)M+=N.value.length;return M}chunkEnd(M){return this.chunkPos[M]+this.chunk[M].length}update(M){let{add:N=[],sort:D=!1,filterFrom:i=0,filterTo:j=this.length}=M,t=M.filter;if(0==N.length&&!t)return this;if(D&&(N=N.slice().sort(ft)),this.isEmpty)return N.length?Wt.of(N):this;let I=new Pt(this,null,-1).goto(0),z=0,u=[],g=new Vt;for(;I.value||z<N.length;)if(z<N.length&&(I.from-N[z].from||I.startSide-N[z].value.startSide)>=0){let M=N[z++];g.addInner(M.from,M.to,M.value)||u.push(M)}else 1==I.rangeIndex&&I.chunkIndex<this.chunk.length&&(z==N.length||this.chunkEnd(I.chunkIndex)<N[z].from)&&(!t||i>this.chunkEnd(I.chunkIndex)||j<this.chunkPos[I.chunkIndex])&&g.addChunk(this.chunkPos[I.chunkIndex],this.chunk[I.chunkIndex])?I.nextChunk():((!t||i>I.to||j<I.from||t(I.from,I.to,I.value))&&(g.addInner(I.from,I.to,I.value)||u.push(Zt.create(I.from,I.to,I.value))),I.next());return g.finishInner(this.nextLayer.isEmpty&&!u.length?Wt.empty:this.nextLayer.update({add:u,filter:t,filterFrom:i,filterTo:j}))}map(M){if(M.empty||this.isEmpty)return this;let N=[],D=[],i=-1;for(let j=0;j<this.chunk.length;j++){let t=this.chunkPos[j],I=this.chunk[j],z=M.touchesRange(t,t+I.length);if(!1===z)i=Math.max(i,I.maxPoint),N.push(I),D.push(M.mapPos(t));else if(!0===z){let{mapped:j,pos:z}=I.map(t,M);j&&(i=Math.max(i,j.maxPoint),N.push(j),D.push(z))}}let j=this.nextLayer.map(M);return 0==N.length?j:new Wt(D,N,j||Wt.empty,i)}between(M,N,D){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let j=this.chunkPos[i],t=this.chunk[i];if(N>=j&&M<=j+t.length&&!1===t.between(j,M-j,N-j,D))return}this.nextLayer.between(M,N,D)}}iter(M=0){return Rt.from([this]).goto(M)}get isEmpty(){return this.nextLayer==this}static iter(M,N=0){return Rt.from(M).goto(N)}static compare(M,N,D,i,j=-1){let t=M.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=j)),I=N.filter((M=>M.maxPoint>0||!M.isEmpty&&M.maxPoint>=j)),z=Gt(t,I,D),u=new Jt(t,z,j),g=new Jt(I,z,j);D.iterGaps(((M,N,D)=>Ft(u,M,g,N,D,i))),D.empty&&0==D.length&&Ft(u,0,g,0,0,i)}static eq(M,N,D=0,i){null==i&&(i=999999999);let j=M.filter((M=>!M.isEmpty&&N.indexOf(M)<0)),t=N.filter((N=>!N.isEmpty&&M.indexOf(N)<0));if(j.length!=t.length)return!1;if(!j.length)return!0;let I=Gt(j,t),z=new Jt(j,I,0).goto(D),u=new Jt(t,I,0).goto(D);for(;;){if(z.to!=u.to||!Ht(z.active,u.active)||z.point&&(!u.point||!z.point.eq(u.point)))return!1;if(z.to>i)return!0;z.next(),u.next()}}static spans(M,N,D,i,j=-1){let t=new Jt(M,null,j).goto(N),I=N,z=t.openStart;for(;;){let M=Math.min(t.to,D);if(t.point){let D=t.activeForPoint(t.to),j=t.pointFrom<N?D.length+1:t.point.startSide<0?D.length:Math.min(D.length,z);i.point(I,M,t.point,D,j,t.pointRank),z=Math.min(t.openEnd(M),D.length)}else M>I&&(i.span(I,M,t.active,z),z=t.openEnd(M));if(t.to>D)return z+(t.point&&t.to>D?1:0);I=t.to,t.next()}}static of(M,N=!1){let D=new Vt;for(let i of M instanceof Zt?[M]:N?function(M){if(M.length>1)for(let N=M[0],D=1;D<M.length;D++){let i=M[D];if(ft(N,i)>0)return M.slice().sort(ft);N=i}return M}(M):M)D.add(i.from,i.to,i.value);return D.finish()}static join(M){if(!M.length)return Wt.empty;let N=M[M.length-1];for(let D=M.length-2;D>=0;D--)for(let i=M[D];i!=Wt.empty;i=i.nextLayer)N=new Wt(i.chunkPos,i.chunk,N,Math.max(i.maxPoint,N.maxPoint));return N}}Wt.empty=new Wt([],[],null,-1),Wt.empty.nextLayer=Wt.empty;class Vt{finishChunk(M){this.chunks.push(new vt(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,M&&(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(M,N,D){this.addInner(M,N,D)||(this.nextLayer||(this.nextLayer=new Vt)).add(M,N,D)}addInner(M,N,D){let i=M-this.lastTo||D.startSide-this.last.endSide;if(i<=0&&(M-this.lastFrom||D.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(i<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=M),this.from.push(M-this.chunkStart),this.to.push(N-this.chunkStart),this.last=D,this.lastFrom=M,this.lastTo=N,this.value.push(D),D.point&&(this.maxPoint=Math.max(this.maxPoint,N-M)),!0)}addChunk(M,N){if((M-this.lastTo||N.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,N.maxPoint),this.chunks.push(N),this.chunkPos.push(M);let D=N.value.length-1;return this.last=N.value[D],this.lastFrom=N.from[D]+M,this.lastTo=N.to[D]+M,!0}finish(){return this.finishInner(Wt.empty)}finishInner(M){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return M;let N=Wt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(M):M,this.setMaxPoint);return this.from=null,N}}function Gt(M,N,D){let i=new Map;for(let N of M)for(let M=0;M<N.chunk.length;M++)N.chunk[M].maxPoint<=0&&i.set(N.chunk[M],N.chunkPos[M]);let j=new Set;for(let M of N)for(let N=0;N<M.chunk.length;N++){let t=i.get(M.chunk[N]);null==t||(D?D.mapPos(t):t)!=M.chunkPos[N]||(null==D?void 0:D.touchesRange(t,t+M.chunk[N].length))||j.add(M.chunk[N])}return j}class Pt{constructor(M,N,D,i=0){this.layer=M,this.skip=N,this.minPoint=D,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(M,N=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(M,N,!1),this}gotoInner(M,N,D){for(;this.chunkIndex<this.layer.chunk.length;){let N=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(N)||this.layer.chunkEnd(this.chunkIndex)<M||N.maxPoint<this.minPoint))break;this.chunkIndex++,D=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(M-this.layer.chunkPos[this.chunkIndex],N,!0);(!D||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(M,N){(this.to-M||this.endSide-N)<0&&this.gotoInner(M,N,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let M=this.layer.chunkPos[this.chunkIndex],N=this.layer.chunk[this.chunkIndex],D=M+N.from[this.rangeIndex];if(this.from=D,this.to=M+N.to[this.rangeIndex],this.value=N.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(M){if(M==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=M}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(M){return this.from-M.from||this.startSide-M.startSide||this.rank-M.rank||this.to-M.to||this.endSide-M.endSide}}class Rt{constructor(M){this.heap=M}static from(M,N=null,D=-1){let i=[];for(let j=0;j<M.length;j++)for(let t=M[j];!t.isEmpty;t=t.nextLayer)t.maxPoint>=D&&i.push(new Pt(t,N,D,j));return 1==i.length?i[0]:new Rt(i)}get startSide(){return this.value?this.value.startSide:0}goto(M,N=-1e9){for(let D of this.heap)D.goto(M,N);for(let M=this.heap.length>>1;M>=0;M--)Bt(this.heap,M);return this.next(),this}forward(M,N){for(let D of this.heap)D.forward(M,N);for(let M=this.heap.length>>1;M>=0;M--)Bt(this.heap,M);(this.to-M||this.value.endSide-N)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let M=this.heap[0];this.from=M.from,this.to=M.to,this.value=M.value,this.rank=M.rank,M.value&&M.next(),Bt(this.heap,0)}}}function Bt(M,N){for(let D=M[N];;){let i=1+(N<<1);if(i>=M.length)break;let j=M[i];if(i+1<M.length&&j.compare(M[i+1])>=0&&(j=M[i+1],i++),D.compare(j)<0)break;M[i]=D,M[N]=j,N=i}}class Jt{constructor(M,N,D){this.minPoint=D,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=Rt.from(M,N,D)}goto(M,N=-1e9){return this.cursor.goto(M,N),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=M,this.endSide=N,this.openStart=-1,this.next(),this}forward(M,N){for(;this.minActive>-1&&(this.activeTo[this.minActive]-M||this.active[this.minActive].endSide-N)<0;)this.removeActive(this.minActive);this.cursor.forward(M,N)}removeActive(M){Xt(this.active,M),Xt(this.activeTo,M),Xt(this.activeRank,M),this.minActive=_t(this.active,this.activeTo)}addActive(M){let N=0,{value:D,to:i,rank:j}=this.cursor;for(;N<this.activeRank.length&&(j-this.activeRank[N]||i-this.activeTo[N])>0;)N++;$t(this.active,N,D),$t(this.activeTo,N,i),$t(this.activeRank,N,j),M&&$t(M,N,this.cursor.from),this.minActive=_t(this.active,this.activeTo)}next(){let M=this.to,N=this.point;this.point=null;let D=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>M){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),D&&Xt(D,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>M){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let M=this.cursor.value;if(M.point){if(!(N&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)){this.point=M,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=M.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(D),this.cursor.next()}}}if(D){this.openStart=0;for(let N=D.length-1;N>=0&&D[N]<M;N--)this.openStart++}}activeForPoint(M){if(!this.active.length)return this.active;let N=[];for(let D=this.active.length-1;D>=0&&!(this.activeRank[D]<this.pointRank);D--)(this.activeTo[D]>M||this.activeTo[D]==M&&this.active[D].endSide>=this.point.endSide)&&N.push(this.active[D]);return N.reverse()}openEnd(M){let N=0;for(let D=this.activeTo.length-1;D>=0&&this.activeTo[D]>M;D--)N++;return N}}function Ft(M,N,D,i,j,t){M.goto(N),D.goto(i);let I=i+j,z=i,u=i-N;for(;;){let N=M.to+u-D.to||M.endSide-D.endSide,i=N<0?M.to+u:D.to,j=Math.min(i,I);if(M.point||D.point?M.point&&D.point&&(M.point==D.point||M.point.eq(D.point))&&Ht(M.activeForPoint(M.to),D.activeForPoint(D.to))||t.comparePoint(z,j,M.point,D.point):j>z&&!Ht(M.active,D.active)&&t.compareRange(z,j,M.active,D.active),i>I)break;z=i,N<=0&&M.next(),N>=0&&D.next()}}function Ht(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++)if(M[D]!=N[D]&&!M[D].eq(N[D]))return!1;return!0}function Xt(M,N){for(let D=N,i=M.length-1;D<i;D++)M[D]=M[D+1];M.pop()}function $t(M,N,D){for(let D=M.length-1;D>=N;D--)M[D+1]=M[D];M[N]=D}function _t(M,N){let D=-1,i=1e9;for(let j=0;j<N.length;j++)(N[j]-i||M[j].endSide-M[D].endSide)<0&&(D=j,i=N[j]);return D}function qt(M,N,D=M.length){let i=0;for(let j=0;j<D;)9==M.charCodeAt(j)?(i+=N-i%N,j++):(i++,j=Qj(M,j));return i}function Kt(M,N,D,i){for(let i=0,j=0;;){if(j>=N)return i;if(i==M.length)break;j+=9==M.charCodeAt(i)?D-j%D:1,i=Qj(M,i)}return!0===i?-1:M.length}const MI="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),NI="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),DI="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class iI{constructor(M,N){this.rules=[];let{finish:D}=N||{};function i(M){return/^@/.test(M)?[M]:M.split(/,\s*/)}function j(M,N,t,I){let z=[],u=/^@(\w+)\b/.exec(M[0]),g=u&&"keyframes"==u[1];if(u&&null==N)return t.push(M[0]+";");for(let D in N){let I=N[D];if(/&/.test(D))j(D.split(/,\s*/).map((N=>M.map((M=>N.replace(/&/,M))))).reduce(((M,N)=>M.concat(N))),I,t);else if(I&&"object"==typeof I){if(!u)throw new RangeError("The value of a property ("+D+") should be a primitive value.");j(i(D),I,z,g)}else null!=I&&z.push(D.replace(/_.*/,"").replace(/[A-Z]/g,(M=>"-"+M.toLowerCase()))+": "+I+";")}(z.length||g)&&t.push((!D||u||I?M:M.map(D)).join(", ")+" {"+z.join(" ")+"}")}for(let N in M)j(i(N),M[N],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let M=DI[MI]||1;return DI[MI]=M+1,"ͼ"+M.toString(36)}static mount(M,N,D){let i=M[NI],j=D&&D.nonce;i?j&&i.setNonce(j):i=new tI(M,j),i.mount(Array.isArray(N)?N:[N],M)}}let jI=new Map;class tI{constructor(M,N){let D=M.ownerDocument||M,i=D.defaultView;if(!M.head&&M.adoptedStyleSheets&&i.CSSStyleSheet){let N=jI.get(D);if(N)return M[NI]=N;this.sheet=new i.CSSStyleSheet,jI.set(D,this)}else this.styleTag=D.createElement("style"),N&&this.styleTag.setAttribute("nonce",N);this.modules=[],M[NI]=this}mount(M,N){let D=this.sheet,i=0,j=0;for(let N=0;N<M.length;N++){let t=M[N],I=this.modules.indexOf(t);if(I<j&&I>-1&&(this.modules.splice(I,1),j--,I=-1),-1==I){if(this.modules.splice(j++,0,t),D)for(let M=0;M<t.rules.length;M++)D.insertRule(t.rules[M],i++)}else{for(;j<I;)i+=this.modules[j++].rules.length;i+=t.rules.length,j++}}if(D)N.adoptedStyleSheets.indexOf(this.sheet)<0&&(N.adoptedStyleSheets=[this.sheet,...N.adoptedStyleSheets]);else{let M="";for(let N=0;N<this.modules.length;N++)M+=this.modules[N].getRules()+"\n";this.styleTag.textContent=M;let D=N.head||N;this.styleTag.parentNode!=D&&D.insertBefore(this.styleTag,D.firstChild)}}setNonce(M){this.styleTag&&this.styleTag.getAttribute("nonce")!=M&&this.styleTag.setAttribute("nonce",M)}}for(var II={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},zI={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},uI="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),gI="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),eI=0;eI<10;eI++)II[48+eI]=II[96+eI]=String(eI);for(eI=1;eI<=24;eI++)II[eI+111]="F"+eI;for(eI=65;eI<=90;eI++)II[eI]=String.fromCharCode(eI+32),zI[eI]=String.fromCharCode(eI);for(var TI in II)zI.hasOwnProperty(TI)||(zI[TI]=II[TI]);function AI(M){let N;return N=11==M.nodeType?M.getSelection?M:M.ownerDocument:M,N.getSelection()}function sI(M,N){return!!N&&(M==N||M.contains(1!=N.nodeType?N.parentNode:N))}function LI(M,N){if(!N.anchorNode)return!1;try{return sI(M,N.anchorNode)}catch(M){return!1}}function OI(M){return 3==M.nodeType?dI(M,0,M.nodeValue.length).getClientRects():1==M.nodeType?M.getClientRects():[]}function yI(M,N,D,i){return!!D&&(lI(M,N,D,i,-1)||lI(M,N,D,i,1))}function cI(M){for(var N=0;;N++)if(!(M=M.previousSibling))return N}function nI(M){return 1==M.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(M.nodeName)}function lI(M,N,D,i,j){for(;;){if(M==D&&N==i)return!0;if(N==(j<0?0:oI(M))){if("DIV"==M.nodeName)return!1;let D=M.parentNode;if(!D||1!=D.nodeType)return!1;N=cI(M)+(j<0?0:1),M=D}else{if(1!=M.nodeType)return!1;if(1==(M=M.childNodes[N+(j<0?-1:0)]).nodeType&&"false"==M.contentEditable)return!1;N=j<0?oI(M):0}}}function oI(M){return 3==M.nodeType?M.nodeValue.length:M.childNodes.length}function rI(M,N){let D=N?M.left:M.right;return{left:D,right:D,top:M.top,bottom:M.bottom}}function xI(M){let N=M.visualViewport;return N?{left:0,right:N.width,top:0,bottom:N.height}:{left:0,right:M.innerWidth,top:0,bottom:M.innerHeight}}function aI(M,N){let D=N.width/M.offsetWidth,i=N.height/M.offsetHeight;return(D>.995&&D<1.005||!isFinite(D)||Math.abs(N.width-M.offsetWidth)<1)&&(D=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(N.height-M.offsetHeight)<1)&&(i=1),{scaleX:D,scaleY:i}}class QI{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(M){return this.anchorNode==M.anchorNode&&this.anchorOffset==M.anchorOffset&&this.focusNode==M.focusNode&&this.focusOffset==M.focusOffset}setRange(M){let{anchorNode:N,focusNode:D}=M;this.set(N,Math.min(M.anchorOffset,N?oI(N):0),D,Math.min(M.focusOffset,D?oI(D):0))}set(M,N,D,i){this.anchorNode=M,this.anchorOffset=N,this.focusNode=D,this.focusOffset=i}}let EI,SI=null;function hI(M){if(M.setActive)return M.setActive();if(SI)return M.focus(SI);let N=[];for(let D=M;D&&(N.push(D,D.scrollTop,D.scrollLeft),D!=D.ownerDocument);D=D.parentNode);if(M.focus(null==SI?{get preventScroll(){return SI={preventScroll:!0},!0}}:void 0),!SI){SI=!1;for(let M=0;M<N.length;){let D=N[M++],i=N[M++],j=N[M++];D.scrollTop!=i&&(D.scrollTop=i),D.scrollLeft!=j&&(D.scrollLeft=j)}}}function dI(M,N,D=N){let i=EI||(EI=document.createRange());return i.setEnd(M,D),i.setStart(M,N),i}function kI(M,N,D,i){let j={key:N,code:N,keyCode:D,which:D,cancelable:!0};i&&({altKey:j.altKey,ctrlKey:j.ctrlKey,shiftKey:j.shiftKey,metaKey:j.metaKey}=i);let t=new KeyboardEvent("keydown",j);t.synthetic=!0,M.dispatchEvent(t);let I=new KeyboardEvent("keyup",j);return I.synthetic=!0,M.dispatchEvent(I),t.defaultPrevented||I.defaultPrevented}function wI(M){for(;M.attributes.length;)M.removeAttributeNode(M.attributes[0])}function UI(M){return M.scrollTop>Math.max(1,M.scrollHeight-M.clientHeight-4)}function YI(M,N){for(let D=M,i=N;;){if(3==D.nodeType&&i>0)return{node:D,offset:i};if(1==D.nodeType&&i>0){if("false"==D.contentEditable)return null;D=D.childNodes[i-1],i=oI(D)}else{if(!D.parentNode||nI(D))return null;i=cI(D),D=D.parentNode}}}function CI(M,N){for(let D=M,i=N;;){if(3==D.nodeType&&i<D.nodeValue.length)return{node:D,offset:i};if(1==D.nodeType&&i<D.childNodes.length){if("false"==D.contentEditable)return null;D=D.childNodes[i],i=0}else{if(!D.parentNode||nI(D))return null;i=cI(D)+1,D=D.parentNode}}}class bI{constructor(M,N,D=!0){this.node=M,this.offset=N,this.precise=D}static before(M,N){return new bI(M.parentNode,cI(M),N)}static after(M,N){return new bI(M.parentNode,cI(M)+1,N)}}const pI=[];class mI{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(M){let N=this.posAtStart;for(let D of this.children){if(D==M)return N;N+=D.length+D.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(M){return this.posBefore(M)+M.length}sync(M,N){if(2&this.flags){let D,i=this.dom,j=null;for(let t of this.children){if(7&t.flags){if(!t.dom&&(D=j?j.nextSibling:i.firstChild)){let M=mI.get(D);(!M||!M.parent&&M.canReuseDOM(t))&&t.reuseDOM(D)}t.sync(M,N),t.flags&=-8}if(D=j?j.nextSibling:i.firstChild,N&&!N.written&&N.node==i&&D!=t.dom&&(N.written=!0),t.dom.parentNode==i)for(;D&&D!=t.dom;)D=ZI(D);else i.insertBefore(t.dom,D);j=t.dom}for(D=j?j.nextSibling:i.firstChild,D&&N&&N.node==i&&(N.written=!0);D;)D=ZI(D)}else if(1&this.flags)for(let D of this.children)7&D.flags&&(D.sync(M,N),D.flags&=-8)}reuseDOM(M){}localPosFromDOM(M,N){let D;if(M==this.dom)D=this.dom.childNodes[N];else{let i=0==oI(M)?0:0==N?-1:1;for(;;){let N=M.parentNode;if(N==this.dom)break;0==i&&N.firstChild!=N.lastChild&&(i=M==N.firstChild?-1:1),M=N}D=i<0?M:M.nextSibling}if(D==this.dom.firstChild)return 0;for(;D&&!mI.get(D);)D=D.nextSibling;if(!D)return this.length;for(let M=0,N=0;;M++){let i=this.children[M];if(i.dom==D)return N;N+=i.length+i.breakAfter}}domBoundsAround(M,N,D=0){let i=-1,j=-1,t=-1,I=-1;for(let z=0,u=D,g=D;z<this.children.length;z++){let D=this.children[z],e=u+D.length;if(u<M&&e>N)return D.domBoundsAround(M,N,u);if(e>=M&&-1==i&&(i=z,j=u),u>N&&D.dom.parentNode==this.dom){t=z,I=g;break}g=e,u=e+D.breakAfter}return{from:j,to:I<0?D+this.length:I,startDOM:(i?this.children[i-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:t<this.children.length&&t>=0?this.children[t].dom:null}}markDirty(M=!1){this.flags|=2,this.markParentsDirty(M)}markParentsDirty(M){for(let N=this.parent;N;N=N.parent){if(M&&(N.flags|=2),1&N.flags)return;N.flags|=1,M=!1}}setParent(M){this.parent!=M&&(this.parent=M,7&this.flags&&this.markParentsDirty(!0))}setDOM(M){this.dom!=M&&(this.dom&&(this.dom.cmView=null),this.dom=M,M.cmView=this)}get rootView(){for(let M=this;;){let N=M.parent;if(!N)return M;M=N}}replaceChildren(M,N,D=pI){this.markDirty();for(let i=M;i<N;i++){let M=this.children[i];M.parent==this&&D.indexOf(M)<0&&M.destroy()}this.children.splice(M,N-M,...D);for(let M=0;M<D.length;M++)D[M].setParent(this)}ignoreMutation(M){return!1}ignoreEvent(M){return!1}childCursor(M=this.length){return new fI(this.children,M,this.children.length)}childPos(M,N=1){return this.childCursor().findPos(M,N)}toString(){let M=this.constructor.name.replace("View","");return M+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==M?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(M){return M.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(M,N,D,i,j,t){return!1}become(M){return!1}canReuseDOM(M){return M.constructor==this.constructor&&!(8&(this.flags|M.flags))}getSide(){return 0}destroy(){for(let M of this.children)M.parent==this&&M.destroy();this.parent=null}}function ZI(M){let N=M.nextSibling;return M.parentNode.removeChild(M),N}mI.prototype.breakAfter=0;class fI{constructor(M,N,D){this.children=M,this.pos=N,this.i=D,this.off=0}findPos(M,N=1){for(;;){if(M>this.pos||M==this.pos&&(N>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=M-this.pos,this;let D=this.children[--this.i];this.pos-=D.length+D.breakAfter}}}function vI(M,N,D,i,j,t,I,z,u){let{children:g}=M,e=g.length?g[N]:null,T=t.length?t[t.length-1]:null,A=T?T.breakAfter:I;if(!(N==i&&e&&!I&&!A&&t.length<2&&e.merge(D,j,t.length?T:null,0==D,z,u))){if(i<g.length){let M=g[i];M&&(j<M.length||M.breakAfter&&(null==T?void 0:T.breakAfter))?(N==i&&(M=M.split(j),j=0),!A&&T&&M.merge(0,j,T,!0,0,u)?t[t.length-1]=M:((j||M.children.length&&!M.children[0].length)&&M.merge(0,j,null,!1,0,u),t.push(M))):(null==M?void 0:M.breakAfter)&&(T?T.breakAfter=1:I=1),i++}for(e&&(e.breakAfter=I,D>0&&(!I&&t.length&&e.merge(D,e.length,t[0],!1,z,0)?e.breakAfter=t.shift().breakAfter:(D<e.length||e.children.length&&0==e.children[e.children.length-1].length)&&e.merge(D,e.length,null,!1,z,0),N++));N<i&&t.length;)if(g[i-1].become(t[t.length-1]))i--,t.pop(),u=t.length?0:z;else{if(!g[N].become(t[0]))break;N++,t.shift(),z=t.length?0:u}!t.length&&N&&i<g.length&&!g[N-1].breakAfter&&g[i].merge(0,0,g[N-1],!1,z,u)&&N--,(N<i||t.length)&&M.replaceChildren(N,i,t)}}function WI(M,N,D,i,j,t){let I=M.childCursor(),{i:z,off:u}=I.findPos(D,1),{i:g,off:e}=I.findPos(N,-1),T=N-D;for(let M of i)T+=M.length;M.length+=T,vI(M,g,e,z,u,i,0,j,t)}let VI="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},GI="undefined"!=typeof document?document:{documentElement:{style:{}}};const PI=/Edge\/(\d+)/.exec(VI.userAgent),RI=/MSIE \d/.test(VI.userAgent),BI=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(VI.userAgent),JI=!!(RI||BI||PI),FI=!JI&&/gecko\/(\d+)/i.test(VI.userAgent),HI=!JI&&/Chrome\/(\d+)/.exec(VI.userAgent),XI="webkitFontSmoothing"in GI.documentElement.style,$I=!JI&&/Apple Computer/.test(VI.vendor),_I=$I&&(/Mobile\/\w+/.test(VI.userAgent)||VI.maxTouchPoints>2);var qI={mac:_I||/Mac/.test(VI.platform),windows:/Win/.test(VI.platform),linux:/Linux|X11/.test(VI.platform),ie:JI,ie_version:RI?GI.documentMode||6:BI?+BI[1]:PI?+PI[1]:0,gecko:FI,gecko_version:FI?+(/Firefox\/(\d+)/.exec(VI.userAgent)||[0,0])[1]:0,chrome:!!HI,chrome_version:HI?+HI[1]:0,ios:_I,android:/Android\b/.test(VI.userAgent),webkit:XI,safari:$I,webkit_version:XI?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=GI.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class KI extends mI{constructor(M){super(),this.text=M}get length(){return this.text.length}createDOM(M){this.setDOM(M||document.createTextNode(this.text))}sync(M,N){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(N&&N.node==this.dom&&(N.written=!0),this.dom.nodeValue=this.text)}reuseDOM(M){3==M.nodeType&&this.createDOM(M)}merge(M,N,D){return!(8&this.flags||D&&(!(D instanceof KI)||this.length-(N-M)+D.length>256||8&D.flags))&&(this.text=this.text.slice(0,M)+(D?D.text:"")+this.text.slice(N),this.markDirty(),!0)}split(M){let N=new KI(this.text.slice(M));return this.text=this.text.slice(0,M),this.markDirty(),N.flags|=8&this.flags,N}localPosFromDOM(M,N){return M==this.dom?N:N?this.text.length:0}domAtPos(M){return new bI(this.dom,M)}domBoundsAround(M,N,D){return{from:D,to:D+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(M,N){return function(M,N,D){let i=M.nodeValue.length;N>i&&(N=i);let j=N,t=N,I=0;0==N&&D<0||N==i&&D>=0?qI.chrome||qI.gecko||(N?(j--,I=1):t<i&&(t++,I=-1)):D<0?j--:t<i&&t++;let z=dI(M,j,t).getClientRects();if(!z.length)return null;let u=z[(I?I<0:D>=0)?0:z.length-1];qI.safari&&!I&&0==u.width&&(u=Array.prototype.find.call(z,(M=>M.width))||u);return I?rI(u,I<0):u||null}(this.dom,M,N)}}class Mz extends mI{constructor(M,N=[],D=0){super(),this.mark=M,this.children=N,this.length=D;for(let M of N)M.setParent(this)}setAttrs(M){if(wI(M),this.mark.class&&(M.className=this.mark.class),this.mark.attrs)for(let N in this.mark.attrs)M.setAttribute(N,this.mark.attrs[N]);return M}canReuseDOM(M){return super.canReuseDOM(M)&&!(8&(this.flags|M.flags))}reuseDOM(M){M.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(M),this.flags|=6)}sync(M,N){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(M,N)}merge(M,N,D,i,j,t){return(!D||!(!(D instanceof Mz&&D.mark.eq(this.mark))||M&&j<=0||N<this.length&&t<=0))&&(WI(this,M,N,D?D.children.slice():[],j-1,t-1),this.markDirty(),!0)}split(M){let N=[],D=0,i=-1,j=0;for(let t of this.children){let I=D+t.length;I>M&&N.push(D<M?t.split(M-D):t),i<0&&D>=M&&(i=j),D=I,j++}let t=this.length-M;return this.length=M,i>-1&&(this.children.length=i,this.markDirty()),new Mz(this.mark,N,t)}domAtPos(M){return iz(this,M)}coordsAt(M,N){return tz(this,M,N)}}class Nz extends mI{static create(M,N,D){return new Nz(M,N,D)}constructor(M,N,D){super(),this.widget=M,this.length=N,this.side=D,this.prevWidget=null}split(M){let N=Nz.create(this.widget,this.length-M,this.side);return this.length-=M,N}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(M,N,D,i,j,t){return!(D&&(!(D instanceof Nz&&this.widget.compare(D.widget))||M>0&&j<=0||N<this.length&&t<=0))&&(this.length=M+(D?D.length:0)+(this.length-N),!0)}become(M){return M instanceof Nz&&M.side==this.side&&this.widget.constructor==M.widget.constructor&&(this.widget.compare(M.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get overrideDOMText(){if(0==this.length)return ej.empty;let M=this;for(;M.parent;)M=M.parent;let{view:N}=M,D=N&&N.state.doc,i=this.posAtStart;return D?D.slice(i,i+this.length):ej.empty}domAtPos(M){return(this.length?0==M:this.side>0)?bI.before(this.dom):bI.after(this.dom,M==this.length)}domBoundsAround(){return null}coordsAt(M,N){let D=this.widget.coordsAt(this.dom,M,N);if(D)return D;let i=this.dom.getClientRects(),j=null;if(!i.length)return null;let t=this.side?this.side<0:M>0;for(let N=t?i.length-1:0;j=i[N],!(M>0?0==N:N==i.length-1||j.top<j.bottom);N+=t?-1:1);return rI(j,!t)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class Dz extends mI{constructor(M){super(),this.side=M}get length(){return 0}merge(){return!1}become(M){return M instanceof Dz&&M.side==this.side}split(){return new Dz(this.side)}sync(){if(!this.dom){let M=document.createElement("img");M.className="cm-widgetBuffer",M.setAttribute("aria-hidden","true"),this.setDOM(M)}}getSide(){return this.side}domAtPos(M){return this.side>0?bI.before(this.dom):bI.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(M){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ej.empty}get isHidden(){return!0}}function iz(M,N){let D=M.dom,{children:i}=M,j=0;for(let M=0;j<i.length;j++){let t=i[j],I=M+t.length;if(!(I==M&&t.getSide()<=0)){if(N>M&&N<I&&t.dom.parentNode==D)return t.domAtPos(N-M);if(N<=M)break;M=I}}for(let M=j;M>0;M--){let N=i[M-1];if(N.dom.parentNode==D)return N.domAtPos(N.length)}for(let M=j;M<i.length;M++){let N=i[M];if(N.dom.parentNode==D)return N.domAtPos(0)}return new bI(D,0)}function jz(M,N,D){let i,{children:j}=M;D>0&&N instanceof Mz&&j.length&&(i=j[j.length-1])instanceof Mz&&i.mark.eq(N.mark)?jz(i,N.children[0],D-1):(j.push(N),N.setParent(M)),M.length+=N.length}function tz(M,N,D){let i=null,j=-1,t=null,I=-1;!function M(N,z){for(let u=0,g=0;u<N.children.length&&g<=z;u++){let e=N.children[u],T=g+e.length;T>=z&&(e.children.length?M(e,z-g):(!t||t.isHidden&&D>0)&&(T>z||g==T&&e.getSide()>0)?(t=e,I=z-g):(g<z||g==T&&e.getSide()<0&&!e.isHidden)&&(i=e,j=z-g)),g=T}}(M,N);let z=(D<0?i:t)||i||t;return z?z.coordsAt(Math.max(0,z==i?j:I),D):function(M){let N=M.dom.lastChild;if(!N)return M.dom.getBoundingClientRect();let D=OI(N);return D[D.length-1]||null}(M)}function Iz(M,N){for(let D in M)"class"==D&&N.class?N.class+=" "+M.class:"style"==D&&N.style?N.style+=";"+M.style:N[D]=M[D];return N}KI.prototype.children=Nz.prototype.children=Dz.prototype.children=pI;const zz=Object.create(null);function uz(M,N,D){if(M==N)return!0;M||(M=zz),N||(N=zz);let i=Object.keys(M),j=Object.keys(N);if(i.length-(D&&i.indexOf(D)>-1?1:0)!=j.length-(D&&j.indexOf(D)>-1?1:0))return!1;for(let t of i)if(t!=D&&(-1==j.indexOf(t)||M[t]!==N[t]))return!1;return!0}function gz(M,N,D){let i=!1;if(N)for(let j in N)D&&j in D||(i=!0,"style"==j?M.style.cssText="":M.removeAttribute(j));if(D)for(let j in D)N&&N[j]==D[j]||(i=!0,"style"==j?M.style.cssText=D[j]:M.setAttribute(j,D[j]));return i}function ez(M){let N=Object.create(null);for(let D=0;D<M.attributes.length;D++){let i=M.attributes[D];N[i.name]=i.value}return N}class Tz extends mI{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(M,N,D,i,j,t){if(D){if(!(D instanceof Tz))return!1;this.dom||D.transferDOM(this)}return i&&this.setDeco(D?D.attrs:null),WI(this,M,N,D?D.children.slice():[],j,t),!0}split(M){let N=new Tz;if(N.breakAfter=this.breakAfter,0==this.length)return N;let{i:D,off:i}=this.childPos(M);i&&(N.append(this.children[D].split(i),0),this.children[D].merge(i,this.children[D].length,null,!1,0,0),D++);for(let M=D;M<this.children.length;M++)N.append(this.children[M],0);for(;D>0&&0==this.children[D-1].length;)this.children[--D].destroy();return this.children.length=D,this.markDirty(),this.length=M,N}transferDOM(M){this.dom&&(this.markDirty(),M.setDOM(this.dom),M.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(M){uz(this.attrs,M)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=M)}append(M,N){jz(this,M,N)}addLineDeco(M){let N=M.spec.attributes,D=M.spec.class;N&&(this.attrs=Iz(N,this.attrs||{})),D&&(this.attrs=Iz({class:D},this.attrs||{}))}domAtPos(M){return iz(this,M)}reuseDOM(M){"DIV"==M.nodeName&&(this.setDOM(M),this.flags|=6)}sync(M,N){var D;this.dom?4&this.flags&&(wI(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),void 0!==this.prevAttrs&&(gz(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(M,N);let i=this.dom.lastChild;for(;i&&mI.get(i)instanceof Mz;)i=i.lastChild;if(!(i&&this.length&&("BR"==i.nodeName||0!=(null===(D=mI.get(i))||void 0===D?void 0:D.isEditable)||qI.ios&&this.children.some((M=>M instanceof KI))))){let M=document.createElement("BR");M.cmIgnore=!0,this.dom.appendChild(M)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let M,N=0;for(let D of this.children){if(!(D instanceof KI)||/[^ -~]/.test(D.text))return null;let i=OI(D.dom);if(1!=i.length)return null;N+=i[0].width,M=i[0].height}return N?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:N/this.length,textHeight:M}:null}coordsAt(M,N){let D=tz(this,M,N);if(!this.children.length&&D&&this.parent){let{heightOracle:M}=this.parent.view.viewState,N=D.bottom-D.top;if(Math.abs(N-M.lineHeight)<2&&M.textHeight<N){let i=(N-M.textHeight)/2;return{top:D.top+i,bottom:D.bottom-i,left:D.left,right:D.left}}}return D}become(M){return!1}covers(){return!0}static find(M,N){for(let D=0,i=0;D<M.children.length;D++){let j=M.children[D],t=i+j.length;if(t>=N){if(j instanceof Tz)return j;if(t>N)break}i=t+j.breakAfter}return null}}class Az extends mI{constructor(M,N,D){super(),this.widget=M,this.length=N,this.deco=D,this.breakAfter=0,this.prevWidget=null}merge(M,N,D,i,j,t){return!(D&&(!(D instanceof Az&&this.widget.compare(D.widget))||M>0&&j<=0||N<this.length&&t<=0))&&(this.length=M+(D?D.length:0)+(this.length-N),!0)}domAtPos(M){return 0==M?bI.before(this.dom):bI.after(this.dom,M==this.length)}split(M){let N=this.length-M;this.length=M;let D=new Az(this.widget,N,this.deco);return D.breakAfter=this.breakAfter,D}get children(){return pI}sync(M){this.dom&&this.widget.updateDOM(this.dom,M)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(M)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):ej.empty}domBoundsAround(){return null}become(M){return M instanceof Az&&M.widget.constructor==this.widget.constructor&&(M.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=M.widget,this.length=M.length,this.deco=M.deco,this.breakAfter=M.breakAfter,!0)}ignoreMutation(){return!0}ignoreEvent(M){return this.widget.ignoreEvent(M)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(M,N){return this.widget.coordsAt(this.dom,M,N)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(M){let{startSide:N,endSide:D}=this.deco;return N!=D&&(M<0?N<0:D>0)}}class sz{eq(M){return!1}updateDOM(M,N){return!1}compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(M){return!0}coordsAt(M,N,D){return null}get isHidden(){return!1}get editable(){return!1}destroy(M){}}var Lz=function(M){return M[M.Text=0]="Text",M[M.WidgetBefore=1]="WidgetBefore",M[M.WidgetAfter=2]="WidgetAfter",M[M.WidgetRange=3]="WidgetRange",M}(Lz||(Lz={}));class Oz extends mt{constructor(M,N,D,i){super(),this.startSide=M,this.endSide=N,this.widget=D,this.spec=i}get heightRelevant(){return!1}static mark(M){return new yz(M)}static widget(M){let N=Math.max(-1e4,Math.min(1e4,M.side||0)),D=!!M.block;return N+=D&&!M.inlineOrder?N>0?3e8:-4e8:N>0?1e8:-1e8,new nz(M,N,N,D,M.widget||null,!1)}static replace(M){let N,D,i=!!M.block;if(M.isBlockGap)N=-5e8,D=4e8;else{let{start:j,end:t}=lz(M,i);N=(j?i?-3e8:-1:5e8)-1,D=1+(t?i?2e8:1:-6e8)}return new nz(M,N,D,i,M.widget||null,!0)}static line(M){return new cz(M)}static set(M,N=!1){return Wt.of(M,N)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Oz.none=Wt.empty;class yz extends Oz{constructor(M){let{start:N,end:D}=lz(M);super(N?-1:5e8,D?1:-6e8,null,M),this.tagName=M.tagName||"span",this.class=M.class||"",this.attrs=M.attributes||null}eq(M){var N,D;return this==M||M instanceof yz&&this.tagName==M.tagName&&(this.class||(null===(N=this.attrs)||void 0===N?void 0:N.class))==(M.class||(null===(D=M.attrs)||void 0===D?void 0:D.class))&&uz(this.attrs,M.attrs,"class")}range(M,N=M){if(M>=N)throw new RangeError("Mark decorations may not be empty");return super.range(M,N)}}yz.prototype.point=!1;class cz extends Oz{constructor(M){super(-2e8,-2e8,null,M)}eq(M){return M instanceof cz&&this.spec.class==M.spec.class&&uz(this.spec.attributes,M.spec.attributes)}range(M,N=M){if(N!=M)throw new RangeError("Line decoration ranges must be zero-length");return super.range(M,N)}}cz.prototype.mapMode=Cj.TrackBefore,cz.prototype.point=!0;class nz extends Oz{constructor(M,N,D,i,j,t){super(N,D,j,M),this.block=i,this.isReplace=t,this.mapMode=i?N<=0?Cj.TrackBefore:Cj.TrackAfter:Cj.TrackDel}get type(){return this.startSide!=this.endSide?Lz.WidgetRange:this.startSide<=0?Lz.WidgetBefore:Lz.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(M){return M instanceof nz&&function(M,N){return M==N||!!(M&&N&&M.compare(N))}(this.widget,M.widget)&&this.block==M.block&&this.startSide==M.startSide&&this.endSide==M.endSide}range(M,N=M){if(this.isReplace&&(M>N||M==N&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&N!=M)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(M,N)}}function lz(M,N=!1){let{inclusiveStart:D,inclusiveEnd:i}=M;return null==D&&(D=M.inclusive),null==i&&(i=M.inclusive),{start:null!=D?D:N,end:null!=i?i:N}}function oz(M,N,D,i=0){let j=D.length-1;j>=0&&D[j]+i>=M?D[j]=Math.max(D[j],N):D.push(M,N)}nz.prototype.point=!0;class rz{constructor(M,N,D,i){this.doc=M,this.pos=N,this.end=D,this.disallowBlockEffectsFor=i,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=M.iter(),this.skip=N}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let M=this.content[this.content.length-1];return!(M.breakAfter||M instanceof Az&&M.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Tz),this.atCursorPos=!0),this.curLine}flushBuffer(M=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(xz(new Dz(-1),M),M.length),this.pendingBuffer=0)}addBlockWidget(M){this.flushBuffer(),this.curLine=null,this.content.push(M)}finish(M){this.pendingBuffer&&M<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||M&&this.content.length&&this.content[this.content.length-1]instanceof Az||this.getLine()}buildText(M,N,D){for(;M>0;){if(this.textOff==this.text.length){let{value:N,lineBreak:D,done:i}=this.cursor.next(this.skip);if(this.skip=0,i)throw new Error("Ran out of text content when drawing inline views");if(D){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,M--;continue}this.text=N,this.textOff=0}let i=Math.min(this.text.length-this.textOff,M,512);this.flushBuffer(N.slice(N.length-D)),this.getLine().append(xz(new KI(this.text.slice(this.textOff,this.textOff+i)),N),D),this.atCursorPos=!0,this.textOff+=i,M-=i,D=0}}span(M,N,D,i){this.buildText(N-M,D,i),this.pos=N,this.openStart<0&&(this.openStart=i)}point(M,N,D,i,j,t){if(this.disallowBlockEffectsFor[t]&&D instanceof nz){if(D.block)throw new RangeError("Block decorations may not be specified via plugins");if(N>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let I=N-M;if(D instanceof nz)if(D.block)D.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Az(D.widget||az.block,I,D));else{let t=Nz.create(D.widget||az.inline,I,I?0:D.startSide),z=this.atCursorPos&&!t.isEditable&&j<=i.length&&(M<N||D.startSide>0),u=!t.isEditable&&(M<N||j>i.length||D.startSide<=0),g=this.getLine();2!=this.pendingBuffer||z||t.isEditable||(this.pendingBuffer=0),this.flushBuffer(i),z&&(g.append(xz(new Dz(1),i),j),j=i.length+Math.max(0,j-i.length)),g.append(xz(t,i),j),this.atCursorPos=u,this.pendingBuffer=u?M<N||j>i.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=i.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(D);I&&(this.textOff+I<=this.text.length?this.textOff+=I:(this.skip+=I-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=N),this.openStart<0&&(this.openStart=j)}static build(M,N,D,i,j){let t=new rz(M,N,D,j);return t.openEnd=Wt.spans(i,N,D,t),t.openStart<0&&(t.openStart=t.openEnd),t.finish(t.openEnd),t}}function xz(M,N){for(let D of N)M=new Mz(D,[M],M.length);return M}class az extends sz{constructor(M){super(),this.tag=M}eq(M){return M.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(M){return M.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}az.inline=new az("span"),az.block=new az("div");var Qz=function(M){return M[M.LTR=0]="LTR",M[M.RTL=1]="RTL",M}(Qz||(Qz={}));const Ez=Qz.LTR,Sz=Qz.RTL;function hz(M){let N=[];for(let D=0;D<M.length;D++)N.push(1<<+M[D]);return N}const dz=hz("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),kz=hz("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),wz=Object.create(null),Uz=[];for(let M of["()","[]","{}"]){let N=M.charCodeAt(0),D=M.charCodeAt(1);wz[N]=D,wz[D]=-N}function Yz(M){return M<=247?dz[M]:1424<=M&&M<=1524?2:1536<=M&&M<=1785?kz[M-1536]:1774<=M&&M<=2220?4:8192<=M&&M<=8204?256:64336<=M&&M<=65023?4:1}const Cz=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class bz{get dir(){return this.level%2?Sz:Ez}constructor(M,N,D){this.from=M,this.to=N,this.level=D}side(M,N){return this.dir==N==M?this.to:this.from}forward(M,N){return M==(this.dir==N)}static find(M,N,D,i){let j=-1;for(let t=0;t<M.length;t++){let I=M[t];if(I.from<=N&&I.to>=N){if(I.level==D)return t;(j<0||(0!=i?i<0?I.from<N:I.to>N:M[j].level>I.level))&&(j=t)}}if(j<0)throw new RangeError("Index out of range");return j}}function pz(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++){let i=M[D],j=N[D];if(i.from!=j.from||i.to!=j.to||i.direction!=j.direction||!pz(i.inner,j.inner))return!1}return!0}const mz=[];function Zz(M,N,D,i,j,t,I){let z=i%2?2:1;if(i%2==j%2)for(let u=N,g=0;u<D;){let N=!0,e=!1;if(g==t.length||u<t[g].from){let M=mz[u];M!=z&&(N=!1,e=16==M)}let T=N||1!=z?null:[],A=N?i:i+1,s=u;M:for(;;)if(g<t.length&&s==t[g].from){if(e)break M;let L=t[g];if(!N)for(let M=L.to,N=g+1;;){if(M==D)break M;if(!(N<t.length&&t[N].from==M)){if(mz[M]==z)break M;break}M=t[N++].to}if(g++,T)T.push(L);else{L.from>u&&I.push(new bz(u,L.from,A)),fz(M,L.direction==Ez!=!(A%2)?i+1:i,j,L.inner,L.from,L.to,I),u=L.to}s=L.to}else{if(s==D||(N?mz[s]!=z:mz[s]==z))break;s++}T?Zz(M,u,s,i+1,j,T,I):u<s&&I.push(new bz(u,s,A)),u=s}else for(let u=D,g=t.length;u>N;){let D=!0,e=!1;if(!g||u>t[g-1].to){let M=mz[u-1];M!=z&&(D=!1,e=16==M)}let T=D||1!=z?null:[],A=D?i:i+1,s=u;M:for(;;)if(g&&s==t[g-1].to){if(e)break M;let L=t[--g];if(!D)for(let M=L.from,D=g;;){if(M==N)break M;if(!D||t[D-1].to!=M){if(mz[M-1]==z)break M;break}M=t[--D].from}if(T)T.push(L);else{L.to<u&&I.push(new bz(L.to,u,A)),fz(M,L.direction==Ez!=!(A%2)?i+1:i,j,L.inner,L.from,L.to,I),u=L.from}s=L.from}else{if(s==N||(D?mz[s-1]!=z:mz[s-1]==z))break;s--}T?Zz(M,s,u,i+1,j,T,I):s<u&&I.push(new bz(s,u,A)),u=s}}function fz(M,N,D,i,j,t,I){let z=N%2?2:1;!function(M,N,D,i,j){for(let t=0;t<=i.length;t++){let I=t?i[t-1].to:N,z=t<i.length?i[t].from:D,u=t?256:j;for(let N=I,D=u,i=u;N<z;N++){let j=Yz(M.charCodeAt(N));512==j?j=D:8==j&&4==i&&(j=16),mz[N]=4==j?2:j,7&j&&(i=j),D=j}for(let M=I,N=u,i=u;M<z;M++){let j=mz[M];if(128==j)M<z-1&&N==mz[M+1]&&24&N?j=mz[M]=N:mz[M]=256;else if(64==j){let j=M+1;for(;j<z&&64==mz[j];)j++;let t=M&&8==N||j<D&&8==mz[j]?1==i?1:8:256;for(let N=M;N<j;N++)mz[N]=t;M=j-1}else 8==j&&1==i&&(mz[M]=1);N=j,7&j&&(i=j)}}}(M,j,t,i,z),function(M,N,D,i,j){let t=1==j?2:1;for(let I=0,z=0,u=0;I<=i.length;I++){let g=I?i[I-1].to:N,e=I<i.length?i[I].from:D;for(let N,D,i,I=g;I<e;I++)if(D=wz[N=M.charCodeAt(I)])if(D<0){for(let M=z-3;M>=0;M-=3)if(Uz[M+1]==-D){let N=Uz[M+2],D=2&N?j:4&N?1&N?t:j:0;D&&(mz[I]=mz[Uz[M]]=D),z=M;break}}else{if(189==Uz.length)break;Uz[z++]=I,Uz[z++]=N,Uz[z++]=u}else if(2==(i=mz[I])||1==i){let M=i==j;u=M?0:1;for(let N=z-3;N>=0;N-=3){let D=Uz[N+2];if(2&D)break;if(M)Uz[N+2]|=2;else{if(4&D)break;Uz[N+2]|=4}}}}}(M,j,t,i,z),function(M,N,D,i){for(let j=0,t=i;j<=D.length;j++){let I=j?D[j-1].to:M,z=j<D.length?D[j].from:N;for(let u=I;u<z;){let I=mz[u];if(256==I){let I=u+1;for(;;)if(I==z){if(j==D.length)break;I=D[j++].to,z=j<D.length?D[j].from:N}else{if(256!=mz[I])break;I++}let g=1==t,e=g==(1==(I<N?mz[I]:i))?g?1:2:i;for(let N=I,i=j,t=i?D[i-1].to:M;N>u;)N==t&&(N=D[--i].from,t=i?D[i-1].to:M),mz[--N]=e;u=I}else t=I,u++}}}(j,t,i,z),Zz(M,j,t,N,D,i,I)}function vz(M){return[new bz(0,M,0)]}let Wz="";function Vz(M,N,D,i,j){var t;let I=i.head-M.from,z=bz.find(N,I,null!==(t=i.bidiLevel)&&void 0!==t?t:-1,i.assoc),u=N[z],g=u.side(j,D);if(I==g){let M=z+=j?1:-1;if(M<0||M>=N.length)return null;u=N[z=M],I=u.side(!j,D),g=u.side(j,D)}let e=Qj(M.text,I,u.forward(j,D));(e<u.from||e>u.to)&&(e=g),Wz=M.text.slice(Math.min(I,e),Math.max(I,e));let T=z==(j?N.length-1:0)?null:N[z+(j?1:-1)];return T&&e==g&&T.level+(j?0:1)<u.level?Pj.cursor(T.side(!j,D)+M.from,T.forward(j,D)?1:-1,T.level):Pj.cursor(e+M.from,u.forward(j,D)?-1:1,u.level)}function Gz(M,N,D){for(let i=N;i<D;i++){let N=Yz(M.charCodeAt(i));if(1==N)return Ez;if(2==N||4==N)return Sz}return Ez}const Pz=Jj.define(),Rz=Jj.define(),Bz=Jj.define(),Jz=Jj.define(),Fz=Jj.define(),Hz=Jj.define(),Xz=Jj.define(),$z=Jj.define({combine:M=>M.some((M=>M))}),_z=Jj.define({combine:M=>M.some((M=>M))}),qz=Jj.define();class Kz{constructor(M,N="nearest",D="nearest",i=5,j=5,t=!1){this.range=M,this.y=N,this.x=D,this.yMargin=i,this.xMargin=j,this.isSnapshot=t}map(M){return M.empty?this:new Kz(this.range.map(M),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(M){return this.range.to<=M.doc.length?this:new Kz(Pj.cursor(M.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Mu=xt.define({map:(M,N)=>M.map(N)});function Nu(M,N,D){let i=M.facet(Jz);i.length?i[0](N):window.onerror?window.onerror(String(N),D,void 0,void 0,N):D?console.error(D+":",N):console.error(N)}const Du=Jj.define({combine:M=>!M.length||M[0]});let iu=0;const ju=Jj.define();class tu{constructor(M,N,D,i,j){this.id=M,this.create=N,this.domEventHandlers=D,this.domEventObservers=i,this.extension=j(this)}static define(M,N){const{eventHandlers:D,eventObservers:i,provide:j,decorations:t}=N||{};return new tu(iu++,M,D,i,(M=>{let N=[ju.of(M)];return t&&N.push(gu.of((N=>{let D=N.plugin(M);return D?t(D):Oz.none}))),j&&N.push(j(M)),N}))}static fromClass(M,N){return tu.define((N=>new M(N)),N)}}class Iu{constructor(M){this.spec=M,this.mustUpdate=null,this.value=null}update(M){if(this.value){if(this.mustUpdate){let M=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(M)}catch(N){if(Nu(M.state,N,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(M){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(M)}catch(N){Nu(M.state,N,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(M){var N;if(null===(N=this.value)||void 0===N?void 0:N.destroy)try{this.value.destroy()}catch(N){Nu(M.state,N,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const zu=Jj.define(),uu=Jj.define(),gu=Jj.define(),eu=Jj.define(),Tu=Jj.define(),Au=Jj.define();function su(M,N){let D=M.state.facet(Au);if(!D.length)return D;let i=D.map((N=>N instanceof Function?N(M):N)),j=[];return Wt.spans(i,N.from,N.to,{point(){},span(M,D,i,t){let I=M-N.from,z=D-N.from,u=j;for(let M=i.length-1;M>=0;M--,t--){let D,j=i[M].spec.bidiIsolate;if(null==j&&(j=Gz(N.text,I,z)),t>0&&u.length&&(D=u[u.length-1]).to==I&&D.direction==j)D.to=z,u=D.inner;else{let M={from:I,to:z,direction:j,inner:[]};u.push(M),u=M.inner}}}}),j}const Lu=Jj.define();function Ou(M){let N=0,D=0,i=0,j=0;for(let t of M.state.facet(Lu)){let I=t(M);I&&(null!=I.left&&(N=Math.max(N,I.left)),null!=I.right&&(D=Math.max(D,I.right)),null!=I.top&&(i=Math.max(i,I.top)),null!=I.bottom&&(j=Math.max(j,I.bottom)))}return{left:N,right:D,top:i,bottom:j}}const yu=Jj.define();class cu{constructor(M,N,D,i){this.fromA=M,this.toA=N,this.fromB=D,this.toB=i}join(M){return new cu(Math.min(this.fromA,M.fromA),Math.max(this.toA,M.toA),Math.min(this.fromB,M.fromB),Math.max(this.toB,M.toB))}addToSet(M){let N=M.length,D=this;for(;N>0;N--){let i=M[N-1];if(!(i.fromA>D.toA)){if(i.toA<D.fromA)break;D=D.join(i),M.splice(N-1,1)}}return M.splice(N,0,D),M}static extendWithRanges(M,N){if(0==N.length)return M;let D=[];for(let i=0,j=0,t=0,I=0;;i++){let z=i==M.length?null:M[i],u=t-I,g=z?z.fromB:1e9;for(;j<N.length&&N[j]<g;){let M=N[j],i=N[j+1],t=Math.max(I,M),z=Math.min(g,i);if(t<=z&&new cu(t+u,z+u,t,z).addToSet(D),i>g)break;j+=2}if(!z)return D;new cu(z.fromA,z.toA,z.fromB,z.toB).addToSet(D),t=z.toA,I=z.toB}}}class nu{constructor(M,N,D){this.view=M,this.state=N,this.transactions=D,this.flags=0,this.startState=M.state,this.changes=pj.empty(this.startState.doc.length);for(let M of D)this.changes=this.changes.compose(M.changes);let i=[];this.changes.iterChangedRanges(((M,N,D,j)=>i.push(new cu(M,N,D,j)))),this.changedRanges=i}static create(M,N,D){return new nu(M,N,D)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((M=>M.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class lu extends mI{get length(){return this.view.state.doc.length}constructor(M){super(),this.view=M,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(M.contentDOM),this.children=[new Tz],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new cu(0,0,0,M.state.doc.length)],0,null)}update(M){var N;let D=M.changedRanges;this.minWidth>0&&D.length&&(D.every((({fromA:M,toA:N})=>N<this.minWidthFrom||M>this.minWidthTo))?(this.minWidthFrom=M.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=M.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let i=-1;this.view.inputState.composing>=0&&((null===(N=this.domChanged)||void 0===N?void 0:N.newSel)?i=this.domChanged.newSel.head:function(M,N){let D=!1;N&&M.iterChangedRanges(((M,i)=>{M<N.to&&i>N.from&&(D=!0)}));return D}(M.changes,this.hasComposition)||M.selectionSet||(i=M.state.selection.main.head));let j=i>-1?function(M,N,D){let i=ru(M,D);if(!i)return null;let{node:j,from:t,to:I}=i,z=j.nodeValue;if(/[\n\r]/.test(z))return null;if(M.state.doc.sliceString(i.from,i.to)!=z)return null;let u=N.invertedDesc,g=new cu(u.mapPos(t),u.mapPos(I),t,I),e=[];for(let N=j.parentNode;;N=N.parentNode){let D=mI.get(N);if(D instanceof Mz)e.push({node:N,deco:D.mark});else{if(D instanceof Tz||"DIV"==N.nodeName&&N.parentNode==M.contentDOM)return{range:g,text:j,marks:e,line:N};if(N==M.contentDOM)return null;e.push({node:N,deco:new yz({inclusive:!0,attributes:ez(N),tagName:N.tagName.toLowerCase()})})}}}(this.view,M.changes,i):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:N,to:i}=this.hasComposition;D=new cu(N,i,M.changes.mapPos(N,-1),M.changes.mapPos(i,1)).addToSet(D.slice())}this.hasComposition=j?{from:j.range.fromB,to:j.range.toB}:null,(qI.ie||qI.chrome)&&!j&&M&&M.state.doc.lines!=M.startState.doc.lines&&(this.forceSelection=!0);let t=function(M,N,D){let i=new xu;return Wt.compare(M,N,D,i),i.changes}(this.decorations,this.updateDeco(),M.changes);return D=cu.extendWithRanges(D,t),!!(7&this.flags||0!=D.length)&&(this.updateInner(D,M.startState.doc.length,j),M.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(M,N,D){this.view.viewState.mustMeasureContent=!0,this.updateChildren(M,N,D);let{observer:i}=this.view;i.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let M=qI.chrome||qI.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,M),this.flags&=-8,M&&(M.written||i.selectionRange.focusNode!=M.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((M=>M.flags&=-9));let j=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let M of this.children)M instanceof Az&&M.widget instanceof ou&&j.push(M.dom);i.updateGaps(j)}updateChildren(M,N,D){let i=D?D.range.addToSet(M.slice()):M,j=this.childCursor(N);for(let M=i.length-1;;M--){let N=M>=0?i[M]:null;if(!N)break;let t,I,z,u,{fromA:g,toA:e,fromB:T,toB:A}=N;if(D&&D.range.fromB<A&&D.range.toB>T){let M=rz.build(this.view.state.doc,T,D.range.fromB,this.decorations,this.dynamicDecorationMap),N=rz.build(this.view.state.doc,D.range.toB,A,this.decorations,this.dynamicDecorationMap);I=M.breakAtStart,z=M.openStart,u=N.openEnd;let i=this.compositionView(D);N.breakAtStart?i.breakAfter=1:N.content.length&&i.merge(i.length,i.length,N.content[0],!1,N.openStart,0)&&(i.breakAfter=N.content[0].breakAfter,N.content.shift()),M.content.length&&i.merge(0,0,M.content[M.content.length-1],!0,0,M.openEnd)&&M.content.pop(),t=M.content.concat(i).concat(N.content)}else({content:t,breakAtStart:I,openStart:z,openEnd:u}=rz.build(this.view.state.doc,T,A,this.decorations,this.dynamicDecorationMap));let{i:s,off:L}=j.findPos(e,1),{i:O,off:y}=j.findPos(g,-1);vI(this,O,y,s,L,t,I,z,u)}D&&this.fixCompositionDOM(D)}compositionView(M){let N=new KI(M.text.nodeValue);N.flags|=8;for(let{deco:D}of M.marks)N=new Mz(D,[N],N.length);let D=new Tz;return D.append(N,0),D}fixCompositionDOM(M){let N=(M,N)=>{N.flags|=8|(N.children.some((M=>7&M.flags))?1:0),this.markedForComposition.add(N);let D=mI.get(M);D&&D!=N&&(D.dom=null),N.setDOM(M)},D=this.childPos(M.range.fromB,1),i=this.children[D.i];N(M.line,i);for(let j=M.marks.length-1;j>=-1;j--)D=i.childPos(D.off,1),i=i.children[D.i],N(j>=0?M.marks[j].node:M.text,i)}updateSelection(M=!1,N=!1){!M&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let D=this.view.root.activeElement,i=D==this.dom,j=!i&&LI(this.dom,this.view.observer.selectionRange)&&!(D&&this.dom.contains(D));if(!(i||N||j))return;let t=this.forceSelection;this.forceSelection=!1;let I=this.view.state.selection.main,z=this.moveToLine(this.domAtPos(I.anchor)),u=I.empty?z:this.moveToLine(this.domAtPos(I.head));if(qI.gecko&&I.empty&&!this.hasComposition&&(1==(g=z).node.nodeType&&g.node.firstChild&&(0==g.offset||"false"==g.node.childNodes[g.offset-1].contentEditable)&&(g.offset==g.node.childNodes.length||"false"==g.node.childNodes[g.offset].contentEditable))){let M=document.createTextNode("");this.view.observer.ignore((()=>z.node.insertBefore(M,z.node.childNodes[z.offset]||null))),z=u=new bI(M,0),t=!0}var g;let e=this.view.observer.selectionRange;!t&&e.focusNode&&(yI(z.node,z.offset,e.anchorNode,e.anchorOffset)&&yI(u.node,u.offset,e.focusNode,e.focusOffset)||this.suppressWidgetCursorChange(e,I))||(this.view.observer.ignore((()=>{qI.android&&qI.chrome&&this.dom.contains(e.focusNode)&&function(M,N){for(let D=M;D&&D!=N;D=D.assignedSlot||D.parentNode)if(1==D.nodeType&&"false"==D.contentEditable)return!0;return!1}(e.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let M=AI(this.view.root);if(M)if(I.empty){if(qI.gecko){let M=function(M,N){return 1!=M.nodeType?0:(N&&"false"==M.childNodes[N-1].contentEditable?1:0)|(N<M.childNodes.length&&"false"==M.childNodes[N].contentEditable?2:0)}(z.node,z.offset);if(M&&3!=M){let N=(1==M?YI:CI)(z.node,z.offset);N&&(z=new bI(N.node,N.offset))}}M.collapse(z.node,z.offset),null!=I.bidiLevel&&void 0!==M.caretBidiLevel&&(M.caretBidiLevel=I.bidiLevel)}else if(M.extend){M.collapse(z.node,z.offset);try{M.extend(u.node,u.offset)}catch(M){}}else{let N=document.createRange();I.anchor>I.head&&([z,u]=[u,z]),N.setEnd(u.node,u.offset),N.setStart(z.node,z.offset),M.removeAllRanges(),M.addRange(N)}else;j&&this.view.root.activeElement==this.dom&&(this.dom.blur(),D&&D.focus())})),this.view.observer.setSelectionRange(z,u)),this.impreciseAnchor=z.precise?null:new bI(e.anchorNode,e.anchorOffset),this.impreciseHead=u.precise?null:new bI(e.focusNode,e.focusOffset)}suppressWidgetCursorChange(M,N){return this.hasComposition&&N.empty&&yI(M.focusNode,M.focusOffset,M.anchorNode,M.anchorOffset)&&this.posFromDOM(M.focusNode,M.focusOffset)==N.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:M}=this,N=M.state.selection.main,D=AI(M.root),{anchorNode:i,anchorOffset:j}=M.observer.selectionRange;if(!(D&&N.empty&&N.assoc&&D.modify))return;let t=Tz.find(this,N.head);if(!t)return;let I=t.posAtStart;if(N.head==I||N.head==I+t.length)return;let z=this.coordsAt(N.head,-1),u=this.coordsAt(N.head,1);if(!z||!u||z.bottom>u.top)return;let g=this.domAtPos(N.head+N.assoc);D.collapse(g.node,g.offset),D.modify("move",N.assoc<0?"forward":"backward","lineboundary"),M.observer.readSelectionRange();let e=M.observer.selectionRange;M.docView.posFromDOM(e.anchorNode,e.anchorOffset)!=N.from&&D.collapse(i,j)}moveToLine(M){let N,D=this.dom;if(M.node!=D)return M;for(let i=M.offset;!N&&i<D.childNodes.length;i++){let M=mI.get(D.childNodes[i]);M instanceof Tz&&(N=M.domAtPos(0))}for(let i=M.offset-1;!N&&i>=0;i--){let M=mI.get(D.childNodes[i]);M instanceof Tz&&(N=M.domAtPos(M.length))}return N?new bI(N.node,N.offset,!0):M}nearest(M){for(let N=M;N;){let M=mI.get(N);if(M&&M.rootView==this)return M;N=N.parentNode}return null}posFromDOM(M,N){let D=this.nearest(M);if(!D)throw new RangeError("Trying to find position for a DOM position outside of the document");return D.localPosFromDOM(M,N)+D.posAtStart}domAtPos(M){let{i:N,off:D}=this.childCursor().findPos(M,-1);for(;N<this.children.length-1;){let M=this.children[N];if(D<M.length||M instanceof Tz)break;N++,D=0}return this.children[N].domAtPos(D)}coordsAt(M,N){let D=null,i=0;for(let j=this.length,t=this.children.length-1;t>=0;t--){let I=this.children[t],z=j-I.breakAfter,u=z-I.length;if(z<M)break;u<=M&&(u<M||I.covers(-1))&&(z>M||I.covers(1))&&(!D||I instanceof Tz&&!(D instanceof Tz&&N>=0))&&(D=I,i=u),j=u}return D?D.coordsAt(M-i,N):null}coordsForChar(M){let{i:N,off:D}=this.childPos(M,1),i=this.children[N];if(!(i instanceof Tz))return null;for(;i.children.length;){let{i:M,off:N}=i.childPos(D,1);for(;;M++){if(M==i.children.length)return null;if((i=i.children[M]).length)break}D=N}if(!(i instanceof KI))return null;let j=Qj(i.text,D);if(j==D)return null;let t=dI(i.dom,D,j).getClientRects();for(let M=0;M<t.length;M++){let N=t[M];if(M==t.length-1||N.top<N.bottom&&N.left<N.right)return N}return null}measureVisibleLineHeights(M){let N=[],{from:D,to:i}=M,j=this.view.contentDOM.clientWidth,t=j>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,I=-1,z=this.view.textDirection==Qz.LTR;for(let M=0,u=0;u<this.children.length;u++){let g=this.children[u],e=M+g.length;if(e>i)break;if(M>=D){let D=g.dom.getBoundingClientRect();if(N.push(D.height),t){let N=g.dom.lastChild,i=N?OI(N):[];if(i.length){let N=i[i.length-1],t=z?N.right-D.left:D.right-N.left;t>I&&(I=t,this.minWidth=j,this.minWidthFrom=M,this.minWidthTo=e)}}}M=e+g.breakAfter}return N}textDirectionAt(M){let{i:N}=this.childPos(M,1);return"rtl"==getComputedStyle(this.children[N].dom).direction?Qz.RTL:Qz.LTR}measureTextSize(){for(let M of this.children)if(M instanceof Tz){let N=M.measureTextSize();if(N)return N}let M,N,D,i=document.createElement("div");return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(i);let j=OI(i.firstChild)[0];M=i.getBoundingClientRect().height,N=j?j.width/27:7,D=j?j.height:M,i.remove()})),{lineHeight:M,charWidth:N,textHeight:D}}childCursor(M=this.length){let N=this.children.length;return N&&(M-=this.children[--N].length),new fI(this.children,M,N)}computeBlockGapDeco(){let M=[],N=this.view.viewState;for(let D=0,i=0;;i++){let j=i==N.viewports.length?null:N.viewports[i],t=j?j.from-1:this.length;if(t>D){let i=(N.lineBlockAt(t).bottom-N.lineBlockAt(D).top)/this.view.scaleY;M.push(Oz.replace({widget:new ou(i),block:!0,inclusive:!0,isBlockGap:!0}).range(D,t))}if(!j)break;D=j.to+1}return Oz.set(M)}updateDeco(){let M=0,N=this.view.state.facet(gu).map((N=>(this.dynamicDecorationMap[M++]="function"==typeof N)?N(this.view):N)),D=!1,i=this.view.state.facet(eu).map(((M,N)=>{let i="function"==typeof M;return i&&(D=!0),i?M(this.view):M}));for(i.length&&(this.dynamicDecorationMap[M++]=D,N.push(Wt.join(i))),this.decorations=[...N,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];M<this.decorations.length;)this.dynamicDecorationMap[M++]=!1;return this.decorations}scrollIntoView(M){if(M.isSnapshot){let N=this.view.viewState.lineBlockAt(M.range.head);return this.view.scrollDOM.scrollTop=N.top-M.yMargin,void(this.view.scrollDOM.scrollLeft=M.xMargin)}for(let N of this.view.state.facet(qz))try{if(N(this.view,M.range,M))return!0}catch(M){Nu(this.view.state,M,"scroll handler")}let N,{range:D}=M,i=this.coordsAt(D.head,D.empty?D.assoc:D.head>D.anchor?-1:1);if(!i)return;!D.empty&&(N=this.coordsAt(D.anchor,D.anchor>D.head?-1:1))&&(i={left:Math.min(i.left,N.left),top:Math.min(i.top,N.top),right:Math.max(i.right,N.right),bottom:Math.max(i.bottom,N.bottom)});let j=Ou(this.view),t={left:i.left-j.left,top:i.top-j.top,right:i.right+j.right,bottom:i.bottom+j.bottom},{offsetWidth:I,offsetHeight:z}=this.view.scrollDOM;!function(M,N,D,i,j,t,I,z){let u=M.ownerDocument,g=u.defaultView||window;for(let e=M,T=!1;e&&!T;)if(1==e.nodeType){let M,A=e==u.body,s=1,L=1;if(A)M=xI(g);else{if(/^(fixed|sticky)$/.test(getComputedStyle(e).position)&&(T=!0),e.scrollHeight<=e.clientHeight&&e.scrollWidth<=e.clientWidth){e=e.assignedSlot||e.parentNode;continue}let N=e.getBoundingClientRect();({scaleX:s,scaleY:L}=aI(e,N)),M={left:N.left,right:N.left+e.clientWidth*s,top:N.top,bottom:N.top+e.clientHeight*L}}let O=0,y=0;if("nearest"==j)N.top<M.top?(y=-(M.top-N.top+I),D>0&&N.bottom>M.bottom+y&&(y=N.bottom-M.bottom+y+I)):N.bottom>M.bottom&&(y=N.bottom-M.bottom+I,D<0&&N.top-y<M.top&&(y=-(M.top+y-N.top+I)));else{let i=N.bottom-N.top,t=M.bottom-M.top;y=("center"==j&&i<=t?N.top+i/2-t/2:"start"==j||"center"==j&&D<0?N.top-I:N.bottom-t+I)-M.top}if("nearest"==i?N.left<M.left?(O=-(M.left-N.left+t),D>0&&N.right>M.right+O&&(O=N.right-M.right+O+t)):N.right>M.right&&(O=N.right-M.right+t,D<0&&N.left<M.left+O&&(O=-(M.left+O-N.left+t))):O=("center"==i?N.left+(N.right-N.left)/2-(M.right-M.left)/2:"start"==i==z?N.left-t:N.right-(M.right-M.left)+t)-M.left,O||y)if(A)g.scrollBy(O,y);else{let M=0,D=0;if(y){let M=e.scrollTop;e.scrollTop+=y/L,D=(e.scrollTop-M)*L}if(O){let N=e.scrollLeft;e.scrollLeft+=O/s,M=(e.scrollLeft-N)*s}N={left:N.left-M,top:N.top-D,right:N.right-M,bottom:N.bottom-D},M&&Math.abs(M-O)<1&&(i="nearest"),D&&Math.abs(D-y)<1&&(j="nearest")}if(A)break;e=e.assignedSlot||e.parentNode}else{if(11!=e.nodeType)break;e=e.host}}(this.view.scrollDOM,t,D.head<D.anchor?-1:1,M.x,M.y,Math.max(Math.min(M.xMargin,I),-I),Math.max(Math.min(M.yMargin,z),-z),this.view.textDirection==Qz.LTR)}}class ou extends sz{constructor(M){super(),this.height=M}toDOM(){let M=document.createElement("div");return M.className="cm-gap",this.updateDOM(M),M}eq(M){return M.height==this.height}updateDOM(M){return M.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function ru(M,N){let D=M.observer.selectionRange;if(!D.focusNode)return null;let i=YI(D.focusNode,D.focusOffset),j=CI(D.focusNode,D.focusOffset),t=i||j;if(j&&i&&j.node!=i.node){let N=mI.get(j.node);if(!N||N instanceof KI&&N.text!=j.node.nodeValue)t=j;else if(M.docView.lastCompositionAfterCursor){let M=mI.get(i.node);!M||M instanceof KI&&M.text!=i.node.nodeValue||(t=j)}}if(M.docView.lastCompositionAfterCursor=t!=i,!t)return null;let I=N-t.offset;return{from:I,to:I+t.node.nodeValue.length,node:t.node}}let xu=class{constructor(){this.changes=[]}compareRange(M,N){oz(M,N,this.changes)}comparePoint(M,N){oz(M,N,this.changes)}};function au(M,N){return N.left>M?N.left-M:Math.max(0,M-N.right)}function Qu(M,N){return N.top>M?N.top-M:Math.max(0,M-N.bottom)}function Eu(M,N){return M.top<N.bottom-1&&M.bottom>N.top+1}function Su(M,N){return N<M.top?{top:N,left:M.left,right:M.right,bottom:M.bottom}:M}function hu(M,N){return N>M.bottom?{top:M.top,left:M.left,right:M.right,bottom:N}:M}function du(M,N,D){let i,j,t,I,z,u,g,e,T=!1;for(let A=M.firstChild;A;A=A.nextSibling){let M=OI(A);for(let s=0;s<M.length;s++){let L=M[s];j&&Eu(j,L)&&(L=Su(hu(L,j.bottom),j.top));let O=au(N,L),y=Qu(D,L);if(0==O&&0==y)return 3==A.nodeType?ku(A,N,D):du(A,N,D);if(!i||I>y||I==y&&t>O){i=A,j=L,t=O,I=y;let z=y?D<L.top?-1:1:O?N<L.left?-1:1:0;T=!z||(z>0?s<M.length-1:s>0)}0==O?D>L.bottom&&(!g||g.bottom<L.bottom)?(z=A,g=L):D<L.top&&(!e||e.top>L.top)&&(u=A,e=L):g&&Eu(g,L)?g=hu(g,L.bottom):e&&Eu(e,L)&&(e=Su(e,L.top))}}if(g&&g.bottom>=D?(i=z,j=g):e&&e.top<=D&&(i=u,j=e),!i)return{node:M,offset:0};let A=Math.max(j.left,Math.min(j.right,N));return 3==i.nodeType?ku(i,A,D):T&&"false"!=i.contentEditable?du(i,A,D):{node:M,offset:Array.prototype.indexOf.call(M.childNodes,i)+(N>=(j.left+j.right)/2?1:0)}}function ku(M,N,D){let i=M.nodeValue.length,j=-1,t=1e9,I=0;for(let z=0;z<i;z++){let i=dI(M,z,z+1).getClientRects();for(let u=0;u<i.length;u++){let g=i[u];if(g.top==g.bottom)continue;I||(I=N-g.left);let e=(g.top>D?g.top-D:D-g.bottom)-1;if(g.left-1<=N&&g.right+1>=N&&e<t){let D=N>=(g.left+g.right)/2,i=D;if(qI.chrome||qI.gecko){dI(M,z).getBoundingClientRect().left==g.right&&(i=!D)}if(e<=0)return{node:M,offset:z+(i?1:0)};j=z+(i?1:0),t=e}}}return{node:M,offset:j>-1?j:I>0?M.nodeValue.length:0}}function wu(M,N,D,i=-1){var j,t;let I,z=M.contentDOM.getBoundingClientRect(),u=z.top+M.viewState.paddingTop,{docHeight:g}=M.viewState,{x:e,y:T}=N,A=T-u;if(A<0)return 0;if(A>g)return M.state.doc.length;for(let N=M.viewState.heightOracle.textHeight/2,j=!1;I=M.elementAtHeight(A),I.type!=Lz.Text;)for(;A=i>0?I.bottom+N:I.top-N,!(A>=0&&A<=g);){if(j)return D?null:0;j=!0,i=-i}T=u+A;let s=I.from;if(s<M.viewport.from)return 0==M.viewport.from?0:D?null:Uu(M,z,I,e,T);if(s>M.viewport.to)return M.viewport.to==M.state.doc.length?M.state.doc.length:D?null:Uu(M,z,I,e,T);let L=M.dom.ownerDocument,O=M.root.elementFromPoint?M.root:L,y=O.elementFromPoint(e,T);y&&!M.contentDOM.contains(y)&&(y=null),y||(e=Math.max(z.left+1,Math.min(z.right-1,e)),y=O.elementFromPoint(e,T),y&&!M.contentDOM.contains(y)&&(y=null));let c,n=-1;if(y&&0!=(null===(j=M.docView.nearest(y))||void 0===j?void 0:j.isEditable))if(L.caretPositionFromPoint){let M=L.caretPositionFromPoint(e,T);M&&({offsetNode:c,offset:n}=M)}else if(L.caretRangeFromPoint){let N=L.caretRangeFromPoint(e,T);N&&(({startContainer:c,startOffset:n}=N),(!M.contentDOM.contains(c)||qI.safari&&function(M,N,D){let i;if(3!=M.nodeType||N!=(i=M.nodeValue.length))return!1;for(let N=M.nextSibling;N;N=N.nextSibling)if(1!=N.nodeType||"BR"!=N.nodeName)return!1;return dI(M,i-1,i).getBoundingClientRect().left>D}(c,n,e)||qI.chrome&&function(M,N,D){if(0!=N)return!1;for(let N=M;;){let M=N.parentNode;if(!M||1!=M.nodeType||M.firstChild!=N)return!1;if(M.classList.contains("cm-line"))break;N=M}let i=1==M.nodeType?M.getBoundingClientRect():dI(M,0,Math.max(M.nodeValue.length,1)).getBoundingClientRect();return D-i.left>5}(c,n,e))&&(c=void 0))}if(!c||!M.docView.dom.contains(c)){let N=Tz.find(M.docView,s);if(!N)return A>I.top+I.height/2?I.to:I.from;({node:c,offset:n}=du(N.dom,e,T))}let l=M.docView.nearest(c);if(!l)return null;if(l.isWidget&&1==(null===(t=l.dom)||void 0===t?void 0:t.nodeType)){let M=l.dom.getBoundingClientRect();return N.y<M.top||N.y<=M.bottom&&N.x<=(M.left+M.right)/2?l.posAtStart:l.posAtEnd}return l.localPosFromDOM(c,n)+l.posAtStart}function Uu(M,N,D,i,j){let t=Math.round((i-N.left)*M.defaultCharacterWidth);if(M.lineWrapping&&D.height>1.5*M.defaultLineHeight){let N=M.viewState.heightOracle.textHeight;t+=Math.floor((j-D.top-.5*(M.defaultLineHeight-N))/N)*M.viewState.heightOracle.lineLength}let I=M.state.sliceDoc(D.from,D.to);return D.from+Kt(I,t,M.state.tabSize)}function Yu(M,N){let D=M.lineBlockAt(N);if(Array.isArray(D.type))for(let M of D.type)if(M.to>N||M.to==N&&(M.to==D.to||M.type==Lz.Text))return M;return D}function Cu(M,N,D,i){let j=M.state.doc.lineAt(N.head),t=M.bidiSpans(j),I=M.textDirectionAt(j.from);for(let z=N,u=null;;){let N=Vz(j,t,I,z,D),g=Wz;if(!N){if(j.number==(D?M.state.doc.lines:1))return z;g="\n",j=M.state.doc.line(j.number+(D?1:-1)),t=M.bidiSpans(j),N=M.visualLineSide(j,!D)}if(u){if(!u(g))return z}else{if(!i)return N;u=i(g)}z=N}}function bu(M,N,D){for(;;){let i=0;for(let j of M)j.between(N-1,N+1,((M,j,t)=>{if(N>M&&N<j){let t=i||D||(N-M<j-N?-1:1);N=t<0?M:j,i=t}}));if(!i)return N}}function pu(M,N,D){let i=bu(M.state.facet(Tu).map((N=>N(M))),D.from,N.head>D.from?-1:1);return i==D.from?D:Pj.cursor(i,i<D.from?1:-1)}class mu{setSelectionOrigin(M){this.lastSelectionOrigin=M,this.lastSelectionTime=Date.now()}constructor(M){this.view=M,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=M.hasFocus,qI.safari&&M.contentDOM.addEventListener("input",(()=>null)),qI.gecko&&function(M){gg.has(M)||(gg.add(M),M.addEventListener("copy",(()=>{})),M.addEventListener("cut",(()=>{})))}(M.contentDOM.ownerDocument)}handleEvent(M){(function(M,N){if(!N.bubbles)return!0;if(N.defaultPrevented)return!1;for(let D,i=N.target;i!=M.contentDOM;i=i.parentNode)if(!i||11==i.nodeType||(D=mI.get(i))&&D.ignoreEvent(N))return!1;return!0})(this.view,M)&&!this.ignoreDuringComposition(M)&&("keydown"==M.type&&this.keydown(M)||this.runHandlers(M.type,M))}runHandlers(M,N){let D=this.handlers[M];if(D){for(let M of D.observers)M(this.view,N);for(let M of D.handlers){if(N.defaultPrevented)break;if(M(this.view,N)){N.preventDefault();break}}}}ensureHandlers(M){let N=fu(M),D=this.handlers,i=this.view.contentDOM;for(let M in N)if("scroll"!=M){let j=!N[M].handlers.length,t=D[M];t&&j!=!t.handlers.length&&(i.removeEventListener(M,this.handleEvent),t=null),t||i.addEventListener(M,this.handleEvent,{passive:j})}for(let M in D)"scroll"==M||N[M]||i.removeEventListener(M,this.handleEvent);this.handlers=N}keydown(M){if(this.lastKeyCode=M.keyCode,this.lastKeyTime=Date.now(),9==M.keyCode&&Date.now()<this.lastEscPress+2e3)return!0;if(27!=M.keyCode&&Vu.indexOf(M.keyCode)<0&&(this.view.inputState.lastEscPress=0),qI.android&&qI.chrome&&!M.synthetic&&(13==M.keyCode||8==M.keyCode))return this.view.observer.delayAndroidKey(M.key,M.keyCode),!0;let N;return!qI.ios||M.synthetic||M.altKey||M.metaKey||!((N=vu.find((N=>N.keyCode==M.keyCode)))&&!M.ctrlKey||Wu.indexOf(M.key)>-1&&M.ctrlKey&&!M.shiftKey)?(229!=M.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=N||M,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(M){let N=this.pendingIOSKey;return!!N&&(!("Enter"==N.key&&M&&M.from<M.to&&/^\S+$/.test(M.insert.toString()))&&(this.pendingIOSKey=void 0,kI(this.view.contentDOM,N.key,N.keyCode,N instanceof KeyboardEvent?N:void 0)))}ignoreDuringComposition(M){return!!/^key/.test(M.type)&&(this.composing>0||!!(qI.safari&&!qI.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(M){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=M}update(M){this.mouseSelection&&this.mouseSelection.update(M),this.draggedContent&&M.docChanged&&(this.draggedContent=this.draggedContent.map(M.changes)),M.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Zu(M,N){return(D,i)=>{try{return N.call(M,i,D)}catch(M){Nu(D.state,M)}}}function fu(M){let N=Object.create(null);function D(M){return N[M]||(N[M]={observers:[],handlers:[]})}for(let N of M){let M=N.spec;if(M&&M.domEventHandlers)for(let i in M.domEventHandlers){let j=M.domEventHandlers[i];j&&D(i).handlers.push(Zu(N.value,j))}if(M&&M.domEventObservers)for(let i in M.domEventObservers){let j=M.domEventObservers[i];j&&D(i).observers.push(Zu(N.value,j))}}for(let M in Ru)D(M).handlers.push(Ru[M]);for(let M in Bu)D(M).observers.push(Bu[M]);return N}const vu=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Wu="dthko",Vu=[16,17,18,20,91,92,224,225];function Gu(M){return.7*Math.max(0,M)+8}class Pu{constructor(M,N,D,i){this.view=M,this.startEvent=N,this.style=D,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=N,this.scrollParent=function(M){let N=M.ownerDocument;for(let D=M.parentNode;D&&D!=N.body;)if(1==D.nodeType){if(D.scrollHeight>D.clientHeight||D.scrollWidth>D.clientWidth)return D;D=D.assignedSlot||D.parentNode}else{if(11!=D.nodeType)break;D=D.host}return null}(M.contentDOM),this.atoms=M.state.facet(Tu).map((N=>N(M)));let j=M.contentDOM.ownerDocument;j.addEventListener("mousemove",this.move=this.move.bind(this)),j.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=N.shiftKey,this.multiple=M.state.facet(bt.allowMultipleSelections)&&function(M,N){let D=M.state.facet(Pz);return D.length?D[0](N):qI.mac?N.metaKey:N.ctrlKey}(M,N),this.dragging=!(!function(M,N){let{main:D}=M.state.selection;if(D.empty)return!1;let i=AI(M.root);if(!i||0==i.rangeCount)return!0;let j=i.getRangeAt(0).getClientRects();for(let M=0;M<j.length;M++){let D=j[M];if(D.left<=N.clientX&&D.right>=N.clientX&&D.top<=N.clientY&&D.bottom>=N.clientY)return!0}return!1}(M,N)||1!=ig(N))&&null}start(M){!1===this.dragging&&this.select(M)}move(M){var N;if(0==M.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(M,N){return Math.max(Math.abs(M.clientX-N.clientX),Math.abs(M.clientY-N.clientY))}(this.startEvent,M)<10)return;this.select(this.lastEvent=M);let D=0,i=0,j=(null===(N=this.scrollParent)||void 0===N?void 0:N.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},t=Ou(this.view);M.clientX-t.left<=j.left+6?D=-Gu(j.left-M.clientX):M.clientX+t.right>=j.right-6&&(D=Gu(M.clientX-j.right)),M.clientY-t.top<=j.top+6?i=-Gu(j.top-M.clientY):M.clientY+t.bottom>=j.bottom-6&&(i=Gu(M.clientY-j.bottom)),this.setScrollSpeed(D,i)}up(M){null==this.dragging&&this.select(this.lastEvent),this.dragging||M.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let M=this.view.contentDOM.ownerDocument;M.removeEventListener("mousemove",this.move),M.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(M,N){this.scrollSpeed={x:M,y:N},M||N?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),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(M){let N=null;for(let D=0;D<M.ranges.length;D++){let i=M.ranges[D],j=null;if(i.empty){let M=bu(this.atoms,i.from,0);M!=i.from&&(j=Pj.cursor(M,-1))}else{let M=bu(this.atoms,i.from,-1),N=bu(this.atoms,i.to,1);M==i.from&&N==i.to||(j=Pj.range(i.from==i.anchor?M:N,i.from==i.head?M:N))}j&&(N||(N=M.ranges.slice()),N[D]=j)}return N?Pj.create(N,M.mainIndex):M}select(M){let{view:N}=this,D=this.skipAtoms(this.style.get(M,this.extend,this.multiple));!this.mustSelect&&D.eq(N.state.selection,!1===this.dragging)||this.view.dispatch({selection:D,userEvent:"select.pointer"}),this.mustSelect=!1}update(M){this.style.update(M)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const Ru=Object.create(null),Bu=Object.create(null),Ju=qI.ie&&qI.ie_version<15||qI.ios&&qI.webkit_version<604;function Fu(M,N){let D,{state:i}=M,j=1,t=i.toText(N),I=t.lines==i.selection.ranges.length,z=null!=tg&&i.selection.ranges.every((M=>M.empty))&&tg==t.toString();if(z){let M=-1;D=i.changeByRange((D=>{let z=i.doc.lineAt(D.from);if(z.from==M)return{range:D};M=z.from;let u=i.toText((I?t.line(j++).text:N)+i.lineBreak);return{changes:{from:z.from,insert:u},range:Pj.cursor(D.from+u.length)}}))}else D=I?i.changeByRange((M=>{let N=t.line(j++);return{changes:{from:M.from,to:M.to,insert:N.text},range:Pj.cursor(M.from+N.length)}})):i.replaceSelection(t);M.dispatch(D,{userEvent:"input.paste",scrollIntoView:!0})}function Hu(M,N,D,i){if(1==i)return Pj.cursor(N,D);if(2==i)return function(M,N,D=1){let i=M.charCategorizer(N),j=M.doc.lineAt(N),t=N-j.from;if(0==j.length)return Pj.cursor(N);0==t?D=1:t==j.length&&(D=-1);let I=t,z=t;D<0?I=Qj(j.text,t,!1):z=Qj(j.text,t);let u=i(j.text.slice(I,z));for(;I>0;){let M=Qj(j.text,I,!1);if(i(j.text.slice(M,I))!=u)break;I=M}for(;z<j.length;){let M=Qj(j.text,z);if(i(j.text.slice(z,M))!=u)break;z=M}return Pj.range(I+j.from,z+j.from)}(M.state,N,D);{let D=Tz.find(M.docView,N),i=M.state.doc.lineAt(D?D.posAtEnd:N),j=D?D.posAtStart:i.from,t=D?D.posAtEnd:i.to;return t<M.state.doc.length&&t==i.to&&t++,Pj.range(j,t)}}Bu.scroll=M=>{M.inputState.lastScrollTop=M.scrollDOM.scrollTop,M.inputState.lastScrollLeft=M.scrollDOM.scrollLeft},Ru.keydown=(M,N)=>(M.inputState.setSelectionOrigin("select"),27==N.keyCode&&(M.inputState.lastEscPress=Date.now()),!1),Bu.touchstart=(M,N)=>{M.inputState.lastTouchTime=Date.now(),M.inputState.setSelectionOrigin("select.pointer")},Bu.touchmove=M=>{M.inputState.setSelectionOrigin("select.pointer")},Ru.mousedown=(M,N)=>{if(M.observer.flush(),M.inputState.lastTouchTime>Date.now()-2e3)return!1;let D=null;for(let i of M.state.facet(Bz))if(D=i(M,N),D)break;if(D||0!=N.button||(D=function(M,N){let D=qu(M,N),i=ig(N),j=M.state.selection;return{update(M){M.docChanged&&(D.pos=M.changes.mapPos(D.pos),j=j.map(M.changes))},get(N,t,I){let z,u=qu(M,N),g=Hu(M,u.pos,u.bias,i);if(D.pos!=u.pos&&!t){let N=Hu(M,D.pos,D.bias,i),j=Math.min(N.from,g.from),t=Math.max(N.to,g.to);g=j<g.from?Pj.range(j,t):Pj.range(t,j)}return t?j.replaceRange(j.main.extend(g.from,g.to)):I&&1==i&&j.ranges.length>1&&(z=function(M,N){for(let D=0;D<M.ranges.length;D++){let{from:i,to:j}=M.ranges[D];if(i<=N&&j>=N)return Pj.create(M.ranges.slice(0,D).concat(M.ranges.slice(D+1)),M.mainIndex==D?0:M.mainIndex-(M.mainIndex>D?1:0))}return null}(j,u.pos))?z:I?j.addRange(g):Pj.create([g])}}}(M,N)),D){let i=!M.hasFocus;M.inputState.startMouseSelection(new Pu(M,N,D,i)),i&&M.observer.ignore((()=>hI(M.contentDOM)));let j=M.inputState.mouseSelection;if(j)return j.start(N),!1===j.dragging}return!1};let Xu=(M,N)=>M>=N.top&&M<=N.bottom,$u=(M,N,D)=>Xu(N,D)&&M>=D.left&&M<=D.right;function _u(M,N,D,i){let j=Tz.find(M.docView,N);if(!j)return 1;let t=N-j.posAtStart;if(0==t)return 1;if(t==j.length)return-1;let I=j.coordsAt(t,-1);if(I&&$u(D,i,I))return-1;let z=j.coordsAt(t,1);return z&&$u(D,i,z)?1:I&&Xu(i,I)?-1:1}function qu(M,N){let D=M.posAtCoords({x:N.clientX,y:N.clientY},!1);return{pos:D,bias:_u(M,D,N.clientX,N.clientY)}}const Ku=qI.ie&&qI.ie_version<=11;let Mg=null,Ng=0,Dg=0;function ig(M){if(!Ku)return M.detail;let N=Mg,D=Dg;return Mg=M,Dg=Date.now(),Ng=!N||D>Date.now()-400&&Math.abs(N.clientX-M.clientX)<2&&Math.abs(N.clientY-M.clientY)<2?(Ng+1)%3:1}function jg(M,N,D,i){if(!D)return;let j=M.posAtCoords({x:N.clientX,y:N.clientY},!1),{draggedContent:t}=M.inputState,I=i&&t&&function(M,N){let D=M.state.facet(Rz);return D.length?D[0](N):qI.mac?!N.altKey:!N.ctrlKey}(M,N)?{from:t.from,to:t.to}:null,z={from:j,insert:D},u=M.state.changes(I?[I,z]:z);M.focus(),M.dispatch({changes:u,selection:{anchor:u.mapPos(j,-1),head:u.mapPos(j,1)},userEvent:I?"move.drop":"input.drop"}),M.inputState.draggedContent=null}Ru.dragstart=(M,N)=>{let{selection:{main:D}}=M.state;if(N.target.draggable){let i=M.docView.nearest(N.target);if(i&&i.isWidget){let M=i.posAtStart,N=M+i.length;(M>=D.to||N<=D.from)&&(D=Pj.range(M,N))}}let{inputState:i}=M;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=D,N.dataTransfer&&(N.dataTransfer.setData("Text",M.state.sliceDoc(D.from,D.to)),N.dataTransfer.effectAllowed="copyMove"),!1},Ru.dragend=M=>(M.inputState.draggedContent=null,!1),Ru.drop=(M,N)=>{if(!N.dataTransfer)return!1;if(M.state.readOnly)return!0;let D=N.dataTransfer.files;if(D&&D.length){let i=Array(D.length),j=0,t=()=>{++j==D.length&&jg(M,N,i.filter((M=>null!=M)).join(M.state.lineBreak),!1)};for(let M=0;M<D.length;M++){let N=new FileReader;N.onerror=t,N.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(N.result)||(i[M]=N.result),t()},N.readAsText(D[M])}return!0}{let D=N.dataTransfer.getData("Text");if(D)return jg(M,N,D,!0),!0}return!1},Ru.paste=(M,N)=>{if(M.state.readOnly)return!0;M.observer.flush();let D=Ju?null:N.clipboardData;return D?(Fu(M,D.getData("text/plain")||D.getData("text/uri-list")),!0):(function(M){let N=M.dom.parentNode;if(!N)return;let D=N.appendChild(document.createElement("textarea"));D.style.cssText="position: fixed; left: -10000px; top: 10px",D.focus(),setTimeout((()=>{M.focus(),D.remove(),Fu(M,D.value)}),50)}(M),!1)};let tg=null;Ru.copy=Ru.cut=(M,N)=>{let{text:D,ranges:i,linewise:j}=function(M){let N=[],D=[],i=!1;for(let i of M.selection.ranges)i.empty||(N.push(M.sliceDoc(i.from,i.to)),D.push(i));if(!N.length){let j=-1;for(let{from:i}of M.selection.ranges){let t=M.doc.lineAt(i);t.number>j&&(N.push(t.text),D.push({from:t.from,to:Math.min(M.doc.length,t.to+1)})),j=t.number}i=!0}return{text:N.join(M.lineBreak),ranges:D,linewise:i}}(M.state);if(!D&&!j)return!1;tg=j?D:null,"cut"!=N.type||M.state.readOnly||M.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let t=Ju?null:N.clipboardData;return t?(t.clearData(),t.setData("text/plain",D),!0):(function(M,N){let D=M.dom.parentNode;if(!D)return;let i=D.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=N,i.focus(),i.selectionEnd=N.length,i.selectionStart=0,setTimeout((()=>{i.remove(),M.focus()}),50)}(M,D),!1)};const Ig=lt.define();function zg(M,N){let D=[];for(let i of M.facet(Xz)){let j=i(M,N);j&&D.push(j)}return D?M.update({effects:D,annotations:Ig.of(!0)}):null}function ug(M){setTimeout((()=>{let N=M.hasFocus;if(N!=M.inputState.notifiedFocused){let D=zg(M.state,N);D?M.dispatch(D):M.update([])}}),10)}Bu.focus=M=>{M.inputState.lastFocusTime=Date.now(),M.scrollDOM.scrollTop||!M.inputState.lastScrollTop&&!M.inputState.lastScrollLeft||(M.scrollDOM.scrollTop=M.inputState.lastScrollTop,M.scrollDOM.scrollLeft=M.inputState.lastScrollLeft),ug(M)},Bu.blur=M=>{M.observer.clearSelectionRange(),ug(M)},Bu.compositionstart=Bu.compositionupdate=M=>{null==M.inputState.compositionFirstChange&&(M.inputState.compositionFirstChange=!0),M.inputState.composing<0&&(M.inputState.composing=0)},Bu.compositionend=M=>{M.inputState.composing=-1,M.inputState.compositionEndedAt=Date.now(),M.inputState.compositionPendingKey=!0,M.inputState.compositionPendingChange=M.observer.pendingRecords().length>0,M.inputState.compositionFirstChange=null,qI.chrome&&qI.android?M.observer.flushSoon():M.inputState.compositionPendingChange?Promise.resolve().then((()=>M.observer.flush())):setTimeout((()=>{M.inputState.composing<0&&M.docView.hasComposition&&M.update([])}),50)},Bu.contextmenu=M=>{M.inputState.lastContextMenu=Date.now()},Ru.beforeinput=(M,N)=>{var D;let i;if(qI.chrome&&qI.android&&(i=vu.find((M=>M.inputType==N.inputType)))&&(M.observer.delayAndroidKey(i.key,i.keyCode),"Backspace"==i.key||"Delete"==i.key)){let N=(null===(D=window.visualViewport)||void 0===D?void 0:D.height)||0;setTimeout((()=>{var D;((null===(D=window.visualViewport)||void 0===D?void 0:D.height)||0)>N+10&&M.hasFocus&&(M.contentDOM.blur(),M.focus())}),100)}return qI.ios&&"deleteContentForward"==N.inputType&&M.observer.flushSoon(),qI.safari&&"insertText"==N.inputType&&M.inputState.composing>=0&&setTimeout((()=>Bu.compositionend(M,N)),20),!1};const gg=new Set;const eg=["pre-wrap","normal","pre-line","break-spaces"];class Tg{constructor(M){this.lineWrapping=M,this.doc=ej.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(M,N){let D=this.doc.lineAt(N).number-this.doc.lineAt(M).number+1;return this.lineWrapping&&(D+=Math.max(0,Math.ceil((N-M-D*this.lineLength*.5)/this.lineLength))),this.lineHeight*D}heightForLine(M){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((M-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(M){return this.doc=M,this}mustRefreshForWrapping(M){return eg.indexOf(M)>-1!=this.lineWrapping}mustRefreshForHeights(M){let N=!1;for(let D=0;D<M.length;D++){let i=M[D];i<0?D++:this.heightSamples[Math.floor(10*i)]||(N=!0,this.heightSamples[Math.floor(10*i)]=!0)}return N}refresh(M,N,D,i,j,t){let I=eg.indexOf(M)>-1,z=Math.round(N)!=Math.round(this.lineHeight)||this.lineWrapping!=I;if(this.lineWrapping=I,this.lineHeight=N,this.charWidth=D,this.textHeight=i,this.lineLength=j,z){this.heightSamples={};for(let M=0;M<t.length;M++){let N=t[M];N<0?M++:this.heightSamples[Math.floor(10*N)]=!0}}return z}}class Ag{constructor(M,N){this.from=M,this.heights=N,this.index=0}get more(){return this.index<this.heights.length}}class sg{constructor(M,N,D,i,j){this.from=M,this.length=N,this.top=D,this.height=i,this._content=j}get type(){return"number"==typeof this._content?Lz.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof nz?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(M){let N=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(M._content)?M._content:[M]);return new sg(this.from,this.length+M.length,this.top,this.height+M.height,N)}}var Lg=function(M){return M[M.ByPos=0]="ByPos",M[M.ByHeight=1]="ByHeight",M[M.ByPosNoHeight=2]="ByPosNoHeight",M}(Lg||(Lg={}));const Og=.001;class yg{constructor(M,N,D=2){this.length=M,this.height=N,this.flags=D}get outdated(){return(2&this.flags)>0}set outdated(M){this.flags=(M?2:0)|-3&this.flags}setHeight(M,N){this.height!=N&&(Math.abs(this.height-N)>Og&&(M.heightChanged=!0),this.height=N)}replace(M,N,D){return yg.of(D)}decomposeLeft(M,N){N.push(this)}decomposeRight(M,N){N.push(this)}applyChanges(M,N,D,i){let j=this,t=D.doc;for(let I=i.length-1;I>=0;I--){let{fromA:z,toA:u,fromB:g,toB:e}=i[I],T=j.lineAt(z,Lg.ByPosNoHeight,D.setDoc(N),0,0),A=T.to>=u?T:j.lineAt(u,Lg.ByPosNoHeight,D,0,0);for(e+=A.to-u,u=A.to;I>0&&T.from<=i[I-1].toA;)z=i[I-1].fromA,g=i[I-1].fromB,I--,z<T.from&&(T=j.lineAt(z,Lg.ByPosNoHeight,D,0,0));g+=T.from-z,z=T.from;let s=xg.build(D.setDoc(t),M,g,e);j=j.replace(z,u,s)}return j.updateHeight(D,0)}static empty(){return new ng(0,0)}static of(M){if(1==M.length)return M[0];let N=0,D=M.length,i=0,j=0;for(;;)if(N==D)if(i>2*j){let j=M[N-1];j.break?M.splice(--N,1,j.left,null,j.right):M.splice(--N,1,j.left,j.right),D+=1+j.break,i-=j.size}else{if(!(j>2*i))break;{let N=M[D];N.break?M.splice(D,1,N.left,null,N.right):M.splice(D,1,N.left,N.right),D+=2+N.break,j-=N.size}}else if(i<j){let D=M[N++];D&&(i+=D.size)}else{let N=M[--D];N&&(j+=N.size)}let t=0;return null==M[N-1]?(t=1,N--):null==M[N]&&(t=1,D++),new og(yg.of(M.slice(0,N)),t,yg.of(M.slice(D)))}}yg.prototype.size=1;class cg extends yg{constructor(M,N,D){super(M,N),this.deco=D}blockAt(M,N,D,i){return new sg(i,this.length,D,this.height,this.deco||0)}lineAt(M,N,D,i,j){return this.blockAt(0,D,i,j)}forEachLine(M,N,D,i,j,t){M<=j+this.length&&N>=j&&t(this.blockAt(0,D,i,j))}updateHeight(M,N=0,D=!1,i){return i&&i.from<=N&&i.more&&this.setHeight(M,i.heights[i.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class ng extends cg{constructor(M,N){super(M,N,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(M,N,D,i){return new sg(i,this.length,D,this.height,this.breaks)}replace(M,N,D){let i=D[0];return 1==D.length&&(i instanceof ng||i instanceof lg&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof lg?i=new ng(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):yg.of(D)}updateHeight(M,N=0,D=!1,i){return i&&i.from<=N&&i.more?this.setHeight(M,i.heights[i.index++]):(D||this.outdated)&&this.setHeight(M,Math.max(this.widgetHeight,M.heightForLine(this.length-this.collapsed))+this.breaks*M.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class lg extends yg{constructor(M){super(M,0)}heightMetrics(M,N){let D,i=M.doc.lineAt(N).number,j=M.doc.lineAt(N+this.length).number,t=j-i+1,I=0;if(M.lineWrapping){let N=Math.min(this.height,M.lineHeight*t);D=N/t,this.length>t+1&&(I=(this.height-N)/(this.length-t-1))}else D=this.height/t;return{firstLine:i,lastLine:j,perLine:D,perChar:I}}blockAt(M,N,D,i){let{firstLine:j,lastLine:t,perLine:I,perChar:z}=this.heightMetrics(N,i);if(N.lineWrapping){let j=i+(M<N.lineHeight?0:Math.round(Math.max(0,Math.min(1,(M-D)/this.height))*this.length)),t=N.doc.lineAt(j),u=I+t.length*z,g=Math.max(D,M-u/2);return new sg(t.from,t.length,g,u,0)}{let i=Math.max(0,Math.min(t-j,Math.floor((M-D)/I))),{from:z,length:u}=N.doc.line(j+i);return new sg(z,u,D+I*i,I,0)}}lineAt(M,N,D,i,j){if(N==Lg.ByHeight)return this.blockAt(M,D,i,j);if(N==Lg.ByPosNoHeight){let{from:N,to:i}=D.doc.lineAt(M);return new sg(N,i-N,0,0,0)}let{firstLine:t,perLine:I,perChar:z}=this.heightMetrics(D,j),u=D.doc.lineAt(M),g=I+u.length*z,e=u.number-t,T=i+I*e+z*(u.from-j-e);return new sg(u.from,u.length,Math.max(i,Math.min(T,i+this.height-g)),g,0)}forEachLine(M,N,D,i,j,t){M=Math.max(M,j),N=Math.min(N,j+this.length);let{firstLine:I,perLine:z,perChar:u}=this.heightMetrics(D,j);for(let g=M,e=i;g<=N;){let N=D.doc.lineAt(g);if(g==M){let D=N.number-I;e+=z*D+u*(M-j-D)}let i=z+u*N.length;t(new sg(N.from,N.length,e,i,0)),e+=i,g=N.to+1}}replace(M,N,D){let i=this.length-N;if(i>0){let M=D[D.length-1];M instanceof lg?D[D.length-1]=new lg(M.length+i):D.push(null,new lg(i-1))}if(M>0){let N=D[0];N instanceof lg?D[0]=new lg(M+N.length):D.unshift(new lg(M-1),null)}return yg.of(D)}decomposeLeft(M,N){N.push(new lg(M-1),null)}decomposeRight(M,N){N.push(null,new lg(this.length-M-1))}updateHeight(M,N=0,D=!1,i){let j=N+this.length;if(i&&i.from<=N+this.length&&i.more){let D=[],t=Math.max(N,i.from),I=-1;for(i.from>N&&D.push(new lg(i.from-N-1).updateHeight(M,N));t<=j&&i.more;){let N=M.doc.lineAt(t).length;D.length&&D.push(null);let j=i.heights[i.index++];-1==I?I=j:Math.abs(j-I)>=Og&&(I=-2);let z=new ng(N,j);z.outdated=!1,D.push(z),t+=N+1}t<=j&&D.push(null,new lg(j-t).updateHeight(M,t));let z=yg.of(D);return(I<0||Math.abs(z.height-this.height)>=Og||Math.abs(I-this.heightMetrics(M,N).perLine)>=Og)&&(M.heightChanged=!0),z}return(D||this.outdated)&&(this.setHeight(M,M.heightForGap(N,N+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class og extends yg{constructor(M,N,D){super(M.length+N+D.length,M.height+D.height,N|(M.outdated||D.outdated?2:0)),this.left=M,this.right=D,this.size=M.size+D.size}get break(){return 1&this.flags}blockAt(M,N,D,i){let j=D+this.left.height;return M<j?this.left.blockAt(M,N,D,i):this.right.blockAt(M,N,j,i+this.left.length+this.break)}lineAt(M,N,D,i,j){let t=i+this.left.height,I=j+this.left.length+this.break,z=N==Lg.ByHeight?M<t:M<I,u=z?this.left.lineAt(M,N,D,i,j):this.right.lineAt(M,N,D,t,I);if(this.break||(z?u.to<I:u.from>I))return u;let g=N==Lg.ByPosNoHeight?Lg.ByPosNoHeight:Lg.ByPos;return z?u.join(this.right.lineAt(I,g,D,t,I)):this.left.lineAt(I,g,D,i,j).join(u)}forEachLine(M,N,D,i,j,t){let I=i+this.left.height,z=j+this.left.length+this.break;if(this.break)M<z&&this.left.forEachLine(M,N,D,i,j,t),N>=z&&this.right.forEachLine(M,N,D,I,z,t);else{let u=this.lineAt(z,Lg.ByPos,D,i,j);M<u.from&&this.left.forEachLine(M,u.from-1,D,i,j,t),u.to>=M&&u.from<=N&&t(u),N>u.to&&this.right.forEachLine(u.to+1,N,D,I,z,t)}}replace(M,N,D){let i=this.left.length+this.break;if(N<i)return this.balanced(this.left.replace(M,N,D),this.right);if(M>this.left.length)return this.balanced(this.left,this.right.replace(M-i,N-i,D));let j=[];M>0&&this.decomposeLeft(M,j);let t=j.length;for(let M of D)j.push(M);if(M>0&&rg(j,t-1),N<this.length){let M=j.length;this.decomposeRight(N,j),rg(j,M)}return yg.of(j)}decomposeLeft(M,N){let D=this.left.length;if(M<=D)return this.left.decomposeLeft(M,N);N.push(this.left),this.break&&(D++,M>=D&&N.push(null)),M>D&&this.right.decomposeLeft(M-D,N)}decomposeRight(M,N){let D=this.left.length,i=D+this.break;if(M>=i)return this.right.decomposeRight(M-i,N);M<D&&this.left.decomposeRight(M,N),this.break&&M<i&&N.push(null),N.push(this.right)}balanced(M,N){return M.size>2*N.size||N.size>2*M.size?yg.of(this.break?[M,null,N]:[M,N]):(this.left=M,this.right=N,this.height=M.height+N.height,this.outdated=M.outdated||N.outdated,this.size=M.size+N.size,this.length=M.length+this.break+N.length,this)}updateHeight(M,N=0,D=!1,i){let{left:j,right:t}=this,I=N+j.length+this.break,z=null;return i&&i.from<=N+j.length&&i.more?z=j=j.updateHeight(M,N,D,i):j.updateHeight(M,N,D),i&&i.from<=I+t.length&&i.more?z=t=t.updateHeight(M,I,D,i):t.updateHeight(M,I,D),z?this.balanced(j,t):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function rg(M,N){let D,i;null==M[N]&&(D=M[N-1])instanceof lg&&(i=M[N+1])instanceof lg&&M.splice(N-1,3,new lg(D.length+1+i.length))}class xg{constructor(M,N){this.pos=M,this.oracle=N,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=M}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(M,N){if(this.lineStart>-1){let M=Math.min(N,this.lineEnd),D=this.nodes[this.nodes.length-1];D instanceof ng?D.length+=M-this.pos:(M>this.pos||!this.isCovered)&&this.nodes.push(new ng(M-this.pos,-1)),this.writtenTo=M,N>M&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=N}point(M,N,D){if(M<N||D.heightRelevant){let i=D.widget?D.widget.estimatedHeight:0,j=D.widget?D.widget.lineBreaks:0;i<0&&(i=this.oracle.lineHeight);let t=N-M;D.block?this.addBlock(new cg(t,i,D)):(t||j||i>=5)&&this.addLineDeco(i,j,t)}else N>M&&this.span(M,N);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:M,to:N}=this.oracle.doc.lineAt(this.pos);this.lineStart=M,this.lineEnd=N,this.writtenTo<M&&((this.writtenTo<M-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,M-1)),this.nodes.push(null)),this.pos>M&&this.nodes.push(new ng(this.pos-M,-1)),this.writtenTo=this.pos}blankContent(M,N){let D=new lg(N-M);return this.oracle.doc.lineAt(M).to==N&&(D.flags|=4),D}ensureLine(){this.enterLine();let M=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(M instanceof ng)return M;let N=new ng(0,-1);return this.nodes.push(N),N}addBlock(M){this.enterLine();let N=M.deco;N&&N.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(M),this.writtenTo=this.pos=this.pos+M.length,N&&N.endSide>0&&(this.covering=M)}addLineDeco(M,N,D){let i=this.ensureLine();i.length+=D,i.collapsed+=D,i.widgetHeight=Math.max(i.widgetHeight,M),i.breaks+=N,this.writtenTo=this.pos=this.pos+D}finish(M){let N=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||N instanceof ng||this.isCovered?(this.writtenTo<this.pos||null==N)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new ng(0,-1));let D=M;for(let M of this.nodes)M instanceof ng&&M.updateHeight(this.oracle,D),D+=M?M.length:1;return this.nodes}static build(M,N,D,i){let j=new xg(D,M);return Wt.spans(N,D,i,j,0),j.finish(D)}}class ag{constructor(){this.changes=[]}compareRange(){}comparePoint(M,N,D,i){(M<N||D&&D.heightRelevant||i&&i.heightRelevant)&&oz(M,N,this.changes,5)}}function Qg(M,N){let D=M.getBoundingClientRect(),i=M.ownerDocument,j=i.defaultView||window,t=Math.max(0,D.left),I=Math.min(j.innerWidth,D.right),z=Math.max(0,D.top),u=Math.min(j.innerHeight,D.bottom);for(let N=M.parentNode;N&&N!=i.body;)if(1==N.nodeType){let D=N,i=window.getComputedStyle(D);if((D.scrollHeight>D.clientHeight||D.scrollWidth>D.clientWidth)&&"visible"!=i.overflow){let i=D.getBoundingClientRect();t=Math.max(t,i.left),I=Math.min(I,i.right),z=Math.max(z,i.top),u=N==M.parentNode?i.bottom:Math.min(u,i.bottom)}N="absolute"==i.position||"fixed"==i.position?D.offsetParent:D.parentNode}else{if(11!=N.nodeType)break;N=N.host}return{left:t-D.left,right:Math.max(t,I)-D.left,top:z-(D.top+N),bottom:Math.max(z,u)-(D.top+N)}}function Eg(M,N){let D=M.getBoundingClientRect();return{left:0,right:D.right-D.left,top:N,bottom:D.bottom-(D.top+N)}}class Sg{constructor(M,N,D){this.from=M,this.to=N,this.size=D}static same(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++){let i=M[D],j=N[D];if(i.from!=j.from||i.to!=j.to||i.size!=j.size)return!1}return!0}draw(M,N){return Oz.replace({widget:new hg(this.size*(N?M.scaleY:M.scaleX),N)}).range(this.from,this.to)}}class hg extends sz{constructor(M,N){super(),this.size=M,this.vertical=N}eq(M){return M.size==this.size&&M.vertical==this.vertical}toDOM(){let M=document.createElement("div");return this.vertical?M.style.height=this.size+"px":(M.style.width=this.size+"px",M.style.height="2px",M.style.display="inline-block"),M}get estimatedHeight(){return this.vertical?this.size:-1}}class dg{constructor(M){this.state=M,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Cg,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Qz.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let N=M.facet(uu).some((M=>"function"!=typeof M&&"cm-lineWrapping"==M.class));this.heightOracle=new Tg(N),this.stateDeco=M.facet(gu).filter((M=>"function"!=typeof M)),this.heightMap=yg.empty().applyChanges(this.stateDeco,ej.empty,this.heightOracle.setDoc(M.doc),[new cu(0,0,0,M.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Oz.set(this.lineGaps.map((M=>M.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let M=[this.viewport],{main:N}=this.state.selection;for(let D=0;D<=1;D++){let i=D?N.head:N.anchor;if(!M.some((({from:M,to:N})=>i>=M&&i<=N))){let{from:N,to:D}=this.lineBlockAt(i);M.push(new kg(N,D))}}this.viewports=M.sort(((M,N)=>M.from-N.from)),this.scaler=this.heightMap.height<=7e6?Cg:new bg(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,(M=>{this.viewportLines.push(1==this.scaler.scale?M:pg(M,this.scaler))}))}update(M,N=null){this.state=M.state;let D=this.stateDeco;this.stateDeco=this.state.facet(gu).filter((M=>"function"!=typeof M));let i=M.changedRanges,j=cu.extendWithRanges(i,function(M,N,D){let i=new ag;return Wt.compare(M,N,D,i,0),i.changes}(D,this.stateDeco,M?M.changes:pj.empty(this.state.doc.length))),t=this.heightMap.height,I=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,M.startState.doc,this.heightOracle.setDoc(this.state.doc),j),this.heightMap.height!=t&&(M.flags|=2),I?(this.scrollAnchorPos=M.changes.mapPos(I.from,-1),this.scrollAnchorHeight=I.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let z=j.length?this.mapViewport(this.viewport,M.changes):this.viewport;(N&&(N.range.head<z.from||N.range.head>z.to)||!this.viewportIsAppropriate(z))&&(z=this.getViewport(0,N));let u=!M.changes.empty||2&M.flags||z.from!=this.viewport.from||z.to!=this.viewport.to;this.viewport=z,this.updateForViewport(),u&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,M.changes))),M.flags|=this.computeVisibleRanges(),N&&(this.scrollTarget=N),!this.mustEnforceCursorAssoc&&M.selectionSet&&M.view.lineWrapping&&M.state.selection.main.empty&&M.state.selection.main.assoc&&!M.state.facet(_z)&&(this.mustEnforceCursorAssoc=!0)}measure(M){let N=M.contentDOM,D=window.getComputedStyle(N),i=this.heightOracle,j=D.whiteSpace;this.defaultTextDirection="rtl"==D.direction?Qz.RTL:Qz.LTR;let t=this.heightOracle.mustRefreshForWrapping(j),I=N.getBoundingClientRect(),z=t||this.mustMeasureContent||this.contentDOMHeight!=I.height;this.contentDOMHeight=I.height,this.mustMeasureContent=!1;let u=0,g=0;if(I.width&&I.height){let{scaleX:M,scaleY:D}=aI(N,I);(M>.005&&Math.abs(this.scaleX-M)>.005||D>.005&&Math.abs(this.scaleY-D)>.005)&&(this.scaleX=M,this.scaleY=D,u|=8,t=z=!0)}let e=(parseInt(D.paddingTop)||0)*this.scaleY,T=(parseInt(D.paddingBottom)||0)*this.scaleY;this.paddingTop==e&&this.paddingBottom==T||(this.paddingTop=e,this.paddingBottom=T,u|=10),this.editorWidth!=M.scrollDOM.clientWidth&&(i.lineWrapping&&(z=!0),this.editorWidth=M.scrollDOM.clientWidth,u|=8);let A=M.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=A&&(this.scrollAnchorHeight=-1,this.scrollTop=A),this.scrolledToBottom=UI(M.scrollDOM);let s=(this.printing?Eg:Qg)(N,this.paddingTop),L=s.top-this.pixelViewport.top,O=s.bottom-this.pixelViewport.bottom;this.pixelViewport=s;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(z=!0)),!this.inView&&!this.scrollTarget)return 0;let c=I.width;if(this.contentDOMWidth==c&&this.editorHeight==M.scrollDOM.clientHeight||(this.contentDOMWidth=I.width,this.editorHeight=M.scrollDOM.clientHeight,u|=8),z){let N=M.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(N)&&(t=!0),t||i.lineWrapping&&Math.abs(c-this.contentDOMWidth)>i.charWidth){let{lineHeight:D,charWidth:I,textHeight:z}=M.docView.measureTextSize();t=D>0&&i.refresh(j,D,I,z,c/I,N),t&&(M.docView.minWidth=0,u|=8)}L>0&&O>0?g=Math.max(L,O):L<0&&O<0&&(g=Math.min(L,O)),i.heightChanged=!1;for(let D of this.viewports){let j=D.from==this.viewport.from?N:M.docView.measureVisibleLineHeights(D);this.heightMap=(t?yg.empty().applyChanges(this.stateDeco,ej.empty,this.heightOracle,[new cu(0,0,0,M.state.doc.length)]):this.heightMap).updateHeight(i,0,t,new Ag(D.from,j))}i.heightChanged&&(u|=2)}let n=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return n&&(this.viewport=this.getViewport(g,this.scrollTarget)),this.updateForViewport(),(2&u||n)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(t?[]:this.lineGaps,M)),u|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,M.docView.enforceCursorAssoc()),u}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(M,N){let D=.5-Math.max(-.5,Math.min(.5,M/1e3/2)),i=this.heightMap,j=this.heightOracle,{visibleTop:t,visibleBottom:I}=this,z=new kg(i.lineAt(t-1e3*D,Lg.ByHeight,j,0,0).from,i.lineAt(I+1e3*(1-D),Lg.ByHeight,j,0,0).to);if(N){let{head:M}=N.range;if(M<z.from||M>z.to){let D,t=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),I=i.lineAt(M,Lg.ByPos,j,0,0);D="center"==N.y?(I.top+I.bottom)/2-t/2:"start"==N.y||"nearest"==N.y&&M<z.from?I.top:I.bottom-t,z=new kg(i.lineAt(D-500,Lg.ByHeight,j,0,0).from,i.lineAt(D+t+500,Lg.ByHeight,j,0,0).to)}}return z}mapViewport(M,N){let D=N.mapPos(M.from,-1),i=N.mapPos(M.to,1);return new kg(this.heightMap.lineAt(D,Lg.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(i,Lg.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:M,to:N},D=0){if(!this.inView)return!0;let{top:i}=this.heightMap.lineAt(M,Lg.ByPos,this.heightOracle,0,0),{bottom:j}=this.heightMap.lineAt(N,Lg.ByPos,this.heightOracle,0,0),{visibleTop:t,visibleBottom:I}=this;return(0==M||i<=t-Math.max(10,Math.min(-D,250)))&&(N==this.state.doc.length||j>=I+Math.max(10,Math.min(D,250)))&&i>t-2e3&&j<I+2e3}mapLineGaps(M,N){if(!M.length||N.empty)return M;let D=[];for(let i of M)N.touchesRange(i.from,i.to)||D.push(new Sg(N.mapPos(i.from),N.mapPos(i.to),i.size));return D}ensureLineGaps(M,N){let D=this.heightOracle.lineWrapping,i=D?1e4:2e3,j=i>>1,t=i<<1;if(this.defaultTextDirection!=Qz.LTR&&!D)return[];let I=[],z=(i,t,u,g)=>{if(t-i<j)return;let e=this.state.selection.main,T=[e.from];e.empty||T.push(e.to);for(let M of T)if(M>i&&M<t)return z(i,M-10,u,g),void z(M+10,t,u,g);let A=function(M,N){for(let D of M)if(N(D))return D;return}(M,(M=>M.from>=u.from&&M.to<=u.to&&Math.abs(M.from-i)<j&&Math.abs(M.to-t)<j&&!T.some((N=>M.from<N&&M.to>N))));if(!A){if(t<u.to&&N&&D&&N.visibleRanges.some((M=>M.from<=t&&M.to>=t))){let M=N.moveToLineBoundary(Pj.cursor(t),!1,!0).head;M>i&&(t=M)}A=new Sg(i,t,this.gapSize(u,i,t,g))}I.push(A)};for(let M of this.viewportLines){if(M.length<t)continue;let N=wg(M.from,M.to,this.stateDeco);if(N.total<t)continue;let j,I,u=this.scrollTarget?this.scrollTarget.range.head:null;if(D){let D,t,z=i/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=u){let i=Yg(N,u),j=((this.visibleBottom-this.visibleTop)/2+z)/M.height;D=i-j,t=i+j}else D=(this.visibleTop-M.top-z)/M.height,t=(this.visibleBottom-M.top+z)/M.height;j=Ug(N,D),I=Ug(N,t)}else{let M,D,t=N.total*this.heightOracle.charWidth,z=i*this.heightOracle.charWidth;if(null!=u){let i=Yg(N,u),j=((this.pixelViewport.right-this.pixelViewport.left)/2+z)/t;M=i-j,D=i+j}else M=(this.pixelViewport.left-z)/t,D=(this.pixelViewport.right+z)/t;j=Ug(N,M),I=Ug(N,D)}j>M.from&&z(M.from,j,M,N),I<M.to&&z(I,M.to,M,N)}return I}gapSize(M,N,D,i){let j=Yg(i,D)-Yg(i,N);return this.heightOracle.lineWrapping?M.height*j:i.total*this.heightOracle.charWidth*j}updateLineGaps(M){Sg.same(M,this.lineGaps)||(this.lineGaps=M,this.lineGapDeco=Oz.set(M.map((M=>M.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let M=this.stateDeco;this.lineGaps.length&&(M=M.concat(this.lineGapDeco));let N=[];Wt.spans(M,this.viewport.from,this.viewport.to,{span(M,D){N.push({from:M,to:D})},point(){}},20);let D=N.length!=this.visibleRanges.length||this.visibleRanges.some(((M,D)=>M.from!=N[D].from||M.to!=N[D].to));return this.visibleRanges=N,D?4:0}lineBlockAt(M){return M>=this.viewport.from&&M<=this.viewport.to&&this.viewportLines.find((N=>N.from<=M&&N.to>=M))||pg(this.heightMap.lineAt(M,Lg.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(M){return pg(this.heightMap.lineAt(this.scaler.fromDOM(M),Lg.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(M){let N=this.lineBlockAtHeight(M+8);return N.from>=this.viewport.from||this.viewportLines[0].top-M>200?N:this.viewportLines[0]}elementAtHeight(M){return pg(this.heightMap.blockAt(this.scaler.fromDOM(M),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 kg{constructor(M,N){this.from=M,this.to=N}}function wg(M,N,D){let i=[],j=M,t=0;return Wt.spans(D,M,N,{span(){},point(M,N){M>j&&(i.push({from:j,to:M}),t+=M-j),j=N}},20),j<N&&(i.push({from:j,to:N}),t+=N-j),{total:t,ranges:i}}function Ug({total:M,ranges:N},D){if(D<=0)return N[0].from;if(D>=1)return N[N.length-1].to;let i=Math.floor(M*D);for(let M=0;;M++){let{from:D,to:j}=N[M],t=j-D;if(i<=t)return D+i;i-=t}}function Yg(M,N){let D=0;for(let{from:i,to:j}of M.ranges){if(N<=j){D+=N-i;break}D+=j-i}return D/M.total}const Cg={toDOM:M=>M,fromDOM:M=>M,scale:1};class bg{constructor(M,N,D){let i=0,j=0,t=0;this.viewports=D.map((({from:D,to:j})=>{let t=N.lineAt(D,Lg.ByPos,M,0,0).top,I=N.lineAt(j,Lg.ByPos,M,0,0).bottom;return i+=I-t,{from:D,to:j,top:t,bottom:I,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(N.height-i);for(let M of this.viewports)M.domTop=t+(M.top-j)*this.scale,t=M.domBottom=M.domTop+(M.bottom-M.top),j=M.bottom}toDOM(M){for(let N=0,D=0,i=0;;N++){let j=N<this.viewports.length?this.viewports[N]:null;if(!j||M<j.top)return i+(M-D)*this.scale;if(M<=j.bottom)return j.domTop+(M-j.top);D=j.bottom,i=j.domBottom}}fromDOM(M){for(let N=0,D=0,i=0;;N++){let j=N<this.viewports.length?this.viewports[N]:null;if(!j||M<j.domTop)return D+(M-i)/this.scale;if(M<=j.domBottom)return j.top+(M-j.domTop);D=j.bottom,i=j.domBottom}}}function pg(M,N){if(1==N.scale)return M;let D=N.toDOM(M.top),i=N.toDOM(M.bottom);return new sg(M.from,M.length,D,i-D,Array.isArray(M._content)?M._content.map((M=>pg(M,N))):M._content)}const mg=Jj.define({combine:M=>M.join(" ")}),Zg=Jj.define({combine:M=>M.indexOf(!0)>-1}),fg=iI.newName(),vg=iI.newName(),Wg=iI.newName(),Vg={"&light":"."+vg,"&dark":"."+Wg};function Gg(M,N,D){return new iI(N,{finish:N=>/&/.test(N)?N.replace(/&\w*/,(N=>{if("&"==N)return M;if(!D||!D[N])throw new RangeError(`Unsupported selector: ${N}`);return D[N]})):M+" "+N})}const Pg=Gg("."+fg,{"&":{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",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{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"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",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,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',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"}},Vg),Rg="￿";class Bg{constructor(M,N){this.points=M,this.text="",this.lineSeparator=N.facet(bt.lineSeparator)}append(M){this.text+=M}lineBreak(){this.text+=Rg}readRange(M,N){if(!M)return this;let D=M.parentNode;for(let i=M;;){this.findPointBefore(D,i);let M=this.text.length;this.readNode(i);let j=i.nextSibling;if(j==N)break;let t=mI.get(i),I=mI.get(j);(t&&I?t.breakAfter:(t?t.breakAfter:nI(i))||nI(j)&&("BR"!=i.nodeName||i.cmIgnore)&&this.text.length>M)&&this.lineBreak(),i=j}return this.findPointBefore(D,N),this}readTextNode(M){let N=M.nodeValue;for(let D of this.points)D.node==M&&(D.pos=this.text.length+Math.min(D.offset,N.length));for(let D=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let j,t=-1,I=1;if(this.lineSeparator?(t=N.indexOf(this.lineSeparator,D),I=this.lineSeparator.length):(j=i.exec(N))&&(t=j.index,I=j[0].length),this.append(N.slice(D,t<0?N.length:t)),t<0)break;if(this.lineBreak(),I>1)for(let N of this.points)N.node==M&&N.pos>this.text.length&&(N.pos-=I-1);D=t+I}}readNode(M){if(M.cmIgnore)return;let N=mI.get(M),D=N&&N.overrideDOMText;if(null!=D){this.findPointInside(M,D.length);for(let M=D.iter();!M.next().done;)M.lineBreak?this.lineBreak():this.append(M.value)}else 3==M.nodeType?this.readTextNode(M):"BR"==M.nodeName?M.nextSibling&&this.lineBreak():1==M.nodeType&&this.readRange(M.firstChild,null)}findPointBefore(M,N){for(let D of this.points)D.node==M&&M.childNodes[D.offset]==N&&(D.pos=this.text.length)}findPointInside(M,N){for(let D of this.points)(3==M.nodeType?D.node==M:M.contains(D.node))&&(D.pos=this.text.length+(Jg(M,D.node,D.offset)?N:0))}}function Jg(M,N,D){for(;;){if(!N||D<oI(N))return!1;if(N==M)return!0;D=cI(N)+1,N=N.parentNode}}class Fg{constructor(M,N){this.node=M,this.offset=N,this.pos=-1}}class Hg{constructor(M,N,D,i){this.typeOver=i,this.bounds=null,this.text="";let{impreciseHead:j,impreciseAnchor:t}=M.docView;if(M.state.readOnly&&N>-1)this.newSel=null;else if(N>-1&&(this.bounds=M.docView.domBoundsAround(N,D,0))){let N=j||t?[]:function(M){let N=[];if(M.root.activeElement!=M.contentDOM)return N;let{anchorNode:D,anchorOffset:i,focusNode:j,focusOffset:t}=M.observer.selectionRange;D&&(N.push(new Fg(D,i)),j==D&&t==i||N.push(new Fg(j,t)));return N}(M),D=new Bg(N,M.state);D.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=D.text,this.newSel=function(M,N){if(0==M.length)return null;let D=M[0].pos,i=2==M.length?M[1].pos:D;return D>-1&&i>-1?Pj.single(D+N,i+N):null}(N,this.bounds.from)}else{let N=M.observer.selectionRange,D=j&&j.node==N.focusNode&&j.offset==N.focusOffset||!sI(M.contentDOM,N.focusNode)?M.state.selection.main.head:M.docView.posFromDOM(N.focusNode,N.focusOffset),i=t&&t.node==N.anchorNode&&t.offset==N.anchorOffset||!sI(M.contentDOM,N.anchorNode)?M.state.selection.main.anchor:M.docView.posFromDOM(N.anchorNode,N.anchorOffset),I=M.viewport;if((qI.ios||qI.chrome)&&M.state.selection.main.empty&&D!=i&&(I.from>0||I.to<M.state.doc.length)){let N=Math.min(D,i),j=Math.max(D,i),t=I.from-N,z=I.to-j;0!=t&&1!=t&&0!=N||0!=z&&-1!=z&&j!=M.state.doc.length||(D=0,i=M.state.doc.length)}this.newSel=Pj.single(i,D)}}}function Xg(M,N){let D,{newSel:i}=N,j=M.state.selection.main,t=M.inputState.lastKeyTime>Date.now()-100?M.inputState.lastKeyCode:-1;if(N.bounds){let{from:i,to:I}=N.bounds,z=j.from,u=null;(8===t||qI.android&&N.text.length<I-i)&&(z=j.to,u="end");let g=function(M,N,D,i){let j=Math.min(M.length,N.length),t=0;for(;t<j&&M.charCodeAt(t)==N.charCodeAt(t);)t++;if(t==j&&M.length==N.length)return null;let I=M.length,z=N.length;for(;I>0&&z>0&&M.charCodeAt(I-1)==N.charCodeAt(z-1);)I--,z--;if("end"==i){D-=I+Math.max(0,t-Math.min(I,z))-t}if(I<t&&M.length<N.length){t-=D<=t&&D>=I?t-D:0,z=t+(z-I),I=t}else if(z<t){t-=D<=t&&D>=z?t-D:0,I=t+(I-z),z=t}return{from:t,toA:I,toB:z}}(M.state.doc.sliceString(i,I,Rg),N.text,z-i,u);g&&(qI.chrome&&13==t&&g.toB==g.from+2&&N.text.slice(g.from,g.toB)==Rg+Rg&&g.toB--,D={from:i+g.from,to:i+g.toA,insert:ej.of(N.text.slice(g.from,g.toB).split(Rg))})}else i&&(!M.hasFocus&&M.state.facet(Du)||i.main.eq(j))&&(i=null);if(!D&&!i)return!1;if(!D&&N.typeOver&&!j.empty&&i&&i.main.empty?D={from:j.from,to:j.to,insert:M.state.doc.slice(j.from,j.to)}:D&&D.from>=j.from&&D.to<=j.to&&(D.from!=j.from||D.to!=j.to)&&j.to-j.from-(D.to-D.from)<=4?D={from:j.from,to:j.to,insert:M.state.doc.slice(j.from,D.from).append(D.insert).append(M.state.doc.slice(D.to,j.to))}:(qI.mac||qI.android)&&D&&D.from==D.to&&D.from==j.head-1&&/^\. ?$/.test(D.insert.toString())&&"off"==M.contentDOM.getAttribute("autocorrect")?(i&&2==D.insert.length&&(i=Pj.single(i.main.anchor-1,i.main.head-1)),D={from:j.from,to:j.to,insert:ej.of([" "])}):qI.chrome&&D&&D.from==D.to&&D.from==j.head&&"\n "==D.insert.toString()&&M.lineWrapping&&(i&&(i=Pj.single(i.main.anchor-1,i.main.head-1)),D={from:j.from,to:j.to,insert:ej.of([" "])}),D){if(qI.ios&&M.inputState.flushIOSKey(D))return!0;if(qI.android&&(D.to==j.to&&(D.from==j.from||D.from==j.from-1&&" "==M.state.sliceDoc(D.from,j.from))&&1==D.insert.length&&2==D.insert.lines&&kI(M.contentDOM,"Enter",13)||(D.from==j.from-1&&D.to==j.to&&0==D.insert.length||8==t&&D.insert.length<D.to-D.from&&D.to>j.head)&&kI(M.contentDOM,"Backspace",8)||D.from==j.from&&D.to==j.to+1&&0==D.insert.length&&kI(M.contentDOM,"Delete",46)))return!0;let N,I=D.insert.toString();M.inputState.composing>=0&&M.inputState.composing++;let z=()=>N||(N=function(M,N,D){let i,j=M.state,t=j.selection.main;if(N.from>=t.from&&N.to<=t.to&&N.to-N.from>=(t.to-t.from)/3&&(!D||D.main.empty&&D.main.from==N.from+N.insert.length)&&M.inputState.composing<0){let D=t.from<N.from?j.sliceDoc(t.from,N.from):"",I=t.to>N.to?j.sliceDoc(N.to,t.to):"";i=j.replaceSelection(M.state.toText(D+N.insert.sliceString(0,void 0,M.state.lineBreak)+I))}else{let I=j.changes(N),z=D&&D.main.to<=I.newLength?D.main:void 0;if(j.selection.ranges.length>1&&M.inputState.composing>=0&&N.to<=t.to&&N.to>=t.to-10){let u,g=M.state.sliceDoc(N.from,N.to),e=D&&ru(M,D.main.head);if(e){let M=N.insert.length-(N.to-N.from);u={from:e.from,to:e.to-M}}else u=M.state.doc.lineAt(t.head);let T=t.to-N.to,A=t.to-t.from;i=j.changeByRange((D=>{if(D.from==t.from&&D.to==t.to)return{changes:I,range:z||D.map(I)};let i=D.to-T,e=i-g.length;if(D.to-D.from!=A||M.state.sliceDoc(e,i)!=g||D.to>=u.from&&D.from<=u.to)return{range:D};let s=j.changes({from:e,to:i,insert:N.insert}),L=D.to-t.to;return{changes:s,range:z?Pj.range(Math.max(0,z.anchor+L),Math.max(0,z.head+L)):D.map(s)}}))}else i={changes:I,selection:z&&j.selection.replaceRange(z)}}let I="input.type";(M.composing||M.inputState.compositionPendingChange&&M.inputState.compositionEndedAt>Date.now()-50)&&(M.inputState.compositionPendingChange=!1,I+=".compose",M.inputState.compositionFirstChange&&(I+=".start",M.inputState.compositionFirstChange=!1));return j.update(i,{userEvent:I,scrollIntoView:!0})}(M,D,i));return M.state.facet(Hz).some((N=>N(M,D.from,D.to,I,z)))||M.dispatch(z()),!0}if(i&&!i.main.eq(j)){let N=!1,D="select";return M.inputState.lastSelectionTime>Date.now()-50&&("select"==M.inputState.lastSelectionOrigin&&(N=!0),D=M.inputState.lastSelectionOrigin),M.dispatch({selection:i,scrollIntoView:N,userEvent:D}),!0}return!1}const $g={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},_g=qI.ie&&qI.ie_version<=11;class qg{constructor(M){this.view=M,this.active=!1,this.selectionRange=new QI,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=M.contentDOM,this.observer=new MutationObserver((N=>{for(let M of N)this.queue.push(M);(qI.ie&&qI.ie_version<=11||qI.ios&&M.composing)&&N.some((M=>"childList"==M.type&&M.removedNodes.length||"characterData"==M.type&&M.oldValue.length>M.target.nodeValue.length))?this.flushSoon():this.flush()})),_g&&(this.onCharData=M=>{this.queue.push({target:M.target,type:"characterData",oldValue:M.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var M;(null===(M=this.view.docView)||void 0===M?void 0:M.lastUpdate)<Date.now()-75&&this.onResize()})),this.resizeScroll.observe(M.scrollDOM)),this.addWindowListeners(this.win=M.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((M=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),M.length>0&&M[M.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((M=>{M.length>0&&M[M.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(M){this.view.inputState.runHandlers("scroll",M),this.intersecting&&this.view.measure()}onScroll(M){this.intersecting&&this.flush(!1),this.onScrollChanged(M)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(M){("change"!=M.type||M.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(M){if(this.gapIntersection&&(M.length!=this.gaps.length||this.gaps.some(((N,D)=>N!=M[D])))){this.gapIntersection.disconnect();for(let N of M)this.gapIntersection.observe(N);this.gaps=M}}onSelectionChange(M){let N=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:D}=this,i=this.selectionRange;if(D.state.facet(Du)?D.root.activeElement!=this.dom:!LI(D.dom,i))return;let j=i.anchorNode&&D.docView.nearest(i.anchorNode);j&&j.ignoreEvent(M)?N||(this.selectionChanged=!1):(qI.ie&&qI.ie_version<=11||qI.android&&qI.chrome)&&!D.state.selection.main.empty&&i.focusNode&&yI(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:M}=this,N=AI(M.root);if(!N)return!1;let D=qI.safari&&11==M.root.nodeType&&function(M){let N=M.activeElement;for(;N&&N.shadowRoot;)N=N.shadowRoot.activeElement;return N}(this.dom.ownerDocument)==this.dom&&function(M,N){if(N.getComposedRanges){let D=N.getComposedRanges(M.root)[0];if(D)return Me(M,D)}let D=null;function i(M){M.preventDefault(),M.stopImmediatePropagation(),D=M.getTargetRanges()[0]}return M.contentDOM.addEventListener("beforeinput",i,!0),M.dom.ownerDocument.execCommand("indent"),M.contentDOM.removeEventListener("beforeinput",i,!0),D?Me(M,D):null}(this.view,N)||N;if(!D||this.selectionRange.eq(D))return!1;let i=LI(this.dom,D);return i&&!this.selectionChanged&&M.inputState.lastFocusTime>Date.now()-200&&M.inputState.lastTouchTime<Date.now()-300&&function(M,N){let D=N.focusNode,i=N.focusOffset;if(!D||N.anchorNode!=D||N.anchorOffset!=i)return!1;for(i=Math.min(i,oI(D));;)if(i){if(1!=D.nodeType)return!1;let M=D.childNodes[i-1];"false"==M.contentEditable?i--:(D=M,i=oI(D))}else{if(D==M)return!0;i=cI(D),D=D.parentNode}}(this.dom,D)?(this.view.inputState.lastFocusTime=0,M.docView.updateSelection(),!1):(this.selectionRange.setRange(D),i&&(this.selectionChanged=!0),!0)}setSelectionRange(M,N){this.selectionRange.set(M.node,M.offset,N.node,N.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let M=0,N=null;for(let D=this.dom;D;)if(1==D.nodeType)!N&&M<this.scrollTargets.length&&this.scrollTargets[M]==D?M++:N||(N=this.scrollTargets.slice(0,M)),N&&N.push(D),D=D.assignedSlot||D.parentNode;else{if(11!=D.nodeType)break;D=D.host}if(M<this.scrollTargets.length&&!N&&(N=this.scrollTargets.slice(0,M)),N){for(let M of this.scrollTargets)M.removeEventListener("scroll",this.onScroll);for(let M of this.scrollTargets=N)M.addEventListener("scroll",this.onScroll)}}ignore(M){if(!this.active)return M();try{return this.stop(),M()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,$g),_g&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),_g&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(M,N){var D;if(!this.delayedAndroidKey){let M=()=>{let M=this.delayedAndroidKey;if(M){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=M.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&M.force&&kI(this.dom,M.key,M.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(M)}this.delayedAndroidKey&&"Enter"!=M||(this.delayedAndroidKey={key:M,keyCode:N,force:this.lastChange<Date.now()-50||!!(null===(D=this.delayedAndroidKey)||void 0===D?void 0:D.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame((()=>{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let M of this.observer.takeRecords())this.queue.push(M);return this.queue}processRecords(){let M=this.pendingRecords();M.length&&(this.queue=[]);let N=-1,D=-1,i=!1;for(let j of M){let M=this.readMutation(j);M&&(M.typeOver&&(i=!0),-1==N?({from:N,to:D}=M):(N=Math.min(M.from,N),D=Math.max(M.to,D)))}return{from:N,to:D,typeOver:i}}readChange(){let{from:M,to:N,typeOver:D}=this.processRecords(),i=this.selectionChanged&&LI(this.dom,this.selectionRange);if(M<0&&!i)return null;M>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let j=new Hg(this.view,M,N,D);return this.view.docView.domChanged={newSel:j.newSel?j.newSel.main:null},j}flush(M=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;M&&this.readSelectionRange();let N=this.readChange();if(!N)return this.view.requestMeasure(),!1;let D=this.view.state,i=Xg(this.view,N);return this.view.state==D&&this.view.update([]),i}readMutation(M){let N=this.view.docView.nearest(M.target);if(!N||N.ignoreMutation(M))return null;if(N.markDirty("attributes"==M.type),"attributes"==M.type&&(N.flags|=4),"childList"==M.type){let D=Kg(N,M.previousSibling||M.target.previousSibling,-1),i=Kg(N,M.nextSibling||M.target.nextSibling,1);return{from:D?N.posAfter(D):N.posAtStart,to:i?N.posBefore(i):N.posAtEnd,typeOver:!1}}return"characterData"==M.type?{from:N.posAtStart,to:N.posAtEnd,typeOver:M.target.nodeValue==M.oldValue}:null}setWindow(M){M!=this.win&&(this.removeWindowListeners(this.win),this.win=M,this.addWindowListeners(this.win))}addWindowListeners(M){M.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener("change",this.onPrint):M.addEventListener("beforeprint",this.onPrint),M.addEventListener("scroll",this.onScroll),M.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(M){M.removeEventListener("scroll",this.onScroll),M.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener("change",this.onPrint):M.removeEventListener("beforeprint",this.onPrint),M.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var M,N,D;this.stop(),null===(M=this.intersection)||void 0===M||M.disconnect(),null===(N=this.gapIntersection)||void 0===N||N.disconnect(),null===(D=this.resizeScroll)||void 0===D||D.disconnect();for(let M of this.scrollTargets)M.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 Kg(M,N,D){for(;N;){let i=mI.get(N);if(i&&i.parent==M)return i;let j=N.parentNode;N=j!=M.dom?j:D>0?N.nextSibling:N.previousSibling}return null}function Me(M,N){let D=N.startContainer,i=N.startOffset,j=N.endContainer,t=N.endOffset,I=M.docView.domAtPos(M.state.selection.main.anchor);return yI(I.node,I.offset,j,t)&&([D,i,j,t]=[j,t,D,i]),{anchorNode:D,anchorOffset:i,focusNode:j,focusOffset:t}}class Ne{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}constructor(M={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),M.parent&&M.parent.appendChild(this.dom);let{dispatch:N}=M;this.dispatchTransactions=M.dispatchTransactions||N&&(M=>M.forEach((M=>N(M,this))))||(M=>this.update(M)),this.dispatch=this.dispatch.bind(this),this._root=M.root||function(M){for(;M;){if(M&&(9==M.nodeType||11==M.nodeType&&M.host))return M;M=M.assignedSlot||M.parentNode}return null}(M.parent)||document,this.viewState=new dg(M.state||bt.create(M)),M.scrollTo&&M.scrollTo.is(Mu)&&(this.viewState.scrollTarget=M.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ju).map((M=>new Iu(M)));for(let M of this.plugins)M.update(this);this.observer=new qg(this),this.inputState=new mu(this),this.inputState.ensureHandlers(this.plugins),this.docView=new lu(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...M){let N=1==M.length&&M[0]instanceof at?M:1==M.length&&Array.isArray(M[0])?M[0]:[this.state.update(...M)];this.dispatchTransactions(N,this)}update(M){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let N,D=!1,i=!1,j=this.state;for(let N of M){if(N.startState!=j)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");j=N.state}if(this.destroyed)return void(this.viewState.state=j);let t=this.hasFocus,I=0,z=null;M.some((M=>M.annotation(Ig)))?(this.inputState.notifiedFocused=t,I=1):t!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=t,z=zg(j,t),z||(I=1));let u=this.observer.delayedAndroidKey,g=null;if(u?(this.observer.clearDelayedAndroidKey(),g=this.observer.readChange(),(g&&!this.state.doc.eq(j.doc)||!this.state.selection.eq(j.selection))&&(g=null)):this.observer.clear(),j.facet(bt.phrases)!=this.state.facet(bt.phrases))return this.setState(j);N=nu.create(this,j,M),N.flags|=I;let e=this.viewState.scrollTarget;try{this.updateState=2;for(let N of M){if(e&&(e=e.map(N.changes)),N.scrollIntoView){let{main:M}=N.state.selection;e=new Kz(M.empty?M:Pj.cursor(M.head,M.head>M.anchor?-1:1))}for(let M of N.effects)M.is(Mu)&&(e=M.value.clip(this.state))}this.viewState.update(N,e),this.bidiCache=je.update(this.bidiCache,N.changes),N.empty||(this.updatePlugins(N),this.inputState.update(N)),D=this.docView.update(N),this.state.facet(yu)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(M),this.docView.updateSelection(D,M.some((M=>M.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(N.startState.facet(mg)!=N.state.facet(mg)&&(this.viewState.mustMeasureContent=!0),(D||i||e||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),D&&this.docViewUpdate(),!N.empty)for(let M of this.state.facet(Fz))try{M(N)}catch(M){Nu(this.state,M,"update listener")}(z||g)&&Promise.resolve().then((()=>{z&&this.state==z.startState&&this.dispatch(z),g&&!Xg(this,g)&&u.force&&kI(this.contentDOM,u.key,u.keyCode)}))}setState(M){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=M);this.updateState=2;let N=this.hasFocus;try{for(let M of this.plugins)M.destroy(this);this.viewState=new dg(M),this.plugins=M.facet(ju).map((M=>new Iu(M))),this.pluginMap.clear();for(let M of this.plugins)M.update(this);this.docView.destroy(),this.docView=new lu(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}N&&this.focus(),this.requestMeasure()}updatePlugins(M){let N=M.startState.facet(ju),D=M.state.facet(ju);if(N!=D){let i=[];for(let j of D){let D=N.indexOf(j);if(D<0)i.push(new Iu(j));else{let N=this.plugins[D];N.mustUpdate=M,i.push(N)}}for(let N of this.plugins)N.mustUpdate!=M&&N.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let N of this.plugins)N.mustUpdate=M;for(let M=0;M<this.plugins.length;M++)this.plugins[M].update(this);N!=D&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let M of this.plugins){let N=M.value;if(N&&N.docViewUpdate)try{N.docViewUpdate(this)}catch(M){Nu(this.state,M,"doc view update listener")}}}measure(M=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,M&&this.observer.forceFlush();let N=null,D=this.scrollDOM,i=D.scrollTop*this.scaleY,{scrollAnchorPos:j,scrollAnchorHeight:t}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(t=-1),this.viewState.scrollAnchorHeight=-1;try{for(let M=0;;M++){if(t<0)if(UI(D))j=-1,t=this.viewState.heightMap.height;else{let M=this.viewState.scrollAnchorAt(i);j=M.from,t=M.top}this.updateState=1;let I=this.viewState.measure(this);if(!I&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(M>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let z=[];4&I||([this.measureRequests,z]=[z,this.measureRequests]);let u=z.map((M=>{try{return M.read(this)}catch(M){return Nu(this.state,M),ie}})),g=nu.create(this,this.state,[]),e=!1;g.flags|=I,N?N.flags|=I:N=g,this.updateState=2,g.empty||(this.updatePlugins(g),this.inputState.update(g),this.updateAttrs(),e=this.docView.update(g),e&&this.docViewUpdate());for(let M=0;M<z.length;M++)if(u[M]!=ie)try{let N=z[M];N.write&&N.write(u[M],this)}catch(M){Nu(this.state,M)}if(e&&this.docView.updateSelection(!0),!g.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,t=-1;continue}{let M=(j<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(j).top)-t;if(M>1||M<-1){i+=M,D.scrollTop=i/this.scaleY,t=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(N&&!N.empty)for(let M of this.state.facet(Fz))M(N)}get themeClasses(){return fg+" "+(this.state.facet(Zg)?Wg:vg)+" "+this.state.facet(mg)}updateAttrs(){let M=te(this,zu,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),N={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Du)?"true":"false",class:"cm-content",style:`${qI.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(N["aria-readonly"]="true"),te(this,uu,N);let D=this.observer.ignore((()=>{let D=gz(this.contentDOM,this.contentAttrs,N),i=gz(this.dom,this.editorAttrs,M);return D||i}));return this.editorAttrs=M,this.contentAttrs=N,D}showAnnouncements(M){let N=!0;for(let D of M)for(let M of D.effects)if(M.is(Ne.announce)){N&&(this.announceDOM.textContent=""),N=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=M.value}}mountStyles(){this.styleModules=this.state.facet(yu);let M=this.state.facet(Ne.cspNonce);iI.mount(this.root,this.styleModules.concat(Pg).reverse(),M?{nonce:M}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(M){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),M){if(this.measureRequests.indexOf(M)>-1)return;if(null!=M.key)for(let N=0;N<this.measureRequests.length;N++)if(this.measureRequests[N].key===M.key)return void(this.measureRequests[N]=M);this.measureRequests.push(M)}}plugin(M){let N=this.pluginMap.get(M);return(void 0===N||N&&N.spec!=M)&&this.pluginMap.set(M,N=this.plugins.find((N=>N.spec==M))||null),N&&N.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(M){return this.readMeasured(),this.viewState.elementAtHeight(M)}lineBlockAtHeight(M){return this.readMeasured(),this.viewState.lineBlockAtHeight(M)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(M){return this.viewState.lineBlockAt(M)}get contentHeight(){return this.viewState.contentHeight}moveByChar(M,N,D){return pu(this,M,Cu(this,M,N,D))}moveByGroup(M,N){return pu(this,M,Cu(this,M,N,(N=>function(M,N,D){let i=M.state.charCategorizer(N),j=i(D);return M=>{let N=i(M);return j==wt.Space&&(j=N),j==N}}(this,M.head,N))))}visualLineSide(M,N){let D=this.bidiSpans(M),i=this.textDirectionAt(M.from),j=D[N?D.length-1:0];return Pj.cursor(j.side(N,i)+M.from,j.forward(!N,i)?1:-1)}moveToLineBoundary(M,N,D=!0){return function(M,N,D,i){let j=Yu(M,N.head),t=i&&j.type==Lz.Text&&(M.lineWrapping||j.widgetLineBreaks)?M.coordsAtPos(N.assoc<0&&N.head>j.from?N.head-1:N.head):null;if(t){let N=M.dom.getBoundingClientRect(),i=M.textDirectionAt(j.from),I=M.posAtCoords({x:D==(i==Qz.LTR)?N.right-1:N.left+1,y:(t.top+t.bottom)/2});if(null!=I)return Pj.cursor(I,D?-1:1)}return Pj.cursor(D?j.to:j.from,D?-1:1)}(this,M,N,D)}moveVertically(M,N,D){return pu(this,M,function(M,N,D,i){let j=N.head,t=D?1:-1;if(j==(D?M.state.doc.length:0))return Pj.cursor(j,N.assoc);let I,z=N.goalColumn,u=M.contentDOM.getBoundingClientRect(),g=M.coordsAtPos(j,N.assoc||-1),e=M.documentTop;if(g)null==z&&(z=g.left-u.left),I=t<0?g.top:g.bottom;else{let N=M.viewState.lineBlockAt(j);null==z&&(z=Math.min(u.right-u.left,M.defaultCharacterWidth*(j-N.from))),I=(t<0?N.top:N.bottom)+e}let T=u.left+z,A=null!=i?i:M.viewState.heightOracle.textHeight>>1;for(let N=0;;N+=10){let D=I+(A+N)*t,i=wu(M,{x:T,y:D},!1,t);if(D<u.top||D>u.bottom||(t<0?i<j:i>j)){let N=M.docView.coordsForChar(i),j=!N||D<N.top?-1:1;return Pj.cursor(i,j,void 0,z)}}}(this,M,N,D))}domAtPos(M){return this.docView.domAtPos(M)}posAtDOM(M,N=0){return this.docView.posFromDOM(M,N)}posAtCoords(M,N=!0){return this.readMeasured(),wu(this,M,N)}coordsAtPos(M,N=1){this.readMeasured();let D=this.docView.coordsAt(M,N);if(!D||D.left==D.right)return D;let i=this.state.doc.lineAt(M),j=this.bidiSpans(i);return rI(D,j[bz.find(j,M-i.from,-1,N)].dir==Qz.LTR==N>0)}coordsForChar(M){return this.readMeasured(),this.docView.coordsForChar(M)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(M){return!this.state.facet($z)||M<this.viewport.from||M>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(M))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(M){if(M.length>De)return vz(M.length);let N,D=this.textDirectionAt(M.from);for(let i of this.bidiCache)if(i.from==M.from&&i.dir==D&&(i.fresh||pz(i.isolates,N=su(this,M))))return i.order;N||(N=su(this,M));let i=function(M,N,D){if(!M)return[new bz(0,0,N==Sz?1:0)];if(N==Ez&&!D.length&&!Cz.test(M))return vz(M.length);if(D.length)for(;M.length>mz.length;)mz[mz.length]=256;let i=[],j=N==Ez?0:1;return fz(M,j,j,D,0,M.length,i),i}(M.text,D,N);return this.bidiCache.push(new je(M.from,M.to,D,N,!0,i)),i}get hasFocus(){var M;return(this.dom.ownerDocument.hasFocus()||qI.safari&&(null===(M=this.inputState)||void 0===M?void 0:M.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{hI(this.contentDOM),this.docView.updateSelection()}))}setRoot(M){this._root!=M&&(this._root=M,this.observer.setWindow((9==M.nodeType?M:M.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let M of this.plugins)M.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(M,N={}){return Mu.of(new Kz("number"==typeof M?Pj.cursor(M):M,N.y,N.x,N.yMargin,N.xMargin))}scrollSnapshot(){let{scrollTop:M,scrollLeft:N}=this.scrollDOM,D=this.viewState.scrollAnchorAt(M);return Mu.of(new Kz(Pj.cursor(D.from),"start","start",D.top-M,N,!0))}static domEventHandlers(M){return tu.define((()=>({})),{eventHandlers:M})}static domEventObservers(M){return tu.define((()=>({})),{eventObservers:M})}static theme(M,N){let D=iI.newName(),i=[mg.of(D),yu.of(Gg(`.${D}`,M))];return N&&N.dark&&i.push(Zg.of(!0)),i}static baseTheme(M){return tt.lowest(yu.of(Gg("."+fg,M,Vg)))}static findFromDOM(M){var N;let D=M.querySelector(".cm-content"),i=D&&mI.get(D)||mI.get(M);return(null===(N=null==i?void 0:i.rootView)||void 0===N?void 0:N.view)||null}}Ne.styleModule=yu,Ne.inputHandler=Hz,Ne.scrollHandler=qz,Ne.focusChangeEffect=Xz,Ne.perLineTextDirection=$z,Ne.exceptionSink=Jz,Ne.updateListener=Fz,Ne.editable=Du,Ne.mouseSelectionStyle=Bz,Ne.dragMovesSelection=Rz,Ne.clickAddsSelectionRange=Pz,Ne.decorations=gu,Ne.outerDecorations=eu,Ne.atomicRanges=Tu,Ne.bidiIsolatedRanges=Au,Ne.scrollMargins=Lu,Ne.darkTheme=Zg,Ne.cspNonce=Jj.define({combine:M=>M.length?M[0]:""}),Ne.contentAttributes=uu,Ne.editorAttributes=zu,Ne.lineWrapping=Ne.contentAttributes.of({class:"cm-lineWrapping"}),Ne.announce=xt.define();const De=4096,ie={};class je{constructor(M,N,D,i,j,t){this.from=M,this.to=N,this.dir=D,this.isolates=i,this.fresh=j,this.order=t}static update(M,N){if(N.empty&&!M.some((M=>M.fresh)))return M;let D=[],i=M.length?M[M.length-1].dir:Qz.LTR;for(let j=Math.max(0,M.length-10);j<M.length;j++){let t=M[j];t.dir!=i||N.touchesRange(t.from,t.to)||D.push(new je(N.mapPos(t.from,1),N.mapPos(t.to,-1),t.dir,t.isolates,!1,t.order))}return D}}function te(M,N,D){for(let i=M.state.facet(N),j=i.length-1;j>=0;j--){let N=i[j],t="function"==typeof N?N(M):N;t&&Iz(t,D)}return D}const Ie=qI.mac?"mac":qI.windows?"win":qI.linux?"linux":"key";function ze(M,N,D){return N.altKey&&(M="Alt-"+M),N.ctrlKey&&(M="Ctrl-"+M),N.metaKey&&(M="Meta-"+M),!1!==D&&N.shiftKey&&(M="Shift-"+M),M}const ue=tt.default(Ne.domEventHandlers({keydown:(M,N)=>Le(Te(N.state),M,N,"editor")})),ge=Jj.define({enables:ue}),ee=new WeakMap;function Te(M){let N=M.facet(ge),D=ee.get(N);return D||ee.set(N,D=function(M,N=Ie){let D=Object.create(null),i=Object.create(null),j=(M,N)=>{let D=i[M];if(null==D)i[M]=N;else if(D!=N)throw new Error("Key binding "+M+" is used both as a regular binding and as a multi-stroke prefix")},t=(M,i,t,I,z)=>{var u,g;let e=D[M]||(D[M]=Object.create(null)),T=i.split(/ (?!$)/).map((M=>function(M,N){const D=M.split(/-(?!$)/);let i,j,t,I,z=D[D.length-1];"Space"==z&&(z=" ");for(let M=0;M<D.length-1;++M){const z=D[M];if(/^(cmd|meta|m)$/i.test(z))I=!0;else if(/^a(lt)?$/i.test(z))i=!0;else if(/^(c|ctrl|control)$/i.test(z))j=!0;else if(/^s(hift)?$/i.test(z))t=!0;else{if(!/^mod$/i.test(z))throw new Error("Unrecognized modifier name: "+z);"mac"==N?I=!0:j=!0}}return i&&(z="Alt-"+z),j&&(z="Ctrl-"+z),I&&(z="Meta-"+z),t&&(z="Shift-"+z),z}(M,N)));for(let N=1;N<T.length;N++){let D=T.slice(0,N).join(" ");j(D,!0),e[D]||(e[D]={preventDefault:!0,stopPropagation:!1,run:[N=>{let i=Ae={view:N,prefix:D,scope:M};return setTimeout((()=>{Ae==i&&(Ae=null)}),se),!0}]})}let A=T.join(" ");j(A,!1);let s=e[A]||(e[A]={preventDefault:!1,stopPropagation:!1,run:(null===(g=null===(u=e._any)||void 0===u?void 0:u.run)||void 0===g?void 0:g.slice())||[]});t&&s.run.push(t),I&&(s.preventDefault=!0),z&&(s.stopPropagation=!0)};for(let i of M){let M=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let N of M){let M=D[N]||(D[N]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let N in M)M[N].run.push(i.any)}let j=i[N]||i.key;if(j)for(let N of M)t(N,j,i.run,i.preventDefault,i.stopPropagation),i.shift&&t(N,"Shift-"+j,i.shift,i.preventDefault,i.stopPropagation)}return D}(N.reduce(((M,N)=>M.concat(N)),[]))),D}let Ae=null;const se=4e3;function Le(M,N,D,i){let j=function(M){var N=!(uI&&M.metaKey&&M.shiftKey&&!M.ctrlKey&&!M.altKey||gI&&M.shiftKey&&M.key&&1==M.key.length||"Unidentified"==M.key)&&M.key||(M.shiftKey?zI:II)[M.keyCode]||M.key||"Unidentified";return"Esc"==N&&(N="Escape"),"Del"==N&&(N="Delete"),"Left"==N&&(N="ArrowLeft"),"Up"==N&&(N="ArrowUp"),"Right"==N&&(N="ArrowRight"),"Down"==N&&(N="ArrowDown"),N}(N),t=Uj(kj(j,0))==j.length&&" "!=j,I="",z=!1,u=!1,g=!1;Ae&&Ae.view==D&&Ae.scope==i&&(I=Ae.prefix+" ",Vu.indexOf(N.keyCode)<0&&(u=!0,Ae=null));let e,T,A=new Set,s=M=>{if(M){for(let i of M.run)if(!A.has(i)&&(A.add(i),i(D,N)))return M.stopPropagation&&(g=!0),!0;M.preventDefault&&(M.stopPropagation&&(g=!0),u=!0)}return!1},L=M[i];return L&&(s(L[I+ze(j,N,!t)])?z=!0:t&&(N.altKey||N.metaKey||N.ctrlKey)&&!(qI.windows&&N.ctrlKey&&N.altKey)&&(e=II[N.keyCode])&&e!=j?(s(L[I+ze(e,N,!0)])||N.shiftKey&&(T=zI[N.keyCode])!=j&&T!=e&&s(L[I+ze(T,N,!1)]))&&(z=!0):t&&N.shiftKey&&s(L[I+ze(j,N,!0)])&&(z=!0),!z&&s(L._any)&&(z=!0)),u&&(z=!0),z&&g&&N.stopPropagation(),z}class Oe{constructor(M,N,D,i,j){this.className=M,this.left=N,this.top=D,this.width=i,this.height=j}draw(){let M=document.createElement("div");return M.className=this.className,this.adjust(M),M}update(M,N){return N.className==this.className&&(this.adjust(M),!0)}adjust(M){M.style.left=this.left+"px",M.style.top=this.top+"px",null!=this.width&&(M.style.width=this.width+"px"),M.style.height=this.height+"px"}eq(M){return this.left==M.left&&this.top==M.top&&this.width==M.width&&this.height==M.height&&this.className==M.className}static forRange(M,N,D){if(D.empty){let i=M.coordsAtPos(D.head,D.assoc||1);if(!i)return[];let j=ye(M);return[new Oe(N,i.left-j.left,i.top-j.top,null,i.bottom-i.top)]}return function(M,N,D){if(D.to<=M.viewport.from||D.from>=M.viewport.to)return[];let i=Math.max(D.from,M.viewport.from),j=Math.min(D.to,M.viewport.to),t=M.textDirection==Qz.LTR,I=M.contentDOM,z=I.getBoundingClientRect(),u=ye(M),g=I.querySelector(".cm-line"),e=g&&window.getComputedStyle(g),T=z.left+(e?parseInt(e.paddingLeft)+Math.min(0,parseInt(e.textIndent)):0),A=z.right-(e?parseInt(e.paddingRight):0),s=Yu(M,i),L=Yu(M,j),O=s.type==Lz.Text?s:null,y=L.type==Lz.Text?L:null;O&&(M.lineWrapping||s.widgetLineBreaks)&&(O=ce(M,i,O));y&&(M.lineWrapping||L.widgetLineBreaks)&&(y=ce(M,j,y));if(O&&y&&O.from==y.from)return n(l(D.from,D.to,O));{let N=O?l(D.from,null,O):o(s,!1),i=y?l(null,D.to,y):o(L,!0),j=[];return(O||s).to<(y||L).from-(O&&y?1:0)||s.widgetLineBreaks>1&&N.bottom+M.defaultLineHeight/2<i.top?j.push(c(T,N.bottom,A,i.top)):N.bottom<i.top&&M.elementAtHeight((N.bottom+i.top)/2).type==Lz.Text&&(N.bottom=i.top=(N.bottom+i.top)/2),n(N).concat(j).concat(n(i))}function c(M,D,i,j){return new Oe(N,M-u.left,D-u.top-.01,i-M,j-D+.01)}function n({top:M,bottom:N,horizontal:D}){let i=[];for(let j=0;j<D.length;j+=2)i.push(c(D[j],M,D[j+1],N));return i}function l(N,D,i){let j=1e9,I=-1e9,z=[];function u(N,D,u,g,e){let s=M.coordsAtPos(N,N==i.to?-2:2),L=M.coordsAtPos(u,u==i.from?2:-2);s&&L&&(j=Math.min(s.top,L.top,j),I=Math.max(s.bottom,L.bottom,I),e==Qz.LTR?z.push(t&&D?T:s.left,t&&g?A:L.right):z.push(!t&&g?T:L.left,!t&&D?A:s.right))}let g=null!=N?N:i.from,e=null!=D?D:i.to;for(let i of M.visibleRanges)if(i.to>g&&i.from<e)for(let j=Math.max(i.from,g),t=Math.min(i.to,e);;){let i=M.state.doc.lineAt(j);for(let I of M.bidiSpans(i)){let M=I.from+i.from,z=I.to+i.from;if(M>=t)break;z>j&&u(Math.max(M,j),null==N&&M<=g,Math.min(z,t),null==D&&z>=e,I.dir)}if(j=i.to+1,j>=t)break}return 0==z.length&&u(g,null==N,e,null==D,M.textDirection),{top:j,bottom:I,horizontal:z}}function o(M,N){let D=z.top+(N?M.top:M.bottom);return{top:D,bottom:D,horizontal:[]}}}(M,N,D)}}function ye(M){let N=M.scrollDOM.getBoundingClientRect();return{left:(M.textDirection==Qz.LTR?N.left:N.right-M.scrollDOM.clientWidth*M.scaleX)-M.scrollDOM.scrollLeft*M.scaleX,top:N.top-M.scrollDOM.scrollTop*M.scaleY}}function ce(M,N,D){let i=Pj.cursor(N);return{from:Math.max(D.from,M.moveToLineBoundary(i,!1,!0).from),to:Math.min(D.to,M.moveToLineBoundary(i,!0,!0).from),type:Lz.Text}}class ne{constructor(M,N){this.view=M,this.layer=N,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=M.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),N.above&&this.dom.classList.add("cm-layer-above"),N.class&&this.dom.classList.add(N.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(M.state),M.requestMeasure(this.measureReq),N.mount&&N.mount(this.dom,M)}update(M){M.startState.facet(le)!=M.state.facet(le)&&this.setOrder(M.state),(this.layer.update(M,this.dom)||M.geometryChanged)&&(this.scale(),M.view.requestMeasure(this.measureReq))}docViewUpdate(M){!1!==this.layer.updateOnDocViewUpdate&&M.requestMeasure(this.measureReq)}setOrder(M){let N=0,D=M.facet(le);for(;N<D.length&&D[N]!=this.layer;)N++;this.dom.style.zIndex=String((this.layer.above?150:-1)-N)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:M,scaleY:N}=this.view;M==this.scaleX&&N==this.scaleY||(this.scaleX=M,this.scaleY=N,this.dom.style.transform=`scale(${1/M}, ${1/N})`)}draw(M){if(M.length!=this.drawn.length||M.some(((M,N)=>!function(M,N){return M.constructor==N.constructor&&M.eq(N)}(M,this.drawn[N])))){let N=this.dom.firstChild,D=0;for(let i of M)i.update&&N&&i.constructor&&this.drawn[D].constructor&&i.update(N,this.drawn[D])?(N=N.nextSibling,D++):this.dom.insertBefore(i.draw(),N);for(;N;){let M=N.nextSibling;N.remove(),N=M}this.drawn=M}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const le=Jj.define();function oe(M){return[tu.define((N=>new ne(N,M))),le.of(M)]}const re=!qI.ios,xe=Jj.define({combine:M=>pt(M,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(M,N)=>Math.min(M,N),drawRangeCursor:(M,N)=>M||N})});function ae(M){return M.startState.facet(xe)!=M.state.facet(xe)}const Qe=oe({above:!0,markers(M){let{state:N}=M,D=N.facet(xe),i=[];for(let j of N.selection.ranges){let t=j==N.selection.main;if(j.empty?!t||re:D.drawRangeCursor){let N=t?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",D=j.empty?j:Pj.cursor(j.head,j.head>j.anchor?-1:1);for(let j of Oe.forRange(M,N,D))i.push(j)}}return i},update(M,N){M.transactions.some((M=>M.selection))&&(N.style.animationName="cm-blink"==N.style.animationName?"cm-blink2":"cm-blink");let D=ae(M);return D&&Ee(M.state,N),M.docChanged||M.selectionSet||D},mount(M,N){Ee(N.state,M)},class:"cm-cursorLayer"});function Ee(M,N){N.style.animationDuration=M.facet(xe).cursorBlinkRate+"ms"}const Se=oe({above:!1,markers:M=>M.state.selection.ranges.map((N=>N.empty?[]:Oe.forRange(M,"cm-selectionBackground",N))).reduce(((M,N)=>M.concat(N))),update:(M,N)=>M.docChanged||M.selectionSet||M.viewportChanged||ae(M),class:"cm-selectionLayer"}),he={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};re&&(he[".cm-line"].caretColor="transparent !important",he[".cm-content"]={caretColor:"transparent !important"});const de=tt.highest(Ne.theme(he)),ke=xt.define({map:(M,N)=>null==M?null:N.mapPos(M)}),we=Kj.define({create:()=>null,update:(M,N)=>(null!=M&&(M=N.changes.mapPos(M)),N.effects.reduce(((M,N)=>N.is(ke)?N.value:M),M))}),Ue=tu.fromClass(class{constructor(M){this.view=M,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(M){var N;let D=M.state.field(we);null==D?null!=this.cursor&&(null===(N=this.cursor)||void 0===N||N.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(M.startState.field(we)!=D||M.docChanged||M.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:M}=this,N=M.state.field(we),D=null!=N&&M.coordsAtPos(N);if(!D)return null;let i=M.scrollDOM.getBoundingClientRect();return{left:D.left-i.left+M.scrollDOM.scrollLeft*M.scaleX,top:D.top-i.top+M.scrollDOM.scrollTop*M.scaleY,height:D.bottom-D.top}}drawCursor(M){if(this.cursor){let{scaleX:N,scaleY:D}=this.view;M?(this.cursor.style.left=M.left/N+"px",this.cursor.style.top=M.top/D+"px",this.cursor.style.height=M.height/D+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(M){this.view.state.field(we)!=M&&this.view.dispatch({effects:ke.of(M)})}},{eventObservers:{dragover(M){this.setDropPos(this.view.posAtCoords({x:M.clientX,y:M.clientY}))},dragleave(M){M.target!=this.view.contentDOM&&this.view.contentDOM.contains(M.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Ye(M,N,D,i,j){N.lastIndex=0;for(let t,I=M.iterRange(D,i),z=D;!I.next().done;z+=I.value.length)if(!I.lineBreak)for(;t=N.exec(I.value);)j(z+t.index,t)}class Ce{constructor(M){const{regexp:N,decoration:D,decorate:i,boundary:j,maxLength:t=1e3}=M;if(!N.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=N,i)this.addMatch=(M,N,D,j)=>i(j,D,D+M[0].length,M,N);else if("function"==typeof D)this.addMatch=(M,N,i,j)=>{let t=D(M,N,i);t&&j(i,i+M[0].length,t)};else{if(!D)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(M,N,i,j)=>j(i,i+M[0].length,D)}this.boundary=j,this.maxLength=t}createDeco(M){let N=new Vt,D=N.add.bind(N);for(let{from:N,to:i}of function(M,N){let D=M.visibleRanges;if(1==D.length&&D[0].from==M.viewport.from&&D[0].to==M.viewport.to)return D;let i=[];for(let{from:j,to:t}of D)j=Math.max(M.state.doc.lineAt(j).from,j-N),t=Math.min(M.state.doc.lineAt(t).to,t+N),i.length&&i[i.length-1].to>=j?i[i.length-1].to=t:i.push({from:j,to:t});return i}(M,this.maxLength))Ye(M.state.doc,this.regexp,N,i,((N,i)=>this.addMatch(i,M,N,D)));return N.finish()}updateDeco(M,N){let D=1e9,i=-1;return M.docChanged&&M.changes.iterChanges(((N,j,t,I)=>{I>M.view.viewport.from&&t<M.view.viewport.to&&(D=Math.min(t,D),i=Math.max(I,i))})),M.viewportChanged||i-D>1e3?this.createDeco(M.view):i>-1?this.updateRange(M.view,N.map(M.changes),D,i):N}updateRange(M,N,D,i){for(let j of M.visibleRanges){let t=Math.max(j.from,D),I=Math.min(j.to,i);if(I>t){let D=M.state.doc.lineAt(t),i=D.to<I?M.state.doc.lineAt(I):D,z=Math.max(j.from,D.from),u=Math.min(j.to,i.to);if(this.boundary){for(;t>D.from;t--)if(this.boundary.test(D.text[t-1-D.from])){z=t;break}for(;I<i.to;I++)if(this.boundary.test(i.text[I-i.from])){u=I;break}}let g,e=[],T=(M,N,D)=>e.push(D.range(M,N));if(D==i)for(this.regexp.lastIndex=z-D.from;(g=this.regexp.exec(D.text))&&g.index<u-D.from;)this.addMatch(g,M,g.index+D.from,T);else Ye(M.state.doc,this.regexp,z,u,((N,D)=>this.addMatch(D,M,N,T)));N=N.update({filterFrom:z,filterTo:u,filter:(M,N)=>M<z||N>u,add:e})}}return N}}const be=null!=/x/.unicode?"gu":"g",pe=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",be),me={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 Ze=null;const fe=Jj.define({combine(M){let N=pt(M,{render:null,specialChars:pe,addSpecialChars:null});return(N.replaceTabs=!function(){var M;if(null==Ze&&"undefined"!=typeof document&&document.body){let N=document.body.style;Ze=null!=(null!==(M=N.tabSize)&&void 0!==M?M:N.MozTabSize)}return Ze||!1}())&&(N.specialChars=new RegExp("\t|"+N.specialChars.source,be)),N.addSpecialChars&&(N.specialChars=new RegExp(N.specialChars.source+"|"+N.addSpecialChars.source,be)),N}});let ve=null;class We extends sz{constructor(M,N){super(),this.options=M,this.code=N}eq(M){return M.code==this.code}toDOM(M){let N=function(M){return M>=32?"•":10==M?"␤":String.fromCharCode(9216+M)}(this.code),D=M.state.phrase("Control character")+" "+(me[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,D,N);if(i)return i;let j=document.createElement("span");return j.textContent=N,j.title=D,j.setAttribute("aria-label",D),j.className="cm-specialChar",j}ignoreEvent(){return!1}}class Ve extends sz{constructor(M){super(),this.width=M}eq(M){return M.width==this.width}toDOM(){let M=document.createElement("span");return M.textContent="\t",M.className="cm-tab",M.style.width=this.width+"px",M}ignoreEvent(){return!1}}const Ge=Oz.line({class:"cm-activeLine"}),Pe=tu.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.docChanged||M.selectionSet)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let N=-1,D=[];for(let i of M.state.selection.ranges){let j=M.lineBlockAt(i.head);j.from>N&&(D.push(Ge.range(j.from)),N=j.from)}return Oz.set(D)}},{decorations:M=>M.decorations}),Re=2e3;function Be(M,N){let D=M.posAtCoords({x:N.clientX,y:N.clientY},!1),i=M.state.doc.lineAt(D),j=D-i.from,t=j>Re?-1:j==i.length?function(M,N){let D=M.coordsAtPos(M.viewport.from);return D?Math.round(Math.abs((D.left-N)/M.defaultCharacterWidth)):-1}(M,N.clientX):qt(i.text,M.state.tabSize,D-i.from);return{line:i.number,col:t,off:j}}function Je(M,N){let D=Be(M,N),i=M.state.selection;return D?{update(M){if(M.docChanged){let N=M.changes.mapPos(M.startState.doc.line(D.line).from),j=M.state.doc.lineAt(N);D={line:j.number,col:D.col,off:Math.min(D.off,j.length)},i=i.map(M.changes)}},get(N,j,t){let I=Be(M,N);if(!I)return i;let z=function(M,N,D){let i=Math.min(N.line,D.line),j=Math.max(N.line,D.line),t=[];if(N.off>Re||D.off>Re||N.col<0||D.col<0){let I=Math.min(N.off,D.off),z=Math.max(N.off,D.off);for(let N=i;N<=j;N++){let D=M.doc.line(N);D.length<=z&&t.push(Pj.range(D.from+I,D.to+z))}}else{let I=Math.min(N.col,D.col),z=Math.max(N.col,D.col);for(let N=i;N<=j;N++){let D=M.doc.line(N),i=Kt(D.text,I,M.tabSize,!0);if(i<0)t.push(Pj.cursor(D.to));else{let N=Kt(D.text,z,M.tabSize);t.push(Pj.range(D.from+i,D.from+N))}}}return t}(M.state,D,I);return z.length?t?Pj.create(z.concat(i.ranges)):Pj.create(z):i}}:null}const Fe={Alt:[18,M=>!!M.altKey],Control:[17,M=>!!M.ctrlKey],Shift:[16,M=>!!M.shiftKey],Meta:[91,M=>!!M.metaKey]},He={style:"cursor: crosshair"};const Xe="-10000px";class $e{constructor(M,N,D,i){this.facet=N,this.createTooltipView=D,this.removeTooltipView=i,this.input=M.state.facet(N),this.tooltips=this.input.filter((M=>M));let j=null;this.tooltipViews=this.tooltips.map((M=>j=D(M,j)))}update(M,N){var D;let i=M.state.facet(this.facet),j=i.filter((M=>M));if(i===this.input){for(let N of this.tooltipViews)N.update&&N.update(M);return!1}let t=[],I=N?[]:null;for(let D=0;D<j.length;D++){let i=j[D],z=-1;if(i){for(let M=0;M<this.tooltips.length;M++){let N=this.tooltips[M];N&&N.create==i.create&&(z=M)}if(z<0)t[D]=this.createTooltipView(i,D?t[D-1]:null),I&&(I[D]=!!i.above);else{let i=t[D]=this.tooltipViews[z];I&&(I[D]=N[z]),i.update&&i.update(M)}}}for(let M of this.tooltipViews)t.indexOf(M)<0&&(this.removeTooltipView(M),null===(D=M.destroy)||void 0===D||D.call(M));return N&&(I.forEach(((M,D)=>N[D]=M)),N.length=I.length),this.input=i,this.tooltips=j,this.tooltipViews=t,!0}}function _e(M){let{win:N}=M;return{top:0,left:0,bottom:N.innerHeight,right:N.innerWidth}}const qe=Jj.define({combine:M=>{var N,D,i;return{position:qI.ios?"absolute":(null===(N=M.find((M=>M.position)))||void 0===N?void 0:N.position)||"fixed",parent:(null===(D=M.find((M=>M.parent)))||void 0===D?void 0:D.parent)||null,tooltipSpace:(null===(i=M.find((M=>M.tooltipSpace)))||void 0===i?void 0:i.tooltipSpace)||_e}}}),Ke=new WeakMap,MT=tu.fromClass(class{constructor(M){this.view=M,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let N=M.state.facet(qe);this.position=N.position,this.parent=N.parent,this.classes=M.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new $e(M,iT,((M,N)=>this.createTooltip(M,N)),(M=>{this.resizeObserver&&this.resizeObserver.unobserve(M.dom),M.dom.remove()})),this.above=this.manager.tooltips.map((M=>!!M.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((M=>{Date.now()>this.lastTransaction-50&&M.length>0&&M[M.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),M.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 M of this.manager.tooltipViews)this.intersectionObserver.observe(M.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(M){M.transactions.length&&(this.lastTransaction=Date.now());let N=this.manager.update(M,this.above);N&&this.observeIntersection();let D=N||M.geometryChanged,i=M.state.facet(qe);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let M of this.manager.tooltipViews)M.dom.style.position=this.position;D=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let M of this.manager.tooltipViews)this.container.appendChild(M.dom);D=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);D&&this.maybeMeasure()}createTooltip(M,N){let D=M.create(this.view),i=N?N.dom:null;if(D.dom.classList.add("cm-tooltip"),M.arrow&&!D.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let M=document.createElement("div");M.className="cm-tooltip-arrow",D.dom.appendChild(M)}return D.dom.style.position=this.position,D.dom.style.top=Xe,D.dom.style.left="0px",this.container.insertBefore(D.dom,i),D.mount&&D.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(D.dom),D}destroy(){var M,N,D;this.view.win.removeEventListener("resize",this.measureSoon);for(let N of this.manager.tooltipViews)N.dom.remove(),null===(M=N.destroy)||void 0===M||M.call(N);this.parent&&this.container.remove(),null===(N=this.resizeObserver)||void 0===N||N.disconnect(),null===(D=this.intersectionObserver)||void 0===D||D.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let M=this.view.dom.getBoundingClientRect(),N=1,D=1,i=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:M}=this.manager.tooltipViews[0];if(qI.gecko)i=M.offsetParent!=this.container.ownerDocument.body;else if(M.style.top==Xe&&"0px"==M.style.left){let N=M.getBoundingClientRect();i=Math.abs(N.top+1e4)>1||Math.abs(N.left)>1}}if(i||"absolute"==this.position)if(this.parent){let M=this.parent.getBoundingClientRect();M.width&&M.height&&(N=M.width/this.parent.offsetWidth,D=M.height/this.parent.offsetHeight)}else({scaleX:N,scaleY:D}=this.view.viewState);return{editor:M,parent:this.parent?this.container.getBoundingClientRect():M,pos:this.manager.tooltips.map(((M,N)=>{let D=this.manager.tooltipViews[N];return D.getCoords?D.getCoords(M.pos):this.view.coordsAtPos(M.pos)})),size:this.manager.tooltipViews.map((({dom:M})=>M.getBoundingClientRect())),space:this.view.state.facet(qe).tooltipSpace(this.view),scaleX:N,scaleY:D,makeAbsolute:i}}writeMeasure(M){var N;if(M.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let M of this.manager.tooltipViews)M.dom.style.position="absolute"}let{editor:D,space:i,scaleX:j,scaleY:t}=M,I=[];for(let z=0;z<this.manager.tooltips.length;z++){let u=this.manager.tooltips[z],g=this.manager.tooltipViews[z],{dom:e}=g,T=M.pos[z],A=M.size[z];if(!T||T.bottom<=Math.max(D.top,i.top)||T.top>=Math.min(D.bottom,i.bottom)||T.right<Math.max(D.left,i.left)-.1||T.left>Math.min(D.right,i.right)+.1){e.style.top=Xe;continue}let s=u.arrow?g.dom.querySelector(".cm-tooltip-arrow"):null,L=s?7:0,O=A.right-A.left,y=null!==(N=Ke.get(g))&&void 0!==N?N:A.bottom-A.top,c=g.offset||DT,n=this.view.textDirection==Qz.LTR,l=A.width>i.right-i.left?n?i.left:i.right-A.width:n?Math.min(T.left-(s?14:0)+c.x,i.right-O):Math.max(i.left,T.left-O+(s?14:0)-c.x),o=this.above[z];!u.strictSide&&(o?T.top-(A.bottom-A.top)-c.y<i.top:T.bottom+(A.bottom-A.top)+c.y>i.bottom)&&o==i.bottom-T.bottom>T.top-i.top&&(o=this.above[z]=!o);let r=(o?T.top-i.top:i.bottom-T.bottom)-L;if(r<y&&!1!==g.resize){if(r<this.view.defaultLineHeight){e.style.top=Xe;continue}Ke.set(g,y),e.style.height=(y=r)/t+"px"}else e.style.height&&(e.style.height="");let x=o?T.top-y-L-c.y:T.bottom+L+c.y,a=l+O;if(!0!==g.overlap)for(let M of I)M.left<a&&M.right>l&&M.top<x+y&&M.bottom>x&&(x=o?M.top-y-2-L:M.bottom+L+2);if("absolute"==this.position?(e.style.top=(x-M.parent.top)/t+"px",e.style.left=(l-M.parent.left)/j+"px"):(e.style.top=x/t+"px",e.style.left=l/j+"px"),s){let M=T.left+(n?c.x:-c.x)-(l+14-7);s.style.left=M/j+"px"}!0!==g.overlap&&I.push({left:l,top:x,right:a,bottom:x+y}),e.classList.toggle("cm-tooltip-above",o),e.classList.toggle("cm-tooltip-below",!o),g.positioned&&g.positioned(M.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 M of this.manager.tooltipViews)M.dom.style.top=Xe}},{eventObservers:{scroll(){this.maybeMeasure()}}}),NT=Ne.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:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),DT={x:0,y:0},iT=Jj.define({enables:[MT,NT]}),jT=Jj.define({combine:M=>M.reduce(((M,N)=>M.concat(N)),[])});class tT{static create(M){return new tT(M)}constructor(M){this.view=M,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new $e(M,jT,((M,N)=>this.createHostedView(M,N)),(M=>M.dom.remove()))}createHostedView(M,N){let D=M.create(this.view);return D.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(D.dom,N?N.dom.nextSibling:this.dom.firstChild),this.mounted&&D.mount&&D.mount(this.view),D}mount(M){for(let N of this.manager.tooltipViews)N.mount&&N.mount(M);this.mounted=!0}positioned(M){for(let N of this.manager.tooltipViews)N.positioned&&N.positioned(M)}update(M){this.manager.update(M)}destroy(){var M;for(let N of this.manager.tooltipViews)null===(M=N.destroy)||void 0===M||M.call(N)}passProp(M){let N;for(let D of this.manager.tooltipViews){let i=D[M];if(void 0!==i)if(void 0===N)N=i;else if(N!==i)return}return N}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const IT=iT.compute([jT],(M=>{let N=M.facet(jT);return 0===N.length?null:{pos:Math.min(...N.map((M=>M.pos))),end:Math.max(...N.map((M=>{var N;return null!==(N=M.end)&&void 0!==N?N:M.pos}))),create:tT.create,above:N[0].above,arrow:N.some((M=>M.arrow))}}));class zT{constructor(M,N,D,i,j){this.view=M,this.source=N,this.field=D,this.setHover=i,this.hoverTime=j,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:M.dom,time:0},this.checkHover=this.checkHover.bind(this),M.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),M.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.length)return;let M=Date.now()-this.lastMove.time;M<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-M):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:M,lastMove:N}=this,D=M.docView.nearest(N.target);if(!D)return;let i,j=1;if(D instanceof Nz)i=D.posAtStart;else{if(i=M.posAtCoords(N),null==i)return;let D=M.coordsAtPos(i);if(!D||N.y<D.top||N.y>D.bottom||N.x<D.left-M.defaultCharacterWidth||N.x>D.right+M.defaultCharacterWidth)return;let t=M.bidiSpans(M.state.doc.lineAt(i)).find((M=>M.from<=i&&M.to>=i)),I=t&&t.dir==Qz.RTL?-1:1;j=N.x<D.left?-I:I}let t=this.source(M,i,j);if(null==t?void 0:t.then){let N=this.pending={pos:i};t.then((D=>{this.pending==N&&(this.pending=null,!D||Array.isArray(D)&&!D.length||M.dispatch({effects:this.setHover.of(Array.isArray(D)?D:[D])}))}),(N=>Nu(M.state,N,"hover tooltip")))}else!t||Array.isArray(t)&&!t.length||M.dispatch({effects:this.setHover.of(Array.isArray(t)?t:[t])})}get tooltip(){let M=this.view.plugin(MT),N=M?M.manager.tooltips.findIndex((M=>M.create==tT.create)):-1;return N>-1?M.manager.tooltipViews[N]:null}mousemove(M){var N,D;this.lastMove={x:M.clientX,y:M.clientY,target:M.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:j}=this;if(i.length&&j&&!function(M,N){let D=M.getBoundingClientRect();return N.clientX>=D.left-uT&&N.clientX<=D.right+uT&&N.clientY>=D.top-uT&&N.clientY<=D.bottom+uT}(j.dom,M)||this.pending){let{pos:j}=i[0]||this.pending,t=null!==(D=null===(N=i[0])||void 0===N?void 0:N.end)&&void 0!==D?D:j;(j==t?this.view.posAtCoords(this.lastMove)==j:function(M,N,D,i,j,t){let I=M.scrollDOM.getBoundingClientRect(),z=M.documentTop+M.documentPadding.top+M.contentHeight;if(I.left>i||I.right<i||I.top>j||Math.min(I.bottom,z)<j)return!1;let u=M.posAtCoords({x:i,y:j},!1);return u>=N&&u<=D}(this.view,j,t,M.clientX,M.clientY))||(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(M){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:N}=this;if(N.length){let{tooltip:N}=this;N&&N.dom.contains(M.relatedTarget)?this.watchTooltipLeave(N.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(M){let N=D=>{M.removeEventListener("mouseleave",N),this.active.length&&!this.view.dom.contains(D.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};M.addEventListener("mouseleave",N)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const uT=4;function gT(M,N={}){let D=xt.define(),i=Kj.define({create:()=>[],update(M,i){if(M.length&&(N.hideOnChange&&(i.docChanged||i.selection)?M=[]:N.hideOn&&(M=M.filter((M=>!N.hideOn(i,M)))),i.docChanged)){let N=[];for(let D of M){let M=i.changes.mapPos(D.pos,-1,Cj.TrackDel);if(null!=M){let j=Object.assign(Object.create(null),D);j.pos=M,null!=j.end&&(j.end=i.changes.mapPos(j.end)),N.push(j)}}M=N}for(let N of i.effects)N.is(D)&&(M=N.value),N.is(TT)&&(M=[]);return M},provide:M=>jT.from(M)});return[i,tu.define((j=>new zT(j,M,i,D,N.hoverTime||300))),IT]}function eT(M,N){let D=M.plugin(MT);if(!D)return null;let i=D.manager.tooltips.indexOf(N);return i<0?null:D.manager.tooltipViews[i]}const TT=xt.define(),AT=Jj.define({combine(M){let N,D;for(let i of M)N=N||i.topContainer,D=D||i.bottomContainer;return{topContainer:N,bottomContainer:D}}});function sT(M,N){let D=M.plugin(LT),i=D?D.specs.indexOf(N):-1;return i>-1?D.panels[i]:null}const LT=tu.fromClass(class{constructor(M){this.input=M.state.facet(cT),this.specs=this.input.filter((M=>M)),this.panels=this.specs.map((N=>N(M)));let N=M.state.facet(AT);this.top=new OT(M,!0,N.topContainer),this.bottom=new OT(M,!1,N.bottomContainer),this.top.sync(this.panels.filter((M=>M.top))),this.bottom.sync(this.panels.filter((M=>!M.top)));for(let M of this.panels)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}update(M){let N=M.state.facet(AT);this.top.container!=N.topContainer&&(this.top.sync([]),this.top=new OT(M.view,!0,N.topContainer)),this.bottom.container!=N.bottomContainer&&(this.bottom.sync([]),this.bottom=new OT(M.view,!1,N.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let D=M.state.facet(cT);if(D!=this.input){let N=D.filter((M=>M)),i=[],j=[],t=[],I=[];for(let D of N){let N,z=this.specs.indexOf(D);z<0?(N=D(M.view),I.push(N)):(N=this.panels[z],N.update&&N.update(M)),i.push(N),(N.top?j:t).push(N)}this.specs=N,this.panels=i,this.top.sync(j),this.bottom.sync(t);for(let M of I)M.dom.classList.add("cm-panel"),M.mount&&M.mount()}else for(let N of this.panels)N.update&&N.update(M)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:M=>Ne.scrollMargins.of((N=>{let D=N.plugin(M);return D&&{top:D.top.scrollMargin(),bottom:D.bottom.scrollMargin()}}))});class OT{constructor(M,N,D){this.view=M,this.top=N,this.container=D,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(M){for(let N of this.panels)N.destroy&&M.indexOf(N)<0&&N.destroy();this.panels=M,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));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 M=this.container||this.view.dom;M.insertBefore(this.dom,this.top?M.firstChild:null)}let M=this.dom.firstChild;for(let N of this.panels)if(N.dom.parentNode==this.dom){for(;M!=N.dom;)M=yT(M);M=M.nextSibling}else this.dom.insertBefore(N.dom,M);for(;M;)M=yT(M)}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 M of this.classes.split(" "))M&&this.container.classList.remove(M);for(let M of(this.classes=this.view.themeClasses).split(" "))M&&this.container.classList.add(M)}}}function yT(M){let N=M.nextSibling;return M.remove(),N}const cT=Jj.define({enables:LT});class nT extends mt{compare(M){return this==M||this.constructor==M.constructor&&this.eq(M)}eq(M){return!1}destroy(M){}}nT.prototype.elementClass="",nT.prototype.toDOM=void 0,nT.prototype.mapMode=Cj.TrackBefore,nT.prototype.startSide=nT.prototype.endSide=-1,nT.prototype.point=!0;const lT=Jj.define(),oT={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Wt.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},rT=Jj.define();function xT(M){return[QT(),rT.of(Object.assign(Object.assign({},oT),M))]}const aT=Jj.define({combine:M=>M.some((M=>M))});function QT(M){let N=[ET];return M&&!1===M.fixed&&N.push(aT.of(!0)),N}const ET=tu.fromClass(class{constructor(M){this.view=M,this.prevViewport=M.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=M.state.facet(rT).map((N=>new kT(M,N)));for(let M of this.gutters)this.dom.appendChild(M.dom);this.fixed=!M.state.facet(aT),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),M.scrollDOM.insertBefore(this.dom,M.contentDOM)}update(M){if(this.updateGutters(M)){let N=this.prevViewport,D=M.view.viewport,i=Math.min(N.to,D.to)-Math.max(N.from,D.from);this.syncGutters(i<.8*(D.to-D.from))}M.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(aT)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=M.view.viewport}syncGutters(M){let N=this.dom.nextSibling;M&&this.dom.remove();let D=Wt.iter(this.view.state.facet(lT),this.view.viewport.from),i=[],j=this.gutters.map((M=>new dT(M,this.view.viewport,-this.view.documentPadding.top)));for(let M of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(M.type)){let N=!0;for(let t of M.type)if(t.type==Lz.Text&&N){hT(D,i,t.from);for(let M of j)M.line(this.view,t,i);N=!1}else if(t.widget)for(let M of j)M.widget(this.view,t)}else if(M.type==Lz.Text){hT(D,i,M.from);for(let N of j)N.line(this.view,M,i)}else if(M.widget)for(let N of j)N.widget(this.view,M);for(let M of j)M.finish();M&&this.view.scrollDOM.insertBefore(this.dom,N)}updateGutters(M){let N=M.startState.facet(rT),D=M.state.facet(rT),i=M.docChanged||M.heightChanged||M.viewportChanged||!Wt.eq(M.startState.facet(lT),M.state.facet(lT),M.view.viewport.from,M.view.viewport.to);if(N==D)for(let N of this.gutters)N.update(M)&&(i=!0);else{i=!0;let j=[];for(let i of D){let D=N.indexOf(i);D<0?j.push(new kT(this.view,i)):(this.gutters[D].update(M),j.push(this.gutters[D]))}for(let M of this.gutters)M.dom.remove(),j.indexOf(M)<0&&M.destroy();for(let M of j)this.dom.appendChild(M.dom);this.gutters=j}return i}destroy(){for(let M of this.gutters)M.destroy();this.dom.remove()}},{provide:M=>Ne.scrollMargins.of((N=>{let D=N.plugin(M);return D&&0!=D.gutters.length&&D.fixed?N.textDirection==Qz.LTR?{left:D.dom.offsetWidth*N.scaleX}:{right:D.dom.offsetWidth*N.scaleX}:null}))});function ST(M){return Array.isArray(M)?M:[M]}function hT(M,N,D){for(;M.value&&M.from<=D;)M.from==D&&N.push(M.value),M.next()}class dT{constructor(M,N,D){this.gutter=M,this.height=D,this.i=0,this.cursor=Wt.iter(M.markers,N.from)}addElement(M,N,D){let{gutter:i}=this,j=(N.top-this.height)/M.scaleY,t=N.height/M.scaleY;if(this.i==i.elements.length){let N=new wT(M,t,j,D);i.elements.push(N),i.dom.appendChild(N.dom)}else i.elements[this.i].update(M,t,j,D);this.height=N.bottom,this.i++}line(M,N,D){let i=[];hT(this.cursor,i,N.from),D.length&&(i=i.concat(D));let j=this.gutter.config.lineMarker(M,N,i);j&&i.unshift(j);let t=this.gutter;(0!=i.length||t.config.renderEmptyElements)&&this.addElement(M,N,i)}widget(M,N){let D=this.gutter.config.widgetMarker(M,N.widget,N);D&&this.addElement(M,N,[D])}finish(){let M=this.gutter;for(;M.elements.length>this.i;){let N=M.elements.pop();M.dom.removeChild(N.dom),N.destroy()}}}class kT{constructor(M,N){this.view=M,this.config=N,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let D in N.domEventHandlers)this.dom.addEventListener(D,(i=>{let j,t=i.target;if(t!=this.dom&&this.dom.contains(t)){for(;t.parentNode!=this.dom;)t=t.parentNode;let M=t.getBoundingClientRect();j=(M.top+M.bottom)/2}else j=i.clientY;let I=M.lineBlockAtHeight(j-M.documentTop);N.domEventHandlers[D](M,I,i)&&i.preventDefault()}));this.markers=ST(N.markers(M)),N.initialSpacer&&(this.spacer=new wT(M,0,0,[N.initialSpacer(M)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(M){let N=this.markers;if(this.markers=ST(this.config.markers(M.view)),this.spacer&&this.config.updateSpacer){let N=this.config.updateSpacer(this.spacer.markers[0],M);N!=this.spacer.markers[0]&&this.spacer.update(M.view,0,0,[N])}let D=M.view.viewport;return!Wt.eq(this.markers,N,D.from,D.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(M)}destroy(){for(let M of this.elements)M.destroy()}}class wT{constructor(M,N,D,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(M,N,D,i)}update(M,N,D,i){this.height!=N&&(this.height=N,this.dom.style.height=N+"px"),this.above!=D&&(this.dom.style.marginTop=(this.above=D)?D+"px":""),function(M,N){if(M.length!=N.length)return!1;for(let D=0;D<M.length;D++)if(!M[D].compare(N[D]))return!1;return!0}(this.markers,i)||this.setMarkers(M,i)}setMarkers(M,N){let D="cm-gutterElement",i=this.dom.firstChild;for(let j=0,t=0;;){let I=t,z=j<N.length?N[j++]:null,u=!1;if(z){let M=z.elementClass;M&&(D+=" "+M);for(let M=t;M<this.markers.length;M++)if(this.markers[M].compare(z)){I=M,u=!0;break}}else I=this.markers.length;for(;t<I;){let M=this.markers[t++];if(M.toDOM){M.destroy(i);let N=i.nextSibling;i.remove(),i=N}}if(!z)break;z.toDOM&&(u?i=i.nextSibling:this.dom.insertBefore(z.toDOM(M),i)),u&&t++}this.dom.className=D,this.markers=N}destroy(){this.setMarkers(null,[])}}const UT=Jj.define(),YT=Jj.define({combine:M=>pt(M,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(M,N){let D=Object.assign({},M);for(let M in N){let i=D[M],j=N[M];D[M]=i?(M,N,D)=>i(M,N,D)||j(M,N,D):j}return D}})});class CT extends nT{constructor(M){super(),this.number=M}eq(M){return this.number==M.number}toDOM(){return document.createTextNode(this.number)}}function bT(M,N){return M.state.facet(YT).formatNumber(N,M.state)}const pT=rT.compute([YT],(M=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:M=>M.state.facet(UT),lineMarker:(M,N,D)=>D.some((M=>M.toDOM))?null:new CT(bT(M,M.state.doc.lineAt(N.from).number)),widgetMarker:()=>null,lineMarkerChange:M=>M.startState.facet(YT)!=M.state.facet(YT),initialSpacer:M=>new CT(bT(M,ZT(M.state.doc.lines))),updateSpacer(M,N){let D=bT(N.view,ZT(N.view.state.doc.lines));return D==M.number?M:new CT(D)},domEventHandlers:M.facet(YT).domEventHandlers})));function mT(M={}){return[YT.of(M),QT(),pT]}function ZT(M){let N=9;for(;N<M;)N=10*N+9;return N}const fT=new class extends nT{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},vT=lT.compute(["selection"],(M=>{let N=[],D=-1;for(let i of M.selection.ranges){let j=M.doc.lineAt(i.head).from;j>D&&(D=j,N.push(fT.range(j)))}return Wt.of(N)}));const WT=1024;let VT=0;class GT{constructor(M,N){this.from=M,this.to=N}}class PT{constructor(M={}){this.id=VT++,this.perNode=!!M.perNode,this.deserialize=M.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(M){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof M&&(M=JT.match(M)),N=>{let D=M(N);return void 0===D?null:[this,D]}}}PT.closedBy=new PT({deserialize:M=>M.split(" ")}),PT.openedBy=new PT({deserialize:M=>M.split(" ")}),PT.group=new PT({deserialize:M=>M.split(" ")}),PT.isolate=new PT({deserialize:M=>{if(M&&"rtl"!=M&&"ltr"!=M&&"auto"!=M)throw new RangeError("Invalid value for isolate: "+M);return M||"auto"}}),PT.contextHash=new PT({perNode:!0}),PT.lookAhead=new PT({perNode:!0}),PT.mounted=new PT({perNode:!0});class RT{constructor(M,N,D){this.tree=M,this.overlay=N,this.parser=D}static get(M){return M&&M.props&&M.props[PT.mounted.id]}}const BT=Object.create(null);class JT{constructor(M,N,D,i=0){this.name=M,this.props=N,this.id=D,this.flags=i}static define(M){let N=M.props&&M.props.length?Object.create(null):BT,D=(M.top?1:0)|(M.skipped?2:0)|(M.error?4:0)|(null==M.name?8:0),i=new JT(M.name||"",N,M.id,D);if(M.props)for(let D of M.props)if(Array.isArray(D)||(D=D(i)),D){if(D[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");N[D[0].id]=D[1]}return i}prop(M){return this.props[M.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(M){if("string"==typeof M){if(this.name==M)return!0;let N=this.prop(PT.group);return!!N&&N.indexOf(M)>-1}return this.id==M}static match(M){let N=Object.create(null);for(let D in M)for(let i of D.split(" "))N[i]=M[D];return M=>{for(let D=M.prop(PT.group),i=-1;i<(D?D.length:0);i++){let j=N[i<0?M.name:D[i]];if(j)return j}}}}JT.none=new JT("",Object.create(null),0,8);class FT{constructor(M){this.types=M;for(let N=0;N<M.length;N++)if(M[N].id!=N)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...M){let N=[];for(let D of this.types){let i=null;for(let N of M){let M=N(D);M&&(i||(i=Object.assign({},D.props)),i[M[0].id]=M[1])}N.push(i?new JT(D.name,i,D.id,D.flags):D)}return new FT(N)}}const HT=new WeakMap,XT=new WeakMap;var $T;!function(M){M[M.ExcludeBuffers=1]="ExcludeBuffers",M[M.IncludeAnonymous=2]="IncludeAnonymous",M[M.IgnoreMounts=4]="IgnoreMounts",M[M.IgnoreOverlays=8]="IgnoreOverlays"}($T||($T={}));class _T{constructor(M,N,D,i,j){if(this.type=M,this.children=N,this.positions=D,this.length=i,this.props=null,j&&j.length){this.props=Object.create(null);for(let[M,N]of j)this.props["number"==typeof M?M:M.id]=N}}toString(){let M=RT.get(this);if(M&&!M.overlay)return M.tree.toString();let N="";for(let M of this.children){let D=M.toString();D&&(N&&(N+=","),N+=D)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(N.length?"("+N+")":""):N}cursor(M=0){return new eA(this.topNode,M)}cursorAt(M,N=0,D=0){let i=HT.get(this)||this.topNode,j=new eA(i);return j.moveTo(M,N),HT.set(this,j._tree),j}get topNode(){return new iA(this,0,0,null)}resolve(M,N=0){let D=NA(HT.get(this)||this.topNode,M,N,!1);return HT.set(this,D),D}resolveInner(M,N=0){let D=NA(XT.get(this)||this.topNode,M,N,!0);return XT.set(this,D),D}resolveStack(M,N=0){return function(M,N,D){let i=M.resolveInner(N,D),j=null;for(let M=i instanceof iA?i:i.context.parent;M;M=M.parent)if(M.index<0){let t=M.parent;(j||(j=[i])).push(t.resolve(N,D)),M=t}else{let t=RT.get(M.tree);if(t&&t.overlay&&t.overlay[0].from<=N&&t.overlay[t.overlay.length-1].to>=N){let I=new iA(t.tree,t.overlay[0].from+M.from,-1,M);(j||(j=[i])).push(NA(I,N,D,!1))}}return j?uA(j):i}(this,M,N)}iterate(M){let{enter:N,leave:D,from:i=0,to:j=this.length}=M,t=M.mode||0,I=(t&$T.IncludeAnonymous)>0;for(let M=this.cursor(t|$T.IncludeAnonymous);;){let t=!1;if(M.from<=j&&M.to>=i&&(!I&&M.type.isAnonymous||!1!==N(M))){if(M.firstChild())continue;t=!0}for(;t&&D&&(I||!M.type.isAnonymous)&&D(M),!M.nextSibling();){if(!M.parent())return;t=!0}}}prop(M){return M.perNode?this.props?this.props[M.id]:void 0:this.type.prop(M)}get propValues(){let M=[];if(this.props)for(let N in this.props)M.push([+N,this.props[N]]);return M}balance(M={}){return this.children.length<=8?this:LA(JT.none,this.children,this.positions,0,this.children.length,0,this.length,((M,N,D)=>new _T(this.type,M,N,D,this.propValues)),M.makeTree||((M,N,D)=>new _T(JT.none,M,N,D)))}static build(M){return function(M){var N;let{buffer:D,nodeSet:i,maxBufferLength:j=WT,reused:t=[],minRepeatType:I=i.types.length}=M,z=Array.isArray(D)?new qT(D,D.length):D,u=i.types,g=0,e=0;function T(M,N,D,n,l,o){let{id:r,start:x,end:a,size:Q}=z,E=e;for(;Q<0;){if(z.next(),-1==Q){let N=t[r];return D.push(N),void n.push(x-M)}if(-3==Q)return void(g=r);if(-4==Q)return void(e=r);throw new RangeError(`Unrecognized record size: ${Q}`)}let S,h,d=u[r],k=x-M;if(a-x<=j&&(h=y(z.pos-N,l))){let N=new Uint16Array(h.size-h.skip),D=z.pos-h.size,j=N.length;for(;z.pos>D;)j=c(h.start,N,j);S=new KT(N,a-h.start,i),k=h.start-M}else{let M=z.pos-Q;z.next();let N=[],D=[],i=r>=I?r:-1,t=0,u=a;for(;z.pos>M;)i>=0&&z.id==i&&z.size>=0?(z.end<=u-j&&(L(N,D,x,t,z.end,u,i,E),t=N.length,u=z.end),z.next()):o>2500?A(x,M,N,D):T(x,M,N,D,i,o+1);if(i>=0&&t>0&&t<N.length&&L(N,D,x,t,x,u,i,E),N.reverse(),D.reverse(),i>-1&&t>0){let M=s(d);S=LA(d,N,D,0,N.length,0,a-x,M,M)}else S=O(d,N,D,a-x,E-a)}D.push(S),n.push(k)}function A(M,N,D,t){let I=[],u=0,g=-1;for(;z.pos>N;){let{id:M,start:N,end:D,size:i}=z;if(i>4)z.next();else{if(g>-1&&N<g)break;g<0&&(g=D-j),I.push(M,N,D),u++,z.next()}}if(u){let N=new Uint16Array(4*u),j=I[I.length-2];for(let M=I.length-3,D=0;M>=0;M-=3)N[D++]=I[M],N[D++]=I[M+1]-j,N[D++]=I[M+2]-j,N[D++]=D;D.push(new KT(N,I[2]-j,i)),t.push(j-M)}}function s(M){return(N,D,i)=>{let j,t,I=0,z=N.length-1;if(z>=0&&(j=N[z])instanceof _T){if(!z&&j.type==M&&j.length==i)return j;(t=j.prop(PT.lookAhead))&&(I=D[z]+j.length+t)}return O(M,N,D,i,I)}}function L(M,N,D,j,t,I,z,u){let g=[],e=[];for(;M.length>j;)g.push(M.pop()),e.push(N.pop()+D-t);M.push(O(i.types[z],g,e,I-t,u-I)),N.push(t-D)}function O(M,N,D,i,j=0,t){if(g){let M=[PT.contextHash,g];t=t?[M].concat(t):[M]}if(j>25){let M=[PT.lookAhead,j];t=t?[M].concat(t):[M]}return new _T(M,N,D,i,t)}function y(M,N){let D=z.fork(),i=0,t=0,u=0,g=D.end-j,e={size:0,start:0,skip:0};M:for(let j=D.pos-M;D.pos>j;){let M=D.size;if(D.id==N&&M>=0){e.size=i,e.start=t,e.skip=u,u+=4,i+=4,D.next();continue}let z=D.pos-M;if(M<0||z<j||D.start<g)break;let T=D.id>=I?4:0,A=D.start;for(D.next();D.pos>z;){if(D.size<0){if(-3!=D.size)break M;T+=4}else D.id>=I&&(T+=4);D.next()}t=A,i+=M,u+=T}return(N<0||i==M)&&(e.size=i,e.start=t,e.skip=u),e.size>4?e:void 0}function c(M,N,D){let{id:i,start:j,end:t,size:u}=z;if(z.next(),u>=0&&i<I){let I=D;if(u>4){let i=z.pos-(u-4);for(;z.pos>i;)D=c(M,N,D)}N[--D]=I,N[--D]=t-M,N[--D]=j-M,N[--D]=i}else-3==u?g=i:-4==u&&(e=i);return D}let n=[],l=[];for(;z.pos>0;)T(M.start||0,M.bufferStart||0,n,l,-1,0);let o=null!==(N=M.length)&&void 0!==N?N:n.length?l[0]+n[0].length:0;return new _T(u[M.topID],n.reverse(),l.reverse(),o)}(M)}}_T.empty=new _T(JT.none,[],[],0);class qT{constructor(M,N){this.buffer=M,this.index=N}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 qT(this.buffer,this.index)}}class KT{constructor(M,N,D){this.buffer=M,this.length=N,this.set=D}get type(){return JT.none}toString(){let M=[];for(let N=0;N<this.buffer.length;)M.push(this.childString(N)),N=this.buffer[N+3];return M.join(",")}childString(M){let N=this.buffer[M],D=this.buffer[M+3],i=this.set.types[N],j=i.name;if(/\W/.test(j)&&!i.isError&&(j=JSON.stringify(j)),D==(M+=4))return j;let t=[];for(;M<D;)t.push(this.childString(M)),M=this.buffer[M+3];return j+"("+t.join(",")+")"}findChild(M,N,D,i,j){let{buffer:t}=this,I=-1;for(let z=M;z!=N&&!(MA(j,i,t[z+1],t[z+2])&&(I=z,D>0));z=t[z+3]);return I}slice(M,N,D){let i=this.buffer,j=new Uint16Array(N-M),t=0;for(let I=M,z=0;I<N;){j[z++]=i[I++],j[z++]=i[I++]-D;let N=j[z++]=i[I++]-D;j[z++]=i[I++]-M,t=Math.max(t,N)}return new KT(j,t,this.set)}}function MA(M,N,D,i){switch(M){case-2:return D<N;case-1:return i>=N&&D<N;case 0:return D<N&&i>N;case 1:return D<=N&&i>N;case 2:return i>N;case 4:return!0}}function NA(M,N,D,i){for(var j;M.from==M.to||(D<1?M.from>=N:M.from>N)||(D>-1?M.to<=N:M.to<N);){let N=!i&&M instanceof iA&&M.index<0?null:M.parent;if(!N)return M;M=N}let t=i?0:$T.IgnoreOverlays;if(i)for(let i=M,I=i.parent;I;i=I,I=i.parent)i instanceof iA&&i.index<0&&(null===(j=I.enter(N,D,t))||void 0===j?void 0:j.from)!=i.from&&(M=I);for(;;){let i=M.enter(N,D,t);if(!i)return M;M=i}}class DA{cursor(M=0){return new eA(this,M)}getChild(M,N=null,D=null){let i=jA(this,M,N,D);return i.length?i[0]:null}getChildren(M,N=null,D=null){return jA(this,M,N,D)}resolve(M,N=0){return NA(this,M,N,!1)}resolveInner(M,N=0){return NA(this,M,N,!0)}matchContext(M){return tA(this,M)}enterUnfinishedNodesBefore(M){let N=this.childBefore(M),D=this;for(;N;){let M=N.lastChild;if(!M||M.to!=N.to)break;M.type.isError&&M.from==M.to?(D=N,N=M.prevSibling):N=M}return D}get node(){return this}get next(){return this.parent}}class iA extends DA{constructor(M,N,D,i){super(),this._tree=M,this.from=N,this.index=D,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(M,N,D,i,j=0){for(let t=this;;){for(let{children:I,positions:z}=t._tree,u=N>0?I.length:-1;M!=u;M+=N){let u=I[M],g=z[M]+t.from;if(MA(i,D,g,g+u.length))if(u instanceof KT){if(j&$T.ExcludeBuffers)continue;let I=u.findChild(0,u.buffer.length,N,D-g,i);if(I>-1)return new zA(new IA(t,u,M,g),null,I)}else if(j&$T.IncludeAnonymous||!u.type.isAnonymous||TA(u)){let I;if(!(j&$T.IgnoreMounts)&&(I=RT.get(u))&&!I.overlay)return new iA(I.tree,g,M,t);let z=new iA(u,g,M,t);return j&$T.IncludeAnonymous||!z.type.isAnonymous?z:z.nextChild(N<0?u.children.length-1:0,N,D,i)}}if(j&$T.IncludeAnonymous||!t.type.isAnonymous)return null;if(M=t.index>=0?t.index+N:N<0?-1:t._parent._tree.children.length,t=t._parent,!t)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(M){return this.nextChild(0,1,M,2)}childBefore(M){return this.nextChild(this._tree.children.length-1,-1,M,-2)}enter(M,N,D=0){let i;if(!(D&$T.IgnoreOverlays)&&(i=RT.get(this._tree))&&i.overlay){let D=M-this.from;for(let{from:M,to:j}of i.overlay)if((N>0?M<=D:M<D)&&(N<0?j>=D:j>D))return new iA(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,M,N,D)}nextSignificantParent(){let M=this;for(;M.type.isAnonymous&&M._parent;)M=M._parent;return M}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function jA(M,N,D,i){let j=M.cursor(),t=[];if(!j.firstChild())return t;if(null!=D)for(let M=!1;!M;)if(M=j.type.is(D),!j.nextSibling())return t;for(;;){if(null!=i&&j.type.is(i))return t;if(j.type.is(N)&&t.push(j.node),!j.nextSibling())return null==i?t:[]}}function tA(M,N,D=N.length-1){for(let i=M.parent;D>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(N[D]&&N[D]!=i.name)return!1;D--}}return!0}class IA{constructor(M,N,D,i){this.parent=M,this.buffer=N,this.index=D,this.start=i}}class zA extends DA{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(M,N,D){super(),this.context=M,this._parent=N,this.index=D,this.type=M.buffer.set.types[M.buffer.buffer[D]]}child(M,N,D){let{buffer:i}=this.context,j=i.findChild(this.index+4,i.buffer[this.index+3],M,N-this.context.start,D);return j<0?null:new zA(this.context,this,j)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(M){return this.child(1,M,2)}childBefore(M){return this.child(-1,M,-2)}enter(M,N,D=0){if(D&$T.ExcludeBuffers)return null;let{buffer:i}=this.context,j=i.findChild(this.index+4,i.buffer[this.index+3],N>0?1:-1,M-this.context.start,N);return j<0?null:new zA(this.context,this,j)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(M){return this._parent?null:this.context.parent.nextChild(this.context.index+M,M,0,4)}get nextSibling(){let{buffer:M}=this.context,N=M.buffer[this.index+3];return N<(this._parent?M.buffer[this._parent.index+3]:M.buffer.length)?new zA(this.context,this._parent,N):this.externalSibling(1)}get prevSibling(){let{buffer:M}=this.context,N=this._parent?this._parent.index+4:0;return this.index==N?this.externalSibling(-1):new zA(this.context,this._parent,M.findChild(N,this.index,-1,0,4))}get tree(){return null}toTree(){let M=[],N=[],{buffer:D}=this.context,i=this.index+4,j=D.buffer[this.index+3];if(j>i){let t=D.buffer[this.index+1];M.push(D.slice(i,j,t)),N.push(0)}return new _T(this.type,M,N,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function uA(M){if(!M.length)return null;let N=0,D=M[0];for(let i=1;i<M.length;i++){let j=M[i];(j.from>D.from||j.to<D.to)&&(D=j,N=i)}let i=D instanceof iA&&D.index<0?null:D.parent,j=M.slice();return i?j[N]=i:j.splice(N,1),new gA(j,D)}class gA{constructor(M,N){this.heads=M,this.node=N}get next(){return uA(this.heads)}}class eA{get name(){return this.type.name}constructor(M,N=0){if(this.mode=N,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,M instanceof iA)this.yieldNode(M);else{this._tree=M.context.parent,this.buffer=M.context;for(let N=M._parent;N;N=N._parent)this.stack.unshift(N.index);this.bufferNode=M,this.yieldBuf(M.index)}}yieldNode(M){return!!M&&(this._tree=M,this.type=M.type,this.from=M.from,this.to=M.to,!0)}yieldBuf(M,N){this.index=M;let{start:D,buffer:i}=this.buffer;return this.type=N||i.set.types[i.buffer[M]],this.from=D+i.buffer[M+1],this.to=D+i.buffer[M+2],!0}yield(M){return!!M&&(M instanceof iA?(this.buffer=null,this.yieldNode(M)):(this.buffer=M.context,this.yieldBuf(M.index,M.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(M,N,D){if(!this.buffer)return this.yield(this._tree.nextChild(M<0?this._tree._tree.children.length-1:0,M,N,D,this.mode));let{buffer:i}=this.buffer,j=i.findChild(this.index+4,i.buffer[this.index+3],M,N-this.buffer.start,D);return!(j<0)&&(this.stack.push(this.index),this.yieldBuf(j))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(M){return this.enterChild(1,M,2)}childBefore(M){return this.enterChild(-1,M,-2)}enter(M,N,D=this.mode){return this.buffer?!(D&$T.ExcludeBuffers)&&this.enterChild(1,M,N):this.yield(this._tree.enter(M,N,D))}parent(){if(!this.buffer)return this.yieldNode(this.mode&$T.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let M=this.mode&$T.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(M)}sibling(M){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+M,M,0,4,this.mode));let{buffer:N}=this.buffer,D=this.stack.length-1;if(M<0){let M=D<0?0:this.stack[D]+4;if(this.index!=M)return this.yieldBuf(N.findChild(M,this.index,-1,0,4))}else{let M=N.buffer[this.index+3];if(M<(D<0?N.buffer.length:N.buffer[this.stack[D]+3]))return this.yieldBuf(M)}return D<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+M,M,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(M){let N,D,{buffer:i}=this;if(i){if(M>0){if(this.index<i.buffer.buffer.length)return!1}else for(let M=0;M<this.index;M++)if(i.buffer.buffer[M+3]<this.index)return!1;({index:N,parent:D}=i)}else({index:N,_parent:D}=this._tree);for(;D;({index:N,_parent:D}=D))if(N>-1)for(let i=N+M,j=M<0?-1:D._tree.children.length;i!=j;i+=M){let M=D._tree.children[i];if(this.mode&$T.IncludeAnonymous||M instanceof KT||!M.type.isAnonymous||TA(M))return!1}return!0}move(M,N){if(N&&this.enterChild(M,0,4))return!0;for(;;){if(this.sibling(M))return!0;if(this.atLastNode(M)||!this.parent())return!1}}next(M=!0){return this.move(1,M)}prev(M=!0){return this.move(-1,M)}moveTo(M,N=0){for(;(this.from==this.to||(N<1?this.from>=M:this.from>M)||(N>-1?this.to<=M:this.to<M))&&this.parent(););for(;this.enterChild(1,M,N););return this}get node(){if(!this.buffer)return this._tree;let M=this.bufferNode,N=null,D=0;if(M&&M.context==this.buffer)M:for(let i=this.index,j=this.stack.length;j>=0;){for(let t=M;t;t=t._parent)if(t.index==i){if(i==this.index)return t;N=t,D=j+1;break M}i=this.stack[--j]}for(let M=D;M<this.stack.length;M++)N=new zA(this.buffer,N,this.stack[M]);return this.bufferNode=new zA(this.buffer,N,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(M,N){for(let D=0;;){let i=!1;if(this.type.isAnonymous||!1!==M(this)){if(this.firstChild()){D++;continue}this.type.isAnonymous||(i=!0)}for(;i&&N&&N(this),i=this.type.isAnonymous,!this.nextSibling();){if(!D)return;this.parent(),D--,i=!0}}}matchContext(M){if(!this.buffer)return tA(this.node,M);let{buffer:N}=this.buffer,{types:D}=N.set;for(let i=M.length-1,j=this.stack.length-1;i>=0;j--){if(j<0)return tA(this.node,M,i);let t=D[N.buffer[this.stack[j]]];if(!t.isAnonymous){if(M[i]&&M[i]!=t.name)return!1;i--}}return!0}}function TA(M){return M.children.some((M=>M instanceof KT||!M.type.isAnonymous||TA(M)))}const AA=new WeakMap;function sA(M,N){if(!M.isAnonymous||N instanceof KT||N.type!=M)return 1;let D=AA.get(N);if(null==D){D=1;for(let i of N.children){if(i.type!=M||!(i instanceof _T)){D=1;break}D+=sA(M,i)}AA.set(N,D)}return D}function LA(M,N,D,i,j,t,I,z,u){let g=0;for(let D=i;D<j;D++)g+=sA(M,N[D]);let e=Math.ceil(1.5*g/8),T=[],A=[];return function N(D,i,j,I,z){for(let g=j;g<I;){let j=g,s=i[g],L=sA(M,D[g]);for(g++;g<I;g++){let N=sA(M,D[g]);if(L+N>=e)break;L+=N}if(g==j+1){if(L>e){let M=D[j];N(M.children,M.positions,0,M.children.length,i[j]+z);continue}T.push(D[j])}else{let N=i[g-1]+D[g-1].length-s;T.push(LA(M,D,i,j,g,s,N,null,u))}A.push(s+z-t)}}(N,D,i,j,0),(z||u)(T,A,I)}class OA{constructor(){this.map=new WeakMap}setBuffer(M,N,D){let i=this.map.get(M);i||this.map.set(M,i=new Map),i.set(N,D)}getBuffer(M,N){let D=this.map.get(M);return D&&D.get(N)}set(M,N){M instanceof zA?this.setBuffer(M.context.buffer,M.index,N):M instanceof iA&&this.map.set(M.tree,N)}get(M){return M instanceof zA?this.getBuffer(M.context.buffer,M.index):M instanceof iA?this.map.get(M.tree):void 0}cursorSet(M,N){M.buffer?this.setBuffer(M.buffer.buffer,M.index,N):this.map.set(M.tree,N)}cursorGet(M){return M.buffer?this.getBuffer(M.buffer.buffer,M.index):this.map.get(M.tree)}}class yA{constructor(M,N,D,i,j=!1,t=!1){this.from=M,this.to=N,this.tree=D,this.offset=i,this.open=(j?1:0)|(t?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(M,N=[],D=!1){let i=[new yA(0,M.length,M,0,!1,D)];for(let D of N)D.to>M.length&&i.push(D);return i}static applyChanges(M,N,D=128){if(!N.length)return M;let i=[],j=1,t=M.length?M[0]:null;for(let I=0,z=0,u=0;;I++){let g=I<N.length?N[I]:null,e=g?g.fromA:1e9;if(e-z>=D)for(;t&&t.from<e;){let N=t;if(z>=N.from||e<=N.to||u){let M=Math.max(N.from,z)-u,D=Math.min(N.to,e)-u;N=M>=D?null:new yA(M,D,N.tree,N.offset+u,I>0,!!g)}if(N&&i.push(N),t.to>e)break;t=j<M.length?M[j++]:null}if(!g)break;z=g.toA,u=g.toA-g.toB}return i}}class cA{startParse(M,N,D){return"string"==typeof M&&(M=new nA(M)),D=D?D.length?D.map((M=>new GT(M.from,M.to))):[new GT(0,0)]:[new GT(0,M.length)],this.createParse(M,N||[],D)}parse(M,N,D){let i=this.startParse(M,N,D);for(;;){let M=i.advance();if(M)return M}}}class nA{constructor(M){this.string=M}get length(){return this.string.length}chunk(M){return this.string.slice(M)}get lineChunks(){return!1}read(M,N){return this.string.slice(M,N)}}new PT({perNode:!0});let lA=0;class oA{constructor(M,N,D){this.set=M,this.base=N,this.modified=D,this.id=lA++}static define(M){if(null==M?void 0:M.base)throw new Error("Can not derive from a modified tag");let N=new oA([],null,[]);if(N.set.push(N),M)for(let D of M.set)N.set.push(D);return N}static defineModifier(){let M=new xA;return N=>N.modified.indexOf(M)>-1?N:xA.get(N.base||N,N.modified.concat(M).sort(((M,N)=>M.id-N.id)))}}let rA=0;class xA{constructor(){this.instances=[],this.id=rA++}static get(M,N){if(!N.length)return M;let D=N[0].instances.find((D=>D.base==M&&function(M,N){return M.length==N.length&&M.every(((M,D)=>M==N[D]))}(N,D.modified)));if(D)return D;let i=[],j=new oA(i,M,N);for(let M of N)M.instances.push(j);let t=function(M){let N=[[]];for(let D=0;D<M.length;D++)for(let i=0,j=N.length;i<j;i++)N.push(N[i].concat(M[D]));return N.sort(((M,N)=>N.length-M.length))}(N);for(let N of M.set)if(!N.modified.length)for(let M of t)i.push(xA.get(N,M));return j}}function aA(M){let N=Object.create(null);for(let D in M){let i=M[D];Array.isArray(i)||(i=[i]);for(let M of D.split(" "))if(M){let D=[],j=2,t=M;for(let N=0;;){if("..."==t&&N>0&&N+3==M.length){j=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(t);if(!i)throw new RangeError("Invalid path: "+M);if(D.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),N+=i[0].length,N==M.length)break;let I=M[N++];if(N==M.length&&"!"==I){j=0;break}if("/"!=I)throw new RangeError("Invalid path: "+M);t=M.slice(N)}let I=D.length-1,z=D[I];if(!z)throw new RangeError("Invalid path: "+M);let u=new EA(i,j,I>0?D.slice(0,I):null);N[z]=u.sort(N[z])}}return QA.add(N)}const QA=new PT;class EA{constructor(M,N,D,i){this.tags=M,this.mode=N,this.context=D,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(M){return!M||M.depth<this.depth?(this.next=M,this):(M.next=this.sort(M.next),M)}get depth(){return this.context?this.context.length:0}}function SA(M,N){let D=Object.create(null);for(let N of M)if(Array.isArray(N.tag))for(let M of N.tag)D[M.id]=N.class;else D[N.tag.id]=N.class;let{scope:i,all:j=null}=N||{};return{style:M=>{let N=j;for(let i of M)for(let M of i.set){let i=D[M.id];if(i){N=N?N+" "+i:i;break}}return N},scope:i}}function hA(M,N,D,i=0,j=M.length){let t=new dA(i,Array.isArray(N)?N:[N],D);t.highlightRange(M.cursor(),i,j,"",t.highlighters),t.flush(j)}EA.empty=new EA([],2,null);class dA{constructor(M,N,D){this.at=M,this.highlighters=N,this.span=D,this.class=""}startSpan(M,N){N!=this.class&&(this.flush(M),M>this.at&&(this.at=M),this.class=N)}flush(M){M>this.at&&this.class&&this.span(this.at,M,this.class)}highlightRange(M,N,D,i,j){let{type:t,from:I,to:z}=M;if(I>=D||z<=N)return;t.isTop&&(j=this.highlighters.filter((M=>!M.scope||M.scope(t))));let u=i,g=function(M){let N=M.type.prop(QA);for(;N&&N.context&&!M.matchContext(N.context);)N=N.next;return N||null}(M)||EA.empty,e=function(M,N){let D=null;for(let i of M){let M=i.style(N);M&&(D=D?D+" "+M:M)}return D}(j,g.tags);if(e&&(u&&(u+=" "),u+=e,1==g.mode&&(i+=(i?" ":"")+e)),this.startSpan(Math.max(N,I),u),g.opaque)return;let T=M.tree&&M.tree.prop(PT.mounted);if(T&&T.overlay){let t=M.node.enter(T.overlay[0].from+I,1),g=this.highlighters.filter((M=>!M.scope||M.scope(T.tree.type))),e=M.firstChild();for(let A=0,s=I;;A++){let L=A<T.overlay.length?T.overlay[A]:null,O=L?L.from+I:z,y=Math.max(N,s),c=Math.min(D,O);if(y<c&&e)for(;M.from<c&&(this.highlightRange(M,y,c,i,j),this.startSpan(Math.min(c,M.to),u),!(M.to>=O)&&M.nextSibling()););if(!L||O>D)break;s=L.to+I,s>N&&(this.highlightRange(t.cursor(),Math.max(N,L.from+I),Math.min(D,s),"",g),this.startSpan(Math.min(D,s),u))}e&&M.parent()}else if(M.firstChild()){T&&(i="");do{if(!(M.to<=N)){if(M.from>=D)break;this.highlightRange(M,N,D,i,j),this.startSpan(Math.min(D,M.to),u)}}while(M.nextSibling());M.parent()}}}const kA=oA.define,wA=kA(),UA=kA(),YA=kA(UA),CA=kA(UA),bA=kA(),pA=kA(bA),mA=kA(bA),ZA=kA(),fA=kA(ZA),vA=kA(),WA=kA(),VA=kA(),GA=kA(VA),PA=kA(),RA={comment:wA,lineComment:kA(wA),blockComment:kA(wA),docComment:kA(wA),name:UA,variableName:kA(UA),typeName:YA,tagName:kA(YA),propertyName:CA,attributeName:kA(CA),className:kA(UA),labelName:kA(UA),namespace:kA(UA),macroName:kA(UA),literal:bA,string:pA,docString:kA(pA),character:kA(pA),attributeValue:kA(pA),number:mA,integer:kA(mA),float:kA(mA),bool:kA(bA),regexp:kA(bA),escape:kA(bA),color:kA(bA),url:kA(bA),keyword:vA,self:kA(vA),null:kA(vA),atom:kA(vA),unit:kA(vA),modifier:kA(vA),operatorKeyword:kA(vA),controlKeyword:kA(vA),definitionKeyword:kA(vA),moduleKeyword:kA(vA),operator:WA,derefOperator:kA(WA),arithmeticOperator:kA(WA),logicOperator:kA(WA),bitwiseOperator:kA(WA),compareOperator:kA(WA),updateOperator:kA(WA),definitionOperator:kA(WA),typeOperator:kA(WA),controlOperator:kA(WA),punctuation:VA,separator:kA(VA),bracket:GA,angleBracket:kA(GA),squareBracket:kA(GA),paren:kA(GA),brace:kA(GA),content:ZA,heading:fA,heading1:kA(fA),heading2:kA(fA),heading3:kA(fA),heading4:kA(fA),heading5:kA(fA),heading6:kA(fA),contentSeparator:kA(ZA),list:kA(ZA),quote:kA(ZA),emphasis:kA(ZA),strong:kA(ZA),link:kA(ZA),monospace:kA(ZA),strikethrough:kA(ZA),inserted:kA(),deleted:kA(),changed:kA(),invalid:kA(),meta:PA,documentMeta:kA(PA),annotation:kA(PA),processingInstruction:kA(PA),definition:oA.defineModifier(),constant:oA.defineModifier(),function:oA.defineModifier(),standard:oA.defineModifier(),local:oA.defineModifier(),special:oA.defineModifier()};var BA;SA([{tag:RA.link,class:"tok-link"},{tag:RA.heading,class:"tok-heading"},{tag:RA.emphasis,class:"tok-emphasis"},{tag:RA.strong,class:"tok-strong"},{tag:RA.keyword,class:"tok-keyword"},{tag:RA.atom,class:"tok-atom"},{tag:RA.bool,class:"tok-bool"},{tag:RA.url,class:"tok-url"},{tag:RA.labelName,class:"tok-labelName"},{tag:RA.inserted,class:"tok-inserted"},{tag:RA.deleted,class:"tok-deleted"},{tag:RA.literal,class:"tok-literal"},{tag:RA.string,class:"tok-string"},{tag:RA.number,class:"tok-number"},{tag:[RA.regexp,RA.escape,RA.special(RA.string)],class:"tok-string2"},{tag:RA.variableName,class:"tok-variableName"},{tag:RA.local(RA.variableName),class:"tok-variableName tok-local"},{tag:RA.definition(RA.variableName),class:"tok-variableName tok-definition"},{tag:RA.special(RA.variableName),class:"tok-variableName2"},{tag:RA.definition(RA.propertyName),class:"tok-propertyName tok-definition"},{tag:RA.typeName,class:"tok-typeName"},{tag:RA.namespace,class:"tok-namespace"},{tag:RA.className,class:"tok-className"},{tag:RA.macroName,class:"tok-macroName"},{tag:RA.propertyName,class:"tok-propertyName"},{tag:RA.operator,class:"tok-operator"},{tag:RA.comment,class:"tok-comment"},{tag:RA.meta,class:"tok-meta"},{tag:RA.invalid,class:"tok-invalid"},{tag:RA.punctuation,class:"tok-punctuation"}]);const JA=new PT;function FA(M){return Jj.define({combine:M?N=>N.concat(M):void 0})}const HA=new PT;class XA{constructor(M,N,D=[],i=""){this.data=M,this.name=i,bt.prototype.hasOwnProperty("tree")||Object.defineProperty(bt.prototype,"tree",{get(){return qA(this)}}),this.parser=N,this.extension=[zs.of(this),bt.languageData.of(((M,N,D)=>{let i=$A(M,N,D),j=i.type.prop(JA);if(!j)return[];let t=M.facet(j),I=i.type.prop(HA);if(I){let j=i.resolve(N-i.from,D);for(let N of I)if(N.test(j,M)){let D=M.facet(N.facet);return"replace"==N.type?D:D.concat(t)}}return t}))].concat(D)}isActiveAt(M,N,D=-1){return $A(M,N,D).type.prop(JA)==this.data}findRegions(M){let N=M.facet(zs);if((null==N?void 0:N.data)==this.data)return[{from:0,to:M.doc.length}];if(!N||!N.allowsNesting)return[];let D=[],i=(M,N)=>{if(M.prop(JA)==this.data)return void D.push({from:N,to:N+M.length});let j=M.prop(PT.mounted);if(j){if(j.tree.prop(JA)==this.data){if(j.overlay)for(let M of j.overlay)D.push({from:M.from+N,to:M.to+N});else D.push({from:N,to:N+M.length});return}if(j.overlay){let M=D.length;if(i(j.tree,j.overlay[0].from+N),D.length>M)return}}for(let D=0;D<M.children.length;D++){let j=M.children[D];j instanceof _T&&i(j,M.positions[D]+N)}};return i(qA(M),0),D}get allowsNesting(){return!0}}function $A(M,N,D){let i=M.facet(zs),j=qA(M).topNode;if(!i||i.allowsNesting)for(let M=j;M;M=M.enter(N,D,$T.ExcludeBuffers))M.type.isTop&&(j=M);return j}XA.setState=xt.define();class _A extends XA{constructor(M,N,D){super(M,N,[],D),this.parser=N}static define(M){let N=FA(M.languageData);return new _A(N,M.parser.configure({props:[JA.add((M=>M.isTop?N:void 0))]}),M.name)}configure(M,N){return new _A(this.data,this.parser.configure(M),N||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function qA(M){let N=M.field(XA.state,!1);return N?N.tree:_T.empty}class KA{constructor(M){this.doc=M,this.cursorPos=0,this.string="",this.cursor=M.iter()}get length(){return this.doc.length}syncTo(M){return this.string=this.cursor.next(M-this.cursorPos).value,this.cursorPos=M+this.string.length,this.cursorPos-this.string.length}chunk(M){return this.syncTo(M),this.string}get lineChunks(){return!0}read(M,N){let D=this.cursorPos-this.string.length;return M<D||N>=this.cursorPos?this.doc.sliceString(M,N):this.string.slice(M-D,N-D)}}let Ms=null;class Ns{constructor(M,N,D=[],i,j,t,I,z){this.parser=M,this.state=N,this.fragments=D,this.tree=i,this.treeLen=j,this.viewport=t,this.skipped=I,this.scheduleOn=z,this.parse=null,this.tempSkipped=[]}static create(M,N,D){return new Ns(M,N,[],_T.empty,0,D,[],null)}startParse(){return this.parser.startParse(new KA(this.state.doc),this.fragments)}work(M,N){return null!=N&&N>=this.state.doc.length&&(N=void 0),this.tree!=_T.empty&&this.isDone(null!=N?N:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var D;if("number"==typeof M){let N=Date.now()+M;M=()=>Date.now()>N}for(this.parse||(this.parse=this.startParse()),null!=N&&(null==this.parse.stoppedAt||this.parse.stoppedAt>N)&&N<this.state.doc.length&&this.parse.stopAt(N);;){let i=this.parse.advance();if(i){if(this.fragments=this.withoutTempSkipped(yA.addTree(i,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(D=this.parse.stoppedAt)&&void 0!==D?D:this.state.doc.length,this.tree=i,this.parse=null,!(this.treeLen<(null!=N?N:this.state.doc.length)))return!0;this.parse=this.startParse()}if(M())return!1}}))}takeTree(){let M,N;this.parse&&(M=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>M)&&this.parse.stopAt(M),this.withContext((()=>{for(;!(N=this.parse.advance()););})),this.treeLen=M,this.tree=N,this.fragments=this.withoutTempSkipped(yA.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(M){let N=Ms;Ms=this;try{return M()}finally{Ms=N}}withoutTempSkipped(M){for(let N;N=this.tempSkipped.pop();)M=Ds(M,N.from,N.to);return M}changes(M,N){let{fragments:D,tree:i,treeLen:j,viewport:t,skipped:I}=this;if(this.takeTree(),!M.empty){let N=[];if(M.iterChangedRanges(((M,D,i,j)=>N.push({fromA:M,toA:D,fromB:i,toB:j}))),D=yA.applyChanges(D,N),i=_T.empty,j=0,t={from:M.mapPos(t.from,-1),to:M.mapPos(t.to,1)},this.skipped.length){I=[];for(let N of this.skipped){let D=M.mapPos(N.from,1),i=M.mapPos(N.to,-1);D<i&&I.push({from:D,to:i})}}}return new Ns(this.parser,N,D,i,j,t,I,this.scheduleOn)}updateViewport(M){if(this.viewport.from==M.from&&this.viewport.to==M.to)return!1;this.viewport=M;let N=this.skipped.length;for(let N=0;N<this.skipped.length;N++){let{from:D,to:i}=this.skipped[N];D<M.to&&i>M.from&&(this.fragments=Ds(this.fragments,D,i),this.skipped.splice(N--,1))}return!(this.skipped.length>=N)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(M,N){this.skipped.push({from:M,to:N})}static getSkippingParser(M){return new class extends cA{createParse(N,D,i){let j=i[0].from,t=i[i.length-1].to,I={parsedPos:j,advance(){let N=Ms;if(N){for(let M of i)N.tempSkipped.push(M);M&&(N.scheduleOn=N.scheduleOn?Promise.all([N.scheduleOn,M]):M)}return this.parsedPos=t,new _T(JT.none,[],[],t-j)},stoppedAt:null,stopAt(){}};return I}}}isDone(M){M=Math.min(M,this.state.doc.length);let N=this.fragments;return this.treeLen>=M&&N.length&&0==N[0].from&&N[0].to>=M}static get(){return Ms}}function Ds(M,N,D){return yA.applyChanges(M,[{fromA:N,toA:D,fromB:N,toB:D}])}class is{constructor(M){this.context=M,this.tree=M.tree}apply(M){if(!M.docChanged&&this.tree==this.context.tree)return this;let N=this.context.changes(M.changes,M.state),D=this.context.treeLen==M.startState.doc.length?void 0:Math.max(M.changes.mapPos(this.context.treeLen),N.viewport.to);return N.work(20,D)||N.takeTree(),new is(N)}static init(M){let N=Math.min(3e3,M.doc.length),D=Ns.create(M.facet(zs).parser,M,{from:0,to:N});return D.work(20,N)||D.takeTree(),new is(D)}}XA.state=Kj.define({create:is.init,update(M,N){for(let M of N.effects)if(M.is(XA.setState))return M.value;return N.startState.facet(zs)!=N.state.facet(zs)?is.init(N.state):M.apply(N)}});let js=M=>{let N=setTimeout((()=>M()),500);return()=>clearTimeout(N)};"undefined"!=typeof requestIdleCallback&&(js=M=>{let N=-1,D=setTimeout((()=>{N=requestIdleCallback(M,{timeout:400})}),100);return()=>N<0?clearTimeout(D):cancelIdleCallback(N)});const ts="undefined"!=typeof navigator&&(null===(BA=navigator.scheduling)||void 0===BA?void 0:BA.isInputPending)?()=>navigator.scheduling.isInputPending():null,Is=tu.fromClass(class{constructor(M){this.view=M,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(M){let N=this.view.state.field(XA.state).context;(N.updateViewport(M.view.viewport)||this.view.viewport.to>N.treeLen)&&this.scheduleWork(),(M.docChanged||M.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(N)}scheduleWork(){if(this.working)return;let{state:M}=this.view,N=M.field(XA.state);N.tree==N.context.tree&&N.context.isDone(M.doc.length)||(this.working=js(this.work))}work(M){this.working=null;let N=Date.now();if(this.chunkEnd<N&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=N+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:D,viewport:{to:i}}=this.view,j=D.field(XA.state);if(j.tree==j.context.tree&&j.context.isDone(i+1e5))return;let t=Date.now()+Math.min(this.chunkBudget,100,M&&!ts?Math.max(25,M.timeRemaining()-5):1e9),I=j.context.treeLen<i&&D.doc.length>i+1e3,z=j.context.work((()=>ts&&ts()||Date.now()>t),i+(I?0:1e5));this.chunkBudget-=Date.now()-N,(z||this.chunkBudget<=0)&&(j.context.takeTree(),this.view.dispatch({effects:XA.setState.of(new is(j.context))})),this.chunkBudget>0&&(!z||I)&&this.scheduleWork(),this.checkAsyncSchedule(j.context)}checkAsyncSchedule(M){M.scheduleOn&&(this.workScheduled++,M.scheduleOn.then((()=>this.scheduleWork())).catch((M=>Nu(this.view.state,M))).then((()=>this.workScheduled--)),M.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),zs=Jj.define({combine:M=>M.length?M[0]:null,enables:M=>[XA.state,Is,Ne.contentAttributes.compute([M],(N=>{let D=N.facet(M);return D&&D.name?{"data-language":D.name}:{}}))]});class us{constructor(M,N=[]){this.language=M,this.support=N,this.extension=[M,N]}}const gs=Jj.define(),es=Jj.define({combine:M=>{if(!M.length)return" ";let N=M[0];if(!N||/\S/.test(N)||Array.from(N).some((M=>M!=N[0])))throw new Error("Invalid indent unit: "+JSON.stringify(M[0]));return N}});function Ts(M){let N=M.facet(es);return 9==N.charCodeAt(0)?M.tabSize*N.length:N.length}function As(M,N){let D="",i=M.tabSize,j=M.facet(es)[0];if("\t"==j){for(;N>=i;)D+="\t",N-=i;j=" "}for(let M=0;M<N;M++)D+=j;return D}function ss(M,N){M instanceof bt&&(M=new Ls(M));for(let D of M.state.facet(gs)){let i=D(M,N);if(void 0!==i)return i}let D=qA(M.state);return D.length>=N?function(M,N,D){let i=N.resolveStack(D),j=i.node.enterUnfinishedNodesBefore(D);if(j!=i.node){let M=[];for(let N=j;N!=i.node;N=N.parent)M.push(N);for(let N=M.length-1;N>=0;N--)i={node:M[N],next:i}}return ys(i,M,D)}(M,D,N):null}class Ls{constructor(M,N={}){this.state=M,this.options=N,this.unit=Ts(M)}lineAt(M,N=1){let D=this.state.doc.lineAt(M),{simulateBreak:i,simulateDoubleBreak:j}=this.options;return null!=i&&i>=D.from&&i<=D.to?j&&i==M?{text:"",from:M}:(N<0?i<M:i<=M)?{text:D.text.slice(i-D.from),from:i}:{text:D.text.slice(0,i-D.from),from:D.from}:D}textAfterPos(M,N=1){if(this.options.simulateDoubleBreak&&M==this.options.simulateBreak)return"";let{text:D,from:i}=this.lineAt(M,N);return D.slice(M-i,Math.min(D.length,M+100-i))}column(M,N=1){let{text:D,from:i}=this.lineAt(M,N),j=this.countColumn(D,M-i),t=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return t>-1&&(j+=t-this.countColumn(D,D.search(/\S|$/))),j}countColumn(M,N=M.length){return qt(M,this.state.tabSize,N)}lineIndent(M,N=1){let{text:D,from:i}=this.lineAt(M,N),j=this.options.overrideIndentation;if(j){let M=j(i);if(M>-1)return M}return this.countColumn(D,D.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Os=new PT;function ys(M,N,D){for(let i=M;i;i=i.next){let M=cs(i.node);if(M)return M(ls.create(N,D,i))}return 0}function cs(M){let N=M.type.prop(Os);if(N)return N;let D,i=M.firstChild;if(i&&(D=i.type.prop(PT.closedBy))){let N=M.lastChild,i=N&&D.indexOf(N.name)>-1;return M=>xs(M,!0,1,void 0,i&&!function(M){return M.pos==M.options.simulateBreak&&M.options.simulateDoubleBreak}(M)?N.from:void 0)}return null==M.parent?ns:null}function ns(){return 0}class ls extends Ls{constructor(M,N,D){super(M.state,M.options),this.base=M,this.pos=N,this.context=D}get node(){return this.context.node}static create(M,N,D){return new ls(M,N,D)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(M){let N=this.state.doc.lineAt(M.from);for(;;){let D=M.resolve(N.from);for(;D.parent&&D.parent.from==D.from;)D=D.parent;if(os(D,M))break;N=this.state.doc.lineAt(D.from)}return this.lineIndent(N.from)}continue(){return ys(this.context.next,this.base,this.pos)}}function os(M,N){for(let D=N;D;D=D.parent)if(M==D)return!0;return!1}function rs({closing:M,align:N=!0,units:D=1}){return i=>xs(i,N,D,M)}function xs(M,N,D,i,j){let t=M.textAfter,I=t.match(/^\s*/)[0].length,z=i&&t.slice(I,I+i.length)==i||j==M.pos+I,u=N?function(M){let N=M.node,D=N.childAfter(N.from),i=N.lastChild;if(!D)return null;let j=M.options.simulateBreak,t=M.state.doc.lineAt(D.from),I=null==j||j<=t.from?t.to:Math.min(t.to,j);for(let M=D.to;;){let j=N.childAfter(M);if(!j||j==i)return null;if(!j.type.isSkipped)return j.from<I?D:null;M=j.to}}(M):null;return u?z?M.column(u.from):M.column(u.to):M.baseIndent+(z?0:M.unit*D)}function as({except:M,units:N=1}={}){return D=>{let i=M&&M.test(D.textAfter);return D.baseIndent+(i?0:N*D.unit)}}const Qs=Jj.define(),Es=new PT;function Ss(M){let N=M.lastChild;return N&&N.to==M.to&&N.type.isError}function hs(M,N,D){for(let i of M.facet(Qs)){let j=i(M,N,D);if(j)return j}return function(M,N,D){let i=qA(M);if(i.length<D)return null;let j=null;for(let t=i.resolveStack(D,1);t;t=t.next){let I=t.node;if(I.to<=D||I.from>D)continue;if(j&&I.from<N)break;let z=I.type.prop(Es);if(z&&(I.to<i.length-50||i.length==M.doc.length||!Ss(I))){let i=z(I,M);i&&i.from<=D&&i.from>=N&&i.to>D&&(j=i)}}return j}(M,N,D)}function ds(M,N){let D=N.mapPos(M.from,1),i=N.mapPos(M.to,-1);return D>=i?void 0:{from:D,to:i}}const ks=xt.define({map:ds}),ws=xt.define({map:ds});function Us(M){let N=[];for(let{head:D}of M.state.selection.ranges)N.some((M=>M.from<=D&&M.to>=D))||N.push(M.lineBlockAt(D));return N}const Ys=Kj.define({create:()=>Oz.none,update(M,N){M=M.map(N.changes);for(let D of N.effects)if(D.is(ks)&&!bs(M,D.value.from,D.value.to)){let{preparePlaceholder:i}=N.state.facet(vs),j=i?Oz.replace({widget:new Ps(i(N.state,D.value))}):Gs;M=M.update({add:[j.range(D.value.from,D.value.to)]})}else D.is(ws)&&(M=M.update({filter:(M,N)=>D.value.from!=M||D.value.to!=N,filterFrom:D.value.from,filterTo:D.value.to}));if(N.selection){let D=!1,{head:i}=N.selection.main;M.between(i,i,((M,N)=>{M<i&&N>i&&(D=!0)})),D&&(M=M.update({filterFrom:i,filterTo:i,filter:(M,N)=>N<=i||M>=i}))}return M},provide:M=>Ne.decorations.from(M),toJSON(M,N){let D=[];return M.between(0,N.doc.length,((M,N)=>{D.push(M,N)})),D},fromJSON(M){if(!Array.isArray(M)||M.length%2)throw new RangeError("Invalid JSON for fold state");let N=[];for(let D=0;D<M.length;){let i=M[D++],j=M[D++];if("number"!=typeof i||"number"!=typeof j)throw new RangeError("Invalid JSON for fold state");N.push(Gs.range(i,j))}return Oz.set(N,!0)}});function Cs(M,N,D){var i;let j=null;return null===(i=M.field(Ys,!1))||void 0===i||i.between(N,D,((M,N)=>{(!j||j.from>M)&&(j={from:M,to:N})})),j}function bs(M,N,D){let i=!1;return M.between(N,N,((M,j)=>{M==N&&j==D&&(i=!0)})),i}function ps(M,N){return M.field(Ys,!1)?N:N.concat(xt.appendConfig.of(Ws()))}function ms(M,N,D=!0){let i=M.state.doc.lineAt(N.from).number,j=M.state.doc.lineAt(N.to).number;return Ne.announce.of(`${M.state.phrase(D?"Folded lines":"Unfolded lines")} ${i} ${M.state.phrase("to")} ${j}.`)}const Zs=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:M=>{for(let N of Us(M)){let D=hs(M.state,N.from,N.to);if(D)return M.dispatch({effects:ps(M.state,[ks.of(D),ms(M,D)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:M=>{if(!M.state.field(Ys,!1))return!1;let N=[];for(let D of Us(M)){let i=Cs(M.state,D.from,D.to);i&&N.push(ws.of(i),ms(M,i,!1))}return N.length&&M.dispatch({effects:N}),N.length>0}},{key:"Ctrl-Alt-[",run:M=>{let{state:N}=M,D=[];for(let i=0;i<N.doc.length;){let j=M.lineBlockAt(i),t=hs(N,j.from,j.to);t&&D.push(ks.of(t)),i=(t?M.lineBlockAt(t.to):j).to+1}return D.length&&M.dispatch({effects:ps(M.state,D)}),!!D.length}},{key:"Ctrl-Alt-]",run:M=>{let N=M.state.field(Ys,!1);if(!N||!N.size)return!1;let D=[];return N.between(0,M.state.doc.length,((M,N)=>{D.push(ws.of({from:M,to:N}))})),M.dispatch({effects:D}),!0}}],fs={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},vs=Jj.define({combine:M=>pt(M,fs)});function Ws(M){let N=[Ys,Js];return M&&N.push(vs.of(M)),N}function Vs(M,N){let{state:D}=M,i=D.facet(vs),j=N=>{let D=M.lineBlockAt(M.posAtDOM(N.target)),i=Cs(M.state,D.from,D.to);i&&M.dispatch({effects:ws.of(i)}),N.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(M,j,N);let t=document.createElement("span");return t.textContent=i.placeholderText,t.setAttribute("aria-label",D.phrase("folded code")),t.title=D.phrase("unfold"),t.className="cm-foldPlaceholder",t.onclick=j,t}const Gs=Oz.replace({widget:new class extends sz{toDOM(M){return Vs(M,null)}}});class Ps extends sz{constructor(M){super(),this.value=M}eq(M){return this.value==M.value}toDOM(M){return Vs(M,this.value)}}const Rs={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Bs extends nT{constructor(M,N){super(),this.config=M,this.open=N}eq(M){return this.config==M.config&&this.open==M.open}toDOM(M){if(this.config.markerDOM)return this.config.markerDOM(this.open);let N=document.createElement("span");return N.textContent=this.open?this.config.openText:this.config.closedText,N.title=M.state.phrase(this.open?"Fold line":"Unfold line"),N}}const Js=Ne.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 Fs{constructor(M,N){let D;function i(M){let N=iI.newName();return(D||(D=Object.create(null)))["."+N]=M,N}this.specs=M;const j="string"==typeof N.all?N.all:N.all?i(N.all):void 0,t=N.scope;this.scope=t instanceof XA?M=>M.prop(JA)==t.data:t?M=>M==t:void 0,this.style=SA(M.map((M=>({tag:M.tag,class:M.class||i(Object.assign({},M,{tag:null}))}))),{all:j}).style,this.module=D?new iI(D):null,this.themeType=N.themeType}static define(M,N){return new Fs(M,N||{})}}const Hs=Jj.define(),Xs=Jj.define({combine:M=>M.length?[M[0]]:null});function $s(M){let N=M.facet(Hs);return N.length?N:M.facet(Xs)}class _s{constructor(M){this.markCache=Object.create(null),this.tree=qA(M.state),this.decorations=this.buildDeco(M,$s(M.state)),this.decoratedTo=M.viewport.to}update(M){let N=qA(M.state),D=$s(M.state),i=D!=$s(M.startState),{viewport:j}=M.view,t=M.changes.mapPos(this.decoratedTo,1);N.length<j.to&&!i&&N.type==this.tree.type&&t>=j.to?(this.decorations=this.decorations.map(M.changes),this.decoratedTo=t):(N!=this.tree||M.viewportChanged||i)&&(this.tree=N,this.decorations=this.buildDeco(M.view,D),this.decoratedTo=j.to)}buildDeco(M,N){if(!N||!this.tree.length)return Oz.none;let D=new Vt;for(let{from:i,to:j}of M.visibleRanges)hA(this.tree,N,((M,N,i)=>{D.add(M,N,this.markCache[i]||(this.markCache[i]=Oz.mark({class:i})))}),i,j);return D.finish()}}const qs=tt.high(tu.fromClass(_s,{decorations:M=>M.decorations})),Ks=Fs.define([{tag:RA.meta,color:"#404740"},{tag:RA.link,textDecoration:"underline"},{tag:RA.heading,textDecoration:"underline",fontWeight:"bold"},{tag:RA.emphasis,fontStyle:"italic"},{tag:RA.strong,fontWeight:"bold"},{tag:RA.strikethrough,textDecoration:"line-through"},{tag:RA.keyword,color:"#708"},{tag:[RA.atom,RA.bool,RA.url,RA.contentSeparator,RA.labelName],color:"#219"},{tag:[RA.literal,RA.inserted],color:"#164"},{tag:[RA.string,RA.deleted],color:"#a11"},{tag:[RA.regexp,RA.escape,RA.special(RA.string)],color:"#e40"},{tag:RA.definition(RA.variableName),color:"#00f"},{tag:RA.local(RA.variableName),color:"#30a"},{tag:[RA.typeName,RA.namespace],color:"#085"},{tag:RA.className,color:"#167"},{tag:[RA.special(RA.variableName),RA.macroName],color:"#256"},{tag:RA.definition(RA.propertyName),color:"#00c"},{tag:RA.comment,color:"#940"},{tag:RA.invalid,color:"#f00"}]),ML=Ne.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),NL=1e4,DL="()[]{}",iL=Jj.define({combine:M=>pt(M,{afterCursor:!0,brackets:DL,maxScanDistance:NL,renderMatch:IL})}),jL=Oz.mark({class:"cm-matchingBracket"}),tL=Oz.mark({class:"cm-nonmatchingBracket"});function IL(M){let N=[],D=M.matched?jL:tL;return N.push(D.range(M.start.from,M.start.to)),M.end&&N.push(D.range(M.end.from,M.end.to)),N}const zL=Kj.define({create:()=>Oz.none,update(M,N){if(!N.docChanged&&!N.selection)return M;let D=[],i=N.state.facet(iL);for(let M of N.state.selection.ranges){if(!M.empty)continue;let j=AL(N.state,M.head,-1,i)||M.head>0&&AL(N.state,M.head-1,1,i)||i.afterCursor&&(AL(N.state,M.head,1,i)||M.head<N.state.doc.length&&AL(N.state,M.head+1,-1,i));j&&(D=D.concat(i.renderMatch(j,N.state)))}return Oz.set(D,!0)},provide:M=>Ne.decorations.from(M)}),uL=[zL,ML];const gL=new PT;function eL(M,N,D){let i=M.prop(N<0?PT.openedBy:PT.closedBy);if(i)return i;if(1==M.name.length){let i=D.indexOf(M.name);if(i>-1&&i%2==(N<0?1:0))return[D[i+N]]}return null}function TL(M){let N=M.type.prop(gL);return N?N(M.node):M}function AL(M,N,D,i={}){let j=i.maxScanDistance||NL,t=i.brackets||DL,I=qA(M),z=I.resolveInner(N,D);for(let i=z;i;i=i.parent){let j=eL(i.type,D,t);if(j&&i.from<i.to){let I=TL(i);if(I&&(D>0?N>=I.from&&N<I.to:N>I.from&&N<=I.to))return sL(M,N,D,i,I,j,t)}}return function(M,N,D,i,j,t,I){let z=D<0?M.sliceDoc(N-1,N):M.sliceDoc(N,N+1),u=I.indexOf(z);if(u<0||u%2==0!=D>0)return null;let g={from:D<0?N-1:N,to:D>0?N+1:N},e=M.doc.iterRange(N,D>0?M.doc.length:0),T=0;for(let M=0;!e.next().done&&M<=t;){let t=e.value;D<0&&(M+=t.length);let z=N+M*D;for(let M=D>0?0:t.length-1,N=D>0?t.length:-1;M!=N;M+=D){let N=I.indexOf(t[M]);if(!(N<0||i.resolveInner(z+M,1).type!=j))if(N%2==0==D>0)T++;else{if(1==T)return{start:g,end:{from:z+M,to:z+M+1},matched:N>>1==u>>1};T--}}D>0&&(M+=t.length)}return e.done?{start:g,matched:!1}:null}(M,N,D,I,z.type,j,t)}function sL(M,N,D,i,j,t,I){let z=i.parent,u={from:j.from,to:j.to},g=0,e=null==z?void 0:z.cursor();if(e&&(D<0?e.childBefore(i.from):e.childAfter(i.to)))do{if(D<0?e.to<=i.from:e.from>=i.to){if(0==g&&t.indexOf(e.type.name)>-1&&e.from<e.to){let M=TL(e);return{start:u,end:M?{from:M.from,to:M.to}:void 0,matched:!0}}if(eL(e.type,D,I))g++;else if(eL(e.type,-D,I)){if(0==g){let M=TL(e);return{start:u,end:M&&M.from<M.to?{from:M.from,to:M.to}:void 0,matched:!1}}g--}}}while(D<0?e.prevSibling():e.nextSibling());return{start:u,matched:!1}}const LL=Object.create(null),OL=[JT.none],yL=[],cL=Object.create(null),nL=Object.create(null);for(let[M,N]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"]])nL[M]=oL(LL,N);function lL(M,N){yL.indexOf(M)>-1||(yL.push(M),console.warn(N))}function oL(M,N){let D=[];for(let i of N.split(" ")){let N=[];for(let D of i.split(".")){let i=M[D]||RA[D];i?"function"==typeof i?N.length?N=N.map(i):lL(D,`Modifier ${D} used at start of tag`):N.length?lL(D,`Tag ${D} used as modifier`):N=Array.isArray(i)?i:[i]:lL(D,`Unknown highlighting tag ${D}`)}for(let M of N)D.push(M)}if(!D.length)return 0;let i=N.replace(/ /g,"_"),j=i+" "+D.map((M=>M.id)),t=cL[j];if(t)return t.id;let I=cL[j]=JT.define({id:OL.length,name:i,props:[aA({[i]:D})]});return OL.push(I),I.id}Qz.RTL,Qz.LTR;function rL(M,N){return({state:D,dispatch:i})=>{if(D.readOnly)return!1;let j=M(N,D);return!!j&&(i(D.update(j)),!0)}}const xL=rL(dL,0),aL=rL(hL,0),QL=rL(((M,N)=>hL(M,N,function(M){let N=[];for(let D of M.selection.ranges){let i=M.doc.lineAt(D.from),j=D.to<=i.to?i:M.doc.lineAt(D.to),t=N.length-1;t>=0&&N[t].to>i.from?N[t].to=j.to:N.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:j.to})}return N}(N))),0);function EL(M,N){let D=M.languageDataAt("commentTokens",N);return D.length?D[0]:{}}const SL=50;function hL(M,N,D=N.selection.ranges){let i=D.map((M=>EL(N,M.from).block));if(!i.every((M=>M)))return null;let j=D.map(((M,D)=>function(M,{open:N,close:D},i,j){let t,I,z=M.sliceDoc(i-SL,i),u=M.sliceDoc(j,j+SL),g=/\s*$/.exec(z)[0].length,e=/^\s*/.exec(u)[0].length,T=z.length-g;if(z.slice(T-N.length,T)==N&&u.slice(e,e+D.length)==D)return{open:{pos:i-g,margin:g&&1},close:{pos:j+e,margin:e&&1}};j-i<=2*SL?t=I=M.sliceDoc(i,j):(t=M.sliceDoc(i,i+SL),I=M.sliceDoc(j-SL,j));let A=/^\s*/.exec(t)[0].length,s=/\s*$/.exec(I)[0].length,L=I.length-s-D.length;return t.slice(A,A+N.length)==N&&I.slice(L,L+D.length)==D?{open:{pos:i+A+N.length,margin:/\s/.test(t.charAt(A+N.length))?1:0},close:{pos:j-s-D.length,margin:/\s/.test(I.charAt(L-1))?1:0}}:null}(N,i[D],M.from,M.to)));if(2!=M&&!j.every((M=>M)))return{changes:N.changes(D.map(((M,N)=>j[N]?[]:[{from:M.from,insert:i[N].open+" "},{from:M.to,insert:" "+i[N].close}])))};if(1!=M&&j.some((M=>M))){let M=[];for(let N,D=0;D<j.length;D++)if(N=j[D]){let j=i[D],{open:t,close:I}=N;M.push({from:t.pos-j.open.length,to:t.pos+t.margin},{from:I.pos-I.margin,to:I.pos+j.close.length})}return{changes:M}}return null}function dL(M,N,D=N.selection.ranges){let i=[],j=-1;for(let{from:M,to:t}of D){let D=i.length,I=1e9,z=EL(N,M).line;if(z){for(let D=M;D<=t;){let u=N.doc.lineAt(D);if(u.from>j&&(M==t||t>u.from)){j=u.from;let M=/^\s*/.exec(u.text)[0].length,N=M==u.length,D=u.text.slice(M,M+z.length)==z?M:-1;M<u.text.length&&M<I&&(I=M),i.push({line:u,comment:D,token:z,indent:M,empty:N,single:!1})}D=u.to+1}if(I<1e9)for(let M=D;M<i.length;M++)i[M].indent<i[M].line.text.length&&(i[M].indent=I);i.length==D+1&&(i[D].single=!0)}}if(2!=M&&i.some((M=>M.comment<0&&(!M.empty||M.single)))){let M=[];for(let{line:N,token:D,indent:j,empty:t,single:I}of i)!I&&t||M.push({from:N.from+j,insert:D+" "});let D=N.changes(M);return{changes:D,selection:N.selection.map(D,1)}}if(1!=M&&i.some((M=>M.comment>=0))){let M=[];for(let{line:N,comment:D,token:j}of i)if(D>=0){let i=N.from+D,t=i+j.length;" "==N.text[t-N.from]&&t++,M.push({from:i,to:t})}return{changes:M}}return null}const kL=lt.define(),wL=lt.define(),UL=Jj.define(),YL=Jj.define({combine:M=>pt(M,{minDepth:100,newGroupDelay:500,joinToEvent:(M,N)=>N},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(M,N)=>(D,i)=>M(D,i)||N(D,i)})}),CL=Kj.define({create:()=>XL.empty,update(M,N){let D=N.state.facet(YL),i=N.annotation(kL);if(i){let j=vL.fromTransaction(N,i.selection),t=i.side,I=0==t?M.undone:M.done;return I=j?WL(I,I.length,D.minDepth,j):RL(I,N.startState.selection),new XL(0==t?i.rest:I,0==t?I:i.rest)}let j=N.annotation(wL);if("full"!=j&&"before"!=j||(M=M.isolate()),!1===N.annotation(at.addToHistory))return N.changes.empty?M:M.addMapping(N.changes.desc);let t=vL.fromTransaction(N),I=N.annotation(at.time),z=N.annotation(at.userEvent);return t?M=M.addChanges(t,I,z,D,N):N.selection&&(M=M.addSelection(N.startState.selection,I,z,D.newGroupDelay)),"full"!=j&&"after"!=j||(M=M.isolate()),M},toJSON:M=>({done:M.done.map((M=>M.toJSON())),undone:M.undone.map((M=>M.toJSON()))}),fromJSON:M=>new XL(M.done.map(vL.fromJSON),M.undone.map(vL.fromJSON))});function bL(M,N){return function({state:D,dispatch:i}){if(!N&&D.readOnly)return!1;let j=D.field(CL,!1);if(!j)return!1;let t=j.pop(M,D,N);return!!t&&(i(t),!0)}}const pL=bL(0,!1),mL=bL(1,!1),ZL=bL(0,!0),fL=bL(1,!0);class vL{constructor(M,N,D,i,j){this.changes=M,this.effects=N,this.mapped=D,this.startSelection=i,this.selectionsAfter=j}setSelAfter(M){return new vL(this.changes,this.effects,this.mapped,this.startSelection,M)}toJSON(){var M,N,D;return{changes:null===(M=this.changes)||void 0===M?void 0:M.toJSON(),mapped:null===(N=this.mapped)||void 0===N?void 0:N.toJSON(),startSelection:null===(D=this.startSelection)||void 0===D?void 0:D.toJSON(),selectionsAfter:this.selectionsAfter.map((M=>M.toJSON()))}}static fromJSON(M){return new vL(M.changes&&pj.fromJSON(M.changes),[],M.mapped&&bj.fromJSON(M.mapped),M.startSelection&&Pj.fromJSON(M.startSelection),M.selectionsAfter.map(Pj.fromJSON))}static fromTransaction(M,N){let D=GL;for(let N of M.startState.facet(UL)){let i=N(M);i.length&&(D=D.concat(i))}return!D.length&&M.changes.empty?null:new vL(M.changes.invert(M.startState.doc),D,void 0,N||M.startState.selection,GL)}static selection(M){return new vL(void 0,GL,void 0,void 0,M)}}function WL(M,N,D,i){let j=N+1>D+20?N-D-1:0,t=M.slice(j,N);return t.push(i),t}function VL(M,N){return M.length?N.length?M.concat(N):M:N}const GL=[],PL=200;function RL(M,N){if(M.length){let D=M[M.length-1],i=D.selectionsAfter.slice(Math.max(0,D.selectionsAfter.length-PL));return i.length&&i[i.length-1].eq(N)?M:(i.push(N),WL(M,M.length-1,1e9,D.setSelAfter(i)))}return[vL.selection([N])]}function BL(M){let N=M[M.length-1],D=M.slice();return D[M.length-1]=N.setSelAfter(N.selectionsAfter.slice(0,N.selectionsAfter.length-1)),D}function JL(M,N){if(!M.length)return M;let D=M.length,i=GL;for(;D;){let j=FL(M[D-1],N,i);if(j.changes&&!j.changes.empty||j.effects.length){let N=M.slice(0,D);return N[D-1]=j,N}N=j.mapped,D--,i=j.selectionsAfter}return i.length?[vL.selection(i)]:GL}function FL(M,N,D){let i=VL(M.selectionsAfter.length?M.selectionsAfter.map((M=>M.map(N))):GL,D);if(!M.changes)return vL.selection(i);let j=M.changes.map(N),t=N.mapDesc(M.changes,!0),I=M.mapped?M.mapped.composeDesc(t):t;return new vL(j,xt.mapEffects(M.effects,N),I,M.startSelection.map(t),i)}const HL=/^(input\.type|delete)($|\.)/;class XL{constructor(M,N,D=0,i=void 0){this.done=M,this.undone=N,this.prevTime=D,this.prevUserEvent=i}isolate(){return this.prevTime?new XL(this.done,this.undone):this}addChanges(M,N,D,i,j){let t=this.done,I=t[t.length-1];return t=I&&I.changes&&!I.changes.empty&&M.changes&&(!D||HL.test(D))&&(!I.selectionsAfter.length&&N-this.prevTime<i.newGroupDelay&&i.joinToEvent(j,function(M,N){let D=[],i=!1;return M.iterChangedRanges(((M,N)=>D.push(M,N))),N.iterChangedRanges(((M,N,j,t)=>{for(let M=0;M<D.length;){let N=D[M++],I=D[M++];t>=N&&j<=I&&(i=!0)}})),i}(I.changes,M.changes))||"input.type.compose"==D)?WL(t,t.length-1,i.minDepth,new vL(M.changes.compose(I.changes),VL(M.effects,I.effects),I.mapped,I.startSelection,GL)):WL(t,t.length,i.minDepth,M),new XL(t,GL,N,D)}addSelection(M,N,D,i){let j=this.done.length?this.done[this.done.length-1].selectionsAfter:GL;return j.length>0&&N-this.prevTime<i&&D==this.prevUserEvent&&D&&/^select($|\.)/.test(D)&&function(M,N){return M.ranges.length==N.ranges.length&&0===M.ranges.filter(((M,D)=>M.empty!=N.ranges[D].empty)).length}(j[j.length-1],M)?this:new XL(RL(this.done,M),this.undone,N,D)}addMapping(M){return new XL(JL(this.done,M),JL(this.undone,M),this.prevTime,this.prevUserEvent)}pop(M,N,D){let i=0==M?this.done:this.undone;if(0==i.length)return null;let j=i[i.length-1],t=j.selectionsAfter[0]||N.selection;if(D&&j.selectionsAfter.length)return N.update({selection:j.selectionsAfter[j.selectionsAfter.length-1],annotations:kL.of({side:M,rest:BL(i),selection:t}),userEvent:0==M?"select.undo":"select.redo",scrollIntoView:!0});if(j.changes){let D=1==i.length?GL:i.slice(0,i.length-1);return j.mapped&&(D=JL(D,j.mapped)),N.update({changes:j.changes,selection:j.startSelection,effects:j.effects,annotations:kL.of({side:M,rest:D,selection:t}),filter:!1,userEvent:0==M?"undo":"redo",scrollIntoView:!0})}return null}}XL.empty=new XL(GL,GL);const $L=[{key:"Mod-z",run:pL,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:mL,preventDefault:!0},{linux:"Ctrl-Shift-z",run:mL,preventDefault:!0},{key:"Mod-u",run:ZL,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:fL,preventDefault:!0}];function _L(M,N){return Pj.create(M.ranges.map(N),M.mainIndex)}function qL(M,N){return M.update({selection:N,scrollIntoView:!0,userEvent:"select"})}function KL({state:M,dispatch:N},D){let i=_L(M.selection,D);return!i.eq(M.selection,!0)&&(N(qL(M,i)),!0)}function MO(M,N){return Pj.cursor(N?M.to:M.from)}function NO(M,N){return KL(M,(D=>D.empty?M.moveByChar(D,N):MO(D,N)))}function DO(M){return M.textDirectionAt(M.state.selection.main.head)==Qz.LTR}const iO=M=>NO(M,!DO(M)),jO=M=>NO(M,DO(M));function tO(M,N){return KL(M,(D=>D.empty?M.moveByGroup(D,N):MO(D,N)))}function IO(M,N,D){if(N.type.prop(D))return!0;let i=N.to-N.from;return i&&(i>2||/[^\s,.;:]/.test(M.sliceDoc(N.from,N.to)))||N.firstChild}function zO(M,N,D){let i,j,t=qA(M).resolveInner(N.head),I=D?PT.closedBy:PT.openedBy;for(let i=N.head;;){let N=D?t.childAfter(i):t.childBefore(i);if(!N)break;IO(M,N,I)?t=N:i=D?N.to:N.from}return j=t.type.prop(I)&&(i=D?AL(M,t.from,1):AL(M,t.to,-1))&&i.matched?D?i.end.to:i.end.from:D?t.to:t.from,Pj.cursor(j,D?-1:1)}function uO(M,N){return KL(M,(D=>{if(!D.empty)return MO(D,N);let i=M.moveVertically(D,N);return i.head!=D.head?i:M.moveToLineBoundary(D,N)}))}const gO=M=>uO(M,!1),eO=M=>uO(M,!0);function TO(M){let N,D=M.scrollDOM.clientHeight<M.scrollDOM.scrollHeight-2,i=0,j=0;if(D){for(let N of M.state.facet(Ne.scrollMargins)){let D=N(M);(null==D?void 0:D.top)&&(i=Math.max(null==D?void 0:D.top,i)),(null==D?void 0:D.bottom)&&(j=Math.max(null==D?void 0:D.bottom,j))}N=M.scrollDOM.clientHeight-i-j}else N=(M.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:i,marginBottom:j,selfScroll:D,height:Math.max(M.defaultLineHeight,N-5)}}function AO(M,N){let D,i=TO(M),{state:j}=M,t=_L(j.selection,(D=>D.empty?M.moveVertically(D,N,i.height):MO(D,N)));if(t.eq(j.selection))return!1;if(i.selfScroll){let N=M.coordsAtPos(j.selection.main.head),I=M.scrollDOM.getBoundingClientRect(),z=I.top+i.marginTop,u=I.bottom-i.marginBottom;N&&N.top>z&&N.bottom<u&&(D=Ne.scrollIntoView(t.main.head,{y:"start",yMargin:N.top-z}))}return M.dispatch(qL(j,t),{effects:D}),!0}const sO=M=>AO(M,!1),LO=M=>AO(M,!0);function OO(M,N,D){let i=M.lineBlockAt(N.head),j=M.moveToLineBoundary(N,D);if(j.head==N.head&&j.head!=(D?i.to:i.from)&&(j=M.moveToLineBoundary(N,D,!1)),!D&&j.head==i.from&&i.length){let D=/^\s*/.exec(M.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;D&&N.head!=i.from+D&&(j=Pj.cursor(i.from+D))}return j}function yO(M,N){let D=_L(M.state.selection,(M=>{let D=N(M);return Pj.range(M.anchor,D.head,D.goalColumn,D.bidiLevel||void 0)}));return!D.eq(M.state.selection)&&(M.dispatch(qL(M.state,D)),!0)}function cO(M,N){return yO(M,(D=>M.moveByChar(D,N)))}const nO=M=>cO(M,!DO(M)),lO=M=>cO(M,DO(M));function oO(M,N){return yO(M,(D=>M.moveByGroup(D,N)))}function rO(M,N){return yO(M,(D=>M.moveVertically(D,N)))}const xO=M=>rO(M,!1),aO=M=>rO(M,!0);function QO(M,N){return yO(M,(D=>M.moveVertically(D,N,TO(M).height)))}const EO=M=>QO(M,!1),SO=M=>QO(M,!0),hO=({state:M,dispatch:N})=>(N(qL(M,{anchor:0})),!0),dO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.doc.length})),!0),kO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.selection.main.anchor,head:0})),!0),wO=({state:M,dispatch:N})=>(N(qL(M,{anchor:M.selection.main.anchor,head:M.doc.length})),!0);function UO(M,N){if(M.state.readOnly)return!1;let D="delete.selection",{state:i}=M,j=i.changeByRange((i=>{let{from:j,to:t}=i;if(j==t){let I=N(i);I<j?(D="delete.backward",I=YO(M,I,!1)):I>j&&(D="delete.forward",I=YO(M,I,!0)),j=Math.min(j,I),t=Math.max(t,I)}else j=YO(M,j,!1),t=YO(M,t,!0);return j==t?{range:i}:{changes:{from:j,to:t},range:Pj.cursor(j,j<i.head?-1:1)}}));return!j.changes.empty&&(M.dispatch(i.update(j,{scrollIntoView:!0,userEvent:D,effects:"delete.selection"==D?Ne.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function YO(M,N,D){if(M instanceof Ne)for(let i of M.state.facet(Ne.atomicRanges).map((N=>N(M))))i.between(N,N,((M,i)=>{M<N&&i>N&&(N=D?i:M)}));return N}const CO=(M,N,D)=>UO(M,(i=>{let j,t,I=i.from,{state:z}=M,u=z.doc.lineAt(I);if(D&&!N&&I>u.from&&I<u.from+200&&!/[^ \t]/.test(j=u.text.slice(0,I-u.from))){if("\t"==j[j.length-1])return I-1;let M=qt(j,z.tabSize)%Ts(z)||Ts(z);for(let N=0;N<M&&" "==j[j.length-1-N];N++)I--;t=I}else t=Qj(u.text,I-u.from,N,N)+u.from,t==I&&u.number!=(N?z.doc.lines:1)?t+=N?1:-1:!N&&/[\ufe00-\ufe0f]/.test(u.text.slice(t-u.from,I-u.from))&&(t=Qj(u.text,t-u.from,!1,!1)+u.from);return t})),bO=M=>CO(M,!1,!0),pO=M=>CO(M,!0,!1),mO=(M,N)=>UO(M,(D=>{let i=D.head,{state:j}=M,t=j.doc.lineAt(i),I=j.charCategorizer(i);for(let M=null;;){if(i==(N?t.to:t.from)){i==D.head&&t.number!=(N?j.doc.lines:1)&&(i+=N?1:-1);break}let z=Qj(t.text,i-t.from,N)+t.from,u=t.text.slice(Math.min(i,z)-t.from,Math.max(i,z)-t.from),g=I(u);if(null!=M&&g!=M)break;" "==u&&i==D.head||(M=g),i=z}return i})),ZO=M=>mO(M,!1);function fO(M){let N=[],D=-1;for(let i of M.selection.ranges){let j=M.doc.lineAt(i.from),t=M.doc.lineAt(i.to);if(i.empty||i.to!=t.from||(t=M.doc.lineAt(i.to-1)),D>=j.number){let M=N[N.length-1];M.to=t.to,M.ranges.push(i)}else N.push({from:j.from,to:t.to,ranges:[i]});D=t.number+1}return N}function vO(M,N,D){if(M.readOnly)return!1;let i=[],j=[];for(let N of fO(M)){if(D?N.to==M.doc.length:0==N.from)continue;let t=M.doc.lineAt(D?N.to+1:N.from-1),I=t.length+1;if(D){i.push({from:N.to,to:t.to},{from:N.from,insert:t.text+M.lineBreak});for(let D of N.ranges)j.push(Pj.range(Math.min(M.doc.length,D.anchor+I),Math.min(M.doc.length,D.head+I)))}else{i.push({from:t.from,to:N.from},{from:N.to,insert:M.lineBreak+t.text});for(let M of N.ranges)j.push(Pj.range(M.anchor-I,M.head-I))}}return!!i.length&&(N(M.update({changes:i,scrollIntoView:!0,selection:Pj.create(j,M.selection.mainIndex),userEvent:"move.line"})),!0)}function WO(M,N,D){if(M.readOnly)return!1;let i=[];for(let N of fO(M))D?i.push({from:N.from,insert:M.doc.slice(N.from,N.to)+M.lineBreak}):i.push({from:N.to,insert:M.lineBreak+M.doc.slice(N.from,N.to)});return N(M.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const VO=PO(!1),GO=PO(!0);function PO(M){return({state:N,dispatch:D})=>{if(N.readOnly)return!1;let i=N.changeByRange((D=>{let{from:i,to:j}=D,t=N.doc.lineAt(i),I=!M&&i==j&&function(M,N){if(/\(\)|\[\]|\{\}/.test(M.sliceDoc(N-1,N+1)))return{from:N,to:N};let D,i=qA(M).resolveInner(N),j=i.childBefore(N),t=i.childAfter(N);return j&&t&&j.to<=N&&t.from>=N&&(D=j.type.prop(PT.closedBy))&&D.indexOf(t.name)>-1&&M.doc.lineAt(j.to).from==M.doc.lineAt(t.from).from&&!/\S/.test(M.sliceDoc(j.to,t.from))?{from:j.to,to:t.from}:null}(N,i);M&&(i=j=(j<=t.to?t:N.doc.lineAt(j)).to);let z=new Ls(N,{simulateBreak:i,simulateDoubleBreak:!!I}),u=ss(z,i);for(null==u&&(u=qt(/^\s*/.exec(N.doc.lineAt(i).text)[0],N.tabSize));j<t.to&&/\s/.test(t.text[j-t.from]);)j++;I?({from:i,to:j}=I):i>t.from&&i<t.from+100&&!/\S/.test(t.text.slice(0,i))&&(i=t.from);let g=["",As(N,u)];return I&&g.push(As(N,z.lineIndent(t.from,-1))),{changes:{from:i,to:j,insert:ej.of(g)},range:Pj.cursor(i+1+g[1].length)}}));return D(N.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function RO(M,N){let D=-1;return M.changeByRange((i=>{let j=[];for(let t=i.from;t<=i.to;){let I=M.doc.lineAt(t);I.number>D&&(i.empty||i.to>I.from)&&(N(I,j,i),D=I.number),t=I.to+1}let t=M.changes(j);return{changes:j,range:Pj.range(t.mapPos(i.anchor,1),t.mapPos(i.head,1))}}))}const BO=[{key:"Ctrl-b",run:iO,shift:nO,preventDefault:!0},{key:"Ctrl-f",run:jO,shift:lO},{key:"Ctrl-p",run:gO,shift:xO},{key:"Ctrl-n",run:eO,shift:aO},{key:"Ctrl-a",run:M=>KL(M,(N=>Pj.cursor(M.lineBlockAt(N.head).from,1))),shift:M=>yO(M,(N=>Pj.cursor(M.lineBlockAt(N.head).from)))},{key:"Ctrl-e",run:M=>KL(M,(N=>Pj.cursor(M.lineBlockAt(N.head).to,-1))),shift:M=>yO(M,(N=>Pj.cursor(M.lineBlockAt(N.head).to)))},{key:"Ctrl-d",run:pO},{key:"Ctrl-h",run:bO},{key:"Ctrl-k",run:M=>UO(M,(N=>{let D=M.lineBlockAt(N.head).to;return N.head<D?D:Math.min(M.state.doc.length,N.head+1)}))},{key:"Ctrl-Alt-h",run:ZO},{key:"Ctrl-o",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=M.changeByRange((M=>({changes:{from:M.from,to:M.to,insert:ej.of(["",""])},range:Pj.cursor(M.from)})));return N(M.update(D,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=M.changeByRange((N=>{if(!N.empty||0==N.from||N.from==M.doc.length)return{range:N};let D=N.from,i=M.doc.lineAt(D),j=D==i.from?D-1:Qj(i.text,D-i.from,!1)+i.from,t=D==i.to?D+1:Qj(i.text,D-i.from,!0)+i.from;return{changes:{from:j,to:t,insert:M.doc.slice(D,t).append(M.doc.slice(j,D))},range:Pj.cursor(t)}}));return!D.changes.empty&&(N(M.update(D,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:LO}],JO=[{key:"ArrowLeft",run:iO,shift:nO,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:M=>tO(M,!DO(M)),shift:M=>oO(M,!DO(M)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:M=>KL(M,(N=>OO(M,N,!DO(M)))),shift:M=>yO(M,(N=>OO(M,N,!DO(M)))),preventDefault:!0},{key:"ArrowRight",run:jO,shift:lO,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:M=>tO(M,DO(M)),shift:M=>oO(M,DO(M)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:M=>KL(M,(N=>OO(M,N,DO(M)))),shift:M=>yO(M,(N=>OO(M,N,DO(M)))),preventDefault:!0},{key:"ArrowUp",run:gO,shift:xO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:hO,shift:kO},{mac:"Ctrl-ArrowUp",run:sO,shift:EO},{key:"ArrowDown",run:eO,shift:aO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:dO,shift:wO},{mac:"Ctrl-ArrowDown",run:LO,shift:SO},{key:"PageUp",run:sO,shift:EO},{key:"PageDown",run:LO,shift:SO},{key:"Home",run:M=>KL(M,(N=>OO(M,N,!1))),shift:M=>yO(M,(N=>OO(M,N,!1))),preventDefault:!0},{key:"Mod-Home",run:hO,shift:kO},{key:"End",run:M=>KL(M,(N=>OO(M,N,!0))),shift:M=>yO(M,(N=>OO(M,N,!0))),preventDefault:!0},{key:"Mod-End",run:dO,shift:wO},{key:"Enter",run:VO},{key:"Mod-a",run:({state:M,dispatch:N})=>(N(M.update({selection:{anchor:0,head:M.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:bO,shift:bO},{key:"Delete",run:pO},{key:"Mod-Backspace",mac:"Alt-Backspace",run:ZO},{key:"Mod-Delete",mac:"Alt-Delete",run:M=>mO(M,!0)},{mac:"Mod-Backspace",run:M=>UO(M,(N=>{let D=M.moveToLineBoundary(N,!1).head;return N.head>D?D:Math.max(0,N.head-1)}))},{mac:"Mod-Delete",run:M=>UO(M,(N=>{let D=M.moveToLineBoundary(N,!0).head;return N.head<D?D:Math.min(M.state.doc.length,N.head+1)}))}].concat(BO.map((M=>({mac:M.key,run:M.run,shift:M.shift})))),FO=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:M=>KL(M,(N=>zO(M.state,N,!DO(M)))),shift:M=>yO(M,(N=>zO(M.state,N,!DO(M))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:M=>KL(M,(N=>zO(M.state,N,DO(M)))),shift:M=>yO(M,(N=>zO(M.state,N,DO(M))))},{key:"Alt-ArrowUp",run:({state:M,dispatch:N})=>vO(M,N,!1)},{key:"Shift-Alt-ArrowUp",run:({state:M,dispatch:N})=>WO(M,N,!1)},{key:"Alt-ArrowDown",run:({state:M,dispatch:N})=>vO(M,N,!0)},{key:"Shift-Alt-ArrowDown",run:({state:M,dispatch:N})=>WO(M,N,!0)},{key:"Escape",run:({state:M,dispatch:N})=>{let D=M.selection,i=null;return D.ranges.length>1?i=Pj.create([D.main]):D.main.empty||(i=Pj.create([Pj.cursor(D.main.head)])),!!i&&(N(qL(M,i)),!0)}},{key:"Mod-Enter",run:GO},{key:"Alt-l",mac:"Ctrl-l",run:({state:M,dispatch:N})=>{let D=fO(M).map((({from:N,to:D})=>Pj.range(N,Math.min(D+1,M.doc.length))));return N(M.update({selection:Pj.create(D),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:M,dispatch:N})=>{let D=_L(M.selection,(N=>{var D;for(let i=qA(M).resolveStack(N.from,1);i;i=i.next){let{node:M}=i;if((M.from<N.from&&M.to>=N.to||M.to>N.to&&M.from<=N.from)&&(null===(D=M.parent)||void 0===D?void 0:D.parent))return Pj.range(M.to,M.from)}return N}));return N(qL(M,D)),!0},preventDefault:!0},{key:"Mod-[",run:({state:M,dispatch:N})=>!M.readOnly&&(N(M.update(RO(M,((N,D)=>{let i=/^\s*/.exec(N.text)[0];if(!i)return;let j=qt(i,M.tabSize),t=0,I=As(M,Math.max(0,j-Ts(M)));for(;t<i.length&&t<I.length&&i.charCodeAt(t)==I.charCodeAt(t);)t++;D.push({from:N.from+t,to:N.from+i.length,insert:I.slice(t)})})),{userEvent:"delete.dedent"})),!0)},{key:"Mod-]",run:({state:M,dispatch:N})=>!M.readOnly&&(N(M.update(RO(M,((N,D)=>{D.push({from:N.from,insert:M.facet(es)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=Object.create(null),i=new Ls(M,{overrideIndentation:M=>{let N=D[M];return null==N?-1:N}}),j=RO(M,((N,j,t)=>{let I=ss(i,N.from);if(null==I)return;/\S/.test(N.text)||(I=0);let z=/^\s*/.exec(N.text)[0],u=As(M,I);(z!=u||t.from<N.from+z.length)&&(D[N.from]=I,j.push({from:N.from,to:N.from+z.length,insert:u}))}));return j.changes.empty||N(M.update(j,{userEvent:"indent"})),!0}},{key:"Shift-Mod-k",run:M=>{if(M.state.readOnly)return!1;let{state:N}=M,D=N.changes(fO(N).map((({from:M,to:D})=>(M>0?M--:D<N.doc.length&&D++,{from:M,to:D})))),i=_L(N.selection,(N=>{let D;if(M.lineWrapping){let i=M.lineBlockAt(N.head),j=M.coordsAtPos(N.head,N.assoc||1);j&&(D=i.bottom+M.documentTop-j.bottom+M.defaultLineHeight/2)}return M.moveVertically(N,!0,D)})).map(D);return M.dispatch({changes:D,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:M,dispatch:N})=>function(M,N,D){let i=!1,j=_L(M.selection,(N=>{let j=AL(M,N.head,-1)||AL(M,N.head,1)||N.head>0&&AL(M,N.head-1,1)||N.head<M.doc.length&&AL(M,N.head+1,-1);if(!j||!j.end)return N;i=!0;let t=j.start.from==N.head?j.end.to:j.end.from;return D?Pj.range(N.anchor,t):Pj.cursor(t)}));return!!i&&(N(qL(M,j)),!0)}(M,N,!1)},{key:"Mod-/",run:M=>{let{state:N}=M,D=N.doc.lineAt(N.selection.main.from),i=EL(M.state,D.from);return i.line?xL(M):!!i.block&&QL(M)}},{key:"Alt-A",run:aL}].concat(JO);function HO(){var M=arguments[0];"string"==typeof M&&(M=document.createElement(M));var N=1,D=arguments[1];if(D&&"object"==typeof D&&null==D.nodeType&&!Array.isArray(D)){for(var i in D)if(Object.prototype.hasOwnProperty.call(D,i)){var j=D[i];"string"==typeof j?M.setAttribute(i,j):null!=j&&(M[i]=j)}N++}for(;N<arguments.length;N++)XO(M,arguments[N]);return M}function XO(M,N){if("string"==typeof N)M.appendChild(document.createTextNode(N));else if(null==N);else if(null!=N.nodeType)M.appendChild(N);else{if(!Array.isArray(N))throw new RangeError("Unsupported child node: "+N);for(var D=0;D<N.length;D++)XO(M,N[D])}}const $O="function"==typeof String.prototype.normalize?M=>M.normalize("NFKD"):M=>M;class _O{constructor(M,N,D=0,i=M.length,j,t){this.test=t,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=M.iterRange(D,i),this.bufferStart=D,this.normalize=j?M=>j($O(M)):$O,this.query=this.normalize(N)}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 kj(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let M=this.peek();if(M<0)return this.done=!0,this;let N=wj(M),D=this.bufferStart+this.bufferPos;this.bufferPos+=Uj(M);let i=this.normalize(N);for(let M=0,j=D;;M++){let t=i.charCodeAt(M),I=this.match(t,j,this.bufferPos+this.bufferStart);if(M==i.length-1){if(I)return this.value=I,this;break}j==D&&M<N.length&&N.charCodeAt(M)==t&&j++}}}match(M,N,D){let i=null;for(let N=0;N<this.matches.length;N+=2){let j=this.matches[N],t=!1;this.query.charCodeAt(j)==M&&(j==this.query.length-1?i={from:this.matches[N+1],to:D}:(this.matches[N]++,t=!0)),t||(this.matches.splice(N,2),N-=2)}return this.query.charCodeAt(0)==M&&(1==this.query.length?i={from:N,to:D}:this.matches.push(1,N)),i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null),i}}"undefined"!=typeof Symbol&&(_O.prototype[Symbol.iterator]=function(){return this});const qO={from:-1,to:-1,match:/.*/.exec("")},KO="gm"+(null==/x/.unicode?"":"u");class My{constructor(M,N,D,i=0,j=M.length){if(this.text=M,this.to=j,this.curLine="",this.done=!1,this.value=qO,/\\[sWDnr]|\n|\r|\[\^/.test(N))return new iy(M,N,D,i,j);this.re=new RegExp(N,KO+((null==D?void 0:D.ignoreCase)?"i":"")),this.test=null==D?void 0:D.test,this.iter=M.iter();let t=M.lineAt(i);this.curLineStart=t.from,this.matchPos=jy(M,i),this.getLine(this.curLineStart)}getLine(M){this.iter.next(M),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.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 M=this.matchPos-this.curLineStart;;){this.re.lastIndex=M;let N=this.matchPos<=this.to&&this.re.exec(this.curLine);if(N){let D=this.curLineStart+N.index,i=D+N[0].length;if(this.matchPos=jy(this.text,i+(D==i?1:0)),D==this.curLineStart+this.curLine.length&&this.nextLine(),(D<i||D>this.value.to)&&(!this.test||this.test(D,i,N)))return this.value={from:D,to:i,match:N},this;M=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length<this.to))return this.done=!0,this;this.nextLine(),M=0}}}}const Ny=new WeakMap;class Dy{constructor(M,N){this.from=M,this.text=N}get to(){return this.from+this.text.length}static get(M,N,D){let i=Ny.get(M);if(!i||i.from>=D||i.to<=N){let i=new Dy(N,M.sliceString(N,D));return Ny.set(M,i),i}if(i.from==N&&i.to==D)return i;let{text:j,from:t}=i;return t>N&&(j=M.sliceString(N,t)+j,t=N),i.to<D&&(j+=M.sliceString(i.to,D)),Ny.set(M,new Dy(t,j)),new Dy(N,j.slice(N-t,D-t))}}class iy{constructor(M,N,D,i,j){this.text=M,this.to=j,this.done=!1,this.value=qO,this.matchPos=jy(M,i),this.re=new RegExp(N,KO+((null==D?void 0:D.ignoreCase)?"i":"")),this.test=null==D?void 0:D.test,this.flat=Dy.get(M,i,this.chunkEnd(i+5e3))}chunkEnd(M){return M>=this.to?this.to:this.text.lineAt(M).to}next(){for(;;){let M=this.re.lastIndex=this.matchPos-this.flat.from,N=this.re.exec(this.flat.text);if(N&&!N[0]&&N.index==M&&(this.re.lastIndex=M+1,N=this.re.exec(this.flat.text)),N){let M=this.flat.from+N.index,D=M+N[0].length;if((this.flat.to>=this.to||N.index+N[0].length<=this.flat.text.length-10)&&(!this.test||this.test(M,D,N)))return this.value={from:M,to:D,match:N},this.matchPos=jy(this.text,D+(M==D?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Dy.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function jy(M,N){if(N>=M.length)return N;let D,i=M.lineAt(N);for(;N<i.to&&(D=i.text.charCodeAt(N-i.from))>=56320&&D<57344;)N++;return N}function ty(M){let N=HO("input",{class:"cm-textfield",name:"line",value:String(M.state.doc.lineAt(M.state.selection.main.head).number)}),D=HO("form",{class:"cm-gotoLine",onkeydown:N=>{27==N.keyCode?(N.preventDefault(),M.dispatch({effects:Iy.of(!1)}),M.focus()):13==N.keyCode&&(N.preventDefault(),i())},onsubmit:M=>{M.preventDefault(),i()}},HO("label",M.state.phrase("Go to line"),": ",N)," ",HO("button",{class:"cm-button",type:"submit"},M.state.phrase("go")));function i(){let D=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(N.value);if(!D)return;let{state:i}=M,j=i.doc.lineAt(i.selection.main.head),[,t,I,z,u]=D,g=z?+z.slice(1):0,e=I?+I:j.number;if(I&&u){let M=e/100;t&&(M=M*("-"==t?-1:1)+j.number/i.doc.lines),e=Math.round(i.doc.lines*M)}else I&&t&&(e=e*("-"==t?-1:1)+j.number);let T=i.doc.line(Math.max(1,Math.min(i.doc.lines,e))),A=Pj.cursor(T.from+Math.max(0,Math.min(g,T.length)));M.dispatch({effects:[Iy.of(!1),Ne.scrollIntoView(A.from,{y:"center"})],selection:A}),M.focus()}return{dom:D}}"undefined"!=typeof Symbol&&(My.prototype[Symbol.iterator]=iy.prototype[Symbol.iterator]=function(){return this});const Iy=xt.define(),zy=Kj.define({create:()=>!0,update(M,N){for(let D of N.effects)D.is(Iy)&&(M=D.value);return M},provide:M=>cT.from(M,(M=>M?ty:null))}),uy=Ne.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),gy={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},ey=Jj.define({combine:M=>pt(M,gy,{highlightWordAroundCursor:(M,N)=>M||N,minSelectionLength:Math.min,maxMatches:Math.min})});const Ty=Oz.mark({class:"cm-selectionMatch"}),Ay=Oz.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function sy(M,N,D,i){return!(0!=D&&M(N.sliceDoc(D-1,D))==wt.Word||i!=N.doc.length&&M(N.sliceDoc(i,i+1))==wt.Word)}const Ly=tu.fromClass(class{constructor(M){this.decorations=this.getDeco(M)}update(M){(M.selectionSet||M.docChanged||M.viewportChanged)&&(this.decorations=this.getDeco(M.view))}getDeco(M){let N=M.state.facet(ey),{state:D}=M,i=D.selection;if(i.ranges.length>1)return Oz.none;let j,t=i.main,I=null;if(t.empty){if(!N.highlightWordAroundCursor)return Oz.none;let M=D.wordAt(t.head);if(!M)return Oz.none;I=D.charCategorizer(t.head),j=D.sliceDoc(M.from,M.to)}else{let M=t.to-t.from;if(M<N.minSelectionLength||M>200)return Oz.none;if(N.wholeWords){if(j=D.sliceDoc(t.from,t.to),I=D.charCategorizer(t.head),!sy(I,D,t.from,t.to)||!function(M,N,D,i){return M(N.sliceDoc(D,D+1))==wt.Word&&M(N.sliceDoc(i-1,i))==wt.Word}(I,D,t.from,t.to))return Oz.none}else if(j=D.sliceDoc(t.from,t.to),!j)return Oz.none}let z=[];for(let i of M.visibleRanges){let M=new _O(D.doc,j,i.from,i.to);for(;!M.next().done;){let{from:i,to:j}=M.value;if((!I||sy(I,D,i,j))&&(t.empty&&i<=t.from&&j>=t.to?z.push(Ay.range(i,j)):(i>=t.to||j<=t.from)&&z.push(Ty.range(i,j)),z.length>N.maxMatches))return Oz.none}}return Oz.set(z)}},{decorations:M=>M.decorations}),Oy=Ne.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const yy=Jj.define({combine:M=>pt(M,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:M=>new By(M),scrollToMatch:M=>Ne.scrollIntoView(M)})});class cy{constructor(M){this.search=M.search,this.caseSensitive=!!M.caseSensitive,this.literal=!!M.literal,this.regexp=!!M.regexp,this.replace=M.replace||"",this.valid=!!this.search&&(!this.regexp||function(M){try{return new RegExp(M,KO),!0}catch(M){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!M.wholeWord}unquote(M){return this.literal?M:M.replace(/\\([nrt\\])/g,((M,N)=>"n"==N?"\n":"r"==N?"\r":"t"==N?"\t":"\\"))}eq(M){return this.search==M.search&&this.replace==M.replace&&this.caseSensitive==M.caseSensitive&&this.regexp==M.regexp&&this.wholeWord==M.wholeWord}create(){return this.regexp?new Qy(this):new oy(this)}getCursor(M,N=0,D){let i=M.doc?M:bt.create({doc:M});return null==D&&(D=i.doc.length),this.regexp?ry(this,i,N,D):ly(this,i,N,D)}}class ny{constructor(M){this.spec=M}}function ly(M,N,D,i){return new _O(N.doc,M.unquoted,D,i,M.caseSensitive?void 0:M=>M.toLowerCase(),M.wholeWord?function(M,N){return(D,i,j,t)=>((t>D||t+j.length<i)&&(t=Math.max(0,D-2),j=M.sliceString(t,Math.min(M.length,i+2))),!(N(xy(j,D-t))==wt.Word&&N(ay(j,D-t))==wt.Word||N(ay(j,i-t))==wt.Word&&N(xy(j,i-t))==wt.Word))}(N.doc,N.charCategorizer(N.selection.main.head)):void 0)}class oy extends ny{constructor(M){super(M)}nextMatch(M,N,D){let i=ly(this.spec,M,D,M.doc.length).nextOverlapping();return i.done&&(i=ly(this.spec,M,0,N).nextOverlapping()),i.done?null:i.value}prevMatchInRange(M,N,D){for(let i=D;;){let D=Math.max(N,i-1e4-this.spec.unquoted.length),j=ly(this.spec,M,D,i),t=null;for(;!j.nextOverlapping().done;)t=j.value;if(t)return t;if(D==N)return null;i-=1e4}}prevMatch(M,N,D){return this.prevMatchInRange(M,0,N)||this.prevMatchInRange(M,D,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace)}matchAll(M,N){let D=ly(this.spec,M,0,M.doc.length),i=[];for(;!D.next().done;){if(i.length>=N)return null;i.push(D.value)}return i}highlight(M,N,D,i){let j=ly(this.spec,M,Math.max(0,N-this.spec.unquoted.length),Math.min(D+this.spec.unquoted.length,M.doc.length));for(;!j.next().done;)i(j.value.from,j.value.to)}}function ry(M,N,D,i){return new My(N.doc,M.search,{ignoreCase:!M.caseSensitive,test:M.wholeWord?(j=N.charCategorizer(N.selection.main.head),(M,N,D)=>!D[0].length||(j(xy(D.input,D.index))!=wt.Word||j(ay(D.input,D.index))!=wt.Word)&&(j(ay(D.input,D.index+D[0].length))!=wt.Word||j(xy(D.input,D.index+D[0].length))!=wt.Word)):void 0},D,i);var j}function xy(M,N){return M.slice(Qj(M,N,!1),N)}function ay(M,N){return M.slice(N,Qj(M,N))}class Qy extends ny{nextMatch(M,N,D){let i=ry(this.spec,M,D,M.doc.length).next();return i.done&&(i=ry(this.spec,M,0,N).next()),i.done?null:i.value}prevMatchInRange(M,N,D){for(let i=1;;i++){let j=Math.max(N,D-1e4*i),t=ry(this.spec,M,j,D),I=null;for(;!t.next().done;)I=t.value;if(I&&(j==N||I.from>j+10))return I;if(j==N)return null}}prevMatch(M,N,D){return this.prevMatchInRange(M,0,N)||this.prevMatchInRange(M,D,M.doc.length)}getReplacement(M){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((N,D)=>"$"==D?"$":"&"==D?M.match[0]:"0"!=D&&+D<M.match.length?M.match[D]:N))}matchAll(M,N){let D=ry(this.spec,M,0,M.doc.length),i=[];for(;!D.next().done;){if(i.length>=N)return null;i.push(D.value)}return i}highlight(M,N,D,i){let j=ry(this.spec,M,Math.max(0,N-250),Math.min(D+250,M.doc.length));for(;!j.next().done;)i(j.value.from,j.value.to)}}const Ey=xt.define(),Sy=xt.define(),hy=Kj.define({create:M=>new dy(vy(M).create(),null),update(M,N){for(let D of N.effects)D.is(Ey)?M=new dy(D.value.create(),M.panel):D.is(Sy)&&(M=new dy(M.query,D.value?fy:null));return M},provide:M=>cT.from(M,(M=>M.panel))});class dy{constructor(M,N){this.query=M,this.panel=N}}const ky=Oz.mark({class:"cm-searchMatch"}),wy=Oz.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Uy=tu.fromClass(class{constructor(M){this.view=M,this.decorations=this.highlight(M.state.field(hy))}update(M){let N=M.state.field(hy);(N!=M.startState.field(hy)||M.docChanged||M.selectionSet||M.viewportChanged)&&(this.decorations=this.highlight(N))}highlight({query:M,panel:N}){if(!N||!M.spec.valid)return Oz.none;let{view:D}=this,i=new Vt;for(let N=0,j=D.visibleRanges,t=j.length;N<t;N++){let{from:I,to:z}=j[N];for(;N<t-1&&z>j[N+1].from-500;)z=j[++N].to;M.highlight(D.state,I,z,((M,N)=>{let j=D.state.selection.ranges.some((D=>D.from==M&&D.to==N));i.add(M,N,j?wy:ky)}))}return i.finish()}},{decorations:M=>M.decorations});function Yy(M){return N=>{let D=N.state.field(hy,!1);return D&&D.query.spec.valid?M(N,D):Gy(N)}}const Cy=Yy(((M,{query:N})=>{let{to:D}=M.state.selection.main,i=N.nextMatch(M.state,D,D);if(!i)return!1;let j=Pj.single(i.from,i.to),t=M.state.facet(yy);return M.dispatch({selection:j,effects:[Xy(M,i),t.scrollToMatch(j.main,M)],userEvent:"select.search"}),Vy(M),!0})),by=Yy(((M,{query:N})=>{let{state:D}=M,{from:i}=D.selection.main,j=N.prevMatch(D,i,i);if(!j)return!1;let t=Pj.single(j.from,j.to),I=M.state.facet(yy);return M.dispatch({selection:t,effects:[Xy(M,j),I.scrollToMatch(t.main,M)],userEvent:"select.search"}),Vy(M),!0})),py=Yy(((M,{query:N})=>{let D=N.matchAll(M.state,1e3);return!(!D||!D.length)&&(M.dispatch({selection:Pj.create(D.map((M=>Pj.range(M.from,M.to)))),userEvent:"select.search.matches"}),!0)})),my=Yy(((M,{query:N})=>{let{state:D}=M,{from:i,to:j}=D.selection.main;if(D.readOnly)return!1;let t=N.nextMatch(D,i,i);if(!t)return!1;let I,z,u=[],g=[];if(t.from==i&&t.to==j&&(z=D.toText(N.getReplacement(t)),u.push({from:t.from,to:t.to,insert:z}),t=N.nextMatch(D,t.from,t.to),g.push(Ne.announce.of(D.phrase("replaced match on line $",D.doc.lineAt(i).number)+"."))),t){let N=0==u.length||u[0].from>=t.to?0:t.to-t.from-z.length;I=Pj.single(t.from-N,t.to-N),g.push(Xy(M,t)),g.push(D.facet(yy).scrollToMatch(I.main,M))}return M.dispatch({changes:u,selection:I,effects:g,userEvent:"input.replace"}),!0})),Zy=Yy(((M,{query:N})=>{if(M.state.readOnly)return!1;let D=N.matchAll(M.state,1e9).map((M=>{let{from:D,to:i}=M;return{from:D,to:i,insert:N.getReplacement(M)}}));if(!D.length)return!1;let i=M.state.phrase("replaced $ matches",D.length)+".";return M.dispatch({changes:D,effects:Ne.announce.of(i),userEvent:"input.replace.all"}),!0}));function fy(M){return M.state.facet(yy).createPanel(M)}function vy(M,N){var D,i,j,t,I;let z=M.selection.main,u=z.empty||z.to>z.from+100?"":M.sliceDoc(z.from,z.to);if(N&&!u)return N;let g=M.facet(yy);return new cy({search:(null!==(D=null==N?void 0:N.literal)&&void 0!==D?D:g.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:null!==(i=null==N?void 0:N.caseSensitive)&&void 0!==i?i:g.caseSensitive,literal:null!==(j=null==N?void 0:N.literal)&&void 0!==j?j:g.literal,regexp:null!==(t=null==N?void 0:N.regexp)&&void 0!==t?t:g.regexp,wholeWord:null!==(I=null==N?void 0:N.wholeWord)&&void 0!==I?I:g.wholeWord})}function Wy(M){let N=sT(M,fy);return N&&N.dom.querySelector("[main-field]")}function Vy(M){let N=Wy(M);N&&N==M.root.activeElement&&N.select()}const Gy=M=>{let N=M.state.field(hy,!1);if(N&&N.panel){let D=Wy(M);if(D&&D!=M.root.activeElement){let i=vy(M.state,N.query.spec);i.valid&&M.dispatch({effects:Ey.of(i)}),D.focus(),D.select()}}else M.dispatch({effects:[Sy.of(!0),N?Ey.of(vy(M.state,N.query.spec)):xt.appendConfig.of(_y)]});return!0},Py=M=>{let N=M.state.field(hy,!1);if(!N||!N.panel)return!1;let D=sT(M,fy);return D&&D.dom.contains(M.root.activeElement)&&M.focus(),M.dispatch({effects:Sy.of(!1)}),!0},Ry=[{key:"Mod-f",run:Gy,scope:"editor search-panel"},{key:"F3",run:Cy,shift:by,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Cy,shift:by,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Py,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:M,dispatch:N})=>{let D=M.selection;if(D.ranges.length>1||D.main.empty)return!1;let{from:i,to:j}=D.main,t=[],I=0;for(let N=new _O(M.doc,M.sliceDoc(i,j));!N.next().done;){if(t.length>1e3)return!1;N.value.from==i&&(I=t.length),t.push(Pj.range(N.value.from,N.value.to))}return N(M.update({selection:Pj.create(t,I),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:M=>{let N=sT(M,ty);if(!N){let D=[Iy.of(!0)];null==M.state.field(zy,!1)&&D.push(xt.appendConfig.of([zy,uy])),M.dispatch({effects:D}),N=sT(M,ty)}return N&&N.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:M,dispatch:N})=>{let{ranges:D}=M.selection;if(D.some((M=>M.from===M.to)))return(({state:M,dispatch:N})=>{let{selection:D}=M,i=Pj.create(D.ranges.map((N=>M.wordAt(N.head)||Pj.cursor(N.head))),D.mainIndex);return!i.eq(D)&&(N(M.update({selection:i})),!0)})({state:M,dispatch:N});let i=M.sliceDoc(D[0].from,D[0].to);if(M.selection.ranges.some((N=>M.sliceDoc(N.from,N.to)!=i)))return!1;let j=function(M,N){let{main:D,ranges:i}=M.selection,j=M.wordAt(D.head),t=j&&j.from==D.from&&j.to==D.to;for(let D=!1,j=new _O(M.doc,N,i[i.length-1].to);;){if(j.next(),!j.done){if(D&&i.some((M=>M.from==j.value.from)))continue;if(t){let N=M.wordAt(j.value.from);if(!N||N.from!=j.value.from||N.to!=j.value.to)continue}return j.value}if(D)return null;j=new _O(M.doc,N,0,Math.max(0,i[i.length-1].from-1)),D=!0}}(M,i);return!!j&&(N(M.update({selection:M.selection.addRange(Pj.range(j.from,j.to),!1),effects:Ne.scrollIntoView(j.to)})),!0)},preventDefault:!0}];class By{constructor(M){this.view=M;let N=this.query=M.state.field(hy).query.spec;function D(M,N,D){return HO("button",{class:"cm-button",name:M,onclick:N,type:"button"},D)}this.commit=this.commit.bind(this),this.searchField=HO("input",{value:N.search,placeholder:Jy(M,"Find"),"aria-label":Jy(M,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=HO("input",{value:N.replace,placeholder:Jy(M,"Replace"),"aria-label":Jy(M,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=HO("input",{type:"checkbox",name:"case",form:"",checked:N.caseSensitive,onchange:this.commit}),this.reField=HO("input",{type:"checkbox",name:"re",form:"",checked:N.regexp,onchange:this.commit}),this.wordField=HO("input",{type:"checkbox",name:"word",form:"",checked:N.wholeWord,onchange:this.commit}),this.dom=HO("div",{onkeydown:M=>this.keydown(M),class:"cm-search"},[this.searchField,D("next",(()=>Cy(M)),[Jy(M,"next")]),D("prev",(()=>by(M)),[Jy(M,"previous")]),D("select",(()=>py(M)),[Jy(M,"all")]),HO("label",null,[this.caseField,Jy(M,"match case")]),HO("label",null,[this.reField,Jy(M,"regexp")]),HO("label",null,[this.wordField,Jy(M,"by word")]),...M.state.readOnly?[]:[HO("br"),this.replaceField,D("replace",(()=>my(M)),[Jy(M,"replace")]),D("replaceAll",(()=>Zy(M)),[Jy(M,"replace all")])],HO("button",{name:"close",onclick:()=>Py(M),"aria-label":Jy(M,"close"),type:"button"},["×"])])}commit(){let M=new cy({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});M.eq(this.query)||(this.query=M,this.view.dispatch({effects:Ey.of(M)}))}keydown(M){!function(M,N,D){return Le(Te(M.state),N,M,D)}(this.view,M,"search-panel")?13==M.keyCode&&M.target==this.searchField?(M.preventDefault(),(M.shiftKey?by:Cy)(this.view)):13==M.keyCode&&M.target==this.replaceField&&(M.preventDefault(),my(this.view)):M.preventDefault()}update(M){for(let N of M.transactions)for(let M of N.effects)M.is(Ey)&&!M.value.eq(this.query)&&this.setQuery(M.value)}setQuery(M){this.query=M,this.searchField.value=M.search,this.replaceField.value=M.replace,this.caseField.checked=M.caseSensitive,this.reField.checked=M.regexp,this.wordField.checked=M.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(yy).top}}function Jy(M,N){return M.state.phrase(N)}const Fy=30,Hy=/[\s\.,:;?!]/;function Xy(M,{from:N,to:D}){let i=M.state.doc.lineAt(N),j=M.state.doc.lineAt(D).to,t=Math.max(i.from,N-Fy),I=Math.min(j,D+Fy),z=M.state.sliceDoc(t,I);if(t!=i.from)for(let M=0;M<Fy;M++)if(!Hy.test(z[M+1])&&Hy.test(z[M])){z=z.slice(M);break}if(I!=j)for(let M=z.length-1;M>z.length-Fy;M--)if(!Hy.test(z[M-1])&&Hy.test(z[M])){z=z.slice(0,M);break}return Ne.announce.of(`${M.state.phrase("current match")}. ${z} ${M.state.phrase("on line")} ${i.number}.`)}const $y=Ne.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),_y=[hy,tt.low(Uy),$y];class qy{constructor(M,N,D){this.state=M,this.pos=N,this.explicit=D,this.abortListeners=[]}tokenBefore(M){let N=qA(this.state).resolveInner(this.pos,-1);for(;N&&M.indexOf(N.name)<0;)N=N.parent;return N?{from:N.from,to:this.pos,text:this.state.sliceDoc(N.from,this.pos),type:N.type}:null}matchBefore(M){let N=this.state.doc.lineAt(this.pos),D=Math.max(N.from,this.pos-250),i=N.text.slice(D-N.from,this.pos-N.from),j=i.search(ic(M,!1));return j<0?null:{from:D+j,to:this.pos,text:i.slice(j)}}get aborted(){return null==this.abortListeners}addEventListener(M,N){"abort"==M&&this.abortListeners&&this.abortListeners.push(N)}}function Ky(M){let N=Object.keys(M).join(""),D=/\w/.test(N);return D&&(N=N.replace(/\w/g,"")),`[${D?"\\w":""}${N.replace(/[^\w\s]/g,"\\$&")}]`}function Mc(M){let N=M.map((M=>"string"==typeof M?{label:M}:M)),[D,i]=N.every((M=>/^\w+$/.test(M.label)))?[/\w*$/,/\w+$/]:function(M){let N=Object.create(null),D=Object.create(null);for(let{label:i}of M){N[i[0]]=!0;for(let M=1;M<i.length;M++)D[i[M]]=!0}let i=Ky(N)+Ky(D)+"*$";return[new RegExp("^"+i),new RegExp(i)]}(N);return M=>{let j=M.matchBefore(i);return j||M.explicit?{from:j?j.from:M.pos,options:N,validFor:D}:null}}class Nc{constructor(M,N,D,i){this.completion=M,this.source=N,this.match=D,this.score=i}}function Dc(M){return M.selection.main.from}function ic(M,N){var D;let{source:i}=M,j=N&&"^"!=i[0],t="$"!=i[i.length-1];return j||t?new RegExp(`${j?"^":""}(?:${i})${t?"$":""}`,null!==(D=M.flags)&&void 0!==D?D:M.ignoreCase?"i":""):M}const jc=lt.define();const tc=new WeakMap;function Ic(M){if(!Array.isArray(M))return M;let N=tc.get(M);return N||tc.set(M,N=Mc(M)),N}const zc=xt.define(),uc=xt.define();class gc{constructor(M){this.pattern=M,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let N=0;N<M.length;){let D=kj(M,N),i=Uj(D);this.chars.push(D);let j=M.slice(N,N+i),t=j.toUpperCase();this.folded.push(kj(t==j?j.toLowerCase():t,0)),N+=i}this.astral=M.length!=this.chars.length}ret(M,N){return this.score=M,this.matched=N,this}match(M){if(0==this.pattern.length)return this.ret(-100,[]);if(M.length<this.pattern.length)return null;let{chars:N,folded:D,any:i,precise:j,byWord:t}=this;if(1==N.length){let i=kj(M,0),j=Uj(i),t=j==M.length?0:-100;if(i==N[0]);else{if(i!=D[0])return null;t+=-200}return this.ret(t,[0,j])}let I=M.indexOf(this.pattern);if(0==I)return this.ret(M.length==this.pattern.length?0:-100,[0,this.pattern.length]);let z=N.length,u=0;if(I<0){for(let j=0,t=Math.min(M.length,200);j<t&&u<z;){let t=kj(M,j);t!=N[u]&&t!=D[u]||(i[u++]=j),j+=Uj(t)}if(u<z)return null}let g=0,e=0,T=!1,A=0,s=-1,L=-1,O=/[a-z]/.test(M),y=!0;for(let i=0,u=Math.min(M.length,200),c=0;i<u&&e<z;){let u=kj(M,i);I<0&&(g<z&&u==N[g]&&(j[g++]=i),A<z&&(u==N[A]||u==D[A]?(0==A&&(s=i),L=i+1,A++):A=0));let n,l=u<255?u>=48&&u<=57||u>=97&&u<=122?2:u>=65&&u<=90?1:0:(n=wj(u))!=n.toLowerCase()?1:n!=n.toUpperCase()?2:0;(!i||1==l&&O||0==c&&0!=l)&&(N[e]==u||D[e]==u&&(T=!0)?t[e++]=i:t.length&&(y=!1)),c=l,i+=Uj(u)}return e==z&&0==t[0]&&y?this.result((T?-200:0)-100,t,M):A==z&&0==s?this.ret(-200-M.length+(L==M.length?0:-100),[0,L]):I>-1?this.ret(-700-M.length,[I,I+this.pattern.length]):A==z?this.ret(-900-M.length,[s,L]):e==z?this.result((T?-200:0)-100-700+(y?0:-1100),t,M):2==N.length?null:this.result((i[0]?-700:0)-200-1100,i,M)}result(M,N,D){let i=[],j=0;for(let M of N){let N=M+(this.astral?Uj(kj(D,M)):1);j&&i[j-1]==M?i[j-1]=N:(i[j++]=M,i[j++]=N)}return this.ret(M-D.length,i)}}class ec{constructor(M){this.pattern=M,this.matched=[],this.score=0,this.folded=M.toLowerCase()}match(M){if(M.length<this.pattern.length)return null;let N=M.slice(0,this.pattern.length),D=N==this.pattern?0:N.toLowerCase()==this.folded?-200:null;return null==D?null:(this.matched=[0,N.length],this.score=D+(M.length==this.pattern.length?0:-100),this)}}const Tc=Jj.define({combine:M=>pt(M,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:sc,filterStrict:!1,compareCompletions:(M,N)=>M.label.localeCompare(N.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(M,N)=>M&&N,closeOnBlur:(M,N)=>M&&N,icons:(M,N)=>M&&N,tooltipClass:(M,N)=>D=>Ac(M(D),N(D)),optionClass:(M,N)=>D=>Ac(M(D),N(D)),addToOptions:(M,N)=>M.concat(N),filterStrict:(M,N)=>M||N})});function Ac(M,N){return M?N?M+" "+N:M:N}function sc(M,N,D,i,j,t){let I,z,u=M.textDirection==Qz.RTL,g=u,e=!1,T="top",A=N.left-j.left,s=j.right-N.right,L=i.right-i.left,O=i.bottom-i.top;if(g&&A<Math.min(L,s)?g=!1:!g&&s<Math.min(L,A)&&(g=!0),L<=(g?A:s))I=Math.max(j.top,Math.min(D.top,j.bottom-O))-N.top,z=Math.min(400,g?A:s);else{e=!0,z=Math.min(400,(u?N.right:j.right-N.left)-30);let M=j.bottom-N.bottom;M>=O||M>N.top?I=D.bottom-N.top:(T="bottom",I=N.bottom-D.top)}return{style:`${T}: ${I/((N.bottom-N.top)/t.offsetHeight)}px; max-width: ${z/((N.right-N.left)/t.offsetWidth)}px`,class:"cm-completionInfo-"+(e?u?"left-narrow":"right-narrow":g?"left":"right")}}function Lc(M,N,D){if(M<=D)return{from:0,to:M};if(N<0&&(N=0),N<=M>>1){let M=Math.floor(N/D);return{from:M*D,to:(M+1)*D}}let i=Math.floor((M-N)/D);return{from:M-(i+1)*D,to:M-i*D}}class Oc{constructor(M,N,D){this.view=M,this.stateField=N,this.applyCompletion=D,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:M=>this.placeInfo(M),key:this},this.space=null,this.currentClass="";let i=M.state.field(N),{options:j,selected:t}=i.open,I=M.state.facet(Tc);this.optionContent=function(M){let N=M.addToOptions.slice();return M.icons&&N.push({render(M){let N=document.createElement("div");return N.classList.add("cm-completionIcon"),M.type&&N.classList.add(...M.type.split(/\s+/g).map((M=>"cm-completionIcon-"+M))),N.setAttribute("aria-hidden","true"),N},position:20}),N.push({render(M,N,D,i){let j=document.createElement("span");j.className="cm-completionLabel";let t=M.displayLabel||M.label,I=0;for(let M=0;M<i.length;){let N=i[M++],D=i[M++];N>I&&j.appendChild(document.createTextNode(t.slice(I,N)));let z=j.appendChild(document.createElement("span"));z.appendChild(document.createTextNode(t.slice(N,D))),z.className="cm-completionMatchedText",I=D}return I<t.length&&j.appendChild(document.createTextNode(t.slice(I))),j},position:50},{render(M){if(!M.detail)return null;let N=document.createElement("span");return N.className="cm-completionDetail",N.textContent=M.detail,N},position:80}),N.sort(((M,N)=>M.position-N.position)).map((M=>M.render))}(I),this.optionClass=I.optionClass,this.tooltipClass=I.tooltipClass,this.range=Lc(j.length,t,I.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(M.state),this.dom.addEventListener("mousedown",(D=>{let{options:i}=M.state.field(N).open;for(let N,j=D.target;j&&j!=this.dom;j=j.parentNode)if("LI"==j.nodeName&&(N=/-(\d+)$/.exec(j.id))&&+N[1]<i.length)return this.applyCompletion(M,i[+N[1]]),void D.preventDefault()})),this.dom.addEventListener("focusout",(N=>{let D=M.state.field(this.stateField,!1);D&&D.tooltip&&M.state.facet(Tc).closeOnBlur&&N.relatedTarget!=M.contentDOM&&M.dispatch({effects:uc.of(null)})})),this.showOptions(j,i.id)}mount(){this.updateSel()}showOptions(M,N){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(M,N,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(M){var N;let D=M.state.field(this.stateField),i=M.startState.field(this.stateField);if(this.updateTooltipClass(M.state),D!=i){let{options:j,selected:t,disabled:I}=D.open;i.open&&i.open.options==j||(this.range=Lc(j.length,t,M.state.facet(Tc).maxRenderedOptions),this.showOptions(j,D.id)),this.updateSel(),I!=(null===(N=i.open)||void 0===N?void 0:N.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!I)}}updateTooltipClass(M){let N=this.tooltipClass(M);if(N!=this.currentClass){for(let M of this.currentClass.split(" "))M&&this.dom.classList.remove(M);for(let M of N.split(" "))M&&this.dom.classList.add(M);this.currentClass=N}}positioned(M){this.space=M,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let M=this.view.state.field(this.stateField),N=M.open;if((N.selected>-1&&N.selected<this.range.from||N.selected>=this.range.to)&&(this.range=Lc(N.options.length,N.selected,this.view.state.facet(Tc).maxRenderedOptions),this.showOptions(N.options,M.id)),this.updateSelectedOption(N.selected)){this.destroyInfo();let{completion:D}=N.options[N.selected],{info:i}=D;if(!i)return;let j="string"==typeof i?document.createTextNode(i):i(D);if(!j)return;"then"in j?j.then((N=>{N&&this.view.state.field(this.stateField,!1)==M&&this.addInfoPane(N,D)})).catch((M=>Nu(this.view.state,M,"completion info"))):this.addInfoPane(j,D)}}addInfoPane(M,N){this.destroyInfo();let D=this.info=document.createElement("div");if(D.className="cm-tooltip cm-completionInfo",null!=M.nodeType)D.appendChild(M),this.infoDestroy=null;else{let{dom:N,destroy:i}=M;D.appendChild(N),this.infoDestroy=i||null}this.dom.appendChild(D),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(M){let N=null;for(let D=this.list.firstChild,i=this.range.from;D;D=D.nextSibling,i++)"LI"==D.nodeName&&D.id?i==M?D.hasAttribute("aria-selected")||(D.setAttribute("aria-selected","true"),N=D):D.hasAttribute("aria-selected")&&D.removeAttribute("aria-selected"):i--;return N&&function(M,N){let D=M.getBoundingClientRect(),i=N.getBoundingClientRect(),j=D.height/M.offsetHeight;i.top<D.top?M.scrollTop-=(D.top-i.top)/j:i.bottom>D.bottom&&(M.scrollTop+=(i.bottom-D.bottom)/j)}(this.list,N),N}measureInfo(){let M=this.dom.querySelector("[aria-selected]");if(!M||!this.info)return null;let N=this.dom.getBoundingClientRect(),D=this.info.getBoundingClientRect(),i=M.getBoundingClientRect(),j=this.space;if(!j){let M=this.dom.ownerDocument.defaultView||window;j={left:0,top:0,right:M.innerWidth,bottom:M.innerHeight}}return i.top>Math.min(j.bottom,N.bottom)-10||i.bottom<Math.max(j.top,N.top)+10?null:this.view.state.facet(Tc).positionInfo(this.view,N,i,D,j,this.dom)}placeInfo(M){this.info&&(M?(M.style&&(this.info.style.cssText=M.style),this.info.className="cm-tooltip cm-completionInfo "+(M.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(M,N,D){const i=document.createElement("ul");i.id=N,i.setAttribute("role","listbox"),i.setAttribute("aria-expanded","true"),i.setAttribute("aria-label",this.view.state.phrase("Completions"));let j=null;for(let t=D.from;t<D.to;t++){let{completion:I,match:z}=M[t],{section:u}=I;if(u){let M="string"==typeof u?u:u.name;if(M!=j&&(t>D.from||0==D.from))if(j=M,"string"!=typeof u&&u.header)i.appendChild(u.header(u));else{i.appendChild(document.createElement("completion-section")).textContent=M}}const g=i.appendChild(document.createElement("li"));g.id=N+"-"+t,g.setAttribute("role","option");let e=this.optionClass(I);e&&(g.className=e);for(let M of this.optionContent){let N=M(I,this.view.state,this.view,z);N&&g.appendChild(N)}}return D.from&&i.classList.add("cm-completionListIncompleteTop"),D.to<M.length&&i.classList.add("cm-completionListIncompleteBottom"),i}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function yc(M,N){return D=>new Oc(D,M,N)}function cc(M){return 100*(M.boost||0)+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}class nc{constructor(M,N,D,i,j,t){this.options=M,this.attrs=N,this.tooltip=D,this.timestamp=i,this.selected=j,this.disabled=t}setSelected(M,N){return M==this.selected||M>=this.options.length?this:new nc(this.options,rc(N,M),this.tooltip,this.timestamp,M,this.disabled)}static build(M,N,D,i,j){let t=function(M,N){let D=[],i=null,j=M=>{D.push(M);let{section:N}=M.completion;if(N){i||(i=[]);let M="string"==typeof N?N:N.name;i.some((N=>N.name==M))||i.push("string"==typeof N?{name:M}:N)}},t=N.facet(Tc);for(let i of M)if(i.hasResult()){let M=i.result.getMatch;if(!1===i.result.filter)for(let N of i.result.options)j(new Nc(N,i.source,M?M(N):[],1e9-D.length));else{let D,I=N.sliceDoc(i.from,i.to),z=t.filterStrict?new ec(I):new gc(I);for(let N of i.result.options)if(D=z.match(N.label)){let t=N.displayLabel?M?M(N,D.matched):[]:D.matched;j(new Nc(N,i.source,t,D.score+(N.boost||0)))}}}if(i){let M=Object.create(null),N=0,j=(M,N)=>{var D,i;return(null!==(D=M.rank)&&void 0!==D?D:1e9)-(null!==(i=N.rank)&&void 0!==i?i:1e9)||(M.name<N.name?-1:1)};for(let D of i.sort(j))N-=1e5,M[D.name]=N;for(let N of D){let{section:D}=N.completion;D&&(N.score+=M["string"==typeof D?D:D.name])}}let I=[],z=null,u=t.compareCompletions;for(let M of D.sort(((M,N)=>N.score-M.score||u(M.completion,N.completion)))){let N=M.completion;!z||z.label!=N.label||z.detail!=N.detail||null!=z.type&&null!=N.type&&z.type!=N.type||z.apply!=N.apply||z.boost!=N.boost?I.push(M):cc(M.completion)>cc(z)&&(I[I.length-1]=M),z=M.completion}return I}(M,N);if(!t.length)return i&&M.some((M=>1==M.state))?new nc(i.options,i.attrs,i.tooltip,i.timestamp,i.selected,!0):null;let I=N.facet(Tc).selectOnOpen?0:-1;if(i&&i.selected!=I&&-1!=i.selected){let M=i.options[i.selected].completion;for(let N=0;N<t.length;N++)if(t[N].completion==M){I=N;break}}return new nc(t,rc(D,I),{pos:M.reduce(((M,N)=>N.hasResult()?Math.min(M,N.from):M),1e8),create:wc,above:j.aboveCursor},i?i.timestamp:Date.now(),I,!1)}map(M){return new nc(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:M.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class lc{constructor(M,N,D){this.active=M,this.id=N,this.open=D}static start(){return new lc(xc,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(M){let{state:N}=M,D=N.facet(Tc),i=(D.override||N.languageDataAt("autocomplete",Dc(N)).map(Ic)).map((N=>{let i=this.active.find((M=>M.source==N))||new Qc(N,this.active.some((M=>0!=M.state))?1:0);return i.update(M,D)}));i.length==this.active.length&&i.every(((M,N)=>M==this.active[N]))&&(i=this.active);let j=this.open;j&&M.docChanged&&(j=j.map(M.changes)),M.selection||i.some((N=>N.hasResult()&&M.changes.touchesRange(N.from,N.to)))||!function(M,N){if(M==N)return!0;for(let D=0,i=0;;){for(;D<M.length&&!M[D].hasResult;)D++;for(;i<N.length&&!N[i].hasResult;)i++;let j=D==M.length,t=i==N.length;if(j||t)return j==t;if(M[D++].result!=N[i++].result)return!1}}(i,this.active)?j=nc.build(i,N,this.id,j,D):j&&j.disabled&&!i.some((M=>1==M.state))&&(j=null),!j&&i.every((M=>1!=M.state))&&i.some((M=>M.hasResult()))&&(i=i.map((M=>M.hasResult()?new Qc(M.source,0):M)));for(let N of M.effects)N.is(hc)&&(j=j&&j.setSelected(N.value,this.id));return i==this.active&&j==this.open?this:new lc(i,this.id,j)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:oc}}const oc={"aria-autocomplete":"list"};function rc(M,N){let D={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return N>-1&&(D["aria-activedescendant"]=M+"-"+N),D}const xc=[];function ac(M,N){if(M.isUserEvent("input.complete")){let D=M.annotation(jc);if(D&&N.activateOnCompletion(D))return"input"}return M.isUserEvent("input.type")?"input":M.isUserEvent("delete.backward")?"delete":null}class Qc{constructor(M,N,D=-1){this.source=M,this.state=N,this.explicitPos=D}hasResult(){return!1}update(M,N){let D=ac(M,N),i=this;D?i=i.handleUserEvent(M,D,N):M.docChanged?i=i.handleChange(M):M.selection&&0!=i.state&&(i=new Qc(i.source,0));for(let N of M.effects)if(N.is(zc))i=new Qc(i.source,1,N.value?Dc(M.state):-1);else if(N.is(uc))i=new Qc(i.source,0);else if(N.is(Sc))for(let M of N.value)M.source==i.source&&(i=M);return i}handleUserEvent(M,N,D){return"delete"!=N&&D.activateOnTyping?new Qc(this.source,1):this.map(M.changes)}handleChange(M){return M.changes.touchesRange(Dc(M.startState))?new Qc(this.source,0):this.map(M.changes)}map(M){return M.empty||this.explicitPos<0?this:new Qc(this.source,this.state,M.mapPos(this.explicitPos))}}class Ec extends Qc{constructor(M,N,D,i,j){super(M,2,N),this.result=D,this.from=i,this.to=j}hasResult(){return!0}handleUserEvent(M,N,D){var i;let j=this.result;j.map&&!M.changes.empty&&(j=j.map(j,M.changes));let t=M.changes.mapPos(this.from),I=M.changes.mapPos(this.to,1),z=Dc(M.state);if((this.explicitPos<0?z<=t:z<this.from)||z>I||!j||"delete"==N&&Dc(M.startState)==this.from)return new Qc(this.source,"input"==N&&D.activateOnTyping?1:0);let u=this.explicitPos<0?-1:M.changes.mapPos(this.explicitPos);return function(M,N,D,i){if(!M)return!1;let j=N.sliceDoc(D,i);return"function"==typeof M?M(j,D,i,N):ic(M,!0).test(j)}(j.validFor,M.state,t,I)?new Ec(this.source,u,j,t,I):j.update&&(j=j.update(j,t,I,new qy(M.state,z,u>=0)))?new Ec(this.source,u,j,j.from,null!==(i=j.to)&&void 0!==i?i:Dc(M.state)):new Qc(this.source,1,u)}handleChange(M){return M.changes.touchesRange(this.from,this.to)?new Qc(this.source,0):this.map(M.changes)}map(M){if(M.empty)return this;return(this.result.map?this.result.map(this.result,M):this.result)?new Ec(this.source,this.explicitPos<0?-1:M.mapPos(this.explicitPos),this.result,M.mapPos(this.from),M.mapPos(this.to,1)):new Qc(this.source,0)}}const Sc=xt.define({map:(M,N)=>M.map((M=>M.map(N)))}),hc=xt.define(),dc=Kj.define({create:()=>lc.start(),update:(M,N)=>M.update(N),provide:M=>[iT.from(M,(M=>M.tooltip)),Ne.contentAttributes.from(M,(M=>M.attrs))]});function kc(M,N){const D=N.completion.apply||N.completion.label;let i=M.state.field(dc).active.find((M=>M.source==N.source));return i instanceof Ec&&("string"==typeof D?M.dispatch(Object.assign(Object.assign({},function(M,N,D,i){let{main:j}=M.selection,t=D-j.from,I=i-j.from;return Object.assign(Object.assign({},M.changeByRange((z=>z!=j&&D!=i&&M.sliceDoc(z.from+t,z.from+I)!=M.sliceDoc(D,i)?{range:z}:{changes:{from:z.from+t,to:i==j.from?z.to:z.from+I,insert:N},range:Pj.cursor(z.from+t+N.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(M.state,D,i.from,i.to)),{annotations:jc.of(N.completion)})):D(M,N.completion,i.from,i.to),!0)}const wc=yc(dc,kc);function Uc(M,N="option"){return D=>{let i=D.state.field(dc,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<D.state.facet(Tc).interactionDelay)return!1;let j,t=1;"page"==N&&(j=eT(D,i.open.tooltip))&&(t=Math.max(2,Math.floor(j.dom.offsetHeight/j.dom.querySelector("li").offsetHeight)-1));let{length:I}=i.open.options,z=i.open.selected>-1?i.open.selected+t*(M?1:-1):M?0:I-1;return z<0?z="page"==N?0:I-1:z>=I&&(z="page"==N?I-1:0),D.dispatch({effects:hc.of(z)}),!0}}class Yc{constructor(M,N){this.active=M,this.context=N,this.time=Date.now(),this.updates=[],this.done=void 0}}const Cc=tu.fromClass(class{constructor(M){this.view=M,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let N of M.state.field(dc).active)1==N.state&&this.startQuery(N)}update(M){let N=M.state.field(dc),D=M.state.facet(Tc);if(!M.selectionSet&&!M.docChanged&&M.startState.field(dc)==N)return;let i=M.transactions.some((M=>(M.selection||M.docChanged)&&!ac(M,D)));for(let N=0;N<this.running.length;N++){let D=this.running[N];if(i||D.updates.length+M.transactions.length>50&&Date.now()-D.time>1e3){for(let M of D.context.abortListeners)try{M()}catch(M){Nu(this.view.state,M)}D.context.abortListeners=null,this.running.splice(N--,1)}else D.updates.push(...M.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),M.transactions.some((M=>M.effects.some((M=>M.is(zc)))))&&(this.pendingStart=!0);let j=this.pendingStart?50:D.activateOnTypingDelay;if(this.debounceUpdate=N.active.some((M=>1==M.state&&!this.running.some((N=>N.active.source==M.source))))?setTimeout((()=>this.startUpdate()),j):-1,0!=this.composing)for(let N of M.transactions)"input"==ac(N,D)?this.composing=2:2==this.composing&&N.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:M}=this.view,N=M.field(dc);for(let M of N.active)1!=M.state||this.running.some((N=>N.active.source==M.source))||this.startQuery(M)}startQuery(M){let{state:N}=this.view,D=Dc(N),i=new qy(N,D,M.explicitPos==D),j=new Yc(M,i);this.running.push(j),Promise.resolve(M.source(i)).then((M=>{j.context.aborted||(j.done=M||null,this.scheduleAccept())}),(M=>{this.view.dispatch({effects:uc.of(null)}),Nu(this.view.state,M)}))}scheduleAccept(){this.running.every((M=>void 0!==M.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(Tc).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let N=[],D=this.view.state.facet(Tc);for(let i=0;i<this.running.length;i++){let j=this.running[i];if(void 0===j.done)continue;if(this.running.splice(i--,1),j.done){let i=new Ec(j.active.source,j.active.explicitPos,j.done,j.done.from,null!==(M=j.done.to)&&void 0!==M?M:Dc(j.updates.length?j.updates[0].startState:this.view.state));for(let M of j.updates)i=i.update(M,D);if(i.hasResult()){N.push(i);continue}}let t=this.view.state.field(dc).active.find((M=>M.source==j.active.source));if(t&&1==t.state)if(null==j.done){let M=new Qc(j.active.source,0);for(let N of j.updates)M=M.update(N,D);1!=M.state&&N.push(M)}else this.startQuery(t)}N.length&&this.view.dispatch({effects:Sc.of(N)})}},{eventHandlers:{blur(M){let N=this.view.state.field(dc,!1);if(N&&N.tooltip&&this.view.state.facet(Tc).closeOnBlur){let D=N.open&&eT(this.view,N.open.tooltip);D&&D.dom.contains(M.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:uc.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:zc.of(!1)})),20),this.composing=0}}}),bc="object"==typeof navigator&&/Win/.test(navigator.platform),pc=tt.highest(Ne.domEventHandlers({keydown(M,N){let D=N.state.field(dc,!1);if(!D||!D.open||D.open.disabled||D.open.selected<0||M.key.length>1||M.ctrlKey&&(!bc||!M.altKey)||M.metaKey)return!1;let i=D.open.options[D.open.selected],j=D.active.find((M=>M.source==i.source)),t=i.completion.commitCharacters||j.result.commitCharacters;return t&&t.indexOf(M.key)>-1&&kc(N,i),!1}})),mc=Ne.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 Zc{constructor(M,N,D,i){this.field=M,this.line=N,this.from=D,this.to=i}}class fc{constructor(M,N,D){this.field=M,this.from=N,this.to=D}map(M){let N=M.mapPos(this.from,-1,Cj.TrackDel),D=M.mapPos(this.to,1,Cj.TrackDel);return null==N||null==D?null:new fc(this.field,N,D)}}class vc{constructor(M,N){this.lines=M,this.fieldPositions=N}instantiate(M,N){let D=[],i=[N],j=M.doc.lineAt(N),t=/^\s*/.exec(j.text)[0];for(let j of this.lines){if(D.length){let D=t,I=/^\t*/.exec(j)[0].length;for(let N=0;N<I;N++)D+=M.facet(es);i.push(N+D.length-I),j=D+j.slice(I)}D.push(j),N+=j.length+1}let I=this.fieldPositions.map((M=>new fc(M.field,i[M.line]+M.from,i[M.line]+M.to)));return{text:D,ranges:I}}static parse(M){let N,D=[],i=[],j=[];for(let t of M.split(/\r\n?|\n/)){for(;N=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(t);){let M=N[1]?+N[1]:null,I=N[2]||N[3]||"",z=-1;for(let N=0;N<D.length;N++)(null!=M?D[N].seq==M:I&&D[N].name==I)&&(z=N);if(z<0){let N=0;for(;N<D.length&&(null==M||null!=D[N].seq&&D[N].seq<M);)N++;D.splice(N,0,{seq:M,name:I}),z=N;for(let M of j)M.field>=z&&M.field++}j.push(new Zc(z,i.length,N.index,N.index+I.length)),t=t.slice(0,N.index)+I+t.slice(N.index+N[0].length)}for(let M;M=/\\([{}])/.exec(t);){t=t.slice(0,M.index)+M[1]+t.slice(M.index+M[0].length);for(let N of j)N.line==i.length&&N.from>M.index&&(N.from--,N.to--)}i.push(t)}return new vc(i,j)}}let Wc=Oz.widget({widget:new class extends sz{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),Vc=Oz.mark({class:"cm-snippetField"});class Gc{constructor(M,N){this.ranges=M,this.active=N,this.deco=Oz.set(M.map((M=>(M.from==M.to?Wc:Vc).range(M.from,M.to))))}map(M){let N=[];for(let D of this.ranges){let i=D.map(M);if(!i)return null;N.push(i)}return new Gc(N,this.active)}selectionInsideField(M){return M.ranges.every((M=>this.ranges.some((N=>N.field==this.active&&N.from<=M.from&&N.to>=M.to))))}}const Pc=xt.define({map:(M,N)=>M&&M.map(N)}),Rc=xt.define(),Bc=Kj.define({create:()=>null,update(M,N){for(let D of N.effects){if(D.is(Pc))return D.value;if(D.is(Rc)&&M)return new Gc(M.ranges,D.value)}return M&&N.docChanged&&(M=M.map(N.changes)),M&&N.selection&&!M.selectionInsideField(N.selection)&&(M=null),M},provide:M=>Ne.decorations.from(M,(M=>M?M.deco:Oz.none))});function Jc(M,N){return Pj.create(M.filter((M=>M.field==N)).map((M=>Pj.range(M.from,M.to))))}function Fc(M){let N=vc.parse(M);return(M,D,i,j)=>{let{text:t,ranges:I}=N.instantiate(M.state,i),z={changes:{from:i,to:j,insert:ej.of(t)},scrollIntoView:!0,annotations:D?[jc.of(D),at.userEvent.of("input.complete")]:void 0};if(I.length&&(z.selection=Jc(I,0)),I.some((M=>M.field>0))){let N=new Gc(I,0),D=z.effects=[Pc.of(N)];void 0===M.state.field(Bc,!1)&&D.push(xt.appendConfig.of([Bc,_c,Kc,mc]))}M.dispatch(M.state.update(z))}}function Hc(M){return({state:N,dispatch:D})=>{let i=N.field(Bc,!1);if(!i||M<0&&0==i.active)return!1;let j=i.active+M,t=M>0&&!i.ranges.some((N=>N.field==j+M));return D(N.update({selection:Jc(i.ranges,j),effects:Pc.of(t?null:new Gc(i.ranges,j)),scrollIntoView:!0})),!0}}const Xc=[{key:"Tab",run:Hc(1),shift:Hc(-1)},{key:"Escape",run:({state:M,dispatch:N})=>!!M.field(Bc,!1)&&(N(M.update({effects:Pc.of(null)})),!0)}],$c=Jj.define({combine:M=>M.length?M[0]:Xc}),_c=tt.highest(ge.compute([$c],(M=>M.facet($c))));function qc(M,N){return Object.assign(Object.assign({},N),{apply:Fc(M)})}const Kc=Ne.domEventHandlers({mousedown(M,N){let D,i=N.state.field(Bc,!1);if(!i||null==(D=N.posAtCoords({x:M.clientX,y:M.clientY})))return!1;let j=i.ranges.find((M=>M.from<=D&&M.to>=D));return!(!j||j.field==i.active)&&(N.dispatch({selection:Jc(i.ranges,j.field),effects:Pc.of(i.ranges.some((M=>M.field>j.field))?new Gc(i.ranges,j.field):null),scrollIntoView:!0}),!0)}}),Mn={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Nn=xt.define({map(M,N){let D=N.mapPos(M,-1,Cj.TrackAfter);return null==D?void 0:D}}),Dn=new class extends mt{};Dn.startSide=1,Dn.endSide=-1;const jn=Kj.define({create:()=>Wt.empty,update(M,N){if(M=M.map(N.changes),N.selection){let D=N.state.doc.lineAt(N.selection.main.head);M=M.update({filter:M=>M>=D.from&&M<=D.to})}for(let D of N.effects)D.is(Nn)&&(M=M.update({add:[Dn.range(D.value,D.value+1)]}));return M}});const tn="()[]{}<>";function In(M){for(let N=0;N<tn.length;N+=2)if(tn.charCodeAt(N)==M)return tn.charAt(N+1);return wj(M<128?M:M+1)}function zn(M,N){return M.languageDataAt("closeBrackets",N)[0]||Mn}const un="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),gn=Ne.inputHandler.of(((M,N,D,i)=>{if((un?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let j=M.state.selection.main;if(i.length>2||2==i.length&&1==Uj(kj(i,0))||N!=j.from||D!=j.to)return!1;let t=function(M,N){let D=zn(M,M.selection.main.head),i=D.brackets||Mn.brackets;for(let j of i){let t=In(kj(j,0));if(N==j)return t==j?On(M,j,i.indexOf(j+j+j)>-1,D):sn(M,j,t,D.before||Mn.before);if(N==t&&Tn(M,M.selection.main.from))return Ln(M,j,t)}return null}(M.state,i);return!!t&&(M.dispatch(t),!0)})),en=[{key:"Backspace",run:({state:M,dispatch:N})=>{if(M.readOnly)return!1;let D=zn(M,M.selection.main.head).brackets||Mn.brackets,i=null,j=M.changeByRange((N=>{if(N.empty){let i=function(M,N){let D=M.sliceString(N-2,N);return Uj(kj(D,0))==D.length?D:D.slice(1)}(M.doc,N.head);for(let j of D)if(j==i&&An(M.doc,N.head)==In(kj(j,0)))return{changes:{from:N.head-j.length,to:N.head+j.length},range:Pj.cursor(N.head-j.length)}}return{range:i=N}}));return i||N(M.update(j,{scrollIntoView:!0,userEvent:"delete.backward"})),!i}}];function Tn(M,N){let D=!1;return M.field(jn).between(0,M.doc.length,(M=>{M==N&&(D=!0)})),D}function An(M,N){let D=M.sliceString(N,N+2);return D.slice(0,Uj(kj(D,0)))}function sn(M,N,D,i){let j=null,t=M.changeByRange((t=>{if(!t.empty)return{changes:[{insert:N,from:t.from},{insert:D,from:t.to}],effects:Nn.of(t.to+N.length),range:Pj.range(t.anchor+N.length,t.head+N.length)};let I=An(M.doc,t.head);return!I||/\s/.test(I)||i.indexOf(I)>-1?{changes:{insert:N+D,from:t.head},effects:Nn.of(t.head+N.length),range:Pj.cursor(t.head+N.length)}:{range:j=t}}));return j?null:M.update(t,{scrollIntoView:!0,userEvent:"input.type"})}function Ln(M,N,D){let i=null,j=M.changeByRange((N=>N.empty&&An(M.doc,N.head)==D?{changes:{from:N.head,to:N.head+D.length,insert:D},range:Pj.cursor(N.head+D.length)}:i={range:N}));return i?null:M.update(j,{scrollIntoView:!0,userEvent:"input.type"})}function On(M,N,D,i){let j=i.stringPrefixes||Mn.stringPrefixes,t=null,I=M.changeByRange((i=>{if(!i.empty)return{changes:[{insert:N,from:i.from},{insert:N,from:i.to}],effects:Nn.of(i.to+N.length),range:Pj.range(i.anchor+N.length,i.head+N.length)};let I,z=i.head,u=An(M.doc,z);if(u==N){if(yn(M,z))return{changes:{insert:N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)};if(Tn(M,z)){let i=D&&M.sliceDoc(z,z+3*N.length)==N+N+N?N+N+N:N;return{changes:{from:z,to:z+i.length,insert:i},range:Pj.cursor(z+i.length)}}}else{if(D&&M.sliceDoc(z-2*N.length,z)==N+N&&(I=cn(M,z-2*N.length,j))>-1&&yn(M,I))return{changes:{insert:N+N+N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)};if(M.charCategorizer(z)(u)!=wt.Word&&cn(M,z,j)>-1&&!function(M,N,D,i){let j=qA(M).resolveInner(N,-1),t=i.reduce(((M,N)=>Math.max(M,N.length)),0);for(let I=0;I<5;I++){let I=M.sliceDoc(j.from,Math.min(j.to,j.from+D.length+t)),z=I.indexOf(D);if(!z||z>-1&&i.indexOf(I.slice(0,z))>-1){let N=j.firstChild;for(;N&&N.from==j.from&&N.to-N.from>D.length+z;){if(M.sliceDoc(N.to-D.length,N.to)==D)return!1;N=N.firstChild}return!0}let u=j.to==N&&j.parent;if(!u)break;j=u}return!1}(M,z,N,j))return{changes:{insert:N+N,from:z},effects:Nn.of(z+N.length),range:Pj.cursor(z+N.length)}}return{range:t=i}}));return t?null:M.update(I,{scrollIntoView:!0,userEvent:"input.type"})}function yn(M,N){let D=qA(M).resolveInner(N+1);return D.parent&&D.from==N}function cn(M,N,D){let i=M.charCategorizer(N);if(i(M.sliceDoc(N-1,N))!=wt.Word)return N;for(let j of D){let D=N-j.length;if(M.sliceDoc(D,N)==j&&i(M.sliceDoc(D-1,D))!=wt.Word)return D}return-1}function nn(M={}){return[pc,dc,Tc.of(M),Cc,on,mc]}const ln=[{key:"Ctrl-Space",run:M=>!!M.state.field(dc,!1)&&(M.dispatch({effects:zc.of(!0)}),!0)},{key:"Escape",run:M=>{let N=M.state.field(dc,!1);return!(!N||!N.active.some((M=>0!=M.state)))&&(M.dispatch({effects:uc.of(null)}),!0)}},{key:"ArrowDown",run:Uc(!0)},{key:"ArrowUp",run:Uc(!1)},{key:"PageDown",run:Uc(!0,"page")},{key:"PageUp",run:Uc(!1,"page")},{key:"Enter",run:M=>{let N=M.state.field(dc,!1);return!(M.state.readOnly||!N||!N.open||N.open.selected<0||N.open.disabled||Date.now()-N.open.timestamp<M.state.facet(Tc).interactionDelay)&&kc(M,N.open.options[N.open.selected])}}],on=tt.highest(ge.computeN([Tc],(M=>M.facet(Tc).defaultKeymap?[ln]:[])));class rn{constructor(M,N,D){this.from=M,this.to=N,this.diagnostic=D}}class xn{constructor(M,N,D){this.diagnostics=M,this.panel=N,this.selected=D}static init(M,N,D){let i=M,j=D.facet(Cn).markerFilter;j&&(i=j(i,D));let t=Oz.set(i.map((M=>M.from==M.to||M.from==M.to-1&&D.doc.lineAt(M.from).to==M.from?Oz.widget({widget:new mn(M),diagnostic:M}).range(M.from):Oz.mark({attributes:{class:"cm-lintRange cm-lintRange-"+M.severity+(M.markClass?" "+M.markClass:"")},diagnostic:M,inclusive:!0}).range(M.from,M.to))),!0);return new xn(t,N,an(t))}}function an(M,N=null,D=0){let i=null;return M.between(D,1e9,((M,D,{spec:j})=>{if(!N||j.diagnostic==N)return i=new rn(M,D,j.diagnostic),!1})),i}const Qn=xt.define(),En=xt.define(),Sn=xt.define(),hn=Kj.define({create:()=>new xn(Oz.none,null,null),update(M,N){if(N.docChanged){let D=M.diagnostics.map(N.changes),i=null;if(M.selected){let j=N.changes.mapPos(M.selected.from,1);i=an(D,M.selected.diagnostic,j)||an(D,null,j)}M=new xn(D,M.panel,i)}for(let D of N.effects)D.is(Qn)?M=xn.init(D.value,M.panel,N.state):D.is(En)?M=new xn(M.diagnostics,D.value?fn.open:null,M.selected):D.is(Sn)&&(M=new xn(M.diagnostics,M.panel,D.value));return M},provide:M=>[cT.from(M,(M=>M.panel)),Ne.decorations.from(M,(M=>M.diagnostics))]}),dn=Oz.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function kn(M,N,D){let{diagnostics:i}=M.state.field(hn),j=[],t=2e8,I=0;i.between(N-(D<0?1:0),N+(D>0?1:0),((M,i,{spec:z})=>{N>=M&&N<=i&&(M==i||(N>M||D>0)&&(N<i||D<0))&&(j.push(z.diagnostic),t=Math.min(M,t),I=Math.max(i,I))}));let z=M.state.facet(Cn).tooltipFilter;return z&&(j=z(j,M.state)),j.length?{pos:t,end:I,above:M.state.doc.lineAt(t).to<I,create:()=>({dom:wn(M,j)})}:null}function wn(M,N){return HO("ul",{class:"cm-tooltip-lint"},N.map((N=>pn(M,N,!1))))}const Un=M=>{let N=M.state.field(hn,!1);return!(!N||!N.panel)&&(M.dispatch({effects:En.of(!1)}),!0)},Yn=[{key:"Mod-Shift-m",run:M=>{let N=M.state.field(hn,!1);var D,i;N&&N.panel||M.dispatch({effects:(D=M.state,i=[En.of(!0)],D.field(hn,!1)?i:i.concat(xt.appendConfig.of(Vn)))});let j=sT(M,fn.open);return j&&j.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:M=>{let N=M.state.field(hn,!1);if(!N)return!1;let D=M.state.selection.main,i=N.diagnostics.iter(D.to+1);return!(!i.value&&(i=N.diagnostics.iter(0),!i.value||i.from==D.from&&i.to==D.to))&&(M.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)}}],Cn=Jj.define({combine:M=>Object.assign({sources:M.map((M=>M.source)).filter((M=>null!=M))},pt(M.map((M=>M.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(M,N)=>M?N?D=>M(D)||N(D):M:N}))});function bn(M){let N=[];if(M)M:for(let{name:D}of M){for(let M=0;M<D.length;M++){let i=D[M];if(/[a-zA-Z]/.test(i)&&!N.some((M=>M.toLowerCase()==i.toLowerCase()))){N.push(i);continue M}}N.push("")}return N}function pn(M,N,D){var i;let j=D?bn(N.actions):[];return HO("li",{class:"cm-diagnostic cm-diagnostic-"+N.severity},HO("span",{class:"cm-diagnosticText"},N.renderMessage?N.renderMessage(M):N.message),null===(i=N.actions)||void 0===i?void 0:i.map(((D,i)=>{let t=!1,I=i=>{if(i.preventDefault(),t)return;t=!0;let j=an(M.state.field(hn).diagnostics,N);j&&D.apply(M,j.from,j.to)},{name:z}=D,u=j[i]?z.indexOf(j[i]):-1,g=u<0?z:[z.slice(0,u),HO("u",z.slice(u,u+1)),z.slice(u+1)];return HO("button",{type:"button",class:"cm-diagnosticAction",onclick:I,onmousedown:I,"aria-label":` Action: ${z}${u<0?"":` (access key "${j[i]})"`}.`},g)})),N.source&&HO("div",{class:"cm-diagnosticSource"},N.source))}class mn extends sz{constructor(M){super(),this.diagnostic=M}eq(M){return M.diagnostic==this.diagnostic}toDOM(){return HO("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class Zn{constructor(M,N){this.diagnostic=N,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=pn(M,N,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class fn{constructor(M){this.view=M,this.items=[];this.list=HO("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:N=>{if(27==N.keyCode)Un(this.view),this.view.focus();else if(38==N.keyCode||33==N.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==N.keyCode||34==N.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==N.keyCode)this.moveSelection(0);else if(35==N.keyCode)this.moveSelection(this.items.length-1);else if(13==N.keyCode)this.view.focus();else{if(!(N.keyCode>=65&&N.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:D}=this.items[this.selectedIndex],i=bn(D.actions);for(let j=0;j<i.length;j++)if(i[j].toUpperCase().charCodeAt(0)==N.keyCode){let N=an(this.view.state.field(hn).diagnostics,D);N&&D.actions[j].apply(M,N.from,N.to)}}}N.preventDefault()},onclick:M=>{for(let N=0;N<this.items.length;N++)this.items[N].dom.contains(M.target)&&this.moveSelection(N)}}),this.dom=HO("div",{class:"cm-panel-lint"},this.list,HO("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Un(this.view)},"×")),this.update()}get selectedIndex(){let M=this.view.state.field(hn).selected;if(!M)return-1;for(let N=0;N<this.items.length;N++)if(this.items[N].diagnostic==M.diagnostic)return N;return-1}update(){let{diagnostics:M,selected:N}=this.view.state.field(hn),D=0,i=!1,j=null;for(M.between(0,this.view.state.doc.length,((M,t,{spec:I})=>{let z,u=-1;for(let M=D;M<this.items.length;M++)if(this.items[M].diagnostic==I.diagnostic){u=M;break}u<0?(z=new Zn(this.view,I.diagnostic),this.items.splice(D,0,z),i=!0):(z=this.items[u],u>D&&(this.items.splice(D,u-D),i=!0)),N&&z.diagnostic==N.diagnostic?z.dom.hasAttribute("aria-selected")||(z.dom.setAttribute("aria-selected","true"),j=z):z.dom.hasAttribute("aria-selected")&&z.dom.removeAttribute("aria-selected"),D++}));D<this.items.length&&!(1==this.items.length&&this.items[0].diagnostic.from<0);)i=!0,this.items.pop();0==this.items.length&&(this.items.push(new Zn(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),i=!0),j?(this.list.setAttribute("aria-activedescendant",j.id),this.view.requestMeasure({key:this,read:()=>({sel:j.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:M,panel:N})=>{let D=N.height/this.list.offsetHeight;M.top<N.top?this.list.scrollTop-=(N.top-M.top)/D:M.bottom>N.bottom&&(this.list.scrollTop+=(M.bottom-N.bottom)/D)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let M=this.list.firstChild;function N(){let N=M;M=N.nextSibling,N.remove()}for(let D of this.items)if(D.dom.parentNode==this.list){for(;M!=D.dom;)N();M=D.dom.nextSibling}else this.list.insertBefore(D.dom,M);for(;M;)N()}moveSelection(M){if(this.selectedIndex<0)return;let N=an(this.view.state.field(hn).diagnostics,this.items[M].diagnostic);N&&this.view.dispatch({selection:{anchor:N.from,head:N.to},scrollIntoView:!0,effects:Sn.of(N)})}static open(M){return new fn(M)}}function vn(M){return function(M,N='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${N}>${encodeURIComponent(M)}</svg>')`}(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${M}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Wn=Ne.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:vn("#d11")},".cm-lintRange-warning":{backgroundImage:vn("orange")},".cm-lintRange-info":{backgroundImage:vn("#999")},".cm-lintRange-hint":{backgroundImage:vn("#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}}}),Vn=[hn,Ne.decorations.compute([hn],(M=>{let{selected:N,panel:D}=M.field(hn);return N&&D&&N.from!=N.to?Oz.set([dn.range(N.from,N.to)]):Oz.none})),gT(kn,{hideOn:function(M,N){let D=N.pos,i=N.end||D,j=M.state.facet(Cn).hideOn(M,D,i);if(null!=j)return j;let t=M.startState.doc.lineAt(N.pos);return!(!M.effects.some((M=>M.is(Qn)))&&!M.changes.touchesRange(t.from,Math.max(t.to,i)))}}),Wn];class Gn{constructor(M,N,D,i,j,t,I,z,u,g=0,e){this.p=M,this.stack=N,this.state=D,this.reducePos=i,this.pos=j,this.score=t,this.buffer=I,this.bufferBase=z,this.curContext=u,this.lookAhead=g,this.parent=e}toString(){return`[${this.stack.filter(((M,N)=>N%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(M,N,D=0){let i=M.parser.context;return new Gn(M,[],N,D,D,0,[],0,i?new Pn(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(M,N){this.stack.push(this.state,N,this.bufferBase+this.buffer.length),this.state=M}reduce(M){var N;let D=M>>19,i=65535&M,{parser:j}=this.p,t=j.dynamicPrecedence(i);if(t&&(this.score+=t),0==D)return this.pushState(j.getGoto(this.state,i,!0),this.reducePos),i<j.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),void this.reduceContext(i,this.reducePos);let I=this.stack.length-3*(D-1)-(262144&M?6:0),z=I?this.stack[I-2]:this.p.ranges[0].from,u=this.reducePos-z;u>=2e3&&!(null===(N=this.p.parser.nodeSet.types[i])||void 0===N?void 0:N.isAnonymous)&&(z==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=z,this.p.lastBigReductionSize=u));let g=I?this.stack[I-1]:0,e=this.bufferBase+this.buffer.length-g;if(i<j.minRepeatTerm||131072&M){let M=j.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,z,M,e+4,!0)}if(262144&M)this.state=this.stack[I];else{let M=this.stack[I-3];this.state=j.getGoto(M,i,!0)}for(;this.stack.length>I;)this.stack.pop();this.reduceContext(i,z)}storeNode(M,N,D,i=4,j=!1){if(0==M&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let M=this,i=this.buffer.length;if(0==i&&M.parent&&(i=M.bufferBase-M.parent.bufferBase,M=M.parent),i>0&&0==M.buffer[i-4]&&M.buffer[i-1]>-1){if(N==D)return;if(M.buffer[i-2]>=N)return void(M.buffer[i-2]=D)}}if(j&&this.pos!=D){let j=this.buffer.length;if(j>0&&0!=this.buffer[j-4])for(;j>0&&this.buffer[j-2]>D;)this.buffer[j]=this.buffer[j-4],this.buffer[j+1]=this.buffer[j-3],this.buffer[j+2]=this.buffer[j-2],this.buffer[j+3]=this.buffer[j-1],j-=4,i>4&&(i-=4);this.buffer[j]=M,this.buffer[j+1]=N,this.buffer[j+2]=D,this.buffer[j+3]=i}else this.buffer.push(M,N,D,i)}shift(M,N,D,i){if(131072&M)this.pushState(65535&M,this.pos);else if(262144&M)this.pos=i,this.shiftContext(N,D),N<=this.p.parser.maxNode&&this.buffer.push(N,D,i,4);else{let j=M,{parser:t}=this.p;(i>this.pos||N<=t.maxNode)&&(this.pos=i,t.stateFlag(j,1)||(this.reducePos=i)),this.pushState(j,D),this.shiftContext(N,D),N<=t.maxNode&&this.buffer.push(N,D,i,4)}}apply(M,N,D,i){65536&M?this.reduce(M):this.shift(M,N,D,i)}useNode(M,N){let D=this.p.reused.length-1;(D<0||this.p.reused[D]!=M)&&(this.p.reused.push(M),D++);let i=this.pos;this.reducePos=this.pos=i+M.length,this.pushState(N,i),this.buffer.push(D,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,M,this,this.p.stream.reset(this.pos-M.length)))}split(){let M=this,N=M.buffer.length;for(;N>0&&M.buffer[N-2]>M.reducePos;)N-=4;let D=M.buffer.slice(N),i=M.bufferBase+N;for(;M&&i==M.bufferBase;)M=M.parent;return new Gn(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,D,i,this.curContext,this.lookAhead,M)}recoverByDelete(M,N){let D=M<=this.p.parser.maxNode;D&&this.storeNode(M,this.pos,N,4),this.storeNode(0,this.pos,N,D?8:4),this.pos=this.reducePos=N,this.score-=190}canShift(M){for(let N=new Rn(this);;){let D=this.p.parser.stateSlot(N.state,4)||this.p.parser.hasAction(N.state,M);if(0==D)return!1;if(!(65536&D))return!0;N.reduce(D)}}recoverByInsert(M){if(this.stack.length>=300)return[];let N=this.p.parser.nextStates(this.state);if(N.length>8||this.stack.length>=120){let D=[];for(let i,j=0;j<N.length;j+=2)(i=N[j+1])!=this.state&&this.p.parser.hasAction(i,M)&&D.push(N[j],i);if(this.stack.length<120)for(let M=0;D.length<8&&M<N.length;M+=2){let i=N[M+1];D.some(((M,N)=>1&N&&M==i))||D.push(N[M],i)}N=D}let D=[];for(let M=0;M<N.length&&D.length<4;M+=2){let i=N[M+1];if(i==this.state)continue;let j=this.split();j.pushState(i,this.pos),j.storeNode(0,j.pos,j.pos,4,!0),j.shiftContext(N[M],this.pos),j.reducePos=this.pos,j.score-=200,D.push(j)}return D}forceReduce(){let{parser:M}=this.p,N=M.stateSlot(this.state,5);if(!(65536&N))return!1;if(!M.validAction(this.state,N)){let D=N>>19,i=65535&N,j=this.stack.length-3*D;if(j<0||M.getGoto(this.stack[j],i,!1)<0){let M=this.findForcedReduction();if(null==M)return!1;N=M}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(N),!0}findForcedReduction(){let{parser:M}=this.p,N=[],D=(i,j)=>{if(!N.includes(i))return N.push(i),M.allActions(i,(N=>{if(393216&N);else if(65536&N){let D=(N>>19)-j;if(D>1){let i=65535&N,j=this.stack.length-3*D;if(j>=0&&M.getGoto(this.stack[j],i,!1)>=0)return D<<19|65536|i}}else{let M=D(N,j+1);if(null!=M)return M}}))};return D(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(3!=this.stack.length)return!1;let{parser:M}=this.p;return 65535==M.data[M.stateSlot(this.state,1)]&&!M.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(M){if(this.state!=M.state||this.stack.length!=M.stack.length)return!1;for(let N=0;N<this.stack.length;N+=3)if(this.stack[N]!=M.stack[N])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(M){return this.p.parser.dialect.flags[M]}shiftContext(M,N){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,M,this,this.p.stream.reset(N)))}reduceContext(M,N){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,M,this,this.p.stream.reset(N)))}emitContext(){let M=this.buffer.length-1;(M<0||-3!=this.buffer[M])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let M=this.buffer.length-1;(M<0||-4!=this.buffer[M])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(M){if(M!=this.curContext.context){let N=new Pn(this.curContext.tracker,M);N.hash!=this.curContext.hash&&this.emitContext(),this.curContext=N}}setLookAhead(M){M>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=M)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Pn{constructor(M,N){this.tracker=M,this.context=N,this.hash=M.strict?M.hash(N):0}}class Rn{constructor(M){this.start=M,this.state=M.state,this.stack=M.stack,this.base=this.stack.length}reduce(M){let N=65535&M,D=M>>19;0==D?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(D-1);let i=this.start.p.parser.getGoto(this.stack[this.base-3],N,!0);this.state=i}}class Bn{constructor(M,N,D){this.stack=M,this.pos=N,this.index=D,this.buffer=M.buffer,0==this.index&&this.maybeNext()}static create(M,N=M.bufferBase+M.buffer.length){return new Bn(M,N,N-M.bufferBase)}maybeNext(){let M=this.stack.parent;null!=M&&(this.index=this.stack.bufferBase-M.bufferBase,this.stack=M,this.buffer=M.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,0==this.index&&this.maybeNext()}fork(){return new Bn(this.stack,this.pos,this.index)}}function Jn(M,N=Uint16Array){if("string"!=typeof M)return M;let D=null;for(let i=0,j=0;i<M.length;){let t=0;for(;;){let N=M.charCodeAt(i++),D=!1;if(126==N){t=65535;break}N>=92&&N--,N>=34&&N--;let j=N-32;if(j>=46&&(j-=46,D=!0),t+=j,D)break;t*=46}D?D[j++]=t:D=new N(t)}return D}class Fn{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Hn=new Fn;class Xn{constructor(M,N){this.input=M,this.ranges=N,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Hn,this.rangeIndex=0,this.pos=this.chunkPos=N[0].from,this.range=N[0],this.end=N[N.length-1].to,this.readNext()}resolveOffset(M,N){let D=this.range,i=this.rangeIndex,j=this.pos+M;for(;j<D.from;){if(!i)return null;let M=this.ranges[--i];j-=D.from-M.to,D=M}for(;N<0?j>D.to:j>=D.to;){if(i==this.ranges.length-1)return null;let M=this.ranges[++i];j+=M.from-D.to,D=M}return j}clipPos(M){if(M>=this.range.from&&M<this.range.to)return M;for(let N of this.ranges)if(N.to>M)return Math.max(M,N.from);return this.end}peek(M){let N,D,i=this.chunkOff+M;if(i>=0&&i<this.chunk.length)N=this.pos+M,D=this.chunk.charCodeAt(i);else{let i=this.resolveOffset(M,1);if(null==i)return-1;if(N=i,N>=this.chunk2Pos&&N<this.chunk2Pos+this.chunk2.length)D=this.chunk2.charCodeAt(N-this.chunk2Pos);else{let M=this.rangeIndex,i=this.range;for(;i.to<=N;)i=this.ranges[++M];this.chunk2=this.input.chunk(this.chunk2Pos=N),N+this.chunk2.length>i.to&&(this.chunk2=this.chunk2.slice(0,i.to-N)),D=this.chunk2.charCodeAt(0)}}return N>=this.token.lookAhead&&(this.token.lookAhead=N+1),D}acceptToken(M,N=0){let D=N?this.resolveOffset(N,-1):this.pos;if(null==D||D<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=M,this.token.end=D}acceptTokenTo(M,N){this.token.value=M,this.token.end=N}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:M,chunkPos:N}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=M,this.chunk2Pos=N,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let M=this.input.chunk(this.pos),N=this.pos+M.length;this.chunk=N>this.range.to?M.slice(0,this.range.to-this.pos):M,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(M=1){for(this.chunkOff+=M;this.pos+M>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();M-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=M,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(M,N){if(N?(this.token=N,N.start=M,N.lookAhead=M+1,N.value=N.extended=-1):this.token=Hn,this.pos!=M){if(this.pos=M,M==this.end)return this.setDone(),this;for(;M<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;M>=this.range.to;)this.range=this.ranges[++this.rangeIndex];M>=this.chunkPos&&M<this.chunkPos+this.chunk.length?this.chunkOff=M-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(M,N){if(M>=this.chunkPos&&N<=this.chunkPos+this.chunk.length)return this.chunk.slice(M-this.chunkPos,N-this.chunkPos);if(M>=this.chunk2Pos&&N<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(M-this.chunk2Pos,N-this.chunk2Pos);if(M>=this.range.from&&N<=this.range.to)return this.input.read(M,N);let D="";for(let i of this.ranges){if(i.from>=N)break;i.to>M&&(D+=this.input.read(Math.max(i.from,M),Math.min(i.to,N)))}return D}}class $n{constructor(M,N){this.data=M,this.id=N}token(M,N){let{parser:D}=N.p;Kn(this.data,M,N,this.id,D.data,D.tokenPrecTable)}}$n.prototype.contextual=$n.prototype.fallback=$n.prototype.extend=!1;class _n{constructor(M,N,D){this.precTable=N,this.elseToken=D,this.data="string"==typeof M?Jn(M):M}token(M,N){let D=M.pos,i=0;for(;;){let D=M.next<0,j=M.resolveOffset(1,1);if(Kn(this.data,M,N,0,this.data,this.precTable),M.token.value>-1)break;if(null==this.elseToken)return;if(D||i++,null==j)break;M.reset(j,M.token)}i&&(M.reset(D,M.token),M.acceptToken(this.elseToken,i))}}_n.prototype.contextual=$n.prototype.fallback=$n.prototype.extend=!1;class qn{constructor(M,N={}){this.token=M,this.contextual=!!N.contextual,this.fallback=!!N.fallback,this.extend=!!N.extend}}function Kn(M,N,D,i,j,t){let I=0,z=1<<i,{dialect:u}=D.p.parser;M:for(;z&M[I];){let D=M[I+1];for(let i=I+3;i<D;i+=2)if((M[i+1]&z)>0){let D=M[i];if(u.allows(D)&&(-1==N.token.value||N.token.value==D||Nl(D,N.token.value,j,t))){N.acceptToken(D);break}}let i=N.next,g=0,e=M[I+2];if(!(N.next<0&&e>g&&65535==M[D+3*e-3])){for(;g<e;){let j=g+e>>1,t=D+j+(j<<1),z=M[t],u=M[t+1]||65536;if(i<z)e=j;else{if(!(i>=u)){I=M[t+2],N.advance();continue M}g=j+1}}break}I=M[D+3*e-1]}}function Ml(M,N,D){for(let i,j=N;65535!=(i=M[j]);j++)if(i==D)return j-N;return-1}function Nl(M,N,D,i){let j=Ml(D,i,N);return j<0||Ml(D,i,M)<j}const Dl="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let il=null;function jl(M,N,D){let i=M.cursor($T.IncludeAnonymous);for(i.moveTo(N);;)if(!(D<0?i.childBefore(N):i.childAfter(N)))for(;;){if((D<0?i.to<N:i.from>N)&&!i.type.isError)return D<0?Math.max(0,Math.min(i.to-1,N-25)):Math.min(M.length,Math.max(i.from+1,N+25));if(D<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return D<0?0:M.length}}class tl{constructor(M,N){this.fragments=M,this.nodeSet=N,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let M=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(M){for(this.safeFrom=M.openStart?jl(M.tree,M.from+M.offset,1)-M.offset:M.from,this.safeTo=M.openEnd?jl(M.tree,M.to+M.offset,-1)-M.offset:M.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(M.tree),this.start.push(-M.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(M){if(M<this.nextStart)return null;for(;this.fragment&&this.safeTo<=M;)this.nextFragment();if(!this.fragment)return null;for(;;){let N=this.trees.length-1;if(N<0)return this.nextFragment(),null;let D=this.trees[N],i=this.index[N];if(i==D.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let j=D.children[i],t=this.start[N]+D.positions[i];if(t>M)return this.nextStart=t,null;if(j instanceof _T){if(t==M){if(t<this.safeFrom)return null;let M=t+j.length;if(M<=this.safeTo){let N=j.prop(PT.lookAhead);if(!N||M+N<this.fragment.to)return j}}this.index[N]++,t+j.length>=Math.max(this.safeFrom,M)&&(this.trees.push(j),this.start.push(t),this.index.push(0))}else this.index[N]++,this.nextStart=t+j.length}}}class Il{constructor(M,N){this.stream=N,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=M.tokenizers.map((M=>new Fn))}getActions(M){let N=0,D=null,{parser:i}=M.p,{tokenizers:j}=i,t=i.stateSlot(M.state,3),I=M.curContext?M.curContext.hash:0,z=0;for(let i=0;i<j.length;i++){if(!(1<<i&t))continue;let u=j[i],g=this.tokens[i];if((!D||u.fallback)&&((u.contextual||g.start!=M.pos||g.mask!=t||g.context!=I)&&(this.updateCachedToken(g,u,M),g.mask=t,g.context=I),g.lookAhead>g.end+25&&(z=Math.max(g.lookAhead,z)),0!=g.value)){let i=N;if(g.extended>-1&&(N=this.addActions(M,g.extended,g.end,N)),N=this.addActions(M,g.value,g.end,N),!u.extend&&(D=g,N>i))break}}for(;this.actions.length>N;)this.actions.pop();return z&&M.setLookAhead(z),D||M.pos!=this.stream.end||(D=new Fn,D.value=M.p.parser.eofTerm,D.start=D.end=M.pos,N=this.addActions(M,D.value,D.end,N)),this.mainToken=D,this.actions}getMainToken(M){if(this.mainToken)return this.mainToken;let N=new Fn,{pos:D,p:i}=M;return N.start=D,N.end=Math.min(D+1,i.stream.end),N.value=D==i.stream.end?i.parser.eofTerm:0,N}updateCachedToken(M,N,D){let i=this.stream.clipPos(D.pos);if(N.token(this.stream.reset(i,M),D),M.value>-1){let{parser:N}=D.p;for(let i=0;i<N.specialized.length;i++)if(N.specialized[i]==M.value){let j=N.specializers[i](this.stream.read(M.start,M.end),D);if(j>=0&&D.p.parser.dialect.allows(j>>1)){1&j?M.extended=j>>1:M.value=j>>1;break}}}else M.value=0,M.end=this.stream.clipPos(i+1)}putAction(M,N,D,i){for(let N=0;N<i;N+=3)if(this.actions[N]==M)return i;return this.actions[i++]=M,this.actions[i++]=N,this.actions[i++]=D,i}addActions(M,N,D,i){let{state:j}=M,{parser:t}=M.p,{data:I}=t;for(let M=0;M<2;M++)for(let z=t.stateSlot(j,M?2:1);;z+=3){if(65535==I[z]){if(1!=I[z+1]){0==i&&2==I[z+1]&&(i=this.putAction(Al(I,z+2),N,D,i));break}z=Al(I,z+2)}I[z]==N&&(i=this.putAction(Al(I,z+1),N,D,i))}return i}}class zl{constructor(M,N,D,i){this.parser=M,this.input=N,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Xn(N,i),this.tokens=new Il(M,this.stream),this.topTerm=M.top[1];let{from:j}=i[0];this.stacks=[Gn.start(this,M.top[0],j)],this.fragments=D.length&&this.stream.end-j>4*M.bufferLength?new tl(D,M.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let M,N,D=this.stacks,i=this.minStackPos,j=this.stacks=[];if(this.bigReductionCount>300&&1==D.length){let[M]=D;for(;M.forceReduce()&&M.stack.length&&M.stack[M.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let t=0;t<D.length;t++){let I=D[t];for(;;){if(this.tokens.mainToken=null,I.pos>i)j.push(I);else{if(this.advanceStack(I,j,D))continue;{M||(M=[],N=[]),M.push(I);let D=this.tokens.getMainToken(I);N.push(D.value,D.end)}}break}}if(!j.length){let N=M&&function(M){let N=null;for(let D of M){let M=D.p.stoppedAt;(D.pos==D.p.stream.end||null!=M&&D.pos>M)&&D.p.parser.stateFlag(D.state,2)&&(!N||N.score<D.score)&&(N=D)}return N}(M);if(N)return Dl&&console.log("Finish with "+this.stackID(N)),this.stackToTree(N);if(this.parser.strict)throw Dl&&M&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+i);this.recovering||(this.recovering=5)}if(this.recovering&&M){let D=null!=this.stoppedAt&&M[0].pos>this.stoppedAt?M[0]:this.runRecovery(M,N,j);if(D)return Dl&&console.log("Force-finish "+this.stackID(D)),this.stackToTree(D.forceAll())}if(this.recovering){let M=1==this.recovering?1:3*this.recovering;if(j.length>M)for(j.sort(((M,N)=>N.score-M.score));j.length>M;)j.pop();j.some((M=>M.reducePos>i))&&this.recovering--}else if(j.length>1){M:for(let M=0;M<j.length-1;M++){let N=j[M];for(let D=M+1;D<j.length;D++){let i=j[D];if(N.sameState(i)||N.buffer.length>500&&i.buffer.length>500){if(!((N.score-i.score||N.buffer.length-i.buffer.length)>0)){j.splice(M--,1);continue M}j.splice(D--,1)}}}j.length>12&&j.splice(12,j.length-12)}this.minStackPos=j[0].pos;for(let M=1;M<j.length;M++)j[M].pos<this.minStackPos&&(this.minStackPos=j[M].pos);return null}stopAt(M){if(null!=this.stoppedAt&&this.stoppedAt<M)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=M}advanceStack(M,N,D){let i=M.pos,{parser:j}=this,t=Dl?this.stackID(M)+" -> ":"";if(null!=this.stoppedAt&&i>this.stoppedAt)return M.forceReduce()?M:null;if(this.fragments){let N=M.curContext&&M.curContext.tracker.strict,D=N?M.curContext.hash:0;for(let I=this.fragments.nodeAt(i);I;){let i=this.parser.nodeSet.types[I.type.id]==I.type?j.getGoto(M.state,I.type.id):-1;if(i>-1&&I.length&&(!N||(I.prop(PT.contextHash)||0)==D))return M.useNode(I,i),Dl&&console.log(t+this.stackID(M)+` (via reuse of ${j.getName(I.type.id)})`),!0;if(!(I instanceof _T)||0==I.children.length||I.positions[0]>0)break;let z=I.children[0];if(!(z instanceof _T&&0==I.positions[0]))break;I=z}}let I=j.stateSlot(M.state,4);if(I>0)return M.reduce(I),Dl&&console.log(t+this.stackID(M)+` (via always-reduce ${j.getName(65535&I)})`),!0;if(M.stack.length>=8400)for(;M.stack.length>6e3&&M.forceReduce(););let z=this.tokens.getActions(M);for(let I=0;I<z.length;){let u=z[I++],g=z[I++],e=z[I++],T=I==z.length||!D,A=T?M:M.split(),s=this.tokens.mainToken;if(A.apply(u,g,s?s.start:A.pos,e),Dl&&console.log(t+this.stackID(A)+` (via ${65536&u?`reduce of ${j.getName(65535&u)}`:"shift"} for ${j.getName(g)} @ ${i}${A==M?"":", split"})`),T)return!0;A.pos>i?N.push(A):D.push(A)}return!1}advanceFully(M,N){let D=M.pos;for(;;){if(!this.advanceStack(M,null,null))return!1;if(M.pos>D)return ul(M,N),!0}}runRecovery(M,N,D){let i=null,j=!1;for(let t=0;t<M.length;t++){let I=M[t],z=N[t<<1],u=N[1+(t<<1)],g=Dl?this.stackID(I)+" -> ":"";if(I.deadEnd){if(j)continue;if(j=!0,I.restart(),Dl&&console.log(g+this.stackID(I)+" (restarted)"),this.advanceFully(I,D))continue}let e=I.split(),T=g;for(let M=0;e.forceReduce()&&M<10;M++){if(Dl&&console.log(T+this.stackID(e)+" (via force-reduce)"),this.advanceFully(e,D))break;Dl&&(T=this.stackID(e)+" -> ")}for(let M of I.recoverByInsert(z))Dl&&console.log(g+this.stackID(M)+" (via recover-insert)"),this.advanceFully(M,D);this.stream.end>I.pos?(u==I.pos&&(u++,z=0),I.recoverByDelete(z,u),Dl&&console.log(g+this.stackID(I)+` (via recover-delete ${this.parser.getName(z)})`),ul(I,D)):(!i||i.score<I.score)&&(i=I)}return i}stackToTree(M){return M.close(),_T.build({buffer:Bn.create(M),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:M.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(M){let N=(il||(il=new WeakMap)).get(M);return N||il.set(M,N=String.fromCodePoint(this.nextStackID++)),N+M}}function ul(M,N){for(let D=0;D<N.length;D++){let i=N[D];if(i.pos==M.pos&&i.sameState(M))return void(N[D].score<M.score&&(N[D]=M))}N.push(M)}class gl{constructor(M,N,D){this.source=M,this.flags=N,this.disabled=D}allows(M){return!this.disabled||0==this.disabled[M]}}const el=M=>M;class Tl extends cA{constructor(M){if(super(),this.wrappers=[],14!=M.version)throw new RangeError(`Parser version (${M.version}) doesn't match runtime version (14)`);let N=M.nodeNames.split(" ");this.minRepeatTerm=N.length;for(let D=0;D<M.repeatNodeCount;D++)N.push("");let D=Object.keys(M.topRules).map((N=>M.topRules[N][1])),i=[];for(let M=0;M<N.length;M++)i.push([]);function j(M,N,D){i[M].push([N,N.deserialize(String(D))])}if(M.nodeProps)for(let N of M.nodeProps){let M=N[0];"string"==typeof M&&(M=PT[M]);for(let D=1;D<N.length;){let i=N[D++];if(i>=0)j(i,M,N[D++]);else{let t=N[D+-i];for(let I=-i;I>0;I--)j(N[D++],M,t);D++}}}this.nodeSet=new FT(N.map(((N,j)=>JT.define({name:j>=this.minRepeatTerm?void 0:N,id:j,props:i[j],top:D.indexOf(j)>-1,error:0==j,skipped:M.skippedNodes&&M.skippedNodes.indexOf(j)>-1})))),M.propSources&&(this.nodeSet=this.nodeSet.extend(...M.propSources)),this.strict=!1,this.bufferLength=WT;let t=Jn(M.tokenData);this.context=M.context,this.specializerSpecs=M.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let M=0;M<this.specializerSpecs.length;M++)this.specialized[M]=this.specializerSpecs[M].term;this.specializers=this.specializerSpecs.map(sl),this.states=Jn(M.states,Uint32Array),this.data=Jn(M.stateData),this.goto=Jn(M.goto),this.maxTerm=M.maxTerm,this.tokenizers=M.tokenizers.map((M=>"number"==typeof M?new $n(t,M):M)),this.topRules=M.topRules,this.dialects=M.dialects||{},this.dynamicPrecedences=M.dynamicPrecedences||null,this.tokenPrecTable=M.tokenPrec,this.termNames=M.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(M,N,D){let i=new zl(this,M,N,D);for(let j of this.wrappers)i=j(i,M,N,D);return i}getGoto(M,N,D=!1){let i=this.goto;if(N>=i[0])return-1;for(let j=i[N+1];;){let N=i[j++],t=1&N,I=i[j++];if(t&&D)return I;for(let D=j+(N>>1);j<D;j++)if(i[j]==M)return I;if(t)return-1}}hasAction(M,N){let D=this.data;for(let i=0;i<2;i++)for(let j,t=this.stateSlot(M,i?2:1);;t+=3){if(65535==(j=D[t])){if(1!=D[t+1]){if(2==D[t+1])return Al(D,t+2);break}j=D[t=Al(D,t+2)]}if(j==N||0==j)return Al(D,t+1)}return 0}stateSlot(M,N){return this.states[6*M+N]}stateFlag(M,N){return(this.stateSlot(M,0)&N)>0}validAction(M,N){return!!this.allActions(M,(M=>M==N||null))}allActions(M,N){let D=this.stateSlot(M,4),i=D?N(D):void 0;for(let D=this.stateSlot(M,1);null==i;D+=3){if(65535==this.data[D]){if(1!=this.data[D+1])break;D=Al(this.data,D+2)}i=N(Al(this.data,D+1))}return i}nextStates(M){let N=[];for(let D=this.stateSlot(M,1);;D+=3){if(65535==this.data[D]){if(1!=this.data[D+1])break;D=Al(this.data,D+2)}if(!(1&this.data[D+2])){let M=this.data[D+1];N.some(((N,D)=>1&D&&N==M))||N.push(this.data[D],M)}}return N}configure(M){let N=Object.assign(Object.create(Tl.prototype),this);if(M.props&&(N.nodeSet=this.nodeSet.extend(...M.props)),M.top){let D=this.topRules[M.top];if(!D)throw new RangeError(`Invalid top rule name ${M.top}`);N.top=D}return M.tokenizers&&(N.tokenizers=this.tokenizers.map((N=>{let D=M.tokenizers.find((M=>M.from==N));return D?D.to:N}))),M.specializers&&(N.specializers=this.specializers.slice(),N.specializerSpecs=this.specializerSpecs.map(((D,i)=>{let j=M.specializers.find((M=>M.from==D.external));if(!j)return D;let t=Object.assign(Object.assign({},D),{external:j.to});return N.specializers[i]=sl(t),t}))),M.contextTracker&&(N.context=M.contextTracker),M.dialect&&(N.dialect=this.parseDialect(M.dialect)),null!=M.strict&&(N.strict=M.strict),M.wrap&&(N.wrappers=N.wrappers.concat(M.wrap)),null!=M.bufferLength&&(N.bufferLength=M.bufferLength),N}hasWrappers(){return this.wrappers.length>0}getName(M){return this.termNames?this.termNames[M]:String(M<=this.maxNode&&this.nodeSet.types[M].name||M)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(M){let N=this.dynamicPrecedences;return null==N?0:N[M]||0}parseDialect(M){let N=Object.keys(this.dialects),D=N.map((()=>!1));if(M)for(let i of M.split(" ")){let M=N.indexOf(i);M>=0&&(D[M]=!0)}let i=null;for(let M=0;M<N.length;M++)if(!D[M])for(let D,j=this.dialects[N[M]];65535!=(D=this.data[j++]);)(i||(i=new Uint8Array(this.maxTerm+1)))[D]=1;return new gl(M,D,i)}static deserialize(M){return new Tl(M)}}function Al(M,N){return M[N]|M[N+1]<<16}function sl(M){if(M.external){let N=M.extend?1:0;return(D,i)=>M.external(D,i)<<1|N}return M.get}const Ll=[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],Ol=new class{constructor(M){this.start=M.start,this.shift=M.shift||el,this.reduce=M.reduce||el,this.reuse=M.reuse||el,this.hash=M.hash||(()=>0),this.strict=!1!==M.strict}}({start:!1,shift:(M,N)=>5==N||6==N||315==N?M:316==N,strict:!1}),yl=new qn(((M,N)=>{let{next:D}=M;(125==D||-1==D||N.context)&&M.acceptToken(313)}),{contextual:!0,fallback:!0}),cl=new qn(((M,N)=>{let D,{next:i}=M;Ll.indexOf(i)>-1||(47!=i||47!=(D=M.peek(1))&&42!=D)&&(125==i||59==i||-1==i||N.context||M.acceptToken(312))}),{contextual:!0}),nl=new qn(((M,N)=>{let{next:D}=M;if(43==D||45==D){if(M.advance(),D==M.next){M.advance();let D=!N.context&&N.canShift(1);M.acceptToken(D?1:2)}}else 63==D&&46==M.peek(1)&&(M.advance(),M.advance(),(M.next<48||M.next>57)&&M.acceptToken(3))}),{contextual:!0});function ll(M,N){return M>=65&&M<=90||M>=97&&M<=122||95==M||M>=192||!N&&M>=48&&M<=57}const ol=new qn(((M,N)=>{if(60!=M.next||!N.dialectEnabled(0))return;if(M.advance(),47==M.next)return;let D=0;for(;Ll.indexOf(M.next)>-1;)M.advance(),D++;if(ll(M.next,!0)){for(M.advance(),D++;ll(M.next,!1);)M.advance(),D++;for(;Ll.indexOf(M.next)>-1;)M.advance(),D++;if(44==M.next)return;for(let N=0;;N++){if(7==N){if(!ll(M.next,!0))return;break}if(M.next!="extends".charCodeAt(N))break;M.advance(),D++}}M.acceptToken(4,-D)})),rl=aA({"get set async static":RA.modifier,"for while do if else switch try catch finally return throw break continue default case":RA.controlKeyword,"in of await yield void typeof delete instanceof":RA.operatorKeyword,"let var const using function class extends":RA.definitionKeyword,"import export from":RA.moduleKeyword,"with debugger as new":RA.keyword,TemplateString:RA.special(RA.string),super:RA.atom,BooleanLiteral:RA.bool,this:RA.self,null:RA.null,Star:RA.modifier,VariableName:RA.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":RA.function(RA.variableName),VariableDefinition:RA.definition(RA.variableName),Label:RA.labelName,PropertyName:RA.propertyName,PrivatePropertyName:RA.special(RA.propertyName),"CallExpression/MemberExpression/PropertyName":RA.function(RA.propertyName),"FunctionDeclaration/VariableDefinition":RA.function(RA.definition(RA.variableName)),"ClassDeclaration/VariableDefinition":RA.definition(RA.className),PropertyDefinition:RA.definition(RA.propertyName),PrivatePropertyDefinition:RA.definition(RA.special(RA.propertyName)),UpdateOp:RA.updateOperator,"LineComment Hashbang":RA.lineComment,BlockComment:RA.blockComment,Number:RA.number,String:RA.string,Escape:RA.escape,ArithOp:RA.arithmeticOperator,LogicOp:RA.logicOperator,BitOp:RA.bitwiseOperator,CompareOp:RA.compareOperator,RegExp:RA.regexp,Equals:RA.definitionOperator,Arrow:RA.function(RA.punctuation),": Spread":RA.punctuation,"( )":RA.paren,"[ ]":RA.squareBracket,"{ }":RA.brace,"InterpolationStart InterpolationEnd":RA.special(RA.brace),".":RA.derefOperator,", ;":RA.separator,"@":RA.meta,TypeName:RA.typeName,TypeDefinition:RA.definition(RA.typeName),"type enum interface implements namespace module declare":RA.definitionKeyword,"abstract global Privacy readonly override":RA.modifier,"is keyof unique infer":RA.operatorKeyword,JSXAttributeValue:RA.attributeValue,JSXText:RA.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":RA.angleBracket,"JSXIdentifier JSXNameSpacedName":RA.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":RA.attributeName,"JSXBuiltin/JSXIdentifier":RA.standard(RA.tagName)}),xl={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,extends:54,this:58,true:66,false:66,null:78,void:82,typeof:86,super:102,new:136,delete:148,yield:157,await:161,class:166,public:229,private:229,protected:229,readonly:231,instanceof:250,satisfies:253,in:254,const:256,import:290,keyof:345,unique:349,infer:355,is:391,abstract:411,implements:413,type:415,let:418,var:420,using:423,interface:429,enum:433,namespace:439,module:441,declare:445,global:449,for:468,of:477,while:480,with:484,do:488,if:492,else:494,switch:498,case:504,try:510,catch:514,finally:518,return:522,throw:526,break:530,continue:534,debugger:538},al={__proto__:null,async:123,get:125,set:127,declare:189,public:191,private:191,protected:191,static:193,abstract:195,override:197,readonly:203,accessor:205,new:395},Ql={__proto__:null,"<":187},El=Tl.deserialize({version:14,states:"$=dO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ?NdO'#CiO+RO!bO'#CjO+aO#tO'#CjO+oO!0LbO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DwO0fQ^O'#EPOOQ?Mr'#EX'#EXO1PQWO'#EUOOQO'#Em'#EmOOQO'#Ih'#IhO1XQWO'#GpO1dQWO'#ElO1iQWO'#ElO3hQ?NdO'#JmO6[Q?NdO'#JnO6uQWO'#F[O6zQ&jO'#FsOOQ?Mr'#Fe'#FeO7VO,YO'#FeO7eQ7[O'#FzO9RQWO'#FyOOQ?Mr'#Jn'#JnOOQ?Mp'#Jm'#JmO9WQWO'#GtOOQU'#KZ'#KZO9cQWO'#IUO9hQ?MxO'#IVOOQU'#JZ'#JZOOQU'#IZ'#IZQ`Q^OOO`Q^OOO9pQMnO'#DsO9wQ^O'#D{O:OQ^O'#D}O9^QWO'#GpO:VQ7[O'#CoO:eQWO'#EkO:pQWO'#EvO:uQ7[O'#FdO;dQWO'#GpOOQO'#K['#K[O;iQWO'#K[O;wQWO'#GxO;wQWO'#GyO;wQWO'#G{O9^QWO'#HOO<nQWO'#HRO>VQWO'#CeO>gQWO'#H_O>oQWO'#HeO>oQWO'#HgO`Q^O'#HiO>oQWO'#HkO>oQWO'#HnO>tQWO'#HtO>yQ?MyO'#HzO%[Q^O'#H|O?UQ?MyO'#IOO?aQ?MyO'#IQO9hQ?MxO'#ISO?lQ?NdO'#CiO@nQ`O'#DiQOQWOOO%[Q^O'#D}OAUQWO'#EQO:VQ7[O'#EkOAaQWO'#EkOAlQpO'#FdOOQU'#Cg'#CgOOQ?Mp'#Dn'#DnOOQ?Mp'#Jq'#JqO%[Q^O'#JqOOQO'#Jt'#JtOOQO'#Id'#IdOBlQ`O'#EdOOQ?Mp'#Ec'#EcOOQ?Mp'#Jx'#JxOChQ?NQO'#EdOCrQ`O'#ETOOQO'#Js'#JsODWQ`O'#JtOEeQ`O'#ETOCrQ`O'#EdPErO#@ItO'#CbPOOO)CDx)CDxOOOO'#I['#I[OE}O!bO,59UOOQ?Mr,59U,59UOOOO'#I]'#I]OF]O#tO,59UO%[Q^O'#D`OOOO'#I_'#I_OFkO!0LbO,59xOOQ?Mr,59x,59xOFyQ^O'#I`OG^QWO'#JoOI]QrO'#JoO+}Q^O'#JoOIdQWO,5:OOIzQWO'#EmOJXQWO'#KOOJdQWO'#J}OJdQWO'#J}OJlQWO,5;ZOJqQWO'#J|OOQ?Mv,5:Z,5:ZOJxQ^O,5:ZOLvQ?NdO,5:cOMgQWO,5:kONQQ?MxO'#J{ONXQWO'#JzO9WQWO'#JzONmQWO'#JzONuQWO,5;YONzQWO'#JzO!#PQrO'#JnOOQ?Mr'#Ci'#CiO%[Q^O'#EPO!#oQrO,5:pOOQQ'#Ju'#JuOOQO-E<f-E<fO9^QWO,5=[O!$VQWO,5=[O!$[Q^O,5;WO!&_Q7[O'#EhO!'xQWO,5;WO!'}Q^O'#DvO!(XQ`O,5;aO!(aQ`O,5;aO%[Q^O,5;aOOQU'#FS'#FSOOQU'#FU'#FUO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bO%[Q^O,5;bOOQU'#FY'#FYO!(oQ^O,5;sOOQ?Mr,5;x,5;xOOQ?Mr,5;y,5;yOOQ?Mr,5;{,5;{O%[Q^O'#IlO!*rQ?MxO,5<gO!&_Q7[O,5;bO!+aQ7[O,5;bO!-RQ7[O'#EZO%[Q^O,5;vOOQ?Mr,5;z,5;zO!-YQ&jO'#FiO!.VQ&jO'#KSO!-qQ&jO'#KSO!.^Q&jO'#KSOOQO'#KS'#KSO!.rQ&jO,5<ROOOS,5<_,5<_O!/TQ^O'#FuOOOS'#Ik'#IkO7VO,YO,5<PO!/[Q&jO'#FwOOQ?Mr,5<P,5<PO!/{Q!LQO'#CvOOQ?Mr'#Cz'#CzO!0`QWO'#CzO!0eO!0LbO'#DOO!1RQ7[O,5<dO!1YQWO,5<fO!2uQ$ISO'#GVO!3SQWO'#GWO!3XQWO'#GWO!4wQ$ISO'#G[O!5sQ`O'#G`OOQO'#Gk'#GkO!+hQ7[O'#GjOOQO'#Gm'#GmO!+hQ7[O'#GlO!6fQ!LQO'#JgOOQ?Mr'#Jg'#JgO!6pQWO'#JfO!7OQWO'#JeO!7WQWO'#CuOOQ?Mr'#Cx'#CxOOQ?Mr'#DS'#DSOOQ?Mr'#DU'#DUO1SQWO'#DWO!+hQ7[O'#F}O!+hQ7[O'#GPO!7`QWO'#GRO!7eQWO'#GSO!3XQWO'#GYO!+hQ7[O'#G_O!7jQWO'#EnO!8XQWO,5<eOOQ?Mp'#Cr'#CrO!8aQWO'#EoO!9ZQ`O'#EpOOQ?Mp'#J|'#J|O!9bQ?MxO'#K]O9hQ?MxO,5=`O`Q^O,5>pOOQU'#Jc'#JcOOQU,5>q,5>qOOQU-E<X-E<XO!;aQ?NdO,5:_O!9UQ`O,5:]O!=zQ?NdO,5:gO%[Q^O,5:gO!@bQ?NdO,5:iOOQO,5@v,5@vO!ARQ7[O,5=[O!AaQ?MxO'#JdO9RQWO'#JdO!ArQ?MxO,59ZO!A}Q`O,59ZO!BVQ7[O,59ZO:VQ7[O,59ZO!BbQWO,5;WO!BjQWO'#H^O!COQWO'#K`O%[Q^O,5;|O!9UQ`O,5<OO!CWQWO,5=wO!C]QWO,5=wO!CbQWO,5=wO9hQ?MxO,5=wO;wQWO,5=gOOQO'#Cv'#CvO!CpQ`O,5=dO!CxQ7[O,5=eO!DTQWO,5=gO!DYQpO,5=jO!DbQWO'#K[O>tQWO'#HTO9^QWO'#HVO!DgQWO'#HVO:VQ7[O'#HXO!DlQWO'#HXOOQU,5=m,5=mO!DqQWO'#HYO!ESQWO'#CoO!EXQWO,59PO!EcQWO,59PO!GhQ^O,59POOQU,59P,59PO!GxQ?MxO,59PO%[Q^O,59PO!JTQ^O'#HaOOQU'#Hb'#HbOOQU'#Hc'#HcO`Q^O,5=yO!JkQWO,5=yO`Q^O,5>PO`Q^O,5>RO!JpQWO,5>TO`Q^O,5>VO!JuQWO,5>YO!JzQ^O,5>`OOQU,5>f,5>fO%[Q^O,5>fO9hQ?MxO,5>hOOQU,5>j,5>jO# UQWO,5>jOOQU,5>l,5>lO# UQWO,5>lOOQU,5>n,5>nO# rQ`O'#D[O%[Q^O'#JqO# |Q`O'#JqO#!kQ`O'#DjO#!|Q`O'#DjO#%_Q^O'#DjO#%fQWO'#JpO#%nQWO,5:TO#%sQWO'#EqO#&RQWO'#KPO#&ZQWO,5;[O#&`Q`O'#DjO#&mQ`O'#ESOOQ?Mr,5:l,5:lO%[Q^O,5:lO#&tQWO,5:lO>tQWO,5;VO!A}Q`O,5;VO!BVQ7[O,5;VO:VQ7[O,5;VO#&|QWO,5@]O#'RQ(CYO,5:pOOQO-E<b-E<bO#(XQ?NQO,5;OOCrQ`O,5:oO#(cQ`O,5:oOCrQ`O,5;OO!ArQ?MxO,5:oOOQ?Mp'#Eg'#EgOOQO,5;O,5;OO%[Q^O,5;OO#(pQ?MxO,5;OO#({Q?MxO,5;OO!A}Q`O,5:oOOQO,5;U,5;UO#)ZQ?MxO,5;OPOOO'#IY'#IYP#)oO#@ItO,58|POOO,58|,58|OOOO-E<Y-E<YOOQ?Mr1G.p1G.pOOOO-E<Z-E<ZO#)zQpO,59zOOOO-E<]-E<]OOQ?Mr1G/d1G/dO#*PQrO,5>zO+}Q^O,5>zOOQO,5?Q,5?QO#*ZQ^O'#I`OOQO-E<^-E<^O#*hQWO,5@ZO#*pQrO,5@ZO#*wQWO,5@iOOQ?Mr1G/j1G/jO%[Q^O,5@jO#+PQWO'#IfOOQO-E<d-E<dO#*wQWO,5@iOOQ?Mp1G0u1G0uOOQ?Mv1G/u1G/uOOQ?Mv1G0V1G0VO%[Q^O,5@gO#+eQ?MxO,5@gO#+vQ?MxO,5@gO#+}QWO,5@fO9WQWO,5@fO#,VQWO,5@fO#,eQWO'#IiO#+}QWO,5@fOOQ?Mp1G0t1G0tO!(XQ`O,5:rO!(dQ`O,5:rOOQQ,5:t,5:tO#-VQYO,5:tO#-_Q7[O1G2vO9^QWO1G2vOOQ?Mr1G0r1G0rO#-mQ?NdO1G0rO#.rQ?NbO,5;SOOQ?Mr'#GU'#GUO#/`Q?NdO'#JgO!$[Q^O1G0rO#1hQrO'#JrO%[Q^O'#JrO#1rQWO,5:bOOQ?Mr'#D['#D[OOQ?Mr1G0{1G0{O%[Q^O1G0{OOQ?Mr1G1e1G1eO#1wQWO1G0{O#4]Q?NdO1G0|O#4dQ?NdO1G0|O#6zQ?NdO1G0|O#7RQ?NdO1G0|O#9YQ?NdO1G0|O#9pQ?NdO1G0|O#<gQ?NdO1G0|O#<nQ?NdO1G0|O#?OQ?NdO1G0|O#?]Q?NdO1G0|O#AWQ?NdO1G0|O#DWQ07bO'#CiO#FRQ07bO1G1_O#FYQ07bO'#JnO#FmQ?NdO,5?WOOQ?Mp-E<j-E<jO#GaQ?NdO1G0|OOQ?Mr1G0|1G0|O#IiQ7[O'#JwO#IsQWO,5:uO#IxQ?NdO1G1bO#JlQ&jO,5<VO#JtQ&jO,5<WO#J|Q&jO'#FnO#KeQWO'#FmOOQO'#KT'#KTOOQO'#Ij'#IjO#KjQ&jO1G1mOOQ?Mr1G1m1G1mOOOS1G1x1G1xO#K{Q07bO'#JmO#LVQWO,5<aO!(oQ^O,5<aOOOS-E<i-E<iOOQ?Mr1G1k1G1kO#L[Q`O'#KSOOQ?Mr,5<c,5<cO#LdQ`O,5<cOOQ?Mr,59f,59fO!&_Q7[O'#DQOOOO'#I^'#I^O#LiO!0LbO,59jOOQ?Mr,59j,59jO%[Q^O1G2OO!7eQWO'#InO#LtQ7[O,5<xOOQ?Mr,5<u,5<uO!+hQ7[O'#IqO#MdQ7[O,5=UO!+hQ7[O'#IsO#NVQ7[O,5=WO!&_Q7[O,5=YOOQO1G2Q1G2QO#NaQpO'#CrO#NtQ$ISO'#EoO$ sQ`O'#G`O$!aQpO,5<qO$!hQWO'#KWO9WQWO'#KWO$!vQWO,5<sO!+hQ7[O,5<rO$!{QWO'#GXO$#^QWO,5<rO$#cQpO'#GUO$#pQpO'#KXO$#zQWO'#KXO!&_Q7[O'#KXO$$PQWO,5<vO$$UQ`O'#GaO!5nQ`O'#GaO$$gQWO'#GcO$$lQWO'#GeO!3XQWO'#GhO$$qQ?MxO'#IpO$$|Q`O,5<zOOQ?Mv,5<z,5<zO$%TQ`O'#GaO$%cQ`O'#GbO$%kQ`O'#GbO$%pQ7[O,5=UO$&QQ7[O,5=WOOQ?Mr,5=Z,5=ZO!+hQ7[O,5@QO!+hQ7[O,5@QO$&bQWO'#IuO$&mQWO,5@PO$&uQWO,59aO$'iQ!LSO,59rOOQ?Mr'#Jk'#JkO$([Q7[O,5<iO$(}Q7[O,5<kO@fQWO,5<mOOQ?Mr,5<n,5<nO$)XQWO,5<tO$)^Q7[O,5<yO$)nQWO'#JzO!$[Q^O1G2PO$)sQWO1G2PO9WQWO'#J}O9WQWO'#EqO%[Q^O'#EqO9WQWO'#IwO$)xQ?MxO,5@wOOQU1G2z1G2zOOQU1G4[1G4[OOQ?Mr1G/y1G/yOOQ?Mr1G/w1G/wO$+zQ?NdO1G0ROOQU1G2v1G2vO!&_Q7[O1G2vO%[Q^O1G2vO#-bQWO1G2vO$.OQ7[O'#EhOOQ?Mp,5@O,5@OO$.YQ?MxO,5@OOOQU1G.u1G.uO!ArQ?MxO1G.uO!A}Q`O1G.uO!BVQ7[O1G.uO$.kQWO1G0rO$.pQWO'#CiO$.{QWO'#KaO$/TQWO,5=xO$/YQWO'#KaO$/_QWO'#KaO$/mQWO'#I}O$/{QWO,5@zO$0TQrO1G1hOOQ?Mr1G1j1G1jO9^QWO1G3cO@fQWO1G3cO$0[QWO1G3cO$0aQWO1G3cOOQU1G3c1G3cO!DTQWO1G3RO!&_Q7[O1G3OO$0fQWO1G3OOOQU1G3P1G3PO!&_Q7[O1G3PO$0kQWO1G3PO$0sQ`O'#G}OOQU1G3R1G3RO!5nQ`O'#IyO!DYQpO1G3UOOQU1G3U1G3UOOQU,5=o,5=oO$0{Q7[O,5=qO9^QWO,5=qO$$lQWO,5=sO9RQWO,5=sO!A}Q`O,5=sO!BVQ7[O,5=sO:VQ7[O,5=sO$1ZQWO'#K_O$1fQWO,5=tOOQU1G.k1G.kO$1kQ?MxO1G.kO@fQWO1G.kO$1vQWO1G.kO9hQ?MxO1G.kO$4OQrO,5@|O$4]QWO,5@|O9WQWO,5@|O$4hQ^O,5={O$4oQWO,5={OOQU1G3e1G3eO`Q^O1G3eOOQU1G3k1G3kOOQU1G3m1G3mO>oQWO1G3oO$4tQ^O1G3qO$8xQ^O'#HpOOQU1G3t1G3tO$9VQWO'#HvO>tQWO'#HxOOQU1G3z1G3zO$9_Q^O1G3zO9hQ?MxO1G4QOOQU1G4S1G4SOOQ?Mp'#G]'#G]O9hQ?MxO1G4UO9hQ?MxO1G4WO$=fQWO,5@]O!(oQ^O,5;]O9WQWO,5;]O>tQWO,5:UO!(oQ^O,5:UO!A}Q`O,5:UO$=kQ07bO,5:UOOQO,5;],5;]O$=uQ`O'#IaO$>]QWO,5@[OOQ?Mr1G/o1G/oO$>eQ`O'#IgO$>oQWO,5@kOOQ?Mp1G0v1G0vO#!|Q`O,5:UOOQO'#Ic'#IcO$>wQ`O,5:nOOQ?Mv,5:n,5:nO#&wQWO1G0WOOQ?Mr1G0W1G0WO%[Q^O1G0WOOQ?Mr1G0q1G0qO>tQWO1G0qO!A}Q`O1G0qO!BVQ7[O1G0qOOQ?Mp1G5w1G5wO!ArQ?MxO1G0ZOOQO1G0j1G0jO%[Q^O1G0jO$?OQ?MxO1G0jO$?ZQ?MxO1G0jO!A}Q`O1G0ZOCrQ`O1G0ZO$?iQ?MxO1G0jOOQO1G0Z1G0ZO$?}Q?NdO1G0jPOOO-E<W-E<WPOOO1G.h1G.hOOOO1G/f1G/fO$@XQpO,5<gO$@aQrO1G4fOOQO1G4l1G4lO%[Q^O,5>zO$@kQWO1G5uO$@sQWO1G6TO$@{QrO1G6UO9WQWO,5?QO$AVQ?NdO1G6RO%[Q^O1G6RO$AgQ?MxO1G6RO$AxQWO1G6QO$AxQWO1G6QO9WQWO1G6QO$BQQWO,5?TO9WQWO,5?TOOQO,5?T,5?TO$BfQWO,5?TO$)nQWO,5?TOOQO-E<g-E<gOOQQ1G0^1G0^OOQQ1G0`1G0`O#-YQWO1G0`OOQU7+(b7+(bO!&_Q7[O7+(bO%[Q^O7+(bO$BtQWO7+(bO$CPQ7[O7+(bO$C_Q?NdO,5=UO$EgQ?NdO,5=WO$GoQ?NdO,5=UO$I}Q?NdO,5=WO$L]Q?NdO,59rO$NbQ?NdO,5<iO%!jQ?NdO,5<kO%$rQ?NdO,5<yOOQ?Mr7+&^7+&^O%'QQ?NdO7+&^O%'tQ^O'#IbO%(RQWO,5@^O%(ZQrO,5@^OOQ?Mr1G/|1G/|O%(eQWO7+&gOOQ?Mr7+&g7+&gO%(jQ07bO,5:cO%[Q^O7+&yO%(tQ07bO,5:_O%)RQ07bO,5:gO%)]Q07bO,5:iO%)gQ7[O'#IeO%)qQWO,5@cOOQ?Mr1G0a1G0aOOQO1G1q1G1qOOQO1G1r1G1rO%)yQtO,5<YO!(oQ^O,5<XOOQO-E<h-E<hOOQ?Mr7+'X7+'XOOOS7+'d7+'dOOOS1G1{1G1{O%*UQWO1G1{OOQ?Mr1G1}1G1}O%*ZQpO,59lOOOO-E<[-E<[OOQ?Mr1G/U1G/UO%*bQ?NdO7+'jOOQ?Mr,5?Y,5?YO%+UQpO,5?YOOQ?Mr1G2d1G2dP!&_Q7[O'#InPOQ?Mr-E<l-E<lO%+tQ7[O,5?]OOQ?Mr-E<o-E<oO%,gQ7[O,5?_OOQ?Mr-E<q-E<qO%,qQpO1G2tO%,xQpO'#CrO%-`Q7[O'#J}O%-gQ^O'#EqOOQ?Mr1G2]1G2]O%-qQWO'#ImO%.VQWO,5@rO%.VQWO,5@rO%._QWO,5@rO%.jQWO,5@rOOQO1G2_1G2_O%.xQ7[O1G2^O!+hQ7[O1G2^O%/YQ$ISO'#IoO%/gQWO,5@sO!&_Q7[O,5@sO%/oQpO,5@sOOQ?Mr1G2b1G2bOOQ?Mp,5<{,5<{OOQ?Mp,5<|,5<|O$)nQWO,5<|OCcQWO,5<|O!A}Q`O,5<{OOQO'#Gd'#GdO%/yQWO,5<}OOQ?Mp,5=P,5=PO$)nQWO,5=SOOQO,5?[,5?[OOQO-E<n-E<nOOQ?Mv1G2f1G2fO!5nQ`O,5<{O%0RQWO,5<|O$$gQWO,5<}O!5nQ`O,5<|O!+hQ7[O'#IqO%0uQ7[O1G2pO!+hQ7[O'#IsO%1hQ7[O1G2rO%1rQ7[O1G5lO%1|Q7[O1G5lOOQO,5?a,5?aOOQO-E<s-E<sOOQO1G.{1G.{O!9UQ`O,59tO%[Q^O,59tOOQ?Mr,5<h,5<hO%2ZQWO1G2XO!+hQ7[O1G2`O%2`Q?NdO7+'kOOQ?Mr7+'k7+'kO!$[Q^O7+'kO%3SQWO,5;]OOQ?Mp,5?c,5?cOOQ?Mp-E<u-E<uO%3XQpO'#KYO#&wQWO7+(bO4UQrO7+(bO$BwQWO7+(bO%3cQ?NbO'#CiO%3vQ?NbO,5=QO%4hQWO,5=QOOQ?Mp1G5j1G5jOOQU7+$a7+$aO!ArQ?MxO7+$aO!A}Q`O7+$aO!$[Q^O7+&^O%4mQWO'#I|O%5UQWO,5@{OOQO1G3d1G3dO9^QWO,5@{O%5UQWO,5@{O%5^QWO,5@{OOQO,5?i,5?iOOQO-E<{-E<{OOQ?Mr7+'S7+'SO%5cQWO7+(}O9hQ?MxO7+(}O9^QWO7+(}O@fQWO7+(}OOQU7+(m7+(mO%5hQ?NbO7+(jO!&_Q7[O7+(jO%5rQpO7+(kOOQU7+(k7+(kO!&_Q7[O7+(kO%5yQWO'#K^O%6UQWO,5=iOOQO,5?e,5?eOOQO-E<w-E<wOOQU7+(p7+(pO%7eQ`O'#HWOOQU1G3]1G3]O!&_Q7[O1G3]O%[Q^O1G3]O%7lQWO1G3]O%7wQ7[O1G3]O9hQ?MxO1G3_O$$lQWO1G3_O9RQWO1G3_O!A}Q`O1G3_O!BVQ7[O1G3_O%8VQWO'#I{O%8kQWO,5@yO%8sQ`O,5@yOOQ?Mp1G3`1G3`OOQU7+$V7+$VO@fQWO7+$VO9hQ?MxO7+$VO%9OQWO7+$VO%[Q^O1G6hO%[Q^O1G6iO%9TQ?MxO1G6hO%9_Q^O1G3gO%9fQWO1G3gO%9kQ^O1G3gOOQU7+)P7+)PO9hQ?MxO7+)ZO`Q^O7+)]OOQU'#Kd'#KdOOQU'#JO'#JOO%9rQ^O,5>[OOQU,5>[,5>[O%[Q^O'#HqO%:PQWO'#HsOOQU,5>b,5>bO9WQWO,5>bOOQU,5>d,5>dOOQU7+)f7+)fOOQU7+)l7+)lOOQU7+)p7+)pOOQU7+)r7+)rO%:UQ`O1G5wO%:jQ07bO1G0wO%:tQWO1G0wOOQO1G/p1G/pO%;PQ07bO1G/pO>tQWO1G/pO!(oQ^O'#DjOOQO,5>{,5>{OOQO-E<_-E<_OOQO,5?R,5?ROOQO-E<e-E<eO!A}Q`O1G/pOOQO-E<a-E<aOOQ?Mv1G0Y1G0YOOQ?Mr7+%r7+%rO#&wQWO7+%rOOQ?Mr7+&]7+&]O>tQWO7+&]O!A}Q`O7+&]OOQO7+%u7+%uO$?}Q?NdO7+&UOOQO7+&U7+&UO%[Q^O7+&UO%;ZQ?MxO7+&UO!ArQ?MxO7+%uO!A}Q`O7+%uO%;fQ?MxO7+&UO%;tQ?NdO7++mO%[Q^O7++mO%<UQWO7++lO%<UQWO7++lOOQO1G4o1G4oO9WQWO1G4oO%<^QWO1G4oOOQQ7+%z7+%zO#&wQWO<<K|O4UQrO<<K|O%<lQWO<<K|OOQU<<K|<<K|O!&_Q7[O<<K|O%[Q^O<<K|O%<tQWO<<K|O%=PQ?NdO,5?]O%?XQ?NdO,5?_O%AaQ?NdO1G2^O%CoQ?NdO1G2pO%EwQ?NdO1G2rO%HPQrO,5>|O%[Q^O,5>|OOQO-E<`-E<`O%HZQWO1G5xOOQ?Mr<<JR<<JRO%HcQ07bO1G0rO%JjQ07bO1G0|O%JqQ07bO1G0|O%LrQ07bO1G0|O%LyQ07bO1G0|O%NkQ07bO1G0|O& RQ07bO1G0|O&#cQ07bO1G0|O&#jQ07bO1G0|O&%eQ07bO1G0|O&%rQ07bO1G0|O&'mQ07bO1G0|O&(QQ?NdO<<JeO&)VQ07bO1G0|O&*xQ07bO'#JgO&,{Q07bO1G1bO&-YQ07bO1G0RO&-dQ7[O,5?POOQO-E<c-E<cO!(oQ^O'#FpOOQO'#KU'#KUOOQO1G1t1G1tO&-nQWO1G1sO&-sQ07bO,5?WOOOS7+'g7+'gOOOO1G/W1G/WOOQ?Mr1G4t1G4tO!+hQ7[O7+(`O&0TQrO'#CiO&0_QWO,5?XO9WQWO,5?XOOQO-E<k-E<kO&0mQWO1G6^O&0mQWO1G6^O&0uQWO1G6^O&1QQ7[O7+'xO&1bQpO,5?ZO&1lQWO,5?ZO!&_Q7[O,5?ZOOQO-E<m-E<mO&1qQpO1G6_O&1{QWO1G6_OOQ?Mp1G2h1G2hO$)nQWO1G2hOOQ?Mp1G2g1G2gO&2TQWO1G2iO!&_Q7[O1G2iOOQ?Mp1G2n1G2nO!A}Q`O1G2gOCcQWO1G2hO&2YQWO1G2iO&2bQWO1G2hO&3UQ7[O,5?]OOQ?Mr-E<p-E<pO&3wQ7[O,5?_OOQ?Mr-E<r-E<rO!+hQ7[O7++WOOQ?Mr1G/`1G/`O&4RQWO1G/`OOQ?Mr7+'s7+'sO&4WQ7[O7+'zO&4hQ?NdO<<KVOOQ?Mr<<KV<<KVO&5[QWO1G0wO!&_Q7[O'#IvO&5aQWO,5@tO&7cQrO<<K|O!&_Q7[O1G2lOOQU<<G{<<G{O!ArQ?MxO<<G{O&7jQ?NdO<<IxOOQ?Mr<<Ix<<IxOOQO,5?h,5?hO&8^QWO,5?hO&8cQWO,5?hOOQO-E<z-E<zO&8qQWO1G6gO&8qQWO1G6gO9^QWO1G6gO@fQWO<<LiOOQU<<Li<<LiO&8yQWO<<LiO9hQ?MxO<<LiOOQU<<LU<<LUO%5hQ?NbO<<LUOOQU<<LV<<LVO%5rQpO<<LVO&9OQ`O'#IxO&9ZQWO,5@xO!(oQ^O,5@xOOQU1G3T1G3TO%-gQ^O'#JqOOQO'#Iz'#IzO9hQ?MxO'#IzO&9cQ`O,5=rOOQU,5=r,5=rO&9jQ`O'#EdO&:OQWO7+(wO&:TQWO7+(wOOQU7+(w7+(wO!&_Q7[O7+(wO%[Q^O7+(wO&:]QWO7+(wOOQU7+(y7+(yO9hQ?MxO7+(yO$$lQWO7+(yO9RQWO7+(yO!A}Q`O7+(yO&:hQWO,5?gOOQO-E<y-E<yOOQO'#HZ'#HZO&:sQWO1G6eO9hQ?MxO<<GqOOQU<<Gq<<GqO@fQWO<<GqO&:{QWO7+,SO&;QQWO7+,TO%[Q^O7+,SO%[Q^O7+,TOOQU7+)R7+)RO&;VQWO7+)RO&;[Q^O7+)RO&;cQWO7+)ROOQU<<Lu<<LuOOQU<<Lw<<LwOOQU-E<|-E<|OOQU1G3v1G3vO&;hQWO,5>]OOQU,5>_,5>_O&;mQWO1G3|O9WQWO7+&cO!(oQ^O7+&cOOQO7+%[7+%[O&;rQ07bO1G6UO>tQWO7+%[OOQ?Mr<<I^<<I^OOQ?Mr<<Iw<<IwO>tQWO<<IwOOQO<<Ip<<IpO$?}Q?NdO<<IpO%[Q^O<<IpOOQO<<Ia<<IaO!ArQ?MxO<<IaO&;|Q?MxO<<IpO&<XQ?NdO<= XO&<iQWO<= WOOQO7+*Z7+*ZO9WQWO7+*ZOOQUANAhANAhO&<qQrOANAhO!&_Q7[OANAhO#&wQWOANAhO4UQrOANAhO&<xQWOANAhO%[Q^OANAhO&=QQ?NdO7+'xO&?`Q?NdO,5?]O&AhQ?NdO,5?_O&CpQ?NdO7+'zO&FOQrO1G4hO&FYQ07bO7+&^O&HZQ07bO,5=UO&J_Q07bO,5=WO&JoQ07bO,5=UO&KPQ07bO,5=WO&KaQ07bO,59rO&MdQ07bO,5<iO' dQ07bO,5<kO'#dQ07bO,5<yO'%VQ07bO7+'jO'%dQ07bO7+'kO'%qQWO,5<[OOQO7+'_7+'_O'%vQ7[O<<KzOOQO1G4s1G4sO'%}QWO1G4sO'&YQWO1G4sO'&hQWO7++xO'&hQWO7++xO!&_Q7[O1G4uO'&pQpO1G4uO'&zQWO7++yOOQ?Mp7+(S7+(SO$)nQWO7+(TO''SQpO7+(TOOQ?Mp7+(R7+(RO$)nQWO7+(SO''ZQWO7+(TO!&_Q7[O7+(TOCcQWO7+(SO''`Q7[O<<NrOOQ?Mr7+$z7+$zO''jQpO,5?bOOQO-E<t-E<tO''tQ?NbO7+(WOOQUAN=gAN=gO9^QWO1G5SOOQO1G5S1G5SO'(UQWO1G5SO'(ZQWO7+,RO'(ZQWO7+,RO9hQ?MxOANBTO@fQWOANBTOOQUANBTANBTOOQUANApANApOOQUANAqANAqO'(cQWO,5?dOOQO-E<v-E<vO'(nQ07bO1G6dOOQO,5?f,5?fOOQO-E<x-E<xOOQU1G3^1G3^O%-gQ^O,5<}OOQU<<Lc<<LcO!&_Q7[O<<LcO&:OQWO<<LcO'(xQWO<<LcO%[Q^O<<LcOOQU<<Le<<LeO9hQ?MxO<<LeO$$lQWO<<LeO9RQWO<<LeO')QQ`O1G5RO')]QWO7+,POOQUAN=]AN=]O9hQ?MxOAN=]OOQU<= n<= nOOQU<= o<= oO')eQWO<= nO')jQWO<= oOOQU<<Lm<<LmO')oQWO<<LmO')tQ^O<<LmOOQU1G3w1G3wO>tQWO7+)hO'){QWO<<I}O'*WQ07bO<<I}OOQO<<Hv<<HvOOQ?MrAN?cAN?cOOQOAN?[AN?[O$?}Q?NdOAN?[OOQOAN>{AN>{O%[Q^OAN?[OOQO<<Mu<<MuOOQUG27SG27SO!&_Q7[OG27SO#&wQWOG27SO'*bQrOG27SO4UQrOG27SO'*iQWOG27SO'*qQ07bO<<JeO'+OQ07bO1G2^O',qQ07bO,5?]O'.qQ07bO,5?_O'0qQ07bO1G2pO'2qQ07bO1G2rO'4qQ07bO<<KVO'5OQ07bO<<IxOOQO1G1v1G1vO!+hQ7[OANAfOOQO7+*_7+*_O'5]QWO7+*_O'5hQWO<= dO'5pQpO7+*aOOQ?Mp<<Ko<<KoO$)nQWO<<KoOOQ?Mp<<Kn<<KnO'5zQpO<<KoO$)nQWO<<KnOOQO7+*n7+*nO9^QWO7+*nO'6RQWO<= mOOQUG27oG27oO9hQ?MxOG27oO!(oQ^O1G5OO'6ZQWO7+,OO&:OQWOANA}OOQUANA}ANA}O!&_Q7[OANA}O'6cQWOANA}OOQUANBPANBPO9hQ?MxOANBPO$$lQWOANBPOOQO'#H['#H[OOQO7+*m7+*mOOQUG22wG22wOOQUANEYANEYOOQUANEZANEZOOQUANBXANBXO'6kQWOANBXOOQU<<MS<<MSO!(oQ^OAN?iOOQOG24vG24vO$?}Q?NdOG24vO#&wQWOLD,nOOQULD,nLD,nO!&_Q7[OLD,nO'6pQrOLD,nO'6wQ07bO7+'xO'8jQ07bO,5?]O':jQ07bO,5?_O'<jQ07bO7+'zO'>]Q7[OG27QOOQO<<My<<MyOOQ?MpANAZANAZO$)nQWOANAZOOQ?MpANAYANAYOOQO<<NY<<NYOOQULD-ZLD-ZO'>mQ07bO7+*jOOQUG27iG27iO&:OQWOG27iO!&_Q7[OG27iOOQUG27kG27kO9hQ?MxOG27kOOQUG27sG27sO'>wQ07bOG25TOOQOLD*bLD*bOOQU!$(!Y!$(!YO#&wQWO!$(!YO!&_Q7[O!$(!YO'?RQ?NdOG27QOOQ?MpG26uG26uOOQULD-TLD-TO&:OQWOLD-TOOQULD-VLD-VOOQU!)9Et!)9EtO#&wQWO!)9EtOOQU!$(!o!$(!oOOQU!.K;`!.K;`O'AaQ07bOG27QO!(oQ^O'#DwO1PQWO'#EUO'CSQrO'#JmO'CZQMnO'#DsO'CbQ^O'#D{O'CiQrO'#CiO'FPQrO'#CiO!(oQ^O'#D}O'FaQ^O,5;WO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O,5;bO!(oQ^O'#IlO'HdQWO,5<gO'HlQ7[O,5;bO'JVQ7[O,5;bO!(oQ^O,5;vO!&_Q7[O'#GjO'HlQ7[O'#GjO!&_Q7[O'#GlO'HlQ7[O'#GlO1SQWO'#DWO1SQWO'#DWO!&_Q7[O'#F}O'HlQ7[O'#F}O!&_Q7[O'#GPO'HlQ7[O'#GPO!&_Q7[O'#G_O'HlQ7[O'#G_O!(oQ^O,5:gO'J^Q`O'#D[O!(oQ^O,5@jO'FaQ^O1G0rO'JhQ07bO'#CiO!(oQ^O1G2OO!&_Q7[O'#IqO'HlQ7[O'#IqO!&_Q7[O'#IsO'HlQ7[O'#IsO'JrQpO'#CrO!&_Q7[O,5<rO'HlQ7[O,5<rO'FaQ^O1G2PO!(oQ^O7+&yO!&_Q7[O1G2^O'HlQ7[O1G2^O!&_Q7[O'#IqO'HlQ7[O'#IqO!&_Q7[O'#IsO'HlQ7[O'#IsO!&_Q7[O1G2`O'HlQ7[O1G2`O'FaQ^O7+'kO'FaQ^O7+&^O!&_Q7[OANAfO'HlQ7[OANAfO'KVQWO'#ElO'K[QWO'#ElO'KdQWO'#F[O'KiQWO'#EvO'KnQWO'#KOO'KyQWO'#J|O'LUQWO,5;WO'LZQ7[O,5<dO'LbQWO'#GWO'LgQWO'#GWO'LlQWO,5<eO'LtQWO,5;WO'L|Q07bO1G1_O'MTQWO,5<rO'MYQWO,5<rO'M_QWO,5<tO'MdQWO,5<tO'MiQWO1G2PO'MnQWO1G0rO'MsQ7[O<<KzO'MzQ7[O<<KzO7eQ7[O'#FzO9RQWO'#FyOAaQWO'#EkO!(oQ^O,5;sO!3XQWO'#GWO!3XQWO'#GWO!3XQWO'#GYO!3XQWO'#GYO!+hQ7[O7+(`O!+hQ7[O7+(`O%,qQpO1G2tO%,qQpO1G2tO!&_Q7[O,5=YO!&_Q7[O,5=Y",stateData:"( O~O'wOS'xOSTOS'yRQ~OPYOQYOSfOY!VOaqOdzOeyOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![XO!fuO!iZO!lYO!mYO!nYO!pvO!rwO!uxO!y]O#t!PO$V|O%e}O%g!QO%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO%v!UO&S!WO&Y!XO&[!YO&^!ZO&`![O&c!]O&i!^O&o!_O&q!`O&s!aO&u!bO&w!cO(OSO(QTO(TUO([VO(j[O(yiO~OWtO~P`OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oa!wOp!nO!P!oO!_!yO!`!vO!a!vO!y:lO#Q!pO#R!pO#S!xO#T!pO#U!pO#X!zO#Y!zO(P!lO(QTO(TUO(`!mO(j!sO~O'y!{O~OP]XR]X[]Xa]Xo]X}]X!P]X!Y]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X'u]X([]X(m]X(t]X(u]X~O!d%PX~P(qO_!}O(Q#PO(R!}O(S#PO~O_#QO(S#PO(T#PO(U#QO~Ou#SO!R#TO(]#TO(^#VO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O:pO(QTO(TUO([VO(j[O(yiO~O!X#ZO!Y#WO!V(cP!V(qP~P+}O!Z#cO~P`OPYOQYOSfOd!jOe!iOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(QTO(TUO([VO(j[O(yiO~Om#mO!X#iO!y]O#f#lO#g#iO(O:qO!h(nP~P.iO!i#oO(O#nO~O!u#sO!y]O%e#tO~O#h#uO~O!d#vO#h#uO~OP$]OR#zO[$cOo$QO}#yO!P#{O!Y$`O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~Oa(aX'u(aX's(aX!h(aX!V(aX![(aX%f(aX!d(aX~P1qO#P$dO#]$eO$P$eOP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#s(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX![(bX%f(bX~Oa(bX'u(bX's(bX!V(bX!h(bXs(bX!d(bX~P4UO#]$eO~O$[$hO$^$gO$e$mO~OSfO![$nO$h$oO$j$qO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{%[O!P$|O![$}O!f%aO!i$yO#g%bO$V%_O$r%]O$t%^O$w%`O(O$sO(QTO(TUO([$vO(t%OO(u%QOg(XP~O!i%cO~O!P%fO![%gO(O%eO~O!d%kO~Oa%lO'u%lO~O}%pO~P%[O(P!lO~P%[O%k%tO~P%[Oh%WO!i%cO(O%eO(P!lO~Oe%{O!i%cO(O%eO~O#s$SO~O}&QO![%}O!i&PO%g&TO(O%eO(P!lO(QTO(TUO`)SP~O!u#sO~O%p&VO!P)OX![)OX(O)OX~O(O&WO~O!r&]O#t!PO%g!QO%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO~Od&bOe&aO!u&_O%e&`O%x&^O~P;|Od&eOeyO![&dO!r&]O!uxO!y]O#t!PO%e}O%i!OO%j!OO%k!OO%n!RO%p!SO%s!TO%t!TO%v!UO~Ob&hO#]&kO%g&fO(P!lO~P=RO!i&lO!r&pO~O!i#oO~O![XO~Oa%lO't&xO'u%lO~Oa%lO't&{O'u%lO~Oa%lO't&}O'u%lO~O's]X!V]Xs]X!h]X&W]X![]X%f]X!d]X~P(qO!_'[O!`'TO!a'TO(P!lO(QTO(TUO~Op'RO!P'QO!X'UO(`'PO!Z(dP!Z(sP~P@YOk'_O![']O(O%eO~Oe'dO!i%cO(O%eO~O}&QO!i&PO~Op!nO!P!oO!y:lO#Q!pO#R!pO#T!pO#U!pO(P!lO(QTO(TUO(`!mO(j!sO~O!_'jO!`'iO!a'iO#S!pO#X'kO#Y'kO~PAtOa%lOh%WO!d#vO!i%cO'u%lO(m'mO~O!m'qO#]'oO~PCSOp!nO!P!oO(QTO(TUO(`!mO(j!sO~O![XOp(hX!P(hX!_(hX!`(hX!a(hX!y(hX#Q(hX#R(hX#S(hX#T(hX#U(hX#X(hX#Y(hX(P(hX(Q(hX(T(hX(`(hX(j(hX~O!`'iO!a'iO(P!lO~PCrO'z'uO'{'uO'|'wO~O_!}O(Q'yO(R!}O(S'yO~O_#QO(S'yO(T'yO(U#QO~Ou#SO!R#TO(]#TO(^'}O~O!X(PO!V'SX!V'YX!Y'SX!Y'YX~P+}O!Y(RO!V(cX~OP$]OR#zO[$cOo$QO}#yO!P#{O!Y(RO!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~O!V(cX~PGfO!V(WO~O!V(pX!Y(pX!d(pX!h(pX(m(pX~O#](pX#h#aX!Z(pX~PIiO#](XO!V(rX!Y(rX~O!Y(YO!V(qX~O!V(]O~O#]$eO~PIiO!Z(^O~P`OR#zO}#yO!P#{O!i#xO([VOP!ka[!kao!ka!Y!ka!m!ka#O!ka#k!ka#l!ka#m!ka#n!ka#o!ka#p!ka#q!ka#r!ka#s!ka#u!ka#w!ka#y!ka#z!ka(m!ka(t!ka(u!ka~Oa!ka'u!ka's!ka!V!ka!h!kas!ka![!ka%f!ka!d!ka~PKPO!h(_O~O!d#vO#](`O(m'mO!Y(oXa(oX'u(oX~O!h(oX~PMlO!P%fO![%gO!y]O#f(eO#g(dO(O%eO~O!Y(fO!h(nX~O!h(hO~O!P%fO![%gO#g(dO(O%eO~OP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#s(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX~O!d#vO!h(bX~P! YOR(jO}(iO!i#xO#P$dO!y!xa!P!xa~O!u!xa%e!xa![!xa#f!xa#g!xa(O!xa~P!#ZO!u(nO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![XO!fuO!iZO!lYO!mYO!nYO!pvO!r!gO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~O#h(tO~O!X(vO!h(fP~P%[O(`(xO(j[O~O!P(zO!i#xO(`(xO(j[O~OP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![!eO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(O)YO(QTO(TUO([VO(j[O(y<dO~O!Y$`Oa$oa'u$oa's$oa!h$oa!V$oa![$oa%f$oa!d$oa~O#t)`O~P!&_Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{%[O!P$|O![$}O!f%aO!i$yO#g%bO$V%_O$r%]O$t%^O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~Og(kP~P!+hO})eO!d)dO![$]X$Y$]X$[$]X$^$]X$e$]X~O!d)dO![(vX$Y(vX$[(vX$^(vX$e(vX~O})eO~P!-qO})eO![(vX$Y(vX$[(vX$^(vX$e(vX~O![)gO$Y)kO$[)fO$^)fO$e)lO~O!X)oO~P!(oO$[$hO$^$gO$e)sO~Ok$xX}$xX!P$xX#P$xX(t$xX(u$xX~OgjXg$xXkjX!YjX#]jX~P!/gOp)uO~Ou)vO(])wO(^)yO~Ok*SO}){O!P)|O(t%OO(u%QO~Og)zO~P!0pOg*TO~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P*VO![*WO!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(QTO(TUO([$vO(t%OO(u%QO~O!X*ZO(O*UO!h(zP~P!1_O#h*]O~O!i*^O~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(O*`O(QTO(TUO([$vO(t%OO(u%QO~O!X*cO!V({P~P!3^Oo*oO!P*gO!_*mO!`*fO!a*fO!i*^O#X*nO%]*iO(P!lO(`!mO~O!Z*lO~P!5RO#P$dOk(ZX}(ZX!P(ZX(t(ZX(u(ZX!Y(ZX#](ZX~Og(ZX#}(ZX~P!5zOk*tO#]*sOg(YX!Y(YX~O!Y*uOg(XX~O(O&WOg(XP~O!i*|O~O(O(rO~Om+QO!P%fO!X#iO![%gO!y]O#f#lO#g#iO(O%eO!h(nP~O!d#vO#h+RO~O!P%fO!X+TO!Y(YO![%gO(O%eO!V(qP~Op'XO!P+VO!X+UO(QTO(TUO(`(xO~O!Z(sP~P!8uO!Y+WOa)PX'u)PX~OP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO#z$YO([VO(m$ZO(t#|O(u#}O~Oa!ga!Y!ga'u!ga's!ga!V!ga!h!gas!ga![!ga%f!ga!d!ga~P!9mOR#zO}#yO!P#{O!i#xO([VOP!oa[!oao!oa!Y!oa!m!oa#O!oa#k!oa#l!oa#m!oa#n!oa#o!oa#p!oa#q!oa#r!oa#s!oa#u!oa#w!oa#y!oa#z!oa(m!oa(t!oa(u!oa~Oa!oa'u!oa's!oa!V!oa!h!oas!oa![!oa%f!oa!d!oa~P!<TOR#zO}#yO!P#{O!i#xO([VOP!qa[!qao!qa!Y!qa!m!qa#O!qa#k!qa#l!qa#m!qa#n!qa#o!qa#p!qa#q!qa#r!qa#s!qa#u!qa#w!qa#y!qa#z!qa(m!qa(t!qa(u!qa~Oa!qa'u!qa's!qa!V!qa!h!qas!qa![!qa%f!qa!d!qa~P!>kOh%WOk+aO![']O%f+`O~O!d+cOa(WX![(WX'u(WX!Y(WX~Oa%lO![XO'u%lO~Oh%WO!i%cO~Oh%WO!i%cO(O%eO~O!d#vO#h(tO~Ob+nO%g+oO(O+kO(QTO(TUO!Z)TP~O!Y+pO`)SX~O[+tO~O`+uO~O![%}O(O%eO(P!lO`)SP~Oh%WO#]+zO~Oh%WOk+}O![$}O~O![,PO~O},RO![XO~O%k%tO~O!u,WO~Oe,]O~Ob,^O(O#nO(QTO(TUO!Z)RP~Oe%{O~O%g!QO(O&WO~P=RO[,cO`,bO~OPYOQYOSfOdzOeyOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO!fuO!iZO!lYO!mYO!nYO!pvO!uxO!y]O%e}O(QTO(TUO([VO(j[O(yiO~O![!eO!r!gO$V!kO(O!dO~P!EkO`,bOa%lO'u%lO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oa,hO!rwO#t!OO%i!OO%j!OO%k!OO~P!HTO!i&lO~O&Y,nO~O![,pO~O&k,rO&m,sOP&haQ&haS&haY&haa&had&hae&ham&hao&hap&haq&haw&hay&ha{&ha!P&ha!T&ha!U&ha![&ha!f&ha!i&ha!l&ha!m&ha!n&ha!p&ha!r&ha!u&ha!y&ha#t&ha$V&ha%e&ha%g&ha%i&ha%j&ha%k&ha%n&ha%p&ha%s&ha%t&ha%v&ha&S&ha&Y&ha&[&ha&^&ha&`&ha&c&ha&i&ha&o&ha&q&ha&s&ha&u&ha&w&ha's&ha(O&ha(Q&ha(T&ha([&ha(j&ha(y&ha!Z&ha&a&hab&ha&f&ha~O(O,xO~Oh!bX!Y!OX!Z!OX!d!OX!d!bX!i!bX#]!OX~O!Y!bX!Z!bX~P# ZO!d,}O#],|Oh(eX!Y#eX!Y(eX!Z#eX!Z(eX!d(eX!i(eX~Oh%WO!d-PO!i%cO!Y!^X!Z!^X~Op!nO!P!oO(QTO(TUO(`!mO~OP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![!eO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(QTO(TUO([VO(j[O(y<dO~O(O;fO~P##_O!Y-TO!Z(dX~O!Z-VO~O!d,}O#],|O!Y#eX!Z#eX~O!Y-WO!Z(sX~O!Z-YO~O!`-ZO!a-ZO(P!lO~P#!|O!Z-^O~P'_Ok-aO![']O~O!V-fO~Op!xa!_!xa!`!xa!a!xa#Q!xa#R!xa#S!xa#T!xa#U!xa#X!xa#Y!xa(P!xa(Q!xa(T!xa(`!xa(j!xa~P!#ZO!m-kO#]-iO~PCSO!`-mO!a-mO(P!lO~PCrOa%lO#]-iO'u%lO~Oa%lO!d#vO#]-iO'u%lO~Oa%lO!d#vO!m-kO#]-iO'u%lO(m'mO~O'z'uO'{'uO'|-rO~Os-sO~O!V'Sa!Y'Sa~P!9mO!X-wO!V'SX!Y'SX~P%[O!Y(RO!V(ca~O!V(ca~PGfO!Y(YO!V(qa~O!P%fO!X-{O![%gO(O%eO!V'YX!Y'YX~O#]-}O!Y(oa!h(oaa(oa'u(oa~O!d#vO~P#+eO!Y(fO!h(na~O!P%fO![%gO#g.RO(O%eO~Om.WO!P%fO!X.TO![%gO!y]O#f.VO#g.TO(O%eO!Y']X!h']X~OR.[O!i#xO~Oh%WOk._O![']O%f.^O~Oa#`i!Y#`i'u#`i's#`i!V#`i!h#`is#`i![#`i%f#`i!d#`i~P!9mOk<pO}){O!P)|O(t%OO(u%QO~O#h#[aa#[a#]#[a'u#[a!Y#[a!h#[a![#[a!V#[a~P#.aO#h(ZXP(ZXR(ZX[(ZXa(ZXo(ZX!i(ZX!m(ZX#O(ZX#k(ZX#l(ZX#m(ZX#n(ZX#o(ZX#p(ZX#q(ZX#r(ZX#s(ZX#u(ZX#w(ZX#y(ZX#z(ZX'u(ZX([(ZX(m(ZX!h(ZX!V(ZX's(ZXs(ZX![(ZX%f(ZX!d(ZX~P!5zO!Y.lO!h(fX~P!9mO!h.oO~O!V.qO~OP$]OR#zO}#yO!P#{O!i#xO!m$]O([VO[#jia#jio#ji!Y#ji#O#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#k#ji~P#1|O#k$OO~P#1|OP$]OR#zO}#yO!P#{O!i#xO!m$]O#k$OO#l$PO#m$PO#n$PO([VO[#jia#ji!Y#ji#O#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~Oo#ji~P#4kOo$QO~P#4kOP$]OR#zOo$QO}#yO!P#{O!i#xO!m$]O#k$OO#l$PO#m$PO#n$PO#o$RO([VOa#ji!Y#ji#u#ji#w#ji#y#ji#z#ji'u#ji(m#ji(t#ji(u#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O[#ji#O#ji#p#ji#q#ji#r#ji#s#ji~P#7YO[$cO#O$SO#p$SO#q$SO#r$bO#s$SO~P#7YOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO([VO(u#}Oa#ji!Y#ji#y#ji#z#ji'u#ji(m#ji(t#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#w$VO~P#:WO#w#ji~P#:WOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO([VOa#ji!Y#ji#y#ji#z#ji'u#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~O#w#ji(t#ji(u#ji~P#<uO#w$VO(t#|O(u#}O~P#<uOP$]OR#zO[$cOo$QO}#yO!P#{O!i#xO!m$]O#O$SO#k$OO#l$PO#m$PO#n$PO#o$RO#p$SO#q$SO#r$bO#s$SO#u$TO#w$VO#y$XO([VO(t#|O(u#}O~Oa#ji!Y#ji#z#ji'u#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~P#?jOP]XR]X[]Xo]X}]X!P]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X!Y]X!Z]X~O#}]X~P#BQOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO#w:{O#y:}O#z;OO([VO(m$ZO(t#|O(u#}O~O#}.sO~P#D_O#P$dO#];TO$P;TO#}(bX!Z(bX~P! YOa'`a!Y'`a'u'`a's'`a!h'`a!V'`as'`a!['`a%f'`a!d'`a~P!9mOP#jiR#ji[#jia#jio#ji!Y#ji!i#ji!m#ji#O#ji#k#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji'u#ji([#ji(m#ji's#ji!V#ji!h#jis#ji![#ji%f#ji!d#ji~P#.aO!Y.wOg(kX~P!0pOg.yO~Oa$Oi!Y$Oi'u$Oi's$Oi!V$Oi!h$Ois$Oi![$Oi%f$Oi!d$Oi~P!9mO$[.zO$^.zO~O$[.{O$^.{O~O!d)dO#].|O![$bX$Y$bX$[$bX$^$bX$e$bX~O!X.}O~O![)gO$Y/PO$[)fO$^)fO$e/QO~O!Y;PO!Z(aX~P#D_O!Z/RO~O!d)dO$e(vX~O$e/TO~Ou)vO(])wO(^/WO~O!V/[O~P!&_O(t%OOk%^a}%^a!P%^a(u%^a!Y%^a#]%^a~Og%^a#}%^a~P#L{O(u%QOk%`a}%`a!P%`a(t%`a!Y%`a#]%`a~Og%`a#}%`a~P#MnO!YfX!dfX!hfX!h$xX(mfX~P!/gO!X/eO!Y(YO(O/dO!V(qP!V({P~P!1_Oo*oO!_*mO!`*fO!a*fO!i*^O#X*nO%]*iO(P!lO~Op'XO!P/fO!X+UO!Z*lO(QTO(TUO(`;cO!Z(sP~P$ XO!h/gO~P#.aO!Y/hO!d#vO(m'mO!h(zX~O!h/mO~O!P%fO!X*ZO![%gO(O%eO!h(zP~O#h/oO~O!V$xX!Y$xX!d%PX~P!/gO!Y/pO!V({X~P#.aO!d/rO~O!V/tO~Oh%WOo/xO!d#vO!i%cO(m'mO~O(O/zO~O!d+cO~Oa%lO!Y0OO'u%lO~O!Z0QO~P!5RO!`0RO!a0RO(P!lO(`!mO~O!P0TO(`!mO~O#X0UO~Og%^a!Y%^a#]%^a#}%^a~P!0pOg%`a!Y%`a#]%`a#}%`a~P!0pO(O&WOg'iX!Y'iX~O!Y*uOg(Xa~Og0_O~OR0`O}0`O!P0aO#P$dOkza(tza(uza!Yza#]za~Ogza#}za~P$&zO}){O!P)|Ok$qa(t$qa(u$qa!Y$qa#]$qa~Og$qa#}$qa~P$'sO}){O!P)|Ok$sa(t$sa(u$sa!Y$sa#]$sa~Og$sa#}$sa~P$(fO#h0dO~Og%Ra!Y%Ra#]%Ra#}%Ra~P!0pO!d#vO~O#h0gO~O!Y+WOa)Pa'u)Pa~OR#zO}#yO!P#{O!i#xO([VOP!oi[!oio!oi!Y!oi!m!oi#O!oi#k!oi#l!oi#m!oi#n!oi#o!oi#p!oi#q!oi#r!oi#s!oi#u!oi#w!oi#y!oi#z!oi(m!oi(t!oi(u!oi~Oa!oi'u!oi's!oi!V!oi!h!ois!oi![!oi%f!oi!d!oi~P$*TOh%WOo$uOp$tOq$tOw%YOy%ZO{;YO!P$|O![$}O!f<jO!i$yO#g;`O$V%_O$r;[O$t;^O$w%`O(QTO(TUO([$vO(t%OO(u%QO~Om0pO(O0oO~P$,kO!d+cOa(Wa![(Wa'u(Wa!Y(Wa~O#h0vO~O[]X!YfX!ZfX~O!Y0wO!Z)TX~O!Z0yO~O[0zO~Ob0|O(O+kO(QTO(TUO~O![%}O(O%eO`'qX!Y'qX~O!Y+pO`)Sa~O!h1PO~P!9mO[1SO~O`1TO~O#]1WO~Ok1ZO![$}O~O(`(xO!Z)QP~Oh%WOk1dO![1aO%f1cO~O[1nO!Y1lO!Z)RX~O!Z1oO~O`1qOa%lO'u%lO~O(O#nO(QTO(TUO~O#P$dO#]$eO$P$eOP(bXR(bX[(bXo(bX}(bX!P(bX!Y(bX!i(bX!m(bX#O(bX#k(bX#l(bX#m(bX#n(bX#o(bX#p(bX#q(bX#r(bX#u(bX#w(bX#y(bX#z(bX([(bX(m(bX(t(bX(u(bX~O#s1tO&W1uOa(bX~P$2RO#]$eO#s1tO&W1uO~Oa1wO~P%[Oa1yO~O&a1|OP&_iQ&_iS&_iY&_ia&_id&_ie&_im&_io&_ip&_iq&_iw&_iy&_i{&_i!P&_i!T&_i!U&_i![&_i!f&_i!i&_i!l&_i!m&_i!n&_i!p&_i!r&_i!u&_i!y&_i#t&_i$V&_i%e&_i%g&_i%i&_i%j&_i%k&_i%n&_i%p&_i%s&_i%t&_i%v&_i&S&_i&Y&_i&[&_i&^&_i&`&_i&c&_i&i&_i&o&_i&q&_i&s&_i&u&_i&w&_i's&_i(O&_i(Q&_i(T&_i([&_i(j&_i(y&_i!Z&_ib&_i&f&_i~Ob2SO!Z2QO&f2RO~P`O![XO!i2UO~O&m,sOP&hiQ&hiS&hiY&hia&hid&hie&him&hio&hip&hiq&hiw&hiy&hi{&hi!P&hi!T&hi!U&hi![&hi!f&hi!i&hi!l&hi!m&hi!n&hi!p&hi!r&hi!u&hi!y&hi#t&hi$V&hi%e&hi%g&hi%i&hi%j&hi%k&hi%n&hi%p&hi%s&hi%t&hi%v&hi&S&hi&Y&hi&[&hi&^&hi&`&hi&c&hi&i&hi&o&hi&q&hi&s&hi&u&hi&w&hi's&hi(O&hi(Q&hi(T&hi([&hi(j&hi(y&hi!Z&hi&a&hib&hi&f&hi~O!V2[O~O!Y!^a!Z!^a~P#D_Op!nO!P!oO!X2bO(`!mO!Y'TX!Z'TX~P@YO!Y-TO!Z(da~O!Y'ZX!Z'ZX~P!8uO!Y-WO!Z(sa~O!Z2iO~P'_Oa%lO#]2rO'u%lO~Oa%lO!d#vO#]2rO'u%lO~Oa%lO!d#vO!m2vO#]2rO'u%lO(m'mO~Oa%lO'u%lO~P!9mO!Y$`Os$oa~O!V'Si!Y'Si~P!9mO!Y(RO!V(ci~O!Y(YO!V(qi~O!V(ri!Y(ri~P!9mO!Y(oi!h(oia(oi'u(oi~P!9mO#]2xO!Y(oi!h(oia(oi'u(oi~O!Y(fO!h(ni~O!P%fO![%gO!y]O#f2}O#g2|O(O%eO~O!P%fO![%gO#g2|O(O%eO~Ok3UO![']O%f3TO~Oh%WOk3UO![']O%f3TO~O#h%^aP%^aR%^a[%^aa%^ao%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a'u%^a([%^a(m%^a!h%^a!V%^a's%^as%^a![%^a%f%^a!d%^a~P#L{O#h%`aP%`aR%`a[%`aa%`ao%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a'u%`a([%`a(m%`a!h%`a!V%`a's%`as%`a![%`a%f%`a!d%`a~P#MnO#h%^aP%^aR%^a[%^aa%^ao%^a!Y%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a'u%^a([%^a(m%^a!h%^a!V%^a's%^a#]%^as%^a![%^a%f%^a!d%^a~P#.aO#h%`aP%`aR%`a[%`aa%`ao%`a!Y%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a'u%`a([%`a(m%`a!h%`a!V%`a's%`a#]%`as%`a![%`a%f%`a!d%`a~P#.aO#hzaPza[zaazaoza!iza!mza#Oza#kza#lza#mza#nza#oza#pza#qza#rza#sza#uza#wza#yza#zza'uza([za(mza!hza!Vza'szasza![za%fza!dza~P$&zO#h$qaP$qaR$qa[$qaa$qao$qa!i$qa!m$qa#O$qa#k$qa#l$qa#m$qa#n$qa#o$qa#p$qa#q$qa#r$qa#s$qa#u$qa#w$qa#y$qa#z$qa'u$qa([$qa(m$qa!h$qa!V$qa's$qas$qa![$qa%f$qa!d$qa~P$'sO#h$saP$saR$sa[$saa$sao$sa!i$sa!m$sa#O$sa#k$sa#l$sa#m$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#u$sa#w$sa#y$sa#z$sa'u$sa([$sa(m$sa!h$sa!V$sa's$sas$sa![$sa%f$sa!d$sa~P$(fO#h%RaP%RaR%Ra[%Raa%Rao%Ra!Y%Ra!i%Ra!m%Ra#O%Ra#k%Ra#l%Ra#m%Ra#n%Ra#o%Ra#p%Ra#q%Ra#r%Ra#s%Ra#u%Ra#w%Ra#y%Ra#z%Ra'u%Ra([%Ra(m%Ra!h%Ra!V%Ra's%Ra#]%Ras%Ra![%Ra%f%Ra!d%Ra~P#.aOa#`q!Y#`q'u#`q's#`q!V#`q!h#`qs#`q![#`q%f#`q!d#`q~P!9mO!X3^O!Y'UX!h'UX~P%[O!Y.lO!h(fa~O!Y.lO!h(fa~P!9mO!V3aO~O#}!ka!Z!ka~PKPO#}!ga!Y!ga!Z!ga~P#D_O#}!oa!Z!oa~P!<TO#}!qa!Z!qa~P!>kOg'XX!Y'XX~P!+hO!Y.wOg(ka~OSfO![3uO$c3vO~O!Z3zO~Os3{O~P#.aOa$lq!Y$lq'u$lq's$lq!V$lq!h$lqs$lq![$lq%f$lq!d$lq~P!9mO!V3|O~P#.aO}){O!P)|O(u%QOk'ea(t'ea!Y'ea#]'ea~Og'ea#}'ea~P%+]O}){O!P)|Ok'ga(t'ga(u'ga!Y'ga#]'ga~Og'ga#}'ga~P%,OO(m$ZO~P#.aO!VfX!V$xX!YfX!Y$xX!d%PX#]fX~P!/gO(O;lO~P!1_OmkO(O4OO~P.iO!P%fO!X4QO![%gO(O%eO!Y'aX!h'aX~O!Y/hO!h(za~O!Y/hO!d#vO!h(za~O!Y/hO!d#vO(m'mO!h(za~Og$zi!Y$zi#]$zi#}$zi~P!0pO!X4YO!V'cX!Y'cX~P!3^O!Y/pO!V({a~O!Y/pO!V({a~P#.aO!d#vO#s4bO~Oo4eO!d#vO(m'mO~O(t%OOk%^i}%^i!P%^i(u%^i!Y%^i#]%^i~Og%^i#}%^i~P%0^O(u%QOk%`i}%`i!P%`i(t%`i!Y%`i#]%`i~Og%`i#}%`i~P%1POg(Yi!Y(Yi~P!0pO#]4lOg(Yi!Y(Yi~P!0pO!h4oO~Oa$mq!Y$mq'u$mq's$mq!V$mq!h$mqs$mq![$mq%f$mq!d$mq~P!9mO!V4sO~O!Y4tO![(|X~P#.aOa$xX![$xX%Z]X'u$xX!Y$xX~P!/gO%Z4wOalXklX}lX!PlX![lX'ulX(tlX(ulX!YlX~O%Z4wO~Ob4}O%g5OO(O+kO(QTO(TUO!Y'pX!Z'pX~O!Y0wO!Z)Ta~O[5SO~O`5TO~Oa%lO'u%lO~P#.aO![$}O~P#.aO!Y5]O#]5_O!Z)QX~O!Z5`O~Op!nO!P5aO!_!yO!`!vO!a!vO!y:lO#Q!pO#R!pO#S!pO#T!pO#U!pO#X5fO#Y!zO(P!lO(QTO(TUO(`!mO(j!sO~O!Z5eO~P%6ZOk5kO![1aO%f5jO~Oh%WOk5kO![1aO%f5jO~Ob5rO(O#nO(QTO(TUO!Y'oX!Z'oX~O!Y1lO!Z)Ra~O(QTO(TUO(`5tO~O`5xO~O#s5{O&W5|O~PMlO!h5}O~P%[Oa6PO~Oa6PO~P%[Ob2SO!Z6UO&f2RO~P`O!d6WO~O!d6YOh(ei!Y(ei!Z(ei!d(ei!i(ei~O!Y#ei!Z#ei~P#D_O#]6ZO!Y#ei!Z#ei~O!Y!^i!Z!^i~P#D_Oa%lO#]6dO'u%lO~Oa%lO!d#vO#]6dO'u%lO~O!Y(oq!h(oqa(oq'u(oq~P!9mO!Y(fO!h(nq~O!P%fO![%gO#g6kO(O%eO~O![']O%f6nO~Ok6rO![']O%f6nO~O#h'eaP'eaR'ea['eaa'eao'ea!i'ea!m'ea#O'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#s'ea#u'ea#w'ea#y'ea#z'ea'u'ea(['ea(m'ea!h'ea!V'ea's'eas'ea!['ea%f'ea!d'ea~P%+]O#h'gaP'gaR'ga['gaa'gao'ga!i'ga!m'ga#O'ga#k'ga#l'ga#m'ga#n'ga#o'ga#p'ga#q'ga#r'ga#s'ga#u'ga#w'ga#y'ga#z'ga'u'ga(['ga(m'ga!h'ga!V'ga's'gas'ga!['ga%f'ga!d'ga~P%,OO#h$ziP$ziR$zi[$zia$zio$zi!Y$zi!i$zi!m$zi#O$zi#k$zi#l$zi#m$zi#n$zi#o$zi#p$zi#q$zi#r$zi#s$zi#u$zi#w$zi#y$zi#z$zi'u$zi([$zi(m$zi!h$zi!V$zi's$zi#]$zis$zi![$zi%f$zi!d$zi~P#.aO#h%^iP%^iR%^i[%^ia%^io%^i!i%^i!m%^i#O%^i#k%^i#l%^i#m%^i#n%^i#o%^i#p%^i#q%^i#r%^i#s%^i#u%^i#w%^i#y%^i#z%^i'u%^i([%^i(m%^i!h%^i!V%^i's%^is%^i![%^i%f%^i!d%^i~P%0^O#h%`iP%`iR%`i[%`ia%`io%`i!i%`i!m%`i#O%`i#k%`i#l%`i#m%`i#n%`i#o%`i#p%`i#q%`i#r%`i#s%`i#u%`i#w%`i#y%`i#z%`i'u%`i([%`i(m%`i!h%`i!V%`i's%`is%`i![%`i%f%`i!d%`i~P%1PO!Y'Ua!h'Ua~P!9mO!Y.lO!h(fi~O#}#`i!Y#`i!Z#`i~P#D_OP$]OR#zO}#yO!P#{O!i#xO!m$]O([VO[#jio#ji#O#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~O#k#ji~P%HpO#k:tO~P%HpOP$]OR#zO}#yO!P#{O!i#xO!m$]O#k:tO#l:uO#m:uO#n:uO([VO[#ji#O#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~Oo#ji~P%JxOo:vO~P%JxOP$]OR#zOo:vO}#yO!P#{O!i#xO!m$]O#k:tO#l:uO#m:uO#n:uO#o:wO([VO#u#ji#w#ji#y#ji#z#ji#}#ji(m#ji(t#ji(u#ji!Y#ji!Z#ji~O[#ji#O#ji#p#ji#q#ji#r#ji#s#ji~P%MQO[;SO#O:xO#p:xO#q:xO#r;RO#s:xO~P%MQOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO([VO(u#}O#y#ji#z#ji#}#ji(m#ji(t#ji!Y#ji!Z#ji~O#w:{O~P& iO#w#ji~P& iOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO([VO#y#ji#z#ji#}#ji(m#ji!Y#ji!Z#ji~O#w#ji(t#ji(u#ji~P&#qO#w:{O(t#|O(u#}O~P&#qOP$]OR#zO[;SOo:vO}#yO!P#{O!i#xO!m$]O#O:xO#k:tO#l:uO#m:uO#n:uO#o:wO#p:xO#q:xO#r;RO#s:xO#u:yO#w:{O#y:}O([VO(t#|O(u#}O~O#z#ji#}#ji(m#ji!Y#ji!Z#ji~P&&POa#{y!Y#{y'u#{y's#{y!V#{y!h#{ys#{y![#{y%f#{y!d#{y~P!9mOk<qO}){O!P)|O(t%OO(u%QO~OP#jiR#ji[#jio#ji!i#ji!m#ji#O#ji#k#ji#l#ji#m#ji#n#ji#o#ji#p#ji#q#ji#r#ji#s#ji#u#ji#w#ji#y#ji#z#ji#}#ji([#ji(m#ji!Y#ji!Z#ji~P&(tO#P$dOP(ZXR(ZX[(ZXk(ZXo(ZX}(ZX!P(ZX!i(ZX!m(ZX#O(ZX#k(ZX#l(ZX#m(ZX#n(ZX#o(ZX#p(ZX#q(ZX#r(ZX#s(ZX#u(ZX#w(ZX#y(ZX#z(ZX#}(ZX([(ZX(m(ZX(t(ZX(u(ZX!Y(ZX!Z(ZX~O#}$Oi!Y$Oi!Z$Oi~P#D_O#}!oi!Z!oi~P$*TOg'Xa!Y'Xa~P!0pO!Z7UO~O!Y'`a!Z'`a~P#D_OP]XR]X[]Xo]X}]X!P]X!V]X!Y]X!i]X!m]X#O]X#P]X#]]X#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X~O!d%WX#s%WX~P&-}O!d#vO(m'mO!Y'aa!h'aa~O!Y/hO!h(zi~O!Y/hO!d#vO!h(zi~Og$zq!Y$zq#]$zq#}$zq~P!0pO!V'ca!Y'ca~P#.aO!d7]O~O!Y/pO!V({i~P#.aO!Y/pO!V({i~O!V7aO~O!d#vO#s7fO~Oo7gO!d#vO(m'mO~O}){O!P)|O(u%QOk'fa(t'fa!Y'fa#]'fa~Og'fa#}'fa~P&2mO}){O!P)|Ok'ha(t'ha(u'ha!Y'ha#]'ha~Og'ha#}'ha~P&3`O!V7iO~Og$|q!Y$|q#]$|q#}$|q~P!0pOa$my!Y$my'u$my's$my!V$my!h$mys$my![$my%f$my!d$my~P!9mO!d6YO~O!Y4tO![(|a~O![']OP$SaR$Sa[$Sao$Sa}$Sa!P$Sa!Y$Sa!i$Sa!m$Sa#O$Sa#k$Sa#l$Sa#m$Sa#n$Sa#o$Sa#p$Sa#q$Sa#r$Sa#s$Sa#u$Sa#w$Sa#y$Sa#z$Sa([$Sa(m$Sa(t$Sa(u$Sa~O%f6nO~P&5iOa#`y!Y#`y'u#`y's#`y!V#`y!h#`ys#`y![#`y%f#`y!d#`y~P!9mO[7nO~Ob7pO(O+kO(QTO(TUO~O!Y0wO!Z)Ti~O`7tO~O(`(xO!Y'lX!Z'lX~O!Y5]O!Z)Qa~O!Z7}O~P%6ZOp!nO!P8OO(QTO(TUO(`!mO(j!sO~O![1aO~O![1aO%f8QO~Ok8TO![1aO%f8QO~O[8YO!Y'oa!Z'oa~O!Y1lO!Z)Ri~O!h8^O~O!h8_O~O!h8bO~O!h8bO~P%[Oa8dO~O!d8eO~O!h8fO~O!Y(ri!Z(ri~P#D_Oa%lO#]8nO'u%lO~O!Y(oy!h(oya(oy'u(oy~P!9mO!Y(fO!h(ny~O%f8qO~P&5iO![']O%f8qO~O#h$zqP$zqR$zq[$zqa$zqo$zq!Y$zq!i$zq!m$zq#O$zq#k$zq#l$zq#m$zq#n$zq#o$zq#p$zq#q$zq#r$zq#s$zq#u$zq#w$zq#y$zq#z$zq'u$zq([$zq(m$zq!h$zq!V$zq's$zq#]$zqs$zq![$zq%f$zq!d$zq~P#.aO#h'faP'faR'fa['faa'fao'fa!i'fa!m'fa#O'fa#k'fa#l'fa#m'fa#n'fa#o'fa#p'fa#q'fa#r'fa#s'fa#u'fa#w'fa#y'fa#z'fa'u'fa(['fa(m'fa!h'fa!V'fa's'fas'fa!['fa%f'fa!d'fa~P&2mO#h'haP'haR'ha['haa'hao'ha!i'ha!m'ha#O'ha#k'ha#l'ha#m'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#u'ha#w'ha#y'ha#z'ha'u'ha(['ha(m'ha!h'ha!V'ha's'has'ha!['ha%f'ha!d'ha~P&3`O#h$|qP$|qR$|q[$|qa$|qo$|q!Y$|q!i$|q!m$|q#O$|q#k$|q#l$|q#m$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#u$|q#w$|q#y$|q#z$|q'u$|q([$|q(m$|q!h$|q!V$|q's$|q#]$|qs$|q![$|q%f$|q!d$|q~P#.aO!Y'Ui!h'Ui~P!9mO#}#`q!Y#`q!Z#`q~P#D_O(t%OOP%^aR%^a[%^ao%^a!i%^a!m%^a#O%^a#k%^a#l%^a#m%^a#n%^a#o%^a#p%^a#q%^a#r%^a#s%^a#u%^a#w%^a#y%^a#z%^a#}%^a([%^a(m%^a!Y%^a!Z%^a~Ok%^a}%^a!P%^a(u%^a~P&FgO(u%QOP%`aR%`a[%`ao%`a!i%`a!m%`a#O%`a#k%`a#l%`a#m%`a#n%`a#o%`a#p%`a#q%`a#r%`a#s%`a#u%`a#w%`a#y%`a#z%`a#}%`a([%`a(m%`a!Y%`a!Z%`a~Ok%`a}%`a!P%`a(t%`a~P&HkOk<qO}){O!P)|O(u%QO~P&FgOk<qO}){O!P)|O(t%OO~P&HkOR0`O}0`O!P0aO#P$dOPza[zakzaoza!iza!mza#Oza#kza#lza#mza#nza#oza#pza#qza#rza#sza#uza#wza#yza#zza#}za([za(mza(tza(uza!Yza!Zza~O}){O!P)|OP$qaR$qa[$qak$qao$qa!i$qa!m$qa#O$qa#k$qa#l$qa#m$qa#n$qa#o$qa#p$qa#q$qa#r$qa#s$qa#u$qa#w$qa#y$qa#z$qa#}$qa([$qa(m$qa(t$qa(u$qa!Y$qa!Z$qa~O}){O!P)|OP$saR$sa[$sak$sao$sa!i$sa!m$sa#O$sa#k$sa#l$sa#m$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#u$sa#w$sa#y$sa#z$sa#}$sa([$sa(m$sa(t$sa(u$sa!Y$sa!Z$sa~OP%RaR%Ra[%Rao%Ra!i%Ra!m%Ra#O%Ra#k%Ra#l%Ra#m%Ra#n%Ra#o%Ra#p%Ra#q%Ra#r%Ra#s%Ra#u%Ra#w%Ra#y%Ra#z%Ra#}%Ra([%Ra(m%Ra!Y%Ra!Z%Ra~P&(tO#}$lq!Y$lq!Z$lq~P#D_O#}$mq!Y$mq!Z$mq~P#D_O!Z9OO~O#}9PO~P!0pO!d#vO!Y'ai!h'ai~O!d#vO(m'mO!Y'ai!h'ai~O!Y/hO!h(zq~O!V'ci!Y'ci~P#.aO!Y/pO!V({q~O!V9VO~P#.aO!V9VO~Og(Yy!Y(Yy~P!0pO!Y'ja!['ja~P#.aOa%Yq![%Yq'u%Yq!Y%Yq~P#.aO[9[O~O!Y0wO!Z)Tq~O#]9`O!Y'la!Z'la~O!Y5]O!Z)Qi~P#D_O![1aO%f9dO~O(QTO(TUO(`9iO~O!Y1lO!Z)Rq~O!h9lO~O!h9mO~O!h9nO~O!h9nO~P%[O#]9qO!Y#ey!Z#ey~O!Y#ey!Z#ey~P#D_O%f9vO~P&5iO![']O%f9vO~O#}#{y!Y#{y!Z#{y~P#D_OP$ziR$zi[$zio$zi!i$zi!m$zi#O$zi#k$zi#l$zi#m$zi#n$zi#o$zi#p$zi#q$zi#r$zi#s$zi#u$zi#w$zi#y$zi#z$zi#}$zi([$zi(m$zi!Y$zi!Z$zi~P&(tO}){O!P)|O(u%QOP'eaR'ea['eak'eao'ea!i'ea!m'ea#O'ea#k'ea#l'ea#m'ea#n'ea#o'ea#p'ea#q'ea#r'ea#s'ea#u'ea#w'ea#y'ea#z'ea#}'ea(['ea(m'ea(t'ea!Y'ea!Z'ea~O}){O!P)|OP'gaR'ga['gak'gao'ga!i'ga!m'ga#O'ga#k'ga#l'ga#m'ga#n'ga#o'ga#p'ga#q'ga#r'ga#s'ga#u'ga#w'ga#y'ga#z'ga#}'ga(['ga(m'ga(t'ga(u'ga!Y'ga!Z'ga~O(t%OOP%^iR%^i[%^ik%^io%^i}%^i!P%^i!i%^i!m%^i#O%^i#k%^i#l%^i#m%^i#n%^i#o%^i#p%^i#q%^i#r%^i#s%^i#u%^i#w%^i#y%^i#z%^i#}%^i([%^i(m%^i(u%^i!Y%^i!Z%^i~O(u%QOP%`iR%`i[%`ik%`io%`i}%`i!P%`i!i%`i!m%`i#O%`i#k%`i#l%`i#m%`i#n%`i#o%`i#p%`i#q%`i#r%`i#s%`i#u%`i#w%`i#y%`i#z%`i#}%`i([%`i(m%`i(t%`i!Y%`i!Z%`i~O#}$my!Y$my!Z$my~P#D_O#}#`y!Y#`y!Z#`y~P#D_O!d#vO!Y'aq!h'aq~O!Y/hO!h(zy~O!V'cq!Y'cq~P#.aO!V:PO~P#.aO!Y0wO!Z)Ty~O!Y5]O!Z)Qq~O![1aO%f:WO~O!h:ZO~O%f:`O~P&5iOP$zqR$zq[$zqo$zq!i$zq!m$zq#O$zq#k$zq#l$zq#m$zq#n$zq#o$zq#p$zq#q$zq#r$zq#s$zq#u$zq#w$zq#y$zq#z$zq#}$zq([$zq(m$zq!Y$zq!Z$zq~P&(tO}){O!P)|O(u%QOP'faR'fa['fak'fao'fa!i'fa!m'fa#O'fa#k'fa#l'fa#m'fa#n'fa#o'fa#p'fa#q'fa#r'fa#s'fa#u'fa#w'fa#y'fa#z'fa#}'fa(['fa(m'fa(t'fa!Y'fa!Z'fa~O}){O!P)|OP'haR'ha['hak'hao'ha!i'ha!m'ha#O'ha#k'ha#l'ha#m'ha#n'ha#o'ha#p'ha#q'ha#r'ha#s'ha#u'ha#w'ha#y'ha#z'ha#}'ha(['ha(m'ha(t'ha(u'ha!Y'ha!Z'ha~OP$|qR$|q[$|qo$|q!i$|q!m$|q#O$|q#k$|q#l$|q#m$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#u$|q#w$|q#y$|q#z$|q#}$|q([$|q(m$|q!Y$|q!Z$|q~P&(tOg%b!Z!Y%b!Z#]%b!Z#}%b!Z~P!0pO!Y'lq!Z'lq~P#D_O!Y#e!Z!Z#e!Z~P#D_O#h%b!ZP%b!ZR%b!Z[%b!Za%b!Zo%b!Z!Y%b!Z!i%b!Z!m%b!Z#O%b!Z#k%b!Z#l%b!Z#m%b!Z#n%b!Z#o%b!Z#p%b!Z#q%b!Z#r%b!Z#s%b!Z#u%b!Z#w%b!Z#y%b!Z#z%b!Z'u%b!Z([%b!Z(m%b!Z!h%b!Z!V%b!Z's%b!Z#]%b!Zs%b!Z![%b!Z%f%b!Z!d%b!Z~P#.aOP%b!ZR%b!Z[%b!Zo%b!Z!i%b!Z!m%b!Z#O%b!Z#k%b!Z#l%b!Z#m%b!Z#n%b!Z#o%b!Z#p%b!Z#q%b!Z#r%b!Z#s%b!Z#u%b!Z#w%b!Z#y%b!Z#z%b!Z#}%b!Z([%b!Z(m%b!Z!Y%b!Z!Z%b!Z~P&(tOs(aX~P1qO}%pO~P!(oO(P!lO~P!(oO!VfX!YfX#]fX~P&-}OP]XR]X[]Xo]X}]X!P]X!Y]X!YfX!i]X!m]X#O]X#P]X#]]X#]fX#hfX#k]X#l]X#m]X#n]X#o]X#p]X#q]X#r]X#s]X#u]X#w]X#y]X#z]X$P]X([]X(m]X(t]X(u]X~O!dfX!h]X!hfX(mfX~P'CvOP:kOQ:kOSfOd<fOe!iOmkOo:kOpkOqkOwkOy:kO{:kO!PWO!TkO!UkO![XO!f:nO!iZO!l:kO!m:kO!n:kO!p:oO!r:rO!u!hO$V!kO(O)YO(QTO(TUO([VO(j[O(y<dO~O!Y;PO!Z$oa~Oh%WOm%XOo$uOp$tOq$tOw%YOy%ZO{;ZO!P$|O![$}O!f<kO!i$yO#g;aO$V%_O$r;]O$t;_O$w%`O(O(rO(QTO(TUO([$vO(t%OO(u%QO~O#t)`O~P'HlOo!bX(m!bX~P# ZO!Z]X!ZfX~P'CvO!VfX!V$xX!YfX!Y$xX#]fX~P!/gO#h:sO~O!d#vO#h:sO~O#];TO~O#s:xO~O#];dO!Y(rX!Z(rX~O#];TO!Y(pX!Z(pX~O#h;eO~Og;gO~P!0pO#h;mO~O#h;nO~O!d#vO#h;oO~O!d#vO#h;eO~O#};pO~P#D_O#h;qO~O#h;rO~O#h;wO~O#h;xO~O#h;yO~O#h;zO~O#};{O~P!0pO#};|O~P!0pO#P#Q#R#T#U#X#f#g#r(y$r$t$w%Z%e%f%g%n%p%s%t%v%x~'yT#l!U'w(P#mp#k#no}'x$['x(O$^(`~",goto:"$2y)XPPPPPP)YPP)]P)nP+O/PPPPP5wPP6_PP<U?kP@OP@OPPP@OPBOP@OP@OP@OPBSPBXPBvPGoPPPGsPPPPGsJuPPPJ{KwPGsPGsPPNVGsPPPGsPGsP!!^GsP!%s!&x!'RP!'u!'y!'u!+VPPPPPPP!+v!&xPP!,W!-QP!/tGsGs!/y!3U!7l!7l!;jPPP!;rGsPPPPPPPPPPP!?QP!@_PPGs!ApPGsPGsGsGsGsGsPGs!CSP!F]P!IbP!If!Ip!It!ItP!FYP!Ix!IxP!L}P!MRGsGs!MX#!]BS@OP@OP@O@OP##i@O@O#%s@O#(c@O#*g@O@O#+V#-c#-c#-h#-q#-c#-zP#-cP@O#.d@O#2T@O@O5wPPP#5zPPP#6e#6eP#6eP#6{#6ePP#7RP#6xP#6x#7f#6x#8Q#8W5t)]#8Z)]P#8b#8b#8bP)]P)]P)]P)]PP)]P#8h#8kP#8k)]P#8oP#8rP)]P)]P)]P)]P)]P)])]PP#8x#9O#9Z#9a#9g#9m#9s#:R#:X#:c#:i#:s#:y#;Z#;a#<R#<e#<k#<q#=P#=f#?T#?c#?j#AO#A^#Bx#CW#C^#Cd#Cj#Ct#Cz#DQ#D[#Dn#DtPPPPPPPPPP#DzPPPPPPP#Eo#Hv#JV#J^#JfPPP$ lP$ u$$m$+V$+Y$+]$+x$+{$,S$,[P$,b$,eP$-R$-V$-}$/]$/b$/xPP$/}$0T$0XP$0[$0`$0d$1Y$1q$2Y$2^$2a$2d$2j$2m$2q$2uR!|RoqOXst!Z#d%k&o&q&r&t,k,p1|2PY!vQ']-]1a5dQ%rvQ%zyQ&R|Q&g!VS'T!e-TQ'c!iS'i!r!yU*f$}*W*kQ+i%{Q+v&TQ,[&aQ-Z'[Q-e'dQ-m'jQ0R*mQ1k,]R;b:o%QdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V,h,k,p-a-i-w-}.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3^5a5k5{5|6P6d8O8T8d8nS#q]:l!r)[$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gU*y%[;Y;ZQ+n%}Q,^&dQ,e&lQ0m+aQ0q+cQ0|+oQ1s,cQ3Q._Q4}0wQ5r1lQ6p3UQ7p5OR8t6r'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gt!nQ!r!v!y!z'T'[']'i'j'k-T-Z-]-m1a5d5f$z$ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qQ&U|Q'R!eU'X%g*W-WQ+n%}Q,^&dQ0c*|Q0|+oQ1R+uQ1r,bQ1s,cQ4}0wQ5W1TQ5r1lQ5u1nQ5v1qQ7p5OQ7s5TQ8]5xQ9_7tR9j8YrnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PR,`&h&x^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<f<g[#]WZ#W#Z'U(P!b%hm#h#i#l$y%c%f(Y(d(e(f*V*Z*^+T+U+W,g,}-{.R.S.T.V/e/h2U2|2}4Q6Y6kQ%uxQ%yyS&O|&TQ&[!TQ'`!hQ'b!iQ(m#sS+h%z%{Q+l%}Q,V&_Q,Z&aS-d'c'dQ.a(nQ0u+iQ0{+oQ0}+pQ1Q+tQ1f,WS1j,[,]Q2n-eQ4|0wQ5Q0zQ5V1SQ5q1kQ7o5OQ7r5SQ9Z7nR:R9[!O${i$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m!S%wy!i!u%y%z%{'S'b'c'd'h'r*e+h+i-Q-d-e-l/y0u2g2n2u4dQ+b%uQ+{&XQ,O&YQ,Y&aQ.`(mQ1e,VU1i,Z,[,]Q3V.aQ5l1fS5p1j1kQ8X5q#[<h#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qo<i;R;S;V;X;];_;a;i;k;n;r;t;v;x;|W%Ui%W*u<dS&X!Q&fQ&Y!RQ&Z!SR+y&V${%Ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qT)w$v)xV*y%[;Y;ZW'X!e%g*W-WS(y#y#zQ+]%pQ+s&QS.Y(i(jQ1[,PQ4m0`R7x5]'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<g$i$_c#Y#e%o%q%s(O(U(p(u(})O)P)Q)R)S)T)U)V)W)X)Z)])c)m+^+r-R-p-u-z-|.k.n.r.t.u.v/X0e2]2`2p2w3]3b3c3d3e3f3g3h3i3j3k3l3m3n3q3r3y4q4z6]6c6h6w6x7R7S7z8h8l8v8|8}9s:T:[:m<ZT#TV#U'PkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ'V!eR2c-Tv!nQ!e!r!v!y!z'T'[']'i'j'k-T-Z-]-m1a5d5fU*e$}*W*kS/y*f*mQ0S*nQ1^,RQ4d0RR4g0UnqOXst!Z#d%k&o&q&r&t,k,p1|2PQ&v!^Q's!xS(o#u:sQ+f%xQ,T&[Q,U&^Q-b'aQ-o'lS.j(t;eS0f+R;oQ0s+gQ1`,SQ2T,rQ2V,sQ2_-OQ2l-cQ2o-gS4r0g;yQ4x0tS4{0v;zQ6[2aQ6`2mQ6e2tQ7m4yQ8i6^Q8j6aQ8m6fR9p8f$d$^c#Y#e%q%s(O(U(p(u(})O)P)Q)R)S)T)U)V)W)X)Z)])c)m+^+r-R-p-u-z-|.k.n.r.u.v/X0e2]2`2p2w3]3b3c3d3e3f3g3h3i3j3k3l3m3n3q3r3y4q4z6]6c6h6w6x7R7S7z8h8l8v8|8}9s:T:[:m<ZS(k#p'fQ({#zS+[%o.tS.Z(j(lR3O.['OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gS#q]:lQ&q!XQ&r!YQ&t![Q&u!]R1{,nQ'^!hQ+_%uQ-`'`S.](m+bQ2j-_W3S.`.a0l0nQ6_2kW6l3P3R3V4vU8p6m6o6qU9u8r8s8uS:^9t9wQ:f:_R:i:gU!wQ']-]T5b1a5d!Q_OXZ`st!V!Z#d#h%c%k&f&h&o&q&r&t(f,k,p.S1|2P]!pQ!r']-]1a5dT#q]:l%[{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nS(y#y#zS.Y(i(j!s<Q$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gU$fd)[,eS(l#p'fU*r%S(s3pU0b*x.f6}Q4v0mQ6m3QQ8s6pR9w8tm!tQ!r!v!y!z']'i'j'k-]-m1a5d5fQ'q!uS(b#g1vS-k'h'tQ/k*YQ/w*eQ2v-nQ4U/lS4_/x0SQ7X4PS7d4e4gQ9R7YR9Y7gQ#wbQ'p!uS(a#g1vS(c#m+QQ+S%dQ+d%vQ+j%|U-j'h'q'tQ.O(bQ/j*YQ/v*eQ/|*hQ0r+eQ1g,XS2s-k-nQ2{.WS4T/k/lS4^/w0SQ4a/{Q4c/}Q5n1hQ6g2vQ7W4PQ7[4US7`4_4gQ7e4fQ8V5oS9Q7X7YQ9U7aQ9W7dQ9g8WQ9}9RQ:O9VQ:Q9YQ:Y9hQ:b:PQ<T<OQ<`<XR<a<YV!wQ']-]%[aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nS#wz!j!r;}$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gR<T<f%[bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nQ%dj!S%vy!i!u%y%z%{'S'b'c'd'h'r*e+h+i-Q-d-e-l/y0u2g2n2u4dS%|z!jQ+e%wQ,X&aW1h,Y,Z,[,]U5o1i1j1kS8W5p5qQ9h8X!r<O$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ<X<eR<Y<f%OeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8nY#bWZ#W#Z(P!b%hm#h#i#l$y%c%f(Y(d(e(f*V*Z*^+T+U+W,g,}-{.R.S.T.V/e/h2U2|2}4Q6Y6kQ,f&l!p<P$[$n)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gR<S'UU'Y!e%g*WR2e-W%QdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V,h,k,p-a-i-w-}.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3^5a5k5{5|6P6d8O8T8d8n!r)[$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gQ,e&lQ0m+aQ3Q._Q6p3UR8t6r!b$Uc#Y%o(O(U(p(u)W)X)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:m!P:z)Z)m-R.t2]2`3b3l3m3q3y6]6x7R7S7z8h8v8|8}:T:[<Z!f$Wc#Y%o(O(U(p(u)T)U)W)X)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:m!T:|)Z)m-R.t2]2`3b3i3j3l3m3q3y6]6x7R7S7z8h8v8|8}:T:[<Z!^$[c#Y%o(O(U(p(u)])c+r-p-u-z-|.k.n/X0e2p2w3]3n4q4z6c6h6w8l9s:mQ3}/cz<g)Z)m-R.t2]2`3b3q3y6]6x7R7S7z8h8v8|8}:T:[<ZQ<l<nR<m<o'OkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gS$oh$pR3v.|'VgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n$p%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.|.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gT$kf$qQ$ifS)f$l)jR)r$qT$jf$qT)h$l)j'VhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$`$e$n$p%k%r&P&h&k&l&o&q&r&t&x'Q'U'_'o(P(R(X(`(t(v(z)o)z+R+V+a,h,k,p,|-P-a-i-w-}._.l.s.|.}/f0a0g0v1d1t1u1w1y1|2P2R2b2r2x3U3^3u5_5a5k5{5|6P6Z6d6r8O8T8d8n9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<gT$oh$pQ$rhR)q$p%[jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Y$`$e%k%r&P&h&k&l&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)z+R+V+a,h,k,p-a-i-w-}._.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3U3^5a5k5{5|6P6d6r8O8T8d8n!s<e$[$n'U)o,|-P.}2b3u5_6Z9`9q:k:n:o:r:s:t:u:v:w:x:y:z:{:|:};O;P;T;b;d;e;g;o;p;y;z<g#elOPXZst!Z!`!o#S#d#o#{$n%k&h&k&l&o&q&r&t&x'Q'_(z)o+V+a,h,k,p-a._.}/f0a1d1t1u1w1y1|2P2R3U3u5a5k5{5|6P6r8O8T8d!O%Si$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m#[(s#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qQ*}%`Q/Y){o3p;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!O$zi$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mQ*_${U*h$}*W*kQ+O%aQ/}*i#[<V#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn<W;R;S;V;X;];_;a;i;k;n;r;t;v;x;|Q<[<hQ<]<iQ<^<jR<_<k!O%Si$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<m#[(s#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qo3p;R;S;V;X;];_;a;i;k;n;r;t;v;x;|noOXst!Z#d%k&o&q&r&t,k,p1|2PS*b$|*VQ,y&{Q,z&}R4X/p$z%Ti#v$b$c$d$y$|%P%R%]%^%b)v)|*O*Q*S*V*]*c*s*t+`+c+z+}.^.w/]/e/o/p/r0V0X0d1W1Z1c3T3}4Y4b4l4t4w5j6n7]7f8Q8q9P9d9v:W:`;R;S;U;V;W;X;[;];^;_;`;a;h;i;j;k;m;n;q;r;s;t;u;v;w;x;{;|<d<l<m<p<qQ+|&YQ1Y,OQ5Z1XR7w5[V*j$}*W*kU*j$}*W*kT5c1a5dU/{*g/f5aT4f0T8OQ+d%vQ/|*hQ0r+eQ1g,XQ5n1hQ8V5oQ9g8WR:Y9h!O%Pi$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mr*O$w)a*P*q+P/n0Z0[3s4V4p7V7h9|<U<b<cS0V*p0W#[;U#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn;V;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!^;h(q)_*X*a.b.e.i/U/Z/c/s0k1V1X3Y4W4[5Y5[6s6v7^7b7j7l9T9X:a<n<o`;i3o6y6|7Q8w9x9{:jS;s.d3ZT;t6{8z!O%Ri$d%P%R%]%^%b*O*Q*]*s*t.w/o0V0X0d3}4l9P<d<l<mv*Q$w)a*R*p+P/_/n0Z0[3s4V4h4p7V7h9|<U<b<cS0X*q0Y#[;W#v$b$c$y$|)v)|*S*V*c+`+c+z+}.^/]/e/p/r1W1Z1c3T4Y4b4t4w5j6n7]7f8Q8q9d9v:W:`;U;W;[;^;`;h;j;m;q;s;u;w;{<p<qn;X;R;S;V;X;];_;a;i;k;n;r;t;v;x;|!b;j(q)_*X*a.c.d.i/U/Z/c/s0k1V1X3W3Y4W4[5Y5[6s6t6v7^7b7j7l9T9X:a<n<od;k3o6z6{7Q8w8x9x9y9{:jS;u.e3[T;v6|8{rnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PQ&c!UR,h&lrnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PR&c!UQ,Q&ZR1U+ysnOXst!V!Z#d%k&f&o&q&r&t,k,p1|2PQ1b,VS5i1e1fU8P5g5h5lS9c8R8SS:U9b9eQ:c:VR:h:dQ&j!VR,a&fR5u1nS&O|&TR0}+pQ&o!WR,k&pR,q&uT1},p2PR,u&vQ,t&vR2W,uQ'v!{R-q'vSsOtQ#dXT%ns#dQ#OTR'x#OQ#RUR'z#RQ)x$vR/V)xQ#UVR'|#UQ#XWU(S#X(T-xQ(T#YR-x(UQ-U'VR2d-UQ.m(uS3_.m3`R3`.nQ-]']R2h-]Y!rQ']-]1a5dR'g!rQ.x)aR3t.xU#_W%f*VU(Z#_([-yQ([#`R-y(VQ-X'YR2f-Xt`OXst!V!Z#d%k&f&h&o&q&r&t,k,p1|2PS#hZ%cU#r`#h.SR.S(fQ(g#jQ.P(cW.X(g.P2y6iQ2y.QR6i2zQ)j$lR/O)jQ$phR)p$pQ$acU)^$a-t;QQ-t:mR;Q)mQ/i*YW4R/i4S7Z9SU4S/j/k/lS7Z4T4UR9S7[$X)}$w(q)_)a*X*a*p*q*z*{+P.d.e.g.h.i/U/Z/_/a/c/n/s0Z0[0k1V1X3W3X3Y3o3s4V4W4[4h4j4p5Y5[6s6t6u6v6{6|7O7P7Q7V7^7b7h7j7l8w8x8y9T9X9x9y9z9{9|:a:j<U<b<c<n<oQ/q*aU4Z/q4]7_Q4]/sR7_4[S*k$}*WR0P*kr*P$w)a*p*q+P/n0Z0[3s4V4p7V7h9|<U<b<c!^.b(q)_*X*a.d.e.i/U/Z/c/s0k1V1X3Y4W4[5Y5[6s6v7^7b7j7l9T9X:a<n<oU/`*P.b6ya6y3o6{6|7Q8w9x9{:jQ0W*pQ3Z.dU4i0W3Z8zR8z6{v*R$w)a*p*q+P/_/n0Z0[3s4V4h4p7V7h9|<U<b<c!b.c(q)_*X*a.d.e.i/U/Z/c/s0k1V1X3W3Y4W4[5Y5[6s6t6v7^7b7j7l9T9X:a<n<oU/b*R.c6ze6z3o6{6|7Q8w8x9x9y9{:jQ0Y*qQ3[.eU4k0Y3[8{R8{6|Q*v%VR0^*vQ4u0kR7k4uQ+X%iR0j+XQ5^1[S7y5^9aR9a7zQ,S&[R1_,SQ5d1aR7|5dQ1m,^S5s1m8ZR8Z5uQ0x+lW5P0x5R7q9]Q5R0{Q7q5QR9]7rQ+q&OR1O+qQ2P,pR6T2PYrOXst#dQ&s!ZQ+Z%kQ,j&oQ,l&qQ,m&rQ,o&tQ1z,kS1},p2PR6S1|Q%mpQ&w!_Q&z!aQ&|!bQ'O!cQ'n!uQ+Y%jQ+f%xQ+x&UQ,`&jQ,w&yW-h'h'p'q'tQ-o'lQ0O*jQ0s+gS1p,a,dQ2X,vQ2Y,yQ2Z,zQ2o-gW2q-j-k-n-pQ4x0tQ5U1RQ5X1VQ5m1gQ5w1rQ6R1{U6b2p2s2vQ6e2tQ7m4yQ7u5WQ7v5YQ7{5cQ8U5nQ8[5vS8k6c6gQ8m6fQ9^7sQ9f8VQ9k8]Q9r8lQ:S9_Q:X9gQ:]9sR:e:YQ%xyQ'a!iQ'l!uU+g%y%z%{Q-O'SU-c'b'c'dS-g'h'rQ/u*eS0t+h+iQ2a-QS2m-d-eQ2t-lQ4`/yQ4y0uQ6^2gQ6a2nQ6f2uR7c4dS$xi<dR*w%WU%Vi%W<dR0]*uQ$wiS(q#v+cS)_$b$cQ)a$dQ*X$yS*a$|*VQ*p%PQ*q%RQ*z%]Q*{%^Q+P%bQ.d;UQ.e;WQ.g;[Q.h;^Q.i;`Q/U)vS/Z)|/]Q/_*OQ/a*QQ/c*SQ/n*]S/s*c/eQ0Z*sQ0[*th0k+`.^1c3T5j6n8Q8q9d9v:W:`Q1V+zQ1X+}Q3W;hQ3X;jQ3Y;mS3o;R;SQ3s.wQ4V/oQ4W/pQ4[/rQ4h0VQ4j0XQ4p0dQ5Y1WQ5[1ZQ6s;qQ6t;sQ6u;uQ6v;wQ6{;VQ6|;XQ7O;]Q7P;_Q7Q;aQ7V3}Q7^4YQ7b4bQ7h4lQ7j4tQ7l4wQ8w;nQ8x;iQ8y;kQ9T7]Q9X7fQ9x;rQ9y;tQ9z;vQ9{;xQ9|9PQ:a;{Q:j;|Q<U<dQ<b<lQ<c<mQ<n<pR<o<qQ*x%[Q.f;YR6};ZnpOXst!Z#d%k&o&q&r&t,k,p1|2PQ!fPS#fZ#oQ&y!`U'e!o5a8OQ'{#SQ(|#{Q)n$nS,d&h&kQ,i&lQ,v&xQ,{'QQ-_'_Q.p(zQ/S)oS0h+V/fQ0n+aQ1x,hQ2k-aQ3R._Q3x.}Q4n0aQ5h1dQ5y1tQ5z1uQ6O1wQ6Q1yQ6V2RQ6q3UQ7T3uQ8S5kQ8`5{Q8a5|Q8c6PQ8u6rQ9e8TR9o8d#YcOPXZst!Z!`!o#d#o#{%k&h&k&l&o&q&r&t&x'Q'_(z+V+a,h,k,p-a._/f0a1d1t1u1w1y1|2P2R3U5a5k5{5|6P6r8O8T8dQ#YWQ#eYQ%ouQ%qvS%sw!gS(O#W(RQ(U#ZQ(p#uQ(u#xQ(}$OQ)O$PQ)P$QQ)Q$RQ)R$SQ)S$TQ)T$UQ)U$VQ)V$WQ)W$XQ)X$YQ)Z$[Q)]$`Q)c$eW)m$n)o.}3uQ+^%rQ+r&PS-R'U2bQ-p'oS-u(P-wQ-z(XQ-|(`Q.k(tQ.n(vQ.r:kQ.t:nQ.u:oQ.v:rQ/X)zQ0e+RQ2],|Q2`-PQ2p-iQ2w-}Q3].lQ3b:sQ3c:tQ3d:uQ3e:vQ3f:wQ3g:xQ3h:yQ3i:zQ3j:{Q3k:|Q3l:}Q3m;OQ3n.sQ3q;TQ3r;bQ3y;PQ4q0gQ4z0vQ6];dQ6c2rQ6h2xQ6w3^Q6x;eQ7R;gQ7S;oQ7z5_Q8h6ZQ8l6dQ8v;pQ8|;yQ8};zQ9s8nQ:T9`Q:[9qQ:m#SR<Z<gR#[WR'W!el!tQ!r!v!y!z']'i'j'k-]-m1a5d5fS'S!e-TS-Q'T'[R2g-ZR(w#xQ!fQT-[']-]]!qQ!r']-]1a5dQ#p]R'f:lR)b$dY!uQ']-]1a5dQ'h!rS'r!v!yS't!z5fS-l'i'jQ-n'kR2u-mT#kZ%cS#jZ%cS%im,gU(c#h#i#lS.Q(d(eQ.U(fQ0i+WQ2z.RU2{.S.T.VS6j2|2}R8o6kd#^W#W#Z%f(P(Y*V+T-{/er#gZm#h#i#l%c(d(e(f+W.R.S.T.V2|2}6kS*Y$y*^Q/l*ZQ1v,gQ2^,}Q4P/hQ6X2UQ7Y4QQ8g6YT<R'U+UV#aW%f*VU#`W%f*VS(Q#W(YU(V#Z+T/eS-S'U+UT-v(P-{V'Z!e%g*WQ$lfR)t$qT)i$l)jR3w.|T*[$y*^T*d$|*VQ0l+`Q3P.^Q5g1cQ6o3TQ8R5jQ8r6nQ9b8QQ9t8qQ:V9dQ:_9vQ:d:WR:g:`nqOXst!Z#d%k&o&q&r&t,k,p1|2PQ&i!VR,`&ftmOXst!U!V!Z#d%k&f&o&q&r&t,k,p1|2PR,g&lT%jm,gR1],PR,_&dQ&S|R+w&TR+m%}T&m!W&pT&n!W&pT2O,p2P",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang 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 : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < 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 InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression InstantiationExpression 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:376,context:Ol,nodeProps:[["isolate",-8,5,6,14,34,36,48,50,52,""],["group",-26,9,17,19,65,204,208,212,213,215,218,221,231,233,239,241,243,245,248,254,260,262,264,266,268,270,271,"Statement",-34,13,14,29,32,33,39,48,51,52,54,59,67,69,73,77,79,81,82,107,108,117,118,135,138,140,141,142,143,144,146,147,166,167,169,"Expression",-23,28,30,34,38,40,42,171,173,175,176,178,179,180,182,183,184,186,187,188,198,200,202,203,"Type",-3,85,100,106,"ClassItem"],["openedBy",23,"<",35,"InterpolationStart",53,"[",57,"{",70,"(",159,"JSXStartCloseTag"],["closedBy",24,">",37,"InterpolationEnd",47,"]",58,"}",71,")",164,"JSXEndTag"]],propSources:[rl],skippedNodes:[0,5,6,274],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$h&j(Rp(U!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$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$h&j(RpOY(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(RpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$h&j(Rp(U!b'w0/lOX%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%Z07[.ST(S#S$h&j'x0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$h&j(Rp(U!b'x0/lOY%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)3p/x`$h&j!m),Q(Rp(U!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(KW1V`#u(Ch$h&j(Rp(U!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(KW2d_#u(Ch$h&j(Rp(U!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'At3l_(Q':f$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$h&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$c`$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$c``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$c`$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(U!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$c`(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$h&j(Rp(U!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$h&j(Rp(U!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$h&j(U!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$h&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(U!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$h&j(RpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(RpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Rp(U!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$h&j(j%1l(Rp(U!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$h&j(Rp(U!b$[#t(O,2j(`$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$h&j(Rp(U!b$[#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$h&j(Rp(U!b#m(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$h&j$P(Ch(Rp(U!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,#xLva(u+JY$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$h&j#y(Ch(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(T';W$h&j(RpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$h&j(RpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$h&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$c`$h&j(RpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(RpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$c`(RpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!i/.^$h&j(Rp(U!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#&U!)O_!h!Lf$h&j(Rp(U!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-!n!*[b$h&j(Rp(U!b(P%&f#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$h&j(Rp(U!b#k(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$h&j(Rp(U!bo+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!Y+Jf$h&j(Rp(U!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%Z07[!/ec$h&j(Rp(U!b}.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_!X!L^$h&j(Rp(U!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'Ad!3eg$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$h&j(Rp(U!b#l(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$h&j(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$h&j(U!b!U7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$h&j!U7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$h&j!U7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!U7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!U7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$h&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$h&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$h&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$h&j(U!b!U7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(U!b!U7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(U!b!U7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(U!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$h&j(U!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$h&j(Rp!U7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$h&j(Rp!U7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Rp!U7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Rp!U7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(RpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$h&j(RpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$h&j(Rp(U!b!U7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Rp(U!b!U7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Rp(U!b!U7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Rp(U!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$h&j(Rp(U!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$h&j(Rp(U!b'y0/l!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$h&j(Rp(U!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$h&j(U!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$h&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(U!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$h&j(RpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(RpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Rp(U!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$h&j$P(Ch(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Y#t$h&j(Rp(U!b!U7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$h&j(Rp(U!bp'9tOY%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'Ad#?rd$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!d$b$h&j#})Lv(Rp(U!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)[#Jv_al$h&j(Rp(U!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%Z04f#LS^h#)`#O-<U(Rp(U!b(y7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$j&j(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#o(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$P(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#p(Ch(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#]*!Y$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#h(Cl$h&j(Rp(U!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*)x$%Vag!*r#p(Ch$e#|$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#p(Ch$h&j(Rp(U!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(KW$'qa#o(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#o(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(m(Ct$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$h&j#z(Ch(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!y$Ip$h&j(Rp(U!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%Z04f$.X_!P0,v$h&j(Rp(U!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(n$/]Z$h&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$h&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$h&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$h&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$h&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!V#)l$h&j(Rp(U!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(KW$6U`#w(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$h&j(Rp(U!b([+4QOY%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%Z07[$8qk$h&j(Rp(U!b(O,2j$^#t(`$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$h&j(Rp(U!b$^#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X![#Hb(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(t+JY$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z(Kd$?V_!Z(Cds`$h&j(Rp(U!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?O$@a_!n7`$h&j(Rp(U!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%Z07[$Aq|$h&j(Rp(U!b'w0/l$[#t(O,2j(`$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$h&j(Rp(U!b'x0/l$[#t(O,2j(`$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[cl,nl,ol,2,3,4,5,6,7,8,9,10,11,12,13,14,yl,new _n("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOu~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!R~~!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(^~~",141,335),new _n("j~RQYZXz{^~^O'{~~aP!P!Qd~iO'|~~",25,318)],topRules:{Script:[0,7],SingleExpression:[1,272],SingleClassItem:[2,273]},dialects:{jsx:0,ts:14769},dynamicPrecedences:{77:1,79:1,91:1,167:1,196:1},specialized:[{term:322,get:M=>xl[M]||-1},{term:338,get:M=>al[M]||-1},{term:92,get:M=>Ql[M]||-1}],tokenPrec:14793}),Sl=[qc("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),qc("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),qc("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),qc("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),qc("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),qc("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),qc("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),qc("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),qc("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),qc('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),qc('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],hl=Sl.concat([qc("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),qc("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),qc("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),dl=new OA,kl=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function wl(M){return(N,D)=>{let i=N.node.getChild("VariableDefinition");return i&&D(i,M),!0}}const Ul=["FunctionDeclaration"],Yl={FunctionDeclaration:wl("function"),ClassDeclaration:wl("class"),ClassExpression:()=>!0,EnumDeclaration:wl("constant"),TypeAliasDeclaration:wl("type"),NamespaceDeclaration:wl("namespace"),VariableDefinition(M,N){M.matchContext(Ul)||N(M,"variable")},TypeDefinition(M,N){N(M,"type")},__proto__:null};function Cl(M,N){let D=dl.get(N);if(D)return D;let i=[],j=!0;function t(N,D){let j=M.sliceString(N.from,N.to);i.push({label:j,type:D})}return N.cursor($T.IncludeAnonymous).iterate((N=>{if(j)j=!1;else if(N.name){let M=Yl[N.name];if(M&&M(N,t)||kl.has(N.name))return!1}else if(N.to-N.from>8192){for(let D of Cl(M,N.node))i.push(D);return!1}})),dl.set(N,i),i}const bl=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,pl=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function ml(M){let N=qA(M.state).resolveInner(M.pos,-1);if(pl.indexOf(N.name)>-1)return null;let D="VariableName"==N.name||N.to-N.from<20&&bl.test(M.state.sliceDoc(N.from,N.to));if(!D&&!M.explicit)return null;let i=[];for(let D=N;D;D=D.parent)kl.has(D.name)&&(i=i.concat(Cl(M.state.doc,D)));return{options:i,from:D?N.from:M.pos,validFor:bl}}function Zl(M,N,D){var i;let j=[];for(;;){let t,I=N.firstChild;if("VariableName"==(null==I?void 0:I.name))return j.push(M(I)),{path:j.reverse(),name:D};if("MemberExpression"!=(null==I?void 0:I.name)||"PropertyName"!=(null===(i=t=I.lastChild)||void 0===i?void 0:i.name))return null;j.push(M(t)),N=I}}function fl(M){let N=new Map;return D=>{let i=function(M){let N=N=>M.state.doc.sliceString(N.from,N.to),D=qA(M.state).resolveInner(M.pos,-1);return"PropertyName"==D.name?Zl(N,D.parent,N(D)):"."!=D.name&&"?."!=D.name||"MemberExpression"!=D.parent.name?pl.indexOf(D.name)>-1?null:"VariableName"==D.name||D.to-D.from<20&&bl.test(N(D))?{path:[],name:N(D)}:"MemberExpression"==D.name?Zl(N,D,""):M.explicit?{path:[],name:""}:null:Zl(N,D.parent,"")}(D);if(!i)return null;let j=M;for(let M of i.path)if(j=j[M],!j)return null;let t=N.get(j);return t||N.set(j,t=function(M,N){let D=[],i=new Set;for(let j=0;;j++){for(let t of(Object.getOwnPropertyNames||Object.keys)(M)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(t)||i.has(t))continue;let I;i.add(t);try{I=M[t]}catch(M){continue}D.push({label:t,type:"function"==typeof I?/^[A-Z]/.test(t)?"class":N?"function":"method":N?"variable":"property",boost:-j})}let t=Object.getPrototypeOf(M);if(!t)return D;M=t}}(j,!i.path.length)),{from:D.pos-i.name.length,options:t,validFor:bl}}}const vl=_A.define({name:"javascript",parser:El.configure({props:[Os.add({IfStatement:as({except:/^\s*({|else\b)/}),TryStatement:as({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:M=>M.baseIndent,SwitchBody:M=>{let N=M.textAfter,D=/^\s*\}/.test(N),i=/^\s*(case|default)\b/.test(N);return M.baseIndent+(D?0:i?1:2)*M.unit},Block:rs({closing:"}"}),ArrowFunction:M=>M.baseIndent+M.unit,"TemplateString BlockComment":()=>null,"Statement Property":as({except:/^{/}),JSXElement(M){let N=/^\s*<\//.test(M.textAfter);return M.lineIndent(M.node.from)+(N?0:M.unit)},JSXEscape(M){let N=/\s*\}/.test(M.textAfter);return M.lineIndent(M.node.from)+(N?0:M.unit)},"JSXOpenTag JSXSelfClosingTag":M=>M.column(M.node.from)+M.unit}),Es.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":function(M){let N=M.firstChild,D=M.lastChild;return N&&N.to<D.from?{from:N.to,to:D.type.isError?M.to:D.from}:null},BlockComment:M=>({from:M.from+2,to:M.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Wl={test:M=>/^JSX/.test(M.name),facet:FA({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Vl=vl.configure({dialect:"ts"},"typescript"),Gl=vl.configure({dialect:"jsx",props:[HA.add((M=>M.isTop?[Wl]:void 0))]}),Pl=vl.configure({dialect:"jsx ts",props:[HA.add((M=>M.isTop?[Wl]:void 0))]},"typescript");let Rl=M=>({label:M,type:"keyword"});const Bl="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(Rl),Jl=Bl.concat(["declare","implements","private","protected","public"].map(Rl));function Fl(M={}){let N=M.jsx?M.typescript?Pl:Gl:M.typescript?Vl:vl,D=M.typescript?hl.concat(Jl):Sl.concat(Bl);return new us(N,[vl.data.of({autocomplete:(i=pl,j=Mc(D),M=>{for(let N=qA(M.state).resolveInner(M.pos,-1);N;N=N.parent){if(i.indexOf(N.name)>-1)return null;if(N.type.isTop)break}return j(M)})}),vl.data.of({autocomplete:ml}),M.jsx?$l:[]]);var i,j}function Hl(M,N,D=M.length){for(let i=null==N?void 0:N.firstChild;i;i=i.nextSibling)if("JSXIdentifier"==i.name||"JSXBuiltin"==i.name||"JSXNamespacedName"==i.name||"JSXMemberExpression"==i.name)return M.sliceString(i.from,Math.min(i.to,D));return""}const Xl="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),$l=Ne.inputHandler.of(((M,N,D,i,j)=>{if((Xl?M.composing:M.compositionStarted)||M.state.readOnly||N!=D||">"!=i&&"/"!=i||!vl.isActiveAt(M.state,N,-1))return!1;let t=j(),{state:I}=t,z=I.changeByRange((M=>{var N;let D,{head:j}=M,t=qA(I).resolveInner(j-1,-1);if("JSXStartTag"==t.name&&(t=t.parent),I.doc.sliceString(j-1,j)!=i||"JSXAttributeValue"==t.name&&t.to>j);else{if(">"==i&&"JSXFragmentTag"==t.name)return{range:M,changes:{from:j,insert:"</>"}};if("/"==i&&"JSXStartCloseTag"==t.name){let M=t.parent,i=M.parent;if(i&&M.from==j-2&&((D=Hl(I.doc,i.firstChild,j))||"JSXFragmentTag"==(null===(N=i.firstChild)||void 0===N?void 0:N.name))){let M=`${D}>`;return{range:Pj.cursor(j+M.length,-1),changes:{from:j,insert:M}}}}else if(">"==i){let N=function(M){for(;;){if("JSXOpenTag"==M.name||"JSXSelfClosingTag"==M.name||"JSXFragmentTag"==M.name)return M;if("JSXEscape"==M.name||!M.parent)return null;M=M.parent}}(t);if(N&&!/^\/?>|^<\//.test(I.doc.sliceString(j,j+2))&&(D=Hl(I.doc,N,j)))return{range:M,changes:{from:j,insert:`</${D}>`}}}}return{range:M}}));return!z.changes.empty&&(M.dispatch([t,I.update(z,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})),_l=M=>void 0===M||M,ql=(M={})=>{let N=[];_l(M.defaultKeymap)&&N.push(...FO),_l(M.closeBracketsKeymap)&&N.push(...en),_l(M.searchKeymap)&&N.push(...Ry),_l(M.historyKeymap)&&N.push(...$L),_l(M.foldKeymap)&&N.push(...Zs),_l(M.lintKeymap)&&N.push(...Yn);const D=[];return _l(M.lineNumbers)&&D.push(mT()),_l(M.highlightActiveLineGutter)&&D.push(vT),_l(M.highlightSpecialChars)&&D.push(function(M={}){return[fe.of(M),ve||(ve=tu.fromClass(class{constructor(M){this.view=M,this.decorations=Oz.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(M.state.facet(fe)),this.decorations=this.decorator.createDeco(M)}makeDecorator(M){return new Ce({regexp:M.specialChars,decoration:(N,D,i)=>{let{doc:j}=D.state,t=kj(N[0],0);if(9==t){let M=j.lineAt(i),N=D.state.tabSize,t=qt(M.text,N,i-M.from);return Oz.replace({widget:new Ve((N-t%N)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[t]||(this.decorationCache[t]=Oz.replace({widget:new We(M,t)}))},boundary:M.replaceTabs?void 0:/[^]/})}update(M){let N=M.state.facet(fe);M.startState.facet(fe)!=N?(this.decorator=this.makeDecorator(N),this.decorations=this.decorator.createDeco(M.view)):this.decorations=this.decorator.updateDeco(M,this.decorations)}},{decorations:M=>M.decorations}))]}()),_l(M.history)&&D.push(function(M={}){return[CL,YL.of(M),Ne.domEventHandlers({beforeinput(M,N){let D="historyUndo"==M.inputType?pL:"historyRedo"==M.inputType?mL:null;return!!D&&(M.preventDefault(),D(N))}})]}()),_l(M.foldGutter)&&D.push(function(M={}){let N=Object.assign(Object.assign({},Rs),M),D=new Bs(N,!0),i=new Bs(N,!1),j=tu.fromClass(class{constructor(M){this.from=M.viewport.from,this.markers=this.buildMarkers(M)}update(M){(M.docChanged||M.viewportChanged||M.startState.facet(zs)!=M.state.facet(zs)||M.startState.field(Ys,!1)!=M.state.field(Ys,!1)||qA(M.startState)!=qA(M.state)||N.foldingChanged(M))&&(this.markers=this.buildMarkers(M.view))}buildMarkers(M){let N=new Vt;for(let j of M.viewportLineBlocks){let t=Cs(M.state,j.from,j.to)?i:hs(M.state,j.from,j.to)?D:null;t&&N.add(j.from,j.from,t)}return N.finish()}}),{domEventHandlers:t}=N;return[j,xT({class:"cm-foldGutter",markers(M){var N;return(null===(N=M.plugin(j))||void 0===N?void 0:N.markers)||Wt.empty},initialSpacer:()=>new Bs(N,!1),domEventHandlers:Object.assign(Object.assign({},t),{click:(M,N,D)=>{if(t.click&&t.click(M,N,D))return!0;let i=Cs(M.state,N.from,N.to);if(i)return M.dispatch({effects:ws.of(i)}),!0;let j=hs(M.state,N.from,N.to);return!!j&&(M.dispatch({effects:ks.of(j)}),!0)}})}),Ws()]}()),_l(M.drawSelection)&&D.push(function(M={}){return[xe.of(M),Qe,Se,de,_z.of(!0)]}()),_l(M.dropCursor)&&D.push([we,Ue]),_l(M.allowMultipleSelections)&&D.push(bt.allowMultipleSelections.of(!0)),_l(M.indentOnInput)&&D.push(bt.transactionFilter.of((M=>{if(!M.docChanged||!M.isUserEvent("input.type")&&!M.isUserEvent("input.complete"))return M;let N=M.startState.languageDataAt("indentOnInput",M.startState.selection.main.head);if(!N.length)return M;let D=M.newDoc,{head:i}=M.newSelection.main,j=D.lineAt(i);if(i>j.from+200)return M;let t=D.sliceString(j.from,i);if(!N.some((M=>M.test(t))))return M;let{state:I}=M,z=-1,u=[];for(let{head:M}of I.selection.ranges){let N=I.doc.lineAt(M);if(N.from==z)continue;z=N.from;let D=ss(I,N.from);if(null==D)continue;let i=/^\s*/.exec(N.text)[0],j=As(I,D);i!=j&&u.push({from:N.from,to:N.from+i.length,insert:j})}return u.length?[M,{changes:u,sequential:!0}]:M}))),_l(M.syntaxHighlighting)&&D.push(function(M,N){let D,i=[qs];return M instanceof Fs&&(M.module&&i.push(Ne.styleModule.of(M.module)),D=M.themeType),(null==N?void 0:N.fallback)?i.push(Xs.of(M)):D?i.push(Hs.computeN([Ne.darkTheme],(N=>N.facet(Ne.darkTheme)==("dark"==D)?[M]:[]))):i.push(Hs.of(M)),i}(Ks,{fallback:!0})),_l(M.bracketMatching)&&D.push(function(M={}){return[iL.of(M),uL]}()),_l(M.closeBrackets)&&D.push([gn,jn]),_l(M.autocompletion)&&D.push(nn()),_l(M.rectangularSelection)&&D.push(function(M){let N=(null==M?void 0:M.eventFilter)||(M=>M.altKey&&0==M.button);return Ne.mouseSelectionStyle.of(((M,D)=>N(D)?Je(M,D):null))}()),_l(M.crosshairCursor)&&D.push(function(M={}){let[N,D]=Fe[M.key||"Alt"],i=tu.fromClass(class{constructor(M){this.view=M,this.isDown=!1}set(M){this.isDown!=M&&(this.isDown=M,this.view.update([]))}},{eventObservers:{keydown(M){this.set(M.keyCode==N||D(M))},keyup(M){M.keyCode!=N&&D(M)||this.set(!1)},mousemove(M){this.set(D(M))}}});return[i,Ne.contentAttributes.of((M=>{var N;return(null===(N=M.plugin(i))||void 0===N?void 0:N.isDown)?He:null}))]}()),_l(M.highlightActiveLine)&&D.push(Pe),_l(M.highlightSelectionMatches)&&D.push(function(M){let N=[Oy,Ly];return M&&N.push(ey.of(M)),N}()),M.tabSize&&"number"==typeof M.tabSize&&D.push(es.of(" ".repeat(M.tabSize))),D.concat([ge.of(N.flat())]).filter(Boolean)},Kl={"&":{fontSize:"14px",fontFamily:"Colfax-regular",fontWeight:"400"},".cm-content":{},".cm-scroller":{scrollbarWidth:"thin"}};M.NileCodeEditor=class extends kN{constructor(){super(...arguments),this.multiline=!1,this.value="",this.customAutoCompletions={},this.updateValue=!1,this.errorMessage="",this.error=!1,this.noborder=!1,this.expandable=!1,this.readonly=!1,this.lineNumbersComp=new zt,this.restrictSingleLineComp=new zt,this.readOnlyComp=new zt}static get styles(){return[gj]}connectedCallback(){super.connectedCallback(),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this.view.destroy(),this.emit("nile-destroy")}convertToSingleLine(M){return M?M.replace(/\s+/g," ").trim():""}getLineNumbersExension(){return this.multiline?mT():[]}getReadOnlyExtension(){return bt.readOnly.of(this.readonly)}getSingleLineExtension(){return this.multiline?[]:bt.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}firstUpdated(){const M=this.lineNumbersComp.of(this.getLineNumbersExension()),N=this.readOnlyComp.of(this.getReadOnlyExtension()),D=this.restrictSingleLineComp.of(this.getSingleLineExtension()),i=vl.data.of({autocomplete:fl(this.customAutoCompletions)});let j=bt.create({doc:this.multiline?this.value:this.convertToSingleLine(this.value),extensions:[ql({highlightActiveLine:!1,foldGutter:!!this.multiline}),M,N,D,i,nn(),Fl(),Ne.theme(Kl),Ne.updateListener.of((M=>{M.docChanged&&this.emit("nile-change",{value:this.view.state.doc.toString()})})),Ne.domEventHandlers({focus:()=>this.dispatchEvent(new Event("nile-focus")),blur:()=>this.dispatchEvent(new Event("nile-blur"))})]});this.view=new Ne({state:j,parent:this.codeEditor})}singleLineMultiLineToggle(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.length,insert:this.multiline?this.value:this.convertToSingleLine(this.value)}})}updated(M){super.updated(M),M.has("value")&&this.updateValue&&this.singleLineMultiLineToggle(),M.has("multiline")&&(this.view.dispatch({effects:[this.lineNumbersComp.reconfigure(this.getLineNumbersExension()),this.restrictSingleLineComp.reconfigure(this.getSingleLineExtension())]}),this.singleLineMultiLineToggle()),M.has("readonly")&&this.view.dispatch({effects:this.readOnlyComp.reconfigure(this.getReadOnlyExtension())})}expandCodeEditor(){this.emit("nile-expand",{expand:!0})}restrictSingleLine(){return bt.transactionFilter.of((M=>M.newDoc.lines>1?[]:M))}render(){const M=!!this.errorMessage,N=!!this.error,D=!!this.noborder;return EM`<div
6678
6681
  part="code-editor-base"
6679
6682
  class=${uN({"code-mirror":!0,noborder:D,error:N||M,"code-mirror__singleline":!this.multiline})}
6680
6683
  >
@@ -6690,7 +6693,7 @@ const rN=Symbol.for(""),xN=M=>{if((null==M?void 0:M.r)===rN)return null==M?void
6690
6693
  <nile-form-error-message
6691
6694
  >${this.errorMessage}</nile-form-error-message
6692
6695
  >
6693
- `:""}`}},N([KM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),N([$M({type:Boolean,reflect:!0})],M.NileCodeEditor.prototype,"multiline",void 0),N([$M({type:String})],M.NileCodeEditor.prototype,"value",void 0),N([$M({type:String})],M.NileCodeEditor.prototype,"customAutoCompletions",void 0),N([$M({type:Boolean})],M.NileCodeEditor.prototype,"updateValue",void 0),N([$M({attribute:"error-message"})],M.NileCodeEditor.prototype,"errorMessage",void 0),N([$M({attribute:"error"})],M.NileCodeEditor.prototype,"error",void 0),N([$M({attribute:"noborder"})],M.NileCodeEditor.prototype,"noborder",void 0),N([$M({type:Boolean})],M.NileCodeEditor.prototype,"expandable",void 0),N([$M({type:Boolean})],M.NileCodeEditor.prototype,"readonly",void 0),N([hN(["value"],{waitUntilFirstUpdate:!0})],M.NileCodeEditor.prototype,"handleValueChange",null),M.NileCodeEditor=N([FM("nile-code-editor")],M.NileCodeEditor);const Mo=z`
6696
+ `:""}`}},N([KM(".code-mirror")],M.NileCodeEditor.prototype,"codeEditor",void 0),N([$M({type:Boolean,reflect:!0})],M.NileCodeEditor.prototype,"multiline",void 0),N([$M({type:String})],M.NileCodeEditor.prototype,"value",void 0),N([$M({type:String})],M.NileCodeEditor.prototype,"customAutoCompletions",void 0),N([$M({type:Boolean})],M.NileCodeEditor.prototype,"updateValue",void 0),N([$M({attribute:"error-message"})],M.NileCodeEditor.prototype,"errorMessage",void 0),N([$M({attribute:"error",type:Boolean})],M.NileCodeEditor.prototype,"error",void 0),N([$M({attribute:"noborder",type:Boolean})],M.NileCodeEditor.prototype,"noborder",void 0),N([$M({type:Boolean})],M.NileCodeEditor.prototype,"expandable",void 0),N([$M({type:Boolean,reflect:!0})],M.NileCodeEditor.prototype,"readonly",void 0),M.NileCodeEditor=N([FM("nile-code-editor")],M.NileCodeEditor);const Mo=z`
6694
6697
  :host {
6695
6698
  display: contents;
6696
6699