UNPKG

@gdquest/gd-exercise

Version:

Core package that handles logic for the GDExercise project.

2 lines 67.5 kB
import{a as ie,b as Ve,c as Ae,d as Ye,e as L,f as Ne,g as Xe,h as b}from"./chunk-FKEIQKC6.min.mjs";import"./chunk-2YCYAEJC.min.mjs";import{foldNodeProp as gt,foldInside as Qt,indentNodeProp as St,LRLanguage as bt,LanguageSupport as xt}from"@codemirror/language";var me=class s{constructor(e,t,i,r,o,n,l,a,h,u=0,f){this.p=e,this.stack=t,this.state=i,this.reducePos=r,this.pos=o,this.score=n,this.buffer=l,this.bufferBase=a,this.curContext=h,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new s(e,[],t,i,i,0,[],0,r?new se(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=e&65535,{parser:o}=this.p,n=o.dynamicPrecedence(r);if(n&&(this.score+=n),i==0){this.pushState(o.getGoto(this.state,r,!0),this.reducePos),r<o.minRepeatTerm&&this.storeNode(r,this.reducePos,this.reducePos,4,!0),this.reduceContext(r,this.reducePos);return}let l=this.stack.length-(i-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,h=this.reducePos-a;h>=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSize<h&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=h));let u=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-u;if(r<o.minRepeatTerm||e&131072){let O=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(r,a,O,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let O=this.stack[l-3];this.state=o.getGoto(O,r,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,i,r=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let n=this,l=this.buffer.length;if(l==0&&n.parent&&(l=n.bufferBase-n.parent.bufferBase,n=n.parent),l>0&&n.buffer[l-4]==0&&n.buffer[l-1]>-1){if(t==i)return;if(n.buffer[l-2]>=t){n.buffer[l-2]=i;return}}}if(!o||this.pos==i)this.buffer.push(e,t,i,r);else{let n=this.buffer.length;if(n>0&&this.buffer[n-4]!=0)for(;n>0&&this.buffer[n-2]>i;)this.buffer[n]=this.buffer[n-4],this.buffer[n+1]=this.buffer[n-3],this.buffer[n+2]=this.buffer[n-2],this.buffer[n+3]=this.buffer[n-1],n-=4,r>4&&(r-=4);this.buffer[n]=e,this.buffer[n+1]=t,this.buffer[n+2]=i,this.buffer[n+3]=r}}shift(e,t,i){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=i,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,i,4);else{let o=e,{parser:n}=this.p;(i>this.pos||t<=n.maxNode)&&(this.pos=i,n.stateFlag(o,1)||(this.reducePos=i)),this.pushState(o,r),this.shiftContext(t,r),t<=n.maxNode&&this.buffer.push(t,r,i,4)}}apply(e,t,i){e&65536?this.reduce(e):this.shift(e,t,i)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new s(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new ge(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if(!(i&65536))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let o=0,n;o<t.length;o+=2)(n=t[o+1])!=this.state&&this.p.parser.hasAction(n,e)&&r.push(t[o],n);if(this.stack.length<120)for(let o=0;r.length<8&&o<t.length;o+=2){let n=t[o+1];r.some((l,a)=>a&1&&l==n)||r.push(t[o],n)}t=r}let i=[];for(let r=0;r<t.length&&i.length<4;r+=2){let o=t[r+1];if(o==this.state)continue;let n=this.split();n.pushState(o,this.pos),n.storeNode(0,n.pos,n.pos,4,!0),n.shiftContext(t[r],this.pos),n.score-=200,i.push(n)}return i}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let i=t>>19,r=t&65535,o=this.stack.length-i*3;if(o<0||e.getGoto(this.stack[o],r,!1)<0){let n=this.findForcedReduction();if(n==null)return!1;t=n}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(r,o)=>{if(!t.includes(r))return t.push(r),e.allActions(r,n=>{if(!(n&393216))if(n&65536){let l=(n>>19)-o;if(l>1){let a=n&65535,h=this.stack.length-l*3;if(h>=0&&e.getGoto(this.stack[h],a,!1)>=0)return l<<19|65536|a}}else{let l=i(n,o+1);if(l!=null)return l}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new se(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},se=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ie;(function(s){s[s.Insert=200]="Insert",s[s.Delete=190]="Delete",s[s.Reduce=100]="Reduce",s[s.MaxNext=4]="MaxNext",s[s.MaxInsertStackDepth=300]="MaxInsertStackDepth",s[s.DampenInsertStackDepth=120]="DampenInsertStackDepth",s[s.MinBigReduction=2e3]="MinBigReduction"})(Ie||(Ie={}));var ge=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},Qe=class s{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new s(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new s(this.stack,this.pos,this.index)}};function Z(s,e=Uint16Array){if(typeof s!="string")return s;let t=null;for(let i=0,r=0;i<s.length;){let o=0;for(;;){let n=s.charCodeAt(i++),l=!1;if(n==126){o=65535;break}n>=92&&n--,n>=34&&n--;let a=n-32;if(a>=46&&(a-=46,l=!0),o+=a,l)break;o*=46}t?t[r++]=o:t=new e(o)}return t}var F=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Ee=new F,Se=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Ee,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,o=this.pos+e;for(;o<i.from;){if(!r)return null;let n=this.ranges[--r];o-=i.from-n.to,i=n}for(;t<0?o>i.to:o>=i.to;){if(r==this.ranges.length-1)return null;let n=this.ranges[++r];o+=n.from-i.to,i=n}return o}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,r;if(t>=0&&t<this.chunk.length)i=this.pos+e,r=this.chunk.charCodeAt(t);else{let o=this.resolveOffset(e,1);if(o==null)return-1;if(i=o,i>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let n=this.rangeIndex,l=this.range;for(;l.to<=i;)l=this.ranges[++n];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-i)),r=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),r}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=i}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Ee,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}},N=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Fe(this.data,e,t,this.id,i.data,i.tokenPrecTable)}};N.prototype.contextual=N.prototype.fallback=N.prototype.extend=!1;var be=class{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data=typeof e=="string"?Z(e):e}token(e,t){let i=e.pos,r=0;for(;;){let o=e.next<0,n=e.resolveOffset(1,1);if(Fe(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||r++,n==null)break;e.reset(n,e.token)}r&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r))}};be.prototype.contextual=N.prototype.fallback=N.prototype.extend=!1;var J=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function Fe(s,e,t,i,r,o){let n=0,l=1<<i,{dialect:a}=t.p.parser;e:for(;l&s[n];){let h=s[n+1];for(let d=n+3;d<h;d+=2)if((s[d+1]&l)>0){let m=s[d];if(a.allows(m)&&(e.token.value==-1||e.token.value==m||ct(m,e.token.value,r,o))){e.acceptToken(m);break}}let u=e.next,f=0,O=s[n+2];if(e.next<0&&O>f&&s[h+O*3-3]==65535&&s[h+O*3-3]==65535){n=s[h+O*3-1];continue e}for(;f<O;){let d=f+O>>1,m=h+d+(d<<1),V=s[m],W=s[m+1]||65536;if(u<V)O=d;else if(u>=W)f=d+1;else{n=s[m+2],e.advance();continue e}}break}}function qe(s,e,t){for(let i=e,r;(r=s[i])!=65535;i++)if(r==t)return i-e;return-1}function ct(s,e,t,i){let r=qe(t,i,e);return r<0||qe(t,i,s)<r}var U=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),de=null,Be;(function(s){s[s.Margin=25]="Margin"})(Be||(Be={}));function We(s,e,t){let i=s.cursor(Ye.IncludeAnonymous);for(i.moveTo(e);;)if(!(t<0?i.childBefore(e):i.childAfter(e)))for(;;){if((t<0?i.to<e:i.from>e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(s.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:s.length}}var xe=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?We(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?We(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let i=this.trees[t],r=this.index[t];if(r==i.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=i.children[r],n=this.start[t]+i.positions[r];if(n>e)return this.nextStart=n,null;if(o instanceof L){if(n==e){if(n<this.safeFrom)return null;let l=n+o.length;if(l<=this.safeTo){let a=o.prop(ie.lookAhead);if(!a||l+a<this.fragment.to)return o}}this.index[t]++,n+o.length>=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(n),this.index.push(0))}else this.index[t]++,this.nextStart=n+o.length}}},Pe=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new F)}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:o}=r,n=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let h=0;h<o.length;h++){if(!(1<<h&n))continue;let u=o[h],f=this.tokens[h];if(!(i&&!u.fallback)&&((u.contextual||f.start!=e.pos||f.mask!=n||f.context!=l)&&(this.updateCachedToken(f,u,e),f.mask=n,f.context=l),f.lookAhead>f.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let O=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!u.extend&&(i=f,t>O))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new F,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new F,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:o}=i.p;for(let n=0;n<o.specialized.length;n++)if(o.specialized[n]==e.value){let l=o.specializers[n](this.stream.read(e.start,e.end),i);if(l>=0&&i.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let o=0;o<r;o+=3)if(this.actions[o]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=i,r}addActions(e,t,i,r){let{state:o}=e,{parser:n}=e.p,{data:l}=n;for(let a=0;a<2;a++)for(let h=n.stateSlot(o,a?2:1);;h+=3){if(l[h]==65535)if(l[h+1]==1)h=_(l,h+2);else{r==0&&l[h+1]==2&&(r=this.putAction(_(l,h+2),t,i,r));break}l[h]==t&&(r=this.putAction(_(l,h+1),t,i,r))}return r}},De;(function(s){s[s.Distance=5]="Distance",s[s.MaxRemainingPerStep=3]="MaxRemainingPerStep",s[s.MinBufferLengthPrune=500]="MinBufferLengthPrune",s[s.ForceReduceLimit=10]="ForceReduceLimit",s[s.CutDepth=15e3]="CutDepth",s[s.CutTo=9e3]="CutTo",s[s.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",s[s.MaxStackCount=12]="MaxStackCount"})(De||(De={}));var ye=class{constructor(e,t,i,r){this.parser=e,this.input=t,this.ranges=r,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 Se(t,r),this.tokens=new Pe(e,this.stream),this.topTerm=e.top[1];let{from:o}=r[0];this.stacks=[me.start(this,e.top[0],o)],this.fragments=i.length&&this.stream.end-o>e.bufferLength*4?new xe(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],r,o;if(this.bigReductionCount>300&&e.length==1){let[n]=e;for(;n.forceReduce()&&n.stack.length&&n.stack[n.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let n=0;n<e.length;n++){let l=e[n];for(;;){if(this.tokens.mainToken=null,l.pos>t)i.push(l);else{if(this.advanceStack(l,i,e))continue;{r||(r=[],o=[]),r.push(l);let a=this.tokens.getMainToken(l);o.push(a.value,a.end)}}break}}if(!i.length){let n=r&&Ot(r);if(n)return this.stackToTree(n);if(this.parser.strict)throw U&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let n=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,o,i);if(n)return this.stackToTree(n.forceAll())}if(this.recovering){let n=this.recovering==1?1:this.recovering*3;if(i.length>n)for(i.sort((l,a)=>a.score-l.score);i.length>n;)i.pop();i.some(l=>l.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let n=0;n<i.length-1;n++){let l=i[n];for(let a=n+1;a<i.length;a++){let h=i[a];if(l.sameState(h)||l.buffer.length>500&&h.buffer.length>500)if((l.score-h.score||l.buffer.length-h.buffer.length)>0)i.splice(a--,1);else{i.splice(n--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let n=1;n<i.length;n++)i[n].pos<this.minStackPos&&(this.minStackPos=i[n].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,i){let r=e.pos,{parser:o}=this,n=U?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,u=h?e.curContext.hash:0;for(let f=this.fragments.nodeAt(r);f;){let O=this.parser.nodeSet.types[f.type.id]==f.type?o.getGoto(e.state,f.type.id):-1;if(O>-1&&f.length&&(!h||(f.prop(ie.contextHash)||0)==u))return e.useNode(f,O),U&&console.log(n+this.stackID(e)+` (via reuse of ${o.getName(f.type.id)})`),!0;if(!(f instanceof L)||f.children.length==0||f.positions[0]>0)break;let d=f.children[0];if(d instanceof L&&f.positions[0]==0)f=d;else break}}let l=o.stateSlot(e.state,4);if(l>0)return e.reduce(l),U&&console.log(n+this.stackID(e)+` (via always-reduce ${o.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let h=0;h<a.length;){let u=a[h++],f=a[h++],O=a[h++],d=h==a.length||!i,m=d?e:e.split();if(m.apply(u,f,O),U&&console.log(n+this.stackID(m)+` (via ${u&65536?`reduce of ${o.getName(u&65535)}`:"shift"} for ${o.getName(f)} @ ${r}${m==e?"":", split"})`),d)return!0;m.pos>r?t.push(m):i.push(m)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return Ge(e,t),!0}}runRecovery(e,t,i){let r=null,o=!1;for(let n=0;n<e.length;n++){let l=e[n],a=t[n<<1],h=t[(n<<1)+1],u=U?this.stackID(l)+" -> ":"";if(l.deadEnd&&(o||(o=!0,l.restart(),U&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,i))))continue;let f=l.split(),O=u;for(let d=0;f.forceReduce()&&d<10&&(U&&console.log(O+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,i));d++)U&&(O=this.stackID(f)+" -> ");for(let d of l.recoverByInsert(a))U&&console.log(u+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>l.pos?(h==l.pos&&(h++,a=0),l.recoverByDelete(a,h),U&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),Ge(l,i)):(!r||r.score<l.score)&&(r=l)}return r}stackToTree(e){return e.close(),L.build({buffer:Qe.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(de||(de=new WeakMap)).get(e);return t||de.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Ge(s,e){for(let t=0;t<e.length;t++){let i=e[t];if(i.pos==s.pos&&i.sameState(s)){e[t].score<s.score&&(e[t]=s);return}}e.push(s)}var ke=class{constructor(e,t,i){this.source=e,this.flags=t,this.disabled=i}allows(e){return!this.disabled||this.disabled[e]==0}},pe=s=>s,re=class{constructor(e){this.start=e.start,this.shift=e.shift||pe,this.reduce=e.reduce||pe,this.reuse=e.reuse||pe,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},ne=class s extends Ne{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let i=Object.keys(e.topRules).map(l=>e.topRules[l][1]),r=[];for(let l=0;l<t.length;l++)r.push([]);function o(l,a,h){r[l].push([a,a.deserialize(String(h))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=ie[a]);for(let h=1;h<l.length;){let u=l[h++];if(u>=0)o(u,a,l[h++]);else{let f=l[h+-u];for(let O=-u;O>0;O--)o(l[h++],a,f);h++}}}this.nodeSet=new Ae(t.map((l,a)=>Ve.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let n=Z(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(je),this.states=Z(e.states,Uint32Array),this.data=Z(e.stateData),this.goto=Z(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new N(n,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new ye(this,e,t,i);for(let o of this.wrappers)r=o(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let o=r[t+1];;){let n=r[o++],l=n&1,a=r[o++];if(l&&i)return a;for(let h=o+(n>>1);o<h;o++)if(r[o]==e)return a;if(l)return-1}}hasAction(e,t){let i=this.data;for(let r=0;r<2;r++)for(let o=this.stateSlot(e,r?2:1),n;;o+=3){if((n=i[o])==65535)if(i[o+1]==1)n=i[o=_(i,o+2)];else{if(i[o+1]==2)return _(i,o+2);break}if(n==t||n==0)return _(i,o+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,i=>i==t?!0:null)}allActions(e,t){let i=this.stateSlot(e,4),r=i?t(i):void 0;for(let o=this.stateSlot(e,1);r==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=_(this.data,o+2);else break;r=t(_(this.data,o+1))}return r}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=_(this.data,i+2);else break;if(!(this.data[i+2]&1)){let r=this.data[i+1];t.some((o,n)=>n&1&&o==r)||t.push(this.data[i],r)}}return t}configure(e){let t=Object.assign(Object.create(s.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let r=e.tokenizers.find(o=>o.from==i);return r?r.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,r)=>{let o=e.specializers.find(l=>l.from==i.external);if(!o)return i;let n=Object.assign(Object.assign({},i),{external:o.to});return t.specializers[r]=je(n),n})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let o of e.split(" ")){let n=t.indexOf(o);n>=0&&(i[n]=!0)}let r=null;for(let o=0;o<t.length;o++)if(!i[o])for(let n=this.dialects[t[o]],l;(l=this.data[n++])!=65535;)(r||(r=new Uint8Array(this.maxTerm+1)))[l]=1;return new ke(e,i,r)}static deserialize(e){return new s(e)}};function _(s,e){return s[e]|s[e+1]<<16}function Ot(s){let e=null;for(let t of s){let i=t.p.stoppedAt;(t.pos==t.p.stream.end||i!=null&&t.pos>i)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function je(s){if(s.external){let e=s.extend?1:0;return(t,i)=>s.external(t,i)<<1|e}return s.get}import{Annotation as si,StateEffect as ri,EditorSelection as ni,codePointAt as oi,codePointSize as li,fromCodePoint as ai,Facet as hi,combineConfig as fi,StateField as ui,Prec as ci,Text as Oi,MapMode as di,RangeValue as dt,RangeSet as pi,CharCategory as mi}from"@codemirror/state";import{Direction as Qi,logException as Si,showTooltip as bi,EditorView as xi,ViewPlugin as Pi,getTooltip as yi,Decoration as ki,WidgetType as Ti,keymap as wi}from"@codemirror/view";import{syntaxTree as pt,indentUnit as vi}from"@codemirror/language";function Me(s){let e=Object.keys(s).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function mt(s){let e=Object.create(null),t=Object.create(null);for(let{label:r}of s){e[r[0]]=!0;for(let o=1;o<r.length;o++)t[r[o]]=!0}let i=Me(e)+Me(t)+"*$";return[new RegExp("^"+i),new RegExp(i)]}function Le(s){let e=s.map(r=>typeof r=="string"?{label:r}:r),[t,i]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:mt(e);return r=>{let o=r.matchBefore(i);return o||r.explicit?{from:o?o.from:r.pos,options:e,validFor:t}:null}}function Ze(s,e){return t=>{for(let i=pt(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(s.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}var Je=new class extends dt{};Je.startSide=1;Je.endSide=-1;var $i=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);var tt=133,it=134,Pt=135,he=136,yt=137,kt=138,Tt=8,wt=11,zt=15,vt=57,$t=61,Ut=62,Rt=65,Ct=new Set([Rt,wt,$t,vt]),fe=` `.charCodeAt(0),st="\r".charCodeAt(0),rt=" ".charCodeAt(0),$e=" ".charCodeAt(0),nt="#".charCodeAt(0),ze=class{constructor(s,e){this.parent=s,this.depth=e,this.hash=(s?s.hash+s.hash<<8:0)+e+(e<<4)}},_t=new ze(null,0);function Te(s){return s===fe||s===st}var Vt=new J((s,e)=>{let t;if(s.next<0)s.acceptToken(kt);else if(e.context.depth<0)Te(s.next)&&s.acceptToken(yt,1);else if(((t=s.peek(-1))<0||Te(t))&&e.canShift(he)){let i=0;for(;s.next===rt||s.next===$e;)s.advance(),i++;(s.next===fe||s.next===st||s.next===nt)&&s.acceptToken(he,-i)}else Te(s.next)&&s.acceptToken(Pt,1)},{contextual:!0});function At(s){let e=0;for(let t=0;t<s.length;t++)e+=s.charCodeAt(t)===$e?8-e%8:1;return e}var Yt=new re({start:_t,reduce(s,e){return s.depth<0&&Ct.has(e)?s.parent:s},shift(s,e,t,i){switch(e){case tt:return new ze(s,At(i.read(i.pos,t.pos)));case it:return s.parent;case Tt:case zt:case Ut:return new ze(s,-1);default:return s}},hash(s){return s.hash}}),Nt=new J((s,e)=>{let t=s.peek(-1);if(t!==-1&&t!==fe)return;let i=0;for(;s.next===rt||s.next===$e;)s.advance(),i++;(s.next===fe||s.next===nt)&&e.canShift(he)?s.acceptToken(he,-i):i>e.context.depth?s.acceptToken(tt):i<e.context.depth&&s.acceptToken(it,-i)}),Xt=Xe({"for while if elif else return break continue pass assert await match case":b.controlKeyword,"in not and or is del":b.operatorKeyword,"func class class_name extends const var":b.definitionKeyword,"preload load":b.moduleKeyword,"as PI TAU INF NaN":b.keyword,True:b.bool,False:b.bool,Null:b.bool,Comment:b.lineComment,Number:b.number,String:b.string,UpdateOp:b.updateOperator,ArithOp:b.arithmeticOperator,BitOp:b.bitwiseOperator,CompareOp:b.compareOperator,AssignOp:b.definitionOperator,"ClassNode/Identifier ClassNode/ExtendsStatement/Identifier VariableNode/TypeCast/Type/Identifier":b.definition(b.className),"( )":b.paren,"[ ]":b.squareBracket,"{ }":b.brace,".":b.derefOperator,", ;":b.separator}),It={__proto__:null,assert:12,PI:52,TAU:54,INF:56,NaN:58,var:64,const:74,await:82,in:112,as:118,func:136,preload:150,is:164,class_name:174,extends:178,signal:182,pass:186,return:190,class:200,if:208,elif:212,else:216,for:220,match:224,while:240},Et=ne.deserialize({version:14,states:"LQQ`QUOOP#rOQOOO%bQYO'#CiO%lQUO'#ChO'bQUO'#CgO'iQYO'#FcOOQQ'#Cz'#CzOOQQ'#Cq'#CqO)lQUO'#CnO)qQUO'#E{O*YQUO'#CmOOQQ'#Fd'#FdO+uQYO'#EbO,PQUO'#EbO,[QUO'#DkO-{QUO'#DnO%qQUO'#DoOOQQ'#Dz'#DzO.QQUO'#ESOOQQ'#Fc'#FcOOQQ'#Fa'#FaO/qQUO'#C_OOQR'#C_'#C_O/yQUO'#EfO,SQUO'#EbOOQR'#F`'#F`OOQR'#Ey'#EyQ`QUOOOOQQ'#Cu'#CuO0XQUO'#CmO0^QUO'#DQO.QQUO'#DUO0cQUO'#EeO0hQUO'#DxO0hQUO'#C`O0mQUO'#EUO0rQUO'#EWO0wQUO'#EYOOQQ'#E['#E[O.QQUO'#E^O0|QUO'#EcO,[QUO'#EgO1RQUO'#EmO1WQUO'#EoO,[QUO'#EwP1]OUO'#F_POOO)CAR)CARO1kQUO'#C}OOQQ,59n,59nO.QQUO,59WOOQQ,5:R,5:RO1pQUO'#CeO1wQUO'#EzO1|QYO,59SOOQQ,59R,59RO4SQUO,59ROOQQ'#E{'#E{O4XQUO'#CmO5nQYO'#FbO5{QUO'#ClO6QQUO'#DqO6VQUO,59RO,[QUO,5:VO6^QUO,59YOOQR,5:|,5:|OOQQ-E8y-E8yO6xQUO,59XO6}QUO,59lO7SQUO,5:}O7XQUO,5;PO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO.QQUO,59rO%qQUO,5:hO.QQUO,59rO7^QUO,59rO1kQUO,5:SO7cQUO,5:kO8rQYO'#DmO8|QUO'#FiO9UQUO,5:VO9ZQYO,5:YO;WQYO,5:ZOOQQ,5:n,5:nO;sQUO'#FRO<QQUO,5:zOOQR,58y,58yOOQQ'#FS'#FSO<]QUO,5;QOOQQ,5;Q,5;QO,[QUO'#EiO<kQUO'#EkOOQR-E8w-E8wO<pQUO,59XO=OQUO,59lOOQQ,59p,59pO6QQUO,5;POOQQ,5:d,5:dOOQQ,58z,58zOOQQ,5:p,5:pOOQQ,5:r,5:rO=^QUO,5:tO=lQYO,5:xO=yQUO,5:}O>RQYO,5;RO>YQUO,5;XO>_QUO,5;ZO>RQYO,5;cPOOO,5;y,5;yP>dOQO,5;yP>lOUO,5;yOOQQ'#DP'#DPOOQQ,59i,59iO>wQYO1G.rOOQQ,59P,59PO?XQUO,59POOQQ'#Ci'#CiOOQQ,5;f,5;fOOQQ-E8x-E8xOOQQ1G.m1G.mO?^QUO,5;|O?hQUO,5;|O?sQUO'#DsO?{QbO'#FnO<kQUO,5:]O@TQUO1G.mO@YQUO1G/qOAPQUO'#CpOOQQ1G.t1G.tOAWQUO1G.sOAfQUO1G/WO=yQUO1G0iO6QQUO1G0kOOQQ1G/^1G/^OCUQYO1G/^OC]QYO1G/^ODtQYO1G/^OF]QYO1G/^OFdQYO1G/^OG{QYO1G/^OHSQYO1G/^OIhQYO1G/^OIrQYO1G/^OI|QYO1G0SOJuQYO1G/^O.QQUO1G/^OOQQ1G/n1G/nOOQQ'#ER'#EROOQQ1G0V1G0VO%qQUO,5:XOKlQUO,5<TOKsQUO,5<TOOQQ1G/q1G/qOK{QUO'#FOOLQQYO1G/tOOQQ1G/u1G/uOOQQ,5;m,5;mOOQQ-E9P-E9POOQR1G0f1G0fOOQQ-E9Q-E9QOOQQ1G0l1G0lO>RQYO,5;TOM}QUO'#DvOOQQ,5;V,5;VOOQQ1G.s1G.sOOQQ1G/W1G/WO<kQUO1G0kOOQQ1G0`1G0`OOQQ1G0i1G0iO<kQUO1G0iOOQQ1G0m1G0mO,[QUO1G0sONUQUO1G0uOOQQ1G0}1G0}POOO1G1e1G1ePNZOQO1G1eOOQQ1G.k1G.kONcQYO,5;lONpQUO1G1hOOQQ-E9O-E9OONzQUO'#DSO! YQUO'#FoO! eQUO'#FoOOQQ,5:_,5:_O! mQUO,5:_O1kQUO'#DuOOQQ,5<Y,5<YOOQQ1G/w1G/wOOQQ7+$X7+$XOOQQ7+%]7+%]O! rQUO'#FeOOQQ,59[,59[O! zQUO,59[OOQQ7+$_7+$_OOQQ7+$r7+$rOOQQ7+&T7+&TO<kQUO7+&TO<kQUO7+&VO.QQUO7+%nO!!qQYO7+$xO!#hQYO1G/sOOQQ,5;i,5;iO!#rQUO1G1oOOQQ-E8{-E8{OOQQ,5;j,5;jOOQQ-E8|-E8|OOQQ1G0o1G0oO!#yQYO,5:bO!$TQVO,5:bOOQQ7+&V7+&VO>RQYO7+&_O!$YQVO7+&aPOOO7+'P7+'PP%qQUO'#FQO%qQUO,5:`O!$_QUO,5<ZO!$gQUO,5<ZOOQQ1G/y1G/yOOQQ,5:a,5:aO!$oQUO,5<PO!$vQUO,5<POOQQ1G.v1G.vOOQQ<<Io<<IoOOQQ<<Iq<<IqO!%OQYO<<IYP,[QUO'#E}OOQR1G/|1G/|O`QUO'#DwOOQQ<<Iy<<IyO!&cQUO<<I{O!&pQYO1G/zO!&zQUO,5;kOOQQ,5;k,5;kO!'VQUO1G1uOOQQ-E8}-E8}OOQQ,5;h,5;hO!'_QUO1G1kOOQQ-E8z-E8zO!'fQVO,5:cOOQQ'#Et'#EtOOQQ'#Eu'#EuOOQQ'#Ev'#EvOOQQ'#Er'#ErO<kQUO'#EqOOQR'#FT'#FTO!'pQVOAN?gO!(TQUO'#EsP!(YQUO'#FPP@_QUO'#E|OOQR1G/}1G/}OOQR,5;],5;]OOQR-E9R-E9ROOQQG25RG25ROOQQ,5;_,5;_O!)oQYO'#CiO!)|QYO'#CiO%qQUO'#ESO,[QUO'#ESO%qQUO'#DUO,[QUO'#DUO%qQUO,59WO,[QUO,59WO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO%qQUO,59rO,[QUO,59rO!*TQYO1G.rO!+oQYO1G.rO!,PQYO1G/^O!,|QYO1G/^O!-pQYO1G/^O!.mQYO1G/^O!/aQYO1G/^O!0^QYO1G/^O!1QQYO1G/^O!1}QYO1G/^O!2qQYO1G/^O!3nQYO1G/^O!4bQYO1G/^O!5_QYO1G/^O!6RQYO1G/^O!7OQYO1G/^O!9VQYO1G/^O!:kQYO1G/^O!:uQYO1G/^O!;PQYO1G/^O!;ZQYO1G/^O!<WQYO1G/^O%qQUO1G/^O,[QUO1G/^O%qQUO7+%nO,[QUO7+%nO!<zQYO7+$xO!=wQYO7+$xO!?oQYO<<IYO!@YQYO<<IYO!@jQYO'#CiO!AQQUO'#ClO!AVQUO'#ClO!A[QUO,59rO!AaQUO,59rO!AfQYO1G0SO!AmQYO1G0SO%qQUO,5:hO%qQUO,5:h",stateData:"!Bb~OPOS$QOS#}OS#|PQ~OTQOUrOW`O_SOcWOfVOgVOhVOjlOklOllOmlOpmOunOyoO!XbO!`^O!fpO!mqO!oaO!wbO!ysO!{tO!}uO#PvO#RwO#WxO#[yO#bzO#d{O#l|O$YVO$ZVO$[UO$__O$`_O~O#|}O~OW!TOr!POw!RO^]X{!dX|!dX}!dX!O!dX!P!dX!Q!dX!R!dX!S!dX!T!dX!U!dX!V!dX!W!dX!X!dX!Y!dX!]!dX!q!dX!t!dX#{!dX$O!dX~O#{vX$OvX~P#wO^!UO~OT'}OW`O_SOcWOfVOgVOhVOjlOklOllOmlOpmOunOy&sO!X&qO!`^O!f!^O!mqO!oaO!w&qO$YVO$ZVO$[UO$__O$`_O~OY!WO~P%qOW!TO_!_O!`!`Ow$VX{$VX|$VX}$VX!O$VX!P$VX!Q$VX!R$VX!S$VX!T$VX!U$VX!V$VX!W$VX!X$VX!Y$VX!]$VX!q$VX!t$VX#{$VX$O$VXY$VXo$VXr$VX$^$VXV$VX#T$VX!r$VX!^$VX~OT!aO~O#{!bO$O!bOc#oXp#oXu#oX!f#oX#W#oX~OcWOp!dOu!eO!f!gO#W!fO~Ow!RO{!hO|!iO}!jO!O!kO!P!lO!Q!mO!R!nO!S!oO!T!pO!U!pO!V!qO!W!qO!X!tO!Y!sO!]!uO!q!rO!t!vO~O#{!bO$O!bO~P*kOw!RO#{!bO$O!bO~OT&oOW`O_SOcWOfVOgVOhVOjlOklOllOmlOpmOunOy&tO!X&rO!`^O!f!^O!mqO!oaO!w&rO$YVO$ZVO$[UO$__O$`_O~OT!zO~OT&pOW`O_SOcWOfVOgVOhVOjlOklOllOmlOpmOunOyoO!XbO!`^O!f!^O!mqO!oaO!wbO$YVO$ZVO$[UO$__O$`_O~O#T!}O#{#PO~O#^#TO#`#UO#{#YX$O#YX~OT#WO~OT#XO~OT#ZO~OW!TO~OT#^O~OT#_O~OT#`O~OT#bO~OT#dO~OT#eO~OP#hO#{#gO$O#gO$Q#iO~OT#jO~OV#mO~P%qOT#oO~O^!UOW[a_[aw[a{[a|[a}[a!O[a!P[a!Q[a!R[a!S[a!T[a!U[a!V[a!W[a!X[a!Y[a!][a!`[a!q[a!t[a#{[a$O[aY[ao[ar[a$^[aV[a#T[a!r[a!^[a~OY#rO~OcWOp!dOu!eO~Ow&uO{&wO|&yO}&{O!O&}O!P'PO!Q'RO!R'TO!S'VO!T'XO!U'XO!V'ZO!W'ZO!X(QO!Y']O!]!uO!q(UO!t!vO~Oo#sOY$UXV$UX~P4dOw&uO~OW#uO~OY#rO~P%qOW#zOcbapbauba!fba#Wba#{ba$Oba~OT#|O~OT#}O~OT$OO~OT$PO~O!Y$^O~OT$`O~Ow&vO{&xO|&zO}&|O!O'OO!P'QO!Q'SO!R'UO!S'WO!T'YO!U'YO!V'[O!W'[O!X(RO!Y'^O!]!uO!q(VO!t!vO~Or$bO$^$bO~P7hOo$cO!^$]X~O!^$eO~O$a$fOw!ba{!ba|!ba}!ba!O!ba!P!ba!Q!ba!R!ba!S!ba!T!ba!U!ba!V!ba!W!ba!X!ba!Y!ba!]!ba!q!ba!t!ba#{!ba$O!baY!bao!bar!ba$^!baV!ba#T!ba!r!ba!^!ba~OV$hO~P4dOUrO!ysO!{tO!}uO#PvO#RwO~O#T#uX#{#uX$O#uX~P;_O#T!}O#{$kO$O$kO~O#^#TO#`#UO#{#Ya$O#Ya~Or$oO~Or!POwaa#{aa$Oaa~Or!POwta#{ta$Ota~OW!TO#T!|a#{!|a$O!|a~O#T#Qa#{#Qa$O#Qa~P*kOr$oO!{tO~Or$oO~P7hO!Y$xO~Or$yO~O#{${O$O${O~OP$|O#{${O$O${O~Ow`i#{`i$O`i#T`i~P*nOV$}O~OY$UaV$Ua~P%qOo%POY$UaV$Ua~OT%ROV%UO~O$d%WOr$bX~OY%ZO~O!^%[O~OfVOgVOhVOjlOklOllOmlO$YVO$ZVO$[UO~OV%^O~P@_Or!POwai#{ai$Oai~Or!POwti#{ti$Oti~O{!hOwzi}zi!Ozi!Pzi!Qzi!Rzi!Szi!Tzi!Uzi!Vzi!Wzi!Xzi!Yzi!]zi!qzi!tzi#{zi$Ozi#Tzi~O|zi~PAtO|!iO~PAtO{!hO|!iO}!jOwzi!Pzi!Qzi!Rzi!Szi!Tzi!Uzi!Vzi!Wzi!Xzi!Yzi!]zi!qzi!tzi#{zi$Ozi#Tzi~O!Ozi~PCdO{!hO|!iO}!jO!O!kO!R!nO!S!oOwzi!Pzi!Tzi!Uzi!Vzi!Wzi!Xzi!Yzi!]zi!qzi!tzi#{zi$Ozi#Tzi~O!Q!mO~PD{O!Qzi~PD{O{!hO|!iO}!jO!O!kOwzi!Pzi!Qzi!Rzi!Tzi!Uzi!Vzi!Wzi!Xzi!Yzi!]zi!qzi!tzi#{zi$Ozi#Tzi~O!S!oO~PFkO!O!kO~PCdO{!hO|!iO}!jO!O!kO!P!lO!Q!mO!R!nO!S!oO!X!tO!Y!sO!t!vOwzi!Vzi!Wzi!]zi!qzi#{zi$Ozi#Tzi~O!Tzi!Uzi~PHZO!T!pO!U!pO~PHZO!r%eO~P4dOwzi!Tzi!Uzi!Vzi!Wzi!Xzi!Yzi!]zi!qzi!tzi~O{!hO|!iO}!jO!O!kO!P!lO!Q!mO!R!nO!S!oO#{zi$Ozi#Tzi~PJTO!^$]a~P,[Oo%iO!^$]a~OT%kO~O$a$fOw!bi{!bi|!bi}!bi!O!bi!P!bi!Q!bi!R!bi!S!bi!T!bi!U!bi!V!bi!W!bi!X!bi!Y!bi!]!bi!q!bi!t!bi#{!bi$O!biY!bio!bir!bi$^!biV!bi#T!bi!r!bi!^!bi~O#{%oO~P.QO#{%rO~O#{%sO$O%sO~OY#tao#taV#ta~P4dOY$UiV$Ui~P%qOr!POVvXovXwvX~Oo%vOw%uOV$cX~Oo%vOV$cX~OV%xO~Oo%zOV$XX~OV%|O~Owzq!Tzq!Uzq!Vzq!Wzq!Xzq!Yzq!]zq!qzq!tzq~O{!hO|!iO}!jO!O!kO!P!lO!Q!mO!R!nO!S!oO#{zq$Ozq#Tzq~P!!POo!ai!^!ai~P4dO!^$]i~P,[O#{&RO$O&RO~P*kO#y&SO~O#y&UO~OT%ROV$ca~Oo&YOV$ca~OV$Xa~P@_Oo&]OV$Xa~O{!hO|!iO}!jO!O!kO!P!lO!Q!mO!R!nO!S!oO!T!pO!U!pO!V!qO!W!qO!X!tO!Y!sO!q!rO!t!vOw!py!]!py#{!py$O!py#T!py~OT&`Op&gO$e&bO~P@_OV!hio!hi~P4dOw%uOV#sao#sa~OT%ROV$ci~OV$Xi~P@_O#z&jO$O&jO~P`OT&`Op&gO#z&mO$O&mO$e&bO~P@_OT&nO~OT%RO~OW!TOr!PO^]X{!dX|!dX}!dX!O!dX!P!dX!Q!dX!R!dX!S!dX!T!dX!U!dX!V!dX!W!dX!X!dX!Y!dX!]!dX!q!dX!t!dX~Ow&vOr!dX$^!dX~P!(_O#T!dX~P#wOY`io`iw`iV`i!r`i!^`i~P4gO{&xO|&zO}&|O!O'OO!P'QO!Q'SO!R'UO!S'WO!T'YO!U'YO!V'[O!W'[O!X(RO!Y'^O!q(VO!t!vO~O!]!uOr`iw`i$^`i~P!*kO{&wOYziozi|zi}zi!Ozi!Pzi!Qzi!Rzi!SziVzi!rzi!^zi~PJTO{&xOrzi|zi}zi!Ozi!Pzi!Qzi!Rzi!Szi$^zi~PJTO{&wO|&yOYziozi}zi!Ozi!Pzi!Qzi!Rzi!SziVzi!rzi!^zi~PJTO{&xO|&zOrzi}zi!Ozi!Pzi!Qzi!Rzi!Szi$^zi~PJTO{&wO|&yO}&{OYziozi!Ozi!Pzi!Qzi!Rzi!SziVzi!rzi!^zi~PJTO{&xO|&zO}&|Orzi!Ozi!Pzi!Qzi!Rzi!Szi$^zi~PJTO{&wO|&yO}&{O!O&}O!Q'RO!R'TO!S'VOYziozi!PziVzi!rzi!^zi~PJTO{&xO|&zO}&|O!O'OO!Q'SO!R'UO!S'WOrzi!Pzi$^zi~PJTO{&wO|&yO}&{O!O&}O!R'TO!S'VOYziozi!Pzi!QziVzi!rzi!^zi~PJTO{&xO|&zO}&|O!O'OO!R'UO!S'WOrzi!Pzi!Qzi$^zi~PJTO{&wO|&yO}&{O!O&}O!S'VOYziozi!Pzi!Qzi!RziVzi!rzi!^zi~PJTO{&xO|&zO}&|O!O'OO!S'WOrzi!Pzi!Qzi!Rzi$^zi~PJTO{&wO|&yO}&{O!O&}OYziozi!Pzi!Qzi!Rzi!SziVzi!rzi!^zi~PJTO{&xO|&zO}&|O!O'OOrzi!Pzi!Qzi!Rzi!Szi$^zi~PJTO{&wO|&yO}&{O!O&}O!P'PO!Q'RO!R'TO!S'VO!X(QO!Y']O!t!vOYzioziwzi!Vzi!Wzi!]zi!qziVzi!rzi!^zi~O!Tzi!Uzi~P!7rO{&xO|&zO}&|O!O'OO!P'QO!Q'SO!R'UO!S'WO!X(RO!Y'^O!t!vOrziwzi!Vzi!Wzi!]zi!qzi$^zi~O!Tzi!Uzi~P!9aO!T'XO!U'XO~P!7rO!T'YO!U'YO~P!9aO{&wO|&yO}&{O!O&}O!P'PO!Q'RO!R'TO!S'VOYzioziVzi!rzi!^zi~PJTO{&xO|&zO}&|O!O'OO!P'QO!Q'SO!R'UO!S'WOrzi$^zi~PJTO{&wO|&yO}&{O!O&}O!P'PO!Q'RO!R'TO!S'VOYzqozqVzq!rzq!^zq~P!!PO{&xO|&zO}&|O!O'OO!P'QO!Q'SO!R'UO!S'WOrzq$^zq~P!!PO{&wO|&yO}&{O!O&}O!P'PO!Q'RO!R'TO!S'VO!T'XO!U'XO!V'ZO!W'ZO!X(QO!Y']O!q(UO!t!vO~OY!pyo!pyw!py!]!pyV!py!r!py!^!py~P!>kOr!pyw!py!]!py$^!py~P!*kOw&uOY!dXo!dXV!dX!r!dX!^!dX~P!(_Ow&vO~Ow!RO~O!Y'uO~O!Y'vO~O!r'wO~P4dO!r'xO~P4dO$Y$Zf!T!V!Xgh$[!o$eT^$a$^$ar!wr{|}!q}!rw!r~",goto:"@q$dPPP$e$kPPPP$rP%S&s(dPP%S*W+wP-l-oPPP/lPPPP/lPP1cP1v*WP2PP%SP%SPPPPPPPPPPPPPP%S%SPP%SP3x%S%S%S%SP4R4W4`4c5Y%SP%SP%SPP%SP5]%SP$kP5`P$kP$kP$kP5mP$e5sP5s5s5yP6PP6TP5sP5sP6Z6_6c6c6c6c5sP6g6q6w8n8t8z9Q9X9_9e9kPPPPPPPPP9q9t9z:T:^>e@[PPP@_PPPP@e@nXiOk&S&_ZdOk!}&S&_Y!SQT&o&p'}Q#[qQ#]rR$t#`$]cOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(V$]TOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(V$[ROS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VR#p!U$]ZOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VWXOk&S&_$X!YSY^`bowy|!R!T!Z!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VR#{!a$[cOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VQ%]#zU&[%z&]&iT&a&U&f$iVOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s#z$^$b$c$o$x%P%e%i%t%u%z&Q&S&U&]&_&f&i&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VY!QQ%R&o&p'}Q$q#WQ$r#XQ%`#|R%a#}Q#k!PQ$_!uR%y%W$[ZOS^`bkowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&S&_&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VQ%S#uV&W%v&Y&hS!x^!`V%h$c%i&QV#v!^#Z$PQ%T#uV&X%v&Y&hR%X#vQ$p#UQ$u#bQ$w#cQ$z#fQ%Y#wS%b$O$vQ%m$nQ%p$sQ%}%cQ&O%dQ&T%qR&k&dR&R%oR$a!vYdOk!}&S&_Q$v#bR%c$OXfOk&S&_XhOk&S&_XgOk&S&_T#Qg#RQ#SgR$m#RT&e&U&fT&d&U&fT&c&U&fQkOS#Vk&_R&_&SQ!VRR#q!VWYOk&S&_$S!ZS^`bowy|!R!T!_!`!h!i!j!k!l!m!n!o!p!q!r!s#T#s$^$b$c$o$x%P%e%i%t%u&Q&q&r&s&t&u&v&w&x&y&z&{&|&}'O'P'Q'R'S'T'U'V'W'X'Y'Z'[']'^'u'v'w'x(U(VT!cY!ZQ%{%]R&^%{Q$d!xR%j$dQ$g!zR%l$gS%w%S%TR&Z%wQ#t![R%Q#tQ#OeR$j#OQ#RgR$l#RQ&f&UR&l&fR!OPXjOk&S&_WeOk&S&_R$i!}Q!XSQ#n!TR#x!_W[Ok&S&_U![S!T!_Y!w^!`$c%i&QQ!{`U!|b&q&rU#Yo&s&tQ#awQ#cyQ#f|Q#l!RU$Q!h&w&xQ$R!iQ$S!jQ$T!kQ$U!lQ$V!mQ$W!nQ$X!oQ$Y!pQ$Z!qQ$[!rQ$]!sQ$n#TU%O#s%P%tQ%f$^Q%g$bQ%n$oQ%q$xQ&P%eQ&V%uQ'_&uQ'`&vQ'a&yQ'b&zQ'c&{Q'd&|Q'e&}Q'f'OQ'g'PQ'h'QQ'i'RQ'j'SQ'k'TQ'l'UQ'm'VQ'n'WQ'o'XQ'p'YQ'q'ZQ'r'[Q's']Q't'^Q'y'uQ'z'vQ'{'wQ'|'xQ(S(UR(T(VW]Ok&S&_!Y!]S`!T!_!r#s$b%P%t%u&q&s&u&w&y&{&}'P'R'T'V'X'Z']'u'w(U(V!S(O^y|!`#T$c$x%i&Q&r&t&v&x&z&|'O'Q'S'U'W'Y'['^'v'xu(Pbow!R!h!i!j!k!l!m!n!o!p!q!s$^$o%eR%_#zQ!y^R#y!`Q#w!^Q$s#ZR%d$PR%V#u",nodeNames:"\u26A0 Comment Script SimpleStatement AssertNode Identifier assert ) ( CallParams ] ArrayExpressionNode SubscriptExpressionNode VariableName . [ AssignmentExpressionNode VariableNode AnnotationNode @ CallParams LiteralExpressionNode True False Null BuiltinConstants PI TAU INF NaN String , var TypeCast : Type ConstantNode const ParameterNode AssignOp AwaitExpressionNode await BinaryOperatorExpressionNode ArithOp ArithOp ArithOp BitOp CompareOp BitOp BitOp BitOp AndOp LogicOp OrOp LogicOp NotOp in CallExpressionNode CastExpressionNode as } DictionaryExpressionNode { DictionaryEntry GetNodeExpressionNode GroupedExpressionNode IdentifierExpressionNode LambdaExpressionNode func CallParams AssignmentExpressionNode FunctionReturnType Body SuiteNode PreloadExpressionNode preload SelfExpressionNode SelfToken TernaryOperatorExpressionNode TernaryOp TernaryOp TypeTestExpressionNode is ClassName UnaryOperatorNode ArithOp ClassNameStatement class_name ExtendsStatement extends SignalStatement signal PassStatement pass ReturnNode return StatementGroup ; CompoundStatement ClassNode class FunctionNode IfNode IfClause if ElifClause elif ElseClause else ForNode for MatchNode match MatchBranchNode PatternNode VarPatternNode IdentifierPatternNode LiteralPatternNode WildcardPatternNode WhileNode while",maxTerm:159,context:Yt,nodeProps:[["group",-2,3,98,"Statement",-18,11,12,16,21,40,42,57,58,61,64,65,66,67,74,76,78,81,84,"ExpressionNode",-3,17,36,38,"AssignableNode"],["openedBy",7,"("],["closedBy",8,")"]],propSources:[Xt],skippedNodes:[0,1],repeatNodeCount:11,tokenData:"@V~R|XY#{pq#{qr$Wrs$est(Vtu(quv(vvw(}wx)[xy,|yz-Rz{-W{|-e|}-l}!O-q!O!P.Q!P!Q.y!Q!R/Q!R![1a![!]1u!]!^1|!^!_2R!_!`2c!`!a2m!a!b2x!b!c2}!c!}3S!}#O3e#P#Q3j#Q#R3o#R#S3t#T#U4X#U#Y3S#Y#Z5l#Z#b3S#b#c7|#c#d:z#d#g3S#g#h;v#h#i=r#i#o3S#o#p?n#p#q?s#q#r@Q~$QQ$Q~XY#{pq#{R$]P!wP!_!`$`Q$eO!PQ~$hXOY$eZ]$e^r$ers%Ts#O$e#O#P%u#P;'S$e;'S;=`(P<%lO$e~%YX$[~OY$eZ]$e^r$ers%Ts#O$e#O#P%u#P;'S$e;'S;=`(P<%lO$e~%xVO#i$e#i#j&_#j#l$e#l#m&z#m;'S$e;'S;=`(P<%lO$e~&bS!Q![&n!c!i&n#T#Z&n#o#p'd~&qR!Q![&z!c!i&z#T#Z&z~&}R!Q!['W!c!i'W#T#Z'W~'ZR!Q![$e!c!i$e#T#Z$e~'gR!Q!['p!c!i'p#T#Z'p~'sS!Q!['p!c!i'p#T#Z'p#q#r$e~(SP;=`<%l$e~([TP~OY(VZ](V^;'S(V;'S;=`(k<%lO(V~(nP;=`<%l(V~(vO$_~R(}O$`P|Q~)SP!S~vw)V~)[O!U~~)_XOY)[Z])[^w)[wx)zx#O)[#O#P*l#P;'S)[;'S;=`,v<%lO)[~*PX$[~OY)[Z])[^w)[wx)zx#O)[#O#P*l#P;'S)[;'S;=`,v<%lO)[~*oVO#i)[#i#j+U#j#l)[#l#m+q#m;'S)[;'S;=`,v<%lO)[~+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![)[!c!i)[#T#Z)[~,^R!Q![,g!c!i,g#T#Z,g~,jS!Q![,g!c!i,g#T#Z,g#q#r)[~,yP;=`<%l)[~-ROW~~-WOV~~-]P|Qz{-`~-eO{~R-lO!wP}Q~-qOo~V-xP!wP}Q!`!a-{S.QO$dS~.VP^~!Q![.Y~._Q$Z~!g!h.e#X#Y.e~.hQ{|.n}!O.n~.qP!Q![.t~.yO$Z~~/QO$a~|Q~/VX$Y~!O!P/r!Q![/x!d!e0Z!g!h.e!z!{0r#R#S0T#U#V0Z#X#Y.e#l#m0r~/uP!Q![.Y~/}Q$Y~!Q![/x#R#S0T~0WP!Q![/x~0^Q!Q!R0d!R!S0d~0iR$Y~!Q!R0d!R!S0d#R#S0Z~0uR!Q![1O!c!i1O#T#Z1O~1TS$Y~!Q![1O!c!i1O#R#S0r#T#Z1O~1fT$Y~!O!P/r!Q![/x!g!h.e#R#S0T#X#Y.e~1|Or~!r~~2RO#T~~2WQ!PQ!^!_2^!_!`$`~2cO!O~~2jP$^~w~!_!`$`~2rQ!PQ!_!`$`!`!a2^~2}O!q~~3SOc~~3XST~!Q![3S!c!}3S#R#S3S#T#o3S~3jO_~~3oOY~~3tO!R~~3{S$e~T~!Q![3S!c!}3S#R#S3S#T#o3S~4^UT~!Q![3S!c!}3S#R#S3S#T#b3S#b#c4p#c#o3S~4uUT~!Q![3S!c!}3S#R#S3S#T#W3S#W#X5X#X#o3S~5`S!T~T~!Q![3S!c!}3S#R#S3S#T#o3S~5qTT~!Q![3S!c!}3S#R#S3S#T#U6Q#U#o3S~6VUT~!Q![3S!c!}3S#R#S3S#T#`3S#`#a6i#a#o3S~6nUT~!Q![3S!c!}3S#R#S3S#T#g3S#g#h7Q#h#o3S~7VUT~!Q![3S!c!}3S#R#S3S#T#X3S#X#Y7i#Y#o3S~7pSg~T~!Q![3S!c!}3S#R#S3S#T#o3S~8RWT~!Q![3S!c!}3S#R#S3S#T#c3S#c#d8k#d#i3S#i#j9g#j#o3S~8pUT~!Q![3S!c!}3S#R#S3S#T#h3S#h#i9S#i#o3S~9ZS!X~T~!Q![3S!c!}3S#R#S3S#T#o3S~9lUT~!Q![3S!c!}3S#R#S3S#T#`3S#`#a:O#a#o3S~:TUT~!Q![3S!c!}3S#R#S3S#T#`3S#`#a:g#a#o3S~:nSh~T~!Q![3S!c!}3S#R#S3S#T#o3S~;PUT~!Q![3S!c!}3S#R#S3S#T#f3S#f#g;c#g#o3S~;jS!V~T~!Q![3S!c!}3S#R#S3S#T#o3S~;{UT~!Q![3S!c!}3S#R#S3S#T#X3S#X#Y<_#Y#o3S~<dUT~!Q![3S!c!}3S#R#S3S#T#`3S#`#a<v#a#o3S~<{UT~!Q![3S!c!}3S#R#S3S#T#Y3S#Y#Z=_#Z#o3S~=fS!o~T~!Q![3S!c!}3S#R#S3S#T#o3S~=wUT~!Q![3S!c!}3S#R#S3S#T#f3S#f#g>Z#g#o3S~>`UT~!Q![3S!c!}3S#R#S3S#T#i3S#i#j>r#j#o3S~>wUT~!Q![3S!c!}3S#R#S3S#T#X3S#X#Y?Z#Y#o3S~?bSf~T~!Q![3S!c!}3S#R#S3S#T#o3S~?sO!`~~?xP!Q~#p#q?{~@QO!W~~@VO!^~",tokenizers:[Nt,Vt,0,1,2],topRules:{Script:[0,2]},specialized:[{term:5,get:s=>It[s]||-1}],tokenPrec:3624}),qt=1024,Bt=0,y=class{constructor(s={}){this.id=Bt++,this.perNode=!!s.perNode,this.deserialize=s.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(s){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof s!="function"&&(s=q.match(s)),e=>{let t=s(e);return t===void 0?null:[this,t]}}};y.closedBy=new y({deserialize:s=>s.split(" ")});y.openedBy=new y({deserialize:s=>s.split(" ")});y.group=new y({deserialize:s=>s.split(" ")});y.contextHash=new y({perNode:!0});y.lookAhead=new y({perNode:!0});y.mounted=new y({perNode:!0});var Wt=Object.create(null),q=class ot{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Wt,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new ot(e.name||"",t,e.id,i);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(r)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[o[0].id]=o[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(y.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(y.group),o=-1;o<(r?r.length:0);o++){let n=t[o<0?i.name:r[o]];if(n)return n}}}};q.none=new q("",Object.create(null),0,8);var oe=new WeakMap,He=new WeakMap,T;(function(s){s[s.ExcludeBuffers=1]="ExcludeBuffers",s[s.IncludeAnonymous=2]="IncludeAnonymous",s[s.IgnoreMounts=4]="IgnoreMounts",s[s.IgnoreOverlays=8]="IgnoreOverlays"})(T||(T={}));var E=class ve{constructor(e,t,i,r,o){if(this.type=e,this.children=t,this.positions=i,this.length=r,this.props=null,o&&o.length){this.props=Object.create(null);for(let[n,l]of o)this.props[typeof n=="number"?n:n.id]=l}}toString(){let e=this.prop(y.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let i of this.children){let r=i.toString();r&&(t&&(t+=","),t+=r)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Oe(this.topNode,e)}cursorAt(e,t=0,i=0){let r=oe.get(this)||this.topNode,o=new Oe(r);return o.moveTo(e,t),oe.set(this,o._tree),o}get topNode(){return new B(this,0,0,null)}resolve(e,t=0){let i=M(oe.get(this)||this.topNode,e,t,!1);return oe.set(this,i),i}resolveInner(e,t=0){let i=M(He.get(this)||this.topNode,e,t,!0);return He.set(this,i),i}iterate(e){let{enter:t,leave:i,from:r=0,to:o=this.length}=e,n=e.mode||0,l=(n&T.IncludeAnonymous)>0;for(let a=this.cursor(n|T.IncludeAnonymous);;){let h=!1;if(a.from<=o&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Re(q.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new ve(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new ve(q.none,t,i,r)))}static build(e){return jt(e)}};E.empty=new E(q.none,[],[],0);var Dt=class lt{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new lt(this.buffer,this.index)}},ee=class at{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return q.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],i=this.buffer[e+3],r=this.set.types[t],o=r.name;if(/\W/.test(o)&&!r.isError&&(o=JSON.stringify(o)),