jssm 5.162.20 → 5.162.21

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.
package/dist/cli/lib.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var _documentCurrentScript=typeof document!=="undefined"?document.currentScript:null;class RenderError extends Error{constructor(message,opts={}){super(message);this.name="RenderError";this.path=opts.path;this.line=opts.line;this.column=opts.column}}class RasterizationUnsupportedError extends RenderError{constructor(message){super(message);this.name="RasterizationUnsupportedError";Object.setPrototypeOf(this,RasterizationUnsupportedError.prototype)}}class circular_buffer{constructor(uCapacity){if(!Number.isInteger(uCapacity)){throw new RangeError(`Capacity must be an integer, received ${uCapacity}`)}if(uCapacity<0){throw new RangeError(`Capacity must be a non-negative integer, received ${uCapacity}`)}this._values=new Array(uCapacity);this._capacity=uCapacity;this._cursor=0;this._offset=0;this._length=0}get capacity(){return this._capacity}set capacity(newSize){this.resize(newSize)}get length(){return this._length}set length(newLength){if(newLength>this._capacity){throw new RangeError(`Requested new length [${newLength}] exceeds container capacity [${this._capacity}]`)}if(newLength<0){throw new RangeError(`Requested new length [${newLength}] cannot be negative`)}if(!Number.isInteger(newLength)){throw new RangeError(`Requested new length [${newLength}] must be an integer`)}if(this._length<=newLength){return}this._length=newLength}get available(){return this._capacity-this._length}get isEmpty(){return this._length===0}get isFull(){return this._length===this._capacity}get first(){if(this.isEmpty){throw new RangeError("Cannot return first element of an empty container")}return this.at(0)}get last(){if(this.isEmpty){throw new RangeError("Cannot return last element of an empty container")}return this.at(this.length-1)}static from(i,map_fn,t){const new_array=map_fn?Array.from(i,map_fn,t):Array.from(i);const target_length=new_array.length;const ncb=new circular_buffer(target_length);ncb._values=new_array;ncb._length=target_length;return ncb}push(v){if(this.isFull){throw new RangeError(`Cannot push, structure is full to capacity`)}this._values[(this._cursor+this._length++)%this._capacity]=v;return v}shove(v){let shoved;if(this._capacity===0){throw new RangeError(`Cannot shove, structure is zero-capacity`)}if(this.isFull){shoved=this.pop()}this.push(v);return shoved}fill(x){for(let i=0;i<this._capacity;i++){this._values[i]=x}this._length=this._capacity;return this._values}indexOf(searchElement,fromIndex){const normalized=this.toArray();return normalized.indexOf(searchElement,fromIndex)}find(predicate,thisArg){return this.toArray().find(predicate,thisArg)}every(functor,thisArg){const normalized=this.toArray(),res=normalized.every(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}some(functor,thisArg){const normalized=this.toArray(),res=normalized.some(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}reverse(){const normalized=this.toArray();this._values=normalized.reverse();this._values.length=this._capacity;this._cursor=0;return this}clear(){const old=this.toArray();this._length=0;return old}pop(){if(this._length<=0){throw new RangeError(`Cannot pop, structure is empty`)}const cache=this.at(0);--this._length;++this._offset;++this._cursor;if(this._cursor>=this._capacity){this._cursor-=this._capacity}return cache}at(i){if(i<0){throw new RangeError(`circular_buffer does not support negative traversals; called at(${i})`)}if(!Number.isInteger(i)){throw new RangeError(`Accessors must be non-negative integers; called at(${i})`)}if(i>=this._capacity){throw new RangeError(`Requested cell ${i} exceeds container permanent capacity`)}if(i>=this._length){throw new RangeError(`Requested cell ${i} exceeds container current length`)}return this._values[(this._cursor+i)%this._capacity]}pos(i){return this.at(i-this.offset())}offset(){return this._offset}resize(newSize,preferEnd=false){this._values=this.toArray();this._cursor=0;const oldSize=this._length;this._length=Math.min(this._length,newSize);this._capacity=newSize;if(newSize>=oldSize){this._values.length=newSize}else{if(preferEnd){const tmp=this._values.slice(oldSize-newSize);this._values=tmp}else{this._values.length=newSize}}}toArray(){const startPoint=this._cursor%this._capacity;if(this._capacity>startPoint+this._length){return this._values.slice(startPoint,startPoint+this._length)}else{const base=this._values.slice(startPoint,this._capacity);base.push(...this._values.slice(0,this.length-(this._capacity-startPoint)));return base}}}class JssmError extends Error{constructor(machine,message,JEEI){const{requested_state:requested_state,source_location:source_location}=JEEI===void 0?{requested_state:void 0,source_location:void 0}:JEEI;const follow_ups=[];if(machine&&machine.state()!==void 0){follow_ups.push(`at "${machine.state()}"`)}if(requested_state!==void 0){follow_ups.push(`requested "${requested_state}"`)}const complex_msg=`${machine?.instance_name()===void 0?"":`[[${machine.instance_name()}]]: `}${message}${follow_ups.length>0?` (${follow_ups.join(", ")})`:""}`;super(complex_msg);this.name="JssmError";this.message=complex_msg;this.base_message=message;this.requested_state=requested_state;this.source_location=source_location}}function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError)}}peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function(expectation){return'"'+literalEscape(expectation.text)+'"'},class:function(expectation){var escapedParts="",i;for(i=0;i<expectation.parts.length;i++){escapedParts+=expectation.parts[i]instanceof Array?classEscape(expectation.parts[i][0])+"-"+classEscape(expectation.parts[i][1]):classEscape(expectation.parts[i])}return"["+(expectation.inverted?"^":"")+escapedParts+"]"},any:function(expectation){return"any character"},end:function(expectation){return"end of input"},other:function(expectation){return expectation.description}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase()}function literalEscape(s){return s.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function classEscape(s){return s.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation)}function describeExpected(expected2){var descriptions=new Array(expected2.length),i,j;for(i=0;i<expected2.length;i++){descriptions[i]=describeExpectation(expected2[i])}descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++}}descriptions.length=j}switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")+", or "+descriptions[descriptions.length-1]}}function describeFound(found2){return found2?'"'+literalEscape(found2)+'"':"end of input"}return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found."};function peg$parse(input,options){options=options!==void 0?options:{};var peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="default",peg$c2=peg$literalExpectation("default",false),peg$c3="ocean",peg$c4=peg$literalExpectation("ocean",false),peg$c5="modern",peg$c6=peg$literalExpectation("modern",false),peg$c7="plain",peg$c8=peg$literalExpectation("plain",false),peg$c9="bold",peg$c10=peg$literalExpectation("bold",false),peg$c11="[",peg$c12=peg$literalExpectation("[",false),peg$c13="]",peg$c14=peg$literalExpectation("]",false),peg$c15=function(ths,th){const themes=ths.map(t=>t[0]);if(th)themes.push(th);return themes},peg$c16=function(th){return[th]},peg$c17="box3d",peg$c18=peg$literalExpectation("box3d",false),peg$c19="polygon",peg$c20=peg$literalExpectation("polygon",false),peg$c21="ellipse",peg$c22=peg$literalExpectation("ellipse",false),peg$c23="oval",peg$c24=peg$literalExpectation("oval",false),peg$c25="circle",peg$c26=peg$literalExpectation("circle",false),peg$c27="point",peg$c28=peg$literalExpectation("point",false),peg$c29="egg",peg$c30=peg$literalExpectation("egg",false),peg$c31="triangle",peg$c32=peg$literalExpectation("triangle",false),peg$c33="plaintext",peg$c34=peg$literalExpectation("plaintext",false),peg$c35="diamond",peg$c36=peg$literalExpectation("diamond",false),peg$c37="trapezium",peg$c38=peg$literalExpectation("trapezium",false),peg$c39="parallelogram",peg$c40=peg$literalExpectation("parallelogram",false),peg$c41="house",peg$c42=peg$literalExpectation("house",false),peg$c43="pentagon",peg$c44=peg$literalExpectation("pentagon",false),peg$c45="hexagon",peg$c46=peg$literalExpectation("hexagon",false),peg$c47="septagon",peg$c48=peg$literalExpectation("septagon",false),peg$c49="octagon",peg$c50=peg$literalExpectation("octagon",false),peg$c51="doublecircle",peg$c52=peg$literalExpectation("doublecircle",false),peg$c53="doubleoctagon",peg$c54=peg$literalExpectation("doubleoctagon",false),peg$c55="tripleoctagon",peg$c56=peg$literalExpectation("tripleoctagon",false),peg$c57="invtriangle",peg$c58=peg$literalExpectation("invtriangle",false),peg$c59="invtrapezium",peg$c60=peg$literalExpectation("invtrapezium",false),peg$c61="invhouse",peg$c62=peg$literalExpectation("invhouse",false),peg$c63="Mdiamond",peg$c64=peg$literalExpectation("Mdiamond",false),peg$c65="Msquare",peg$c66=peg$literalExpectation("Msquare",false),peg$c67="Mcircle",peg$c68=peg$literalExpectation("Mcircle",false),peg$c69="rectangle",peg$c70=peg$literalExpectation("rectangle",false),peg$c71="rect",peg$c72=peg$literalExpectation("rect",false),peg$c73="square",peg$c74=peg$literalExpectation("square",false),peg$c75="star",peg$c76=peg$literalExpectation("star",false),peg$c77="none",peg$c78=peg$literalExpectation("none",false),peg$c79="underline",peg$c80=peg$literalExpectation("underline",false),peg$c81="cylinder",peg$c82=peg$literalExpectation("cylinder",false),peg$c83="note",peg$c84=peg$literalExpectation("note",false),peg$c85="tab",peg$c86=peg$literalExpectation("tab",false),peg$c87="folder",peg$c88=peg$literalExpectation("folder",false),peg$c89="box",peg$c90=peg$literalExpectation("box",false),peg$c91="component",peg$c92=peg$literalExpectation("component",false),peg$c93="promoter",peg$c94=peg$literalExpectation("promoter",false),peg$c95="cds",peg$c96=peg$literalExpectation("cds",false),peg$c97="terminator",peg$c98=peg$literalExpectation("terminator",false),peg$c99="utr",peg$c100=peg$literalExpectation("utr",false),peg$c101="primersite",peg$c102=peg$literalExpectation("primersite",false),peg$c103="restrictionsite",peg$c104=peg$literalExpectation("restrictionsite",false),peg$c105="fivepoverhang",peg$c106=peg$literalExpectation("fivepoverhang",false),peg$c107="threepoverhang",peg$c108=peg$literalExpectation("threepoverhang",false),peg$c109="noverhang",peg$c110=peg$literalExpectation("noverhang",false),peg$c111="assembly",peg$c112=peg$literalExpectation("assembly",false),peg$c113="signature",peg$c114=peg$literalExpectation("signature",false),peg$c115="insulator",peg$c116=peg$literalExpectation("insulator",false),peg$c117="ribosite",peg$c118=peg$literalExpectation("ribosite",false),peg$c119="rnastab",peg$c120=peg$literalExpectation("rnastab",false),peg$c121="proteasesite",peg$c122=peg$literalExpectation("proteasesite",false),peg$c123="proteinstab",peg$c124=peg$literalExpectation("proteinstab",false),peg$c125="rpromoter",peg$c126=peg$literalExpectation("rpromoter",false),peg$c127="rarrow",peg$c128=peg$literalExpectation("rarrow",false),peg$c129="larrow",peg$c130=peg$literalExpectation("larrow",false),peg$c131="lpromoter",peg$c132=peg$literalExpectation("lpromoter",false),peg$c133="record",peg$c134=peg$literalExpectation("record",false),peg$c135=peg$otherExpectation("forward light arrow ->"),peg$c136="->",peg$c137=peg$literalExpectation("->",false),peg$c138="→",peg$c139=peg$literalExpectation("→",false),peg$c140=function(){return"->"},peg$c141=peg$otherExpectation("two way light arrow <->"),peg$c142="<->",peg$c143=peg$literalExpectation("<->",false),peg$c144="↔",peg$c145=peg$literalExpectation("↔",false),peg$c146=function(){return"<->"},peg$c147=peg$otherExpectation("back light arrow <-"),peg$c148="<-",peg$c149=peg$literalExpectation("<-",false),peg$c150="←",peg$c151=peg$literalExpectation("←",false),peg$c152=function(){return"<-"},peg$c153=peg$otherExpectation("forward fat arrow =>"),peg$c154="=>",peg$c155=peg$literalExpectation("=>",false),peg$c156="⇒",peg$c157=peg$literalExpectation("⇒",false),peg$c158=function(){return"=>"},peg$c159=peg$otherExpectation("two way fat arrow <=>"),peg$c160="<=>",peg$c161=peg$literalExpectation("<=>",false),peg$c162="⇔",peg$c163=peg$literalExpectation("⇔",false),peg$c164=function(){return"<=>"},peg$c165=peg$otherExpectation("back fat arrow <="),peg$c166="<=",peg$c167=peg$literalExpectation("<=",false),peg$c168="⇐",peg$c169=peg$literalExpectation("⇐",false),peg$c170=function(){return"<="},peg$c171=peg$otherExpectation("forward tilde arrow ~>"),peg$c172="~>",peg$c173=peg$literalExpectation("~>",false),peg$c174="↛",peg$c175=peg$literalExpectation("↛",false),peg$c176=function(){return"~>"},peg$c177=peg$otherExpectation("two way tilde arrow <~>"),peg$c178="<~>",peg$c179=peg$literalExpectation("<~>",false),peg$c180="↮",peg$c181=peg$literalExpectation("↮",false),peg$c182=function(){return"<~>"},peg$c183=peg$otherExpectation("back tilde arrow <~"),peg$c184="<~",peg$c185=peg$literalExpectation("<~",false),peg$c186="↚",peg$c187=peg$literalExpectation("↚",false),peg$c188=function(){return"<~"},peg$c189=peg$otherExpectation("light fat arrow <-=>"),peg$c190="<-=>",peg$c191=peg$literalExpectation("<-=>",false),peg$c192="←⇒",peg$c193=peg$literalExpectation("←⇒",false),peg$c194=function(){return"<-=>"},peg$c195=peg$otherExpectation("light tilde arrow <-~>"),peg$c196="<-~>",peg$c197=peg$literalExpectation("<-~>",false),peg$c198="←↛",peg$c199=peg$literalExpectation("←↛",false),peg$c200=function(){return"<-~>"},peg$c201=peg$otherExpectation("fat light arrow <=->"),peg$c202="<=->",peg$c203=peg$literalExpectation("<=->",false),peg$c204="⇐→",peg$c205=peg$literalExpectation("⇐→",false),peg$c206=function(){return"<=->"},peg$c207=peg$otherExpectation("fat tilde arrow <=~>"),peg$c208="<=~>",peg$c209=peg$literalExpectation("<=~>",false),peg$c210="⇐↛",peg$c211=peg$literalExpectation("⇐↛",false),peg$c212=function(){return"<=~>"},peg$c213=peg$otherExpectation("tilde light arrow <~->"),peg$c214="<~->",peg$c215=peg$literalExpectation("<~->",false),peg$c216="↚→",peg$c217=peg$literalExpectation("↚→",false),peg$c218=function(){return"<~->"},peg$c219=peg$otherExpectation("tilde fat arrow <~=>"),peg$c220="<~=>",peg$c221=peg$literalExpectation("<~=>",false),peg$c222="↚⇒",peg$c223=peg$literalExpectation("↚⇒",false),peg$c224=function(){return"<~=>"},peg$c225=peg$otherExpectation("light arrow"),peg$c226=peg$otherExpectation("fat arrow"),peg$c227=peg$otherExpectation("tilde arrow"),peg$c228=peg$otherExpectation("mixed arrow"),peg$c229=peg$otherExpectation("arrow"),peg$c230="true",peg$c231=peg$literalExpectation("true",false),peg$c232=function(){return true},peg$c233="false",peg$c234=peg$literalExpectation("false",false),peg$c235=function(){return false},peg$c236="regular",peg$c237=peg$literalExpectation("regular",false),peg$c238="rounded",peg$c239=peg$literalExpectation("rounded",false),peg$c240="lined",peg$c241=peg$literalExpectation("lined",false),peg$c242="solid",peg$c243=peg$literalExpectation("solid",false),peg$c244="dotted",peg$c245=peg$literalExpectation("dotted",false),peg$c246="dashed",peg$c247=peg$literalExpectation("dashed",false),peg$c276="null",peg$c277=peg$literalExpectation("null",false),peg$c278=function(){return null},peg$c279="undefined",peg$c280=peg$literalExpectation("undefined",false),peg$c281=function(){return void 0},peg$c288=peg$otherExpectation("action label"),peg$c290=/^[\n\r\u2028\u2029]/,peg$c291=peg$classExpectation(["\n","\r","\u2028","\u2029"],false,false),peg$c292=peg$otherExpectation("block comment"),peg$c293="/*",peg$c294=peg$literalExpectation("/*",false),peg$c295="*/",peg$c296=peg$literalExpectation("*/",false),peg$c297=peg$anyExpectation(),peg$c298=peg$otherExpectation("line comment"),peg$c299="//",peg$c300=peg$literalExpectation("//",false),peg$c301=peg$otherExpectation("whitespace"),peg$c304=peg$otherExpectation("string"),peg$c307=/^[0-9a-zA-Z.+_\^()*&$#@!?,\x80-\uFFFF]/,peg$c308=peg$classExpectation([["0","9"],["a","z"],["A","Z"],".","+","_","^","(",")","*","&","$","#","@","!","?",",",["€","￿"]],false,false),peg$c309=peg$otherExpectation("atom"),peg$c311=peg$otherExpectation("label"),peg$c312="0",peg$c313=peg$literalExpectation("0",false),peg$c314=/^[0-9]/,peg$c315=peg$classExpectation([["0","9"]],false,false),peg$c316=/^[1-9]/,peg$c317=peg$classExpectation([["1","9"]],false,false),peg$c318=/^[0-9a-f]/i,peg$c319=peg$classExpectation([["0","9"],["a","f"]],false,true),peg$c320=/^[0-1]/,peg$c321=peg$classExpectation([["0","1"]],false,false),peg$c322=/^[0-7]/,peg$c323=peg$classExpectation([["0","7"]],false,false),peg$c324=peg$otherExpectation("nonneg number"),peg$c325=".",peg$c326=peg$literalExpectation(".",false),peg$c327=function(){return parseFloat(text())},peg$c328=peg$otherExpectation("number"),peg$c329=function(literal){return literal},peg$c330="NaN",peg$c331=peg$literalExpectation("NaN",false),peg$c332=function(){return NaN},peg$c333="NegativeInfinity",peg$c334=peg$literalExpectation("NegativeInfinity",false),peg$c335=function(){return Number.NEGATIVE_INFINITY},peg$c336="NegativeInf",peg$c337=peg$literalExpectation("NegativeInf",false),peg$c338="NegInfinity",peg$c339=peg$literalExpectation("NegInfinity",false),peg$c340="NegInf",peg$c341=peg$literalExpectation("NegInf",false),peg$c342="NInfinity",peg$c343=peg$literalExpectation("NInfinity",false),peg$c344="NInf",peg$c345=peg$literalExpectation("NInf",false),peg$c346="-∞",peg$c347=peg$literalExpectation("-∞",false),peg$c348="PInfinity",peg$c349=peg$literalExpectation("PInfinity",false),peg$c350=function(){return Number.POSITIVE_INFINITY},peg$c351="Infinity",peg$c352=peg$literalExpectation("Infinity",false),peg$c353="PInf",peg$c354=peg$literalExpectation("PInf",false),peg$c355="Inf",peg$c356=peg$literalExpectation("Inf",false),peg$c357="∞",peg$c358=peg$literalExpectation("∞",false),peg$c359="Epsilon",peg$c360=peg$literalExpectation("Epsilon",false),peg$c361=function(){return Number.EPSILON},peg$c362="𝜀",peg$c363=peg$literalExpectation("𝜀",false),peg$c364="ε",peg$c365=peg$literalExpectation("ε",false),peg$c366="Pi",peg$c367=peg$literalExpectation("Pi",false),peg$c368=function(){return Math.PI},peg$c369="𝜋",peg$c370=peg$literalExpectation("𝜋",false),peg$c371="π",peg$c372=peg$literalExpectation("π",false),peg$c373="EulerNumber",peg$c374=peg$literalExpectation("EulerNumber",false),peg$c375=function(){return Math.E},peg$c376="E",peg$c377=peg$literalExpectation("E",false),peg$c378="e",peg$c379=peg$literalExpectation("e",false),peg$c380="Ɛ",peg$c381=peg$literalExpectation("Ɛ",false),peg$c382="ℇ",peg$c383=peg$literalExpectation("ℇ",false),peg$c384="Root2",peg$c385=peg$literalExpectation("Root2",false),peg$c386=function(){return Math.SQRT2},peg$c387="RootHalf",peg$c388=peg$literalExpectation("RootHalf",false),peg$c389=function(){return Math.SQRT1_2},peg$c390="Ln2",peg$c391=peg$literalExpectation("Ln2",false),peg$c392=function(){return Math.LN2},peg$c393="NatLog2",peg$c394=peg$literalExpectation("NatLog2",false),peg$c395="Ln10",peg$c396=peg$literalExpectation("Ln10",false),peg$c397=function(){return Math.LN10},peg$c398="NatLog10",peg$c399=peg$literalExpectation("NatLog10",false),peg$c400="Log2E",peg$c401=peg$literalExpectation("Log2E",false),peg$c402=function(){return Math.LOG2E},peg$c403="Log10E",peg$c404=peg$literalExpectation("Log10E",false),peg$c405=function(){return Math.LOG10E},peg$c406="MaxSafeInt",peg$c407=peg$literalExpectation("MaxSafeInt",false),peg$c408=function(){return Number.MAX_SAFE_INTEGER},peg$c409="MinSafeInt",peg$c410=peg$literalExpectation("MinSafeInt",false),peg$c411=function(){return Number.MIN_SAFE_INTEGER},peg$c412="MaxPosNum",peg$c413=peg$literalExpectation("MaxPosNum",false),peg$c414=function(){return Number.MAX_VALUE},peg$c415="MinPosNum",peg$c416=peg$literalExpectation("MinPosNum",false),peg$c417=function(){return Number.MIN_VALUE},peg$c418="Phi",peg$c419=peg$literalExpectation("Phi",false),peg$c420=function(){return 1.618033988749895},peg$c421="𝜑",peg$c422=peg$literalExpectation("𝜑",false),peg$c423="𝜙",peg$c424=peg$literalExpectation("𝜙",false),peg$c425="ϕ",peg$c426=peg$literalExpectation("ϕ",false),peg$c427="φ",peg$c428=peg$literalExpectation("φ",false),peg$c429="EulerConstant",peg$c430=peg$literalExpectation("EulerConstant",false),peg$c431=function(){return.5772156649015329},peg$c432="γ",peg$c433=peg$literalExpectation("γ",false),peg$c434="𝛾",peg$c435=peg$literalExpectation("𝛾",false),peg$c436=peg$literalExpectation("e",true),peg$c437=/^[+\-]/,peg$c438=peg$classExpectation(["+","-"],false,false),peg$c439="0x",peg$c440=peg$literalExpectation("0x",true),peg$c441=function(digits){return parseInt(digits,16)},peg$c442="0b",peg$c443=peg$literalExpectation("0b",true),peg$c444=function(digits){return parseInt(digits,2)},peg$c445="0o",peg$c446=peg$literalExpectation("0o",true),peg$c447=function(digits){return parseInt(digits,8)},peg$c448=function(major,minor,patch){const node={major:parseInt(major,10),minor:parseInt(minor,10),patch:parseInt(patch,10),full:text()};if(options.locations){node.loc=location()}return node},peg$c459="http://",peg$c460=peg$literalExpectation("http://",false),peg$c461="https://",peg$c462=peg$literalExpectation("https://",false),peg$c463=/^[a-zA-Z0-9!*'():;@&=+$,\/?#[\]_.~\-]/,peg$c464=peg$classExpectation([["a","z"],["A","Z"],["0","9"],"!","*","'","(",")",":",";","@","&","=","+","$",",","/","?","#","[","]","_",".","~","-"],false,false),peg$c465=function(protocol){return text()},peg$c466="aliceblue",peg$c467=peg$literalExpectation("aliceblue",false),peg$c468=function(){return"#f0f8ffff"},peg$c469="AliceBlue",peg$c470=peg$literalExpectation("AliceBlue",false),peg$c471="antiquewhite",peg$c472=peg$literalExpectation("antiquewhite",false),peg$c473=function(){return"#faebd7ff"},peg$c474="AntiqueWhite",peg$c475=peg$literalExpectation("AntiqueWhite",false),peg$c476="aquamarine",peg$c477=peg$literalExpectation("aquamarine",false),peg$c478=function(){return"#7fffd4ff"},peg$c479="Aquamarine",peg$c480=peg$literalExpectation("Aquamarine",false),peg$c481="aqua",peg$c482=peg$literalExpectation("aqua",false),peg$c483=function(){return"#00ffffff"},peg$c484="Aqua",peg$c485=peg$literalExpectation("Aqua",false),peg$c486="azure",peg$c487=peg$literalExpectation("azure",false),peg$c488=function(){return"#f0ffffff"},peg$c489="Azure",peg$c490=peg$literalExpectation("Azure",false),peg$c491="beige",peg$c492=peg$literalExpectation("beige",false),peg$c493=function(){return"#f5f5dcff"},peg$c494="Beige",peg$c495=peg$literalExpectation("Beige",false),peg$c496="bisque",peg$c497=peg$literalExpectation("bisque",false),peg$c498=function(){return"#ffe4c4ff"},peg$c499="Bisque",peg$c500=peg$literalExpectation("Bisque",false),peg$c501="black",peg$c502=peg$literalExpectation("black",false),peg$c503=function(){return"#000000ff"},peg$c504="Black",peg$c505=peg$literalExpectation("Black",false),peg$c506="blanchedalmond",peg$c507=peg$literalExpectation("blanchedalmond",false),peg$c508=function(){return"#ffebcdff"},peg$c509="BlanchedAlmond",peg$c510=peg$literalExpectation("BlanchedAlmond",false),peg$c511="blueviolet",peg$c512=peg$literalExpectation("blueviolet",false),peg$c513=function(){return"#8a2be2ff"},peg$c514="BlueViolet",peg$c515=peg$literalExpectation("BlueViolet",false),peg$c516="blue",peg$c517=peg$literalExpectation("blue",false),peg$c518=function(){return"#0000ffff"},peg$c519="Blue",peg$c520=peg$literalExpectation("Blue",false),peg$c521="brown",peg$c522=peg$literalExpectation("brown",false),peg$c523=function(){return"#a52a2aff"},peg$c524="Brown",peg$c525=peg$literalExpectation("Brown",false),peg$c526="burlywood",peg$c527=peg$literalExpectation("burlywood",false),peg$c528=function(){return"#deb887ff"},peg$c529="BurlyWood",peg$c530=peg$literalExpectation("BurlyWood",false),peg$c531="cadetblue",peg$c532=peg$literalExpectation("cadetblue",false),peg$c533=function(){return"#5f9ea0ff"},peg$c534="CadetBlue",peg$c535=peg$literalExpectation("CadetBlue",false),peg$c536="chartreuse",peg$c537=peg$literalExpectation("chartreuse",false),peg$c538=function(){return"#7fff00ff"},peg$c539="Chartreuse",peg$c540=peg$literalExpectation("Chartreuse",false),peg$c541="chocolate",peg$c542=peg$literalExpectation("chocolate",false),peg$c543=function(){return"#d2691eff"},peg$c544="Chocolate",peg$c545=peg$literalExpectation("Chocolate",false),peg$c546="coral",peg$c547=peg$literalExpectation("coral",false),peg$c548=function(){return"#ff7f50ff"},peg$c549="Coral",peg$c550=peg$literalExpectation("Coral",false),peg$c551="cornflowerblue",peg$c552=peg$literalExpectation("cornflowerblue",false),peg$c553=function(){return"#6495edff"},peg$c554="CornflowerBlue",peg$c555=peg$literalExpectation("CornflowerBlue",false),peg$c556="cornsilk",peg$c557=peg$literalExpectation("cornsilk",false),peg$c558=function(){return"#fff8dcff"},peg$c559="Cornsilk",peg$c560=peg$literalExpectation("Cornsilk",false),peg$c561="crimson",peg$c562=peg$literalExpectation("crimson",false),peg$c563=function(){return"#dc143cff"},peg$c564="Crimson",peg$c565=peg$literalExpectation("Crimson",false),peg$c566="cyan",peg$c567=peg$literalExpectation("cyan",false),peg$c568="Cyan",peg$c569=peg$literalExpectation("Cyan",false),peg$c570="darkblue",peg$c571=peg$literalExpectation("darkblue",false),peg$c572=function(){return"#00008bff"},peg$c573="DarkBlue",peg$c574=peg$literalExpectation("DarkBlue",false),peg$c575="darkcyan",peg$c576=peg$literalExpectation("darkcyan",false),peg$c577=function(){return"#008b8bff"},peg$c578="DarkCyan",peg$c579=peg$literalExpectation("DarkCyan",false),peg$c580="darkgoldenrod",peg$c581=peg$literalExpectation("darkgoldenrod",false),peg$c582=function(){return"#b8860bff"},peg$c583="DarkGoldenRod",peg$c584=peg$literalExpectation("DarkGoldenRod",false),peg$c585="darkgray",peg$c586=peg$literalExpectation("darkgray",false),peg$c587=function(){return"#a9a9a9ff"},peg$c588="DarkGray",peg$c589=peg$literalExpectation("DarkGray",false),peg$c590="darkgrey",peg$c591=peg$literalExpectation("darkgrey",false),peg$c592="DarkGrey",peg$c593=peg$literalExpectation("DarkGrey",false),peg$c594="darkgreen",peg$c595=peg$literalExpectation("darkgreen",false),peg$c596=function(){return"#006400ff"},peg$c597="DarkGreen",peg$c598=peg$literalExpectation("DarkGreen",false),peg$c599="darkkhaki",peg$c600=peg$literalExpectation("darkkhaki",false),peg$c601=function(){return"#bdb76bff"},peg$c602="DarkKhaki",peg$c603=peg$literalExpectation("DarkKhaki",false),peg$c604="darkmagenta",peg$c605=peg$literalExpectation("darkmagenta",false),peg$c606=function(){return"#8b008bff"},peg$c607="DarkMagenta",peg$c608=peg$literalExpectation("DarkMagenta",false),peg$c609="darkolivegreen",peg$c610=peg$literalExpectation("darkolivegreen",false),peg$c611=function(){return"#556b2fff"},peg$c612="DarkOliveGreen",peg$c613=peg$literalExpectation("DarkOliveGreen",false),peg$c614="darkorange",peg$c615=peg$literalExpectation("darkorange",false),peg$c616=function(){return"#ff8c00ff"},peg$c617="Darkorange",peg$c618=peg$literalExpectation("Darkorange",false),peg$c619="darkorchid",peg$c620=peg$literalExpectation("darkorchid",false),peg$c621=function(){return"#9932ccff"},peg$c622="DarkOrchid",peg$c623=peg$literalExpectation("DarkOrchid",false),peg$c624="darkred",peg$c625=peg$literalExpectation("darkred",false),peg$c626=function(){return"#8b0000ff"},peg$c627="DarkRed",peg$c628=peg$literalExpectation("DarkRed",false),peg$c629="darksalmon",peg$c630=peg$literalExpectation("darksalmon",false),peg$c631=function(){return"#e9967aff"},peg$c632="DarkSalmon",peg$c633=peg$literalExpectation("DarkSalmon",false),peg$c634="darkseagreen",peg$c635=peg$literalExpectation("darkseagreen",false),peg$c636=function(){return"#8fbc8fff"},peg$c637="DarkSeaGreen",peg$c638=peg$literalExpectation("DarkSeaGreen",false),peg$c639="darkslateblue",peg$c640=peg$literalExpectation("darkslateblue",false),peg$c641=function(){return"#483d8bff"},peg$c642="DarkSlateBlue",peg$c643=peg$literalExpectation("DarkSlateBlue",false),peg$c644="darkslategray",peg$c645=peg$literalExpectation("darkslategray",false),peg$c646=function(){return"#2f4f4fff"},peg$c647="DarkSlateGray",peg$c648=peg$literalExpectation("DarkSlateGray",false),peg$c649="darkslategrey",peg$c650=peg$literalExpectation("darkslategrey",false),peg$c651="DarkSlateGrey",peg$c652=peg$literalExpectation("DarkSlateGrey",false),peg$c653="darkturquoise",peg$c654=peg$literalExpectation("darkturquoise",false),peg$c655=function(){return"#00ced1ff"},peg$c656="DarkTurquoise",peg$c657=peg$literalExpectation("DarkTurquoise",false),peg$c658="darkviolet",peg$c659=peg$literalExpectation("darkviolet",false),peg$c660=function(){return"#9400d3ff"},peg$c661="DarkViolet",peg$c662=peg$literalExpectation("DarkViolet",false),peg$c663="deeppink",peg$c664=peg$literalExpectation("deeppink",false),peg$c665=function(){return"#ff1493ff"},peg$c666="DeepPink",peg$c667=peg$literalExpectation("DeepPink",false),peg$c668="deepskyblue",peg$c669=peg$literalExpectation("deepskyblue",false),peg$c670=function(){return"#00bfffff"},peg$c671="DeepSkyBlue",peg$c672=peg$literalExpectation("DeepSkyBlue",false),peg$c673="dimgray",peg$c674=peg$literalExpectation("dimgray",false),peg$c675=function(){return"#696969ff"},peg$c676="DimGray",peg$c677=peg$literalExpectation("DimGray",false),peg$c678="dimgrey",peg$c679=peg$literalExpectation("dimgrey",false),peg$c680="DimGrey",peg$c681=peg$literalExpectation("DimGrey",false),peg$c682="dodgerblue",peg$c683=peg$literalExpectation("dodgerblue",false),peg$c684=function(){return"#1e90ffff"},peg$c685="DodgerBlue",peg$c686=peg$literalExpectation("DodgerBlue",false),peg$c687="firebrick",peg$c688=peg$literalExpectation("firebrick",false),peg$c689=function(){return"#b22222ff"},peg$c690="FireBrick",peg$c691=peg$literalExpectation("FireBrick",false),peg$c692="floralwhite",peg$c693=peg$literalExpectation("floralwhite",false),peg$c694=function(){return"#fffaf0ff"},peg$c695="FloralWhite",peg$c696=peg$literalExpectation("FloralWhite",false),peg$c697="forestgreen",peg$c698=peg$literalExpectation("forestgreen",false),peg$c699=function(){return"#228b22ff"},peg$c700="ForestGreen",peg$c701=peg$literalExpectation("ForestGreen",false),peg$c702="fuchsia",peg$c703=peg$literalExpectation("fuchsia",false),peg$c704=function(){return"#ff00ffff"},peg$c705="Fuchsia",peg$c706=peg$literalExpectation("Fuchsia",false),peg$c707="gainsboro",peg$c708=peg$literalExpectation("gainsboro",false),peg$c709=function(){return"#dcdcdcff"},peg$c710="Gainsboro",peg$c711=peg$literalExpectation("Gainsboro",false),peg$c712="ghostwhite",peg$c713=peg$literalExpectation("ghostwhite",false),peg$c714=function(){return"#f8f8ffff"},peg$c715="GhostWhite",peg$c716=peg$literalExpectation("GhostWhite",false),peg$c717="goldenrod",peg$c718=peg$literalExpectation("goldenrod",false),peg$c719=function(){return"#daa520ff"},peg$c720="GoldenRod",peg$c721=peg$literalExpectation("GoldenRod",false),peg$c722="gold",peg$c723=peg$literalExpectation("gold",false),peg$c724=function(){return"#ffd700ff"},peg$c725="Gold",peg$c726=peg$literalExpectation("Gold",false),peg$c727="gray",peg$c728=peg$literalExpectation("gray",false),peg$c729=function(){return"#808080ff"},peg$c730="Gray",peg$c731=peg$literalExpectation("Gray",false),peg$c732="grey",peg$c733=peg$literalExpectation("grey",false),peg$c734="Grey",peg$c735=peg$literalExpectation("Grey",false),peg$c736="greenyellow",peg$c737=peg$literalExpectation("greenyellow",false),peg$c738=function(){return"#adff2fff"},peg$c739="GreenYellow",peg$c740=peg$literalExpectation("GreenYellow",false),peg$c741="green",peg$c742=peg$literalExpectation("green",false),peg$c743=function(){return"#008000ff"},peg$c744="Green",peg$c745=peg$literalExpectation("Green",false),peg$c746="honeydew",peg$c747=peg$literalExpectation("honeydew",false),peg$c748=function(){return"#f0fff0ff"},peg$c749="HoneyDew",peg$c750=peg$literalExpectation("HoneyDew",false),peg$c751="hotpink",peg$c752=peg$literalExpectation("hotpink",false),peg$c753=function(){return"#ff69b4ff"},peg$c754="HotPink",peg$c755=peg$literalExpectation("HotPink",false),peg$c756="indianred",peg$c757=peg$literalExpectation("indianred",false),peg$c758=function(){return"#cd5c5cff"},peg$c759="IndianRed",peg$c760=peg$literalExpectation("IndianRed",false),peg$c761="indigo",peg$c762=peg$literalExpectation("indigo",false),peg$c763=function(){return"#4b0082ff"},peg$c764="Indigo",peg$c765=peg$literalExpectation("Indigo",false),peg$c766="ivory",peg$c767=peg$literalExpectation("ivory",false),peg$c768=function(){return"#fffff0ff"},peg$c769="Ivory",peg$c770=peg$literalExpectation("Ivory",false),peg$c771="khaki",peg$c772=peg$literalExpectation("khaki",false),peg$c773=function(){return"#f0e68cff"},peg$c774="Khaki",peg$c775=peg$literalExpectation("Khaki",false),peg$c776="lavenderblush",peg$c777=peg$literalExpectation("lavenderblush",false),peg$c778=function(){return"#fff0f5ff"},peg$c779="LavenderBlush",peg$c780=peg$literalExpectation("LavenderBlush",false),peg$c781="lavender",peg$c782=peg$literalExpectation("lavender",false),peg$c783=function(){return"#e6e6faff"},peg$c784="Lavender",peg$c785=peg$literalExpectation("Lavender",false),peg$c786="lawngreen",peg$c787=peg$literalExpectation("lawngreen",false),peg$c788=function(){return"#7cfc00ff"},peg$c789="LawnGreen",peg$c790=peg$literalExpectation("LawnGreen",false),peg$c791="lemonchiffon",peg$c792=peg$literalExpectation("lemonchiffon",false),peg$c793=function(){return"#fffacdff"},peg$c794="LemonChiffon",peg$c795=peg$literalExpectation("LemonChiffon",false),peg$c796="lightblue",peg$c797=peg$literalExpectation("lightblue",false),peg$c798=function(){return"#add8e6ff"},peg$c799="LightBlue",peg$c800=peg$literalExpectation("LightBlue",false),peg$c801="lightcoral",peg$c802=peg$literalExpectation("lightcoral",false),peg$c803=function(){return"#f08080ff"},peg$c804="LightCoral",peg$c805=peg$literalExpectation("LightCoral",false),peg$c806="lightcyan",peg$c807=peg$literalExpectation("lightcyan",false),peg$c808=function(){return"#e0ffffff"},peg$c809="LightCyan",peg$c810=peg$literalExpectation("LightCyan",false),peg$c811="lightgoldenrodyellow",peg$c812=peg$literalExpectation("lightgoldenrodyellow",false),peg$c813=function(){return"#fafad2ff"},peg$c814="LightGoldenRodYellow",peg$c815=peg$literalExpectation("LightGoldenRodYellow",false),peg$c816="lightgray",peg$c817=peg$literalExpectation("lightgray",false),peg$c818=function(){return"#d3d3d3ff"},peg$c819="LightGray",peg$c820=peg$literalExpectation("LightGray",false),peg$c821="lightgrey",peg$c822=peg$literalExpectation("lightgrey",false),peg$c823="LightGrey",peg$c824=peg$literalExpectation("LightGrey",false),peg$c825="lightgreen",peg$c826=peg$literalExpectation("lightgreen",false),peg$c827=function(){return"#90ee90ff"},peg$c828="LightGreen",peg$c829=peg$literalExpectation("LightGreen",false),peg$c830="lightpink",peg$c831=peg$literalExpectation("lightpink",false),peg$c832=function(){return"#ffb6c1ff"},peg$c833="LightPink",peg$c834=peg$literalExpectation("LightPink",false),peg$c835="lightsalmon",peg$c836=peg$literalExpectation("lightsalmon",false),peg$c837=function(){return"#ffa07aff"},peg$c838="LightSalmon",peg$c839=peg$literalExpectation("LightSalmon",false),peg$c840="lightseagreen",peg$c841=peg$literalExpectation("lightseagreen",false),peg$c842=function(){return"#20b2aaff"},peg$c843="LightSeaGreen",peg$c844=peg$literalExpectation("LightSeaGreen",false),peg$c845="lightskyblue",peg$c846=peg$literalExpectation("lightskyblue",false),peg$c847=function(){return"#87cefaff"},peg$c848="LightSkyBlue",peg$c849=peg$literalExpectation("LightSkyBlue",false),peg$c850="lightslategray",peg$c851=peg$literalExpectation("lightslategray",false),peg$c852=function(){return"#778899ff"},peg$c853="LightSlateGray",peg$c854=peg$literalExpectation("LightSlateGray",false),peg$c855="lightslategrey",peg$c856=peg$literalExpectation("lightslategrey",false),peg$c857="LightSlateGrey",peg$c858=peg$literalExpectation("LightSlateGrey",false),peg$c859="lightsteelblue",peg$c860=peg$literalExpectation("lightsteelblue",false),peg$c861=function(){return"#b0c4deff"},peg$c862="LightSteelBlue",peg$c863=peg$literalExpectation("LightSteelBlue",false),peg$c864="lightyellow",peg$c865=peg$literalExpectation("lightyellow",false),peg$c866=function(){return"#ffffe0ff"},peg$c867="LightYellow",peg$c868=peg$literalExpectation("LightYellow",false),peg$c869="limegreen",peg$c870=peg$literalExpectation("limegreen",false),peg$c871=function(){return"#32cd32ff"},peg$c872="LimeGreen",peg$c873=peg$literalExpectation("LimeGreen",false),peg$c874="lime",peg$c875=peg$literalExpectation("lime",false),peg$c876=function(){return"#00ff00ff"},peg$c877="Lime",peg$c878=peg$literalExpectation("Lime",false),peg$c879="linen",peg$c880=peg$literalExpectation("linen",false),peg$c881=function(){return"#faf0e6ff"},peg$c882="Linen",peg$c883=peg$literalExpectation("Linen",false),peg$c884="magenta",peg$c885=peg$literalExpectation("magenta",false),peg$c886="Magenta",peg$c887=peg$literalExpectation("Magenta",false),peg$c888="maroon",peg$c889=peg$literalExpectation("maroon",false),peg$c890=function(){return"#800000ff"},peg$c891="Maroon",peg$c892=peg$literalExpectation("Maroon",false),peg$c893="mediumaquamarine",peg$c894=peg$literalExpectation("mediumaquamarine",false),peg$c895=function(){return"#66cdaaff"},peg$c896="MediumAquaMarine",peg$c897=peg$literalExpectation("MediumAquaMarine",false),peg$c898="mediumblue",peg$c899=peg$literalExpectation("mediumblue",false),peg$c900=function(){return"#0000cdff"},peg$c901="MediumBlue",peg$c902=peg$literalExpectation("MediumBlue",false),peg$c903="mediumorchid",peg$c904=peg$literalExpectation("mediumorchid",false),peg$c905=function(){return"#ba55d3ff"},peg$c906="MediumOrchid",peg$c907=peg$literalExpectation("MediumOrchid",false),peg$c908="mediumpurple",peg$c909=peg$literalExpectation("mediumpurple",false),peg$c910=function(){return"#9370d8ff"},peg$c911="MediumPurple",peg$c912=peg$literalExpectation("MediumPurple",false),peg$c913="mediumseagreen",peg$c914=peg$literalExpectation("mediumseagreen",false),peg$c915=function(){return"#3cb371ff"},peg$c916="MediumSeaGreen",peg$c917=peg$literalExpectation("MediumSeaGreen",false),peg$c918="mediumslateblue",peg$c919=peg$literalExpectation("mediumslateblue",false),peg$c920=function(){return"#7b68eeff"},peg$c921="MediumSlateBlue",peg$c922=peg$literalExpectation("MediumSlateBlue",false),peg$c923="mediumspringgreen",peg$c924=peg$literalExpectation("mediumspringgreen",false),peg$c925=function(){return"#00fa9aff"},peg$c926="MediumSpringGreen",peg$c927=peg$literalExpectation("MediumSpringGreen",false),peg$c928="mediumturquoise",peg$c929=peg$literalExpectation("mediumturquoise",false),peg$c930=function(){return"#48d1ccff"},peg$c931="MediumTurquoise",peg$c932=peg$literalExpectation("MediumTurquoise",false),peg$c933="mediumvioletred",peg$c934=peg$literalExpectation("mediumvioletred",false),peg$c935=function(){return"#c71585ff"},peg$c936="MediumVioletRed",peg$c937=peg$literalExpectation("MediumVioletRed",false),peg$c938="midnightblue",peg$c939=peg$literalExpectation("midnightblue",false),peg$c940=function(){return"#191970ff"},peg$c941="MidnightBlue",peg$c942=peg$literalExpectation("MidnightBlue",false),peg$c943="mintcream",peg$c944=peg$literalExpectation("mintcream",false),peg$c945=function(){return"#f5fffaff"},peg$c946="MintCream",peg$c947=peg$literalExpectation("MintCream",false),peg$c948="mistyrose",peg$c949=peg$literalExpectation("mistyrose",false),peg$c950=function(){return"#ffe4e1ff"},peg$c951="MistyRose",peg$c952=peg$literalExpectation("MistyRose",false),peg$c953="moccasin",peg$c954=peg$literalExpectation("moccasin",false),peg$c955=function(){return"#ffe4b5ff"},peg$c956="Moccasin",peg$c957=peg$literalExpectation("Moccasin",false),peg$c958="navajowhite",peg$c959=peg$literalExpectation("navajowhite",false),peg$c960=function(){return"#ffdeadff"},peg$c961="NavajoWhite",peg$c962=peg$literalExpectation("NavajoWhite",false),peg$c963="navy",peg$c964=peg$literalExpectation("navy",false),peg$c965=function(){return"#000080ff"},peg$c966="Navy",peg$c967=peg$literalExpectation("Navy",false),peg$c968="oldlace",peg$c969=peg$literalExpectation("oldlace",false),peg$c970=function(){return"#fdf5e6ff"},peg$c971="OldLace",peg$c972=peg$literalExpectation("OldLace",false),peg$c973="olivedrab",peg$c974=peg$literalExpectation("olivedrab",false),peg$c975=function(){return"#6b8e23ff"},peg$c976="OliveDrab",peg$c977=peg$literalExpectation("OliveDrab",false),peg$c978="olive",peg$c979=peg$literalExpectation("olive",false),peg$c980=function(){return"#808000ff"},peg$c981="Olive",peg$c982=peg$literalExpectation("Olive",false),peg$c983="orangered",peg$c984=peg$literalExpectation("orangered",false),peg$c985=function(){return"#ff4500ff"},peg$c986="OrangeRed",peg$c987=peg$literalExpectation("OrangeRed",false),peg$c988="orange",peg$c989=peg$literalExpectation("orange",false),peg$c990=function(){return"#ffa500ff"},peg$c991="Orange",peg$c992=peg$literalExpectation("Orange",false),peg$c993="orchid",peg$c994=peg$literalExpectation("orchid",false),peg$c995=function(){return"#da70d6ff"},peg$c996="Orchid",peg$c997=peg$literalExpectation("Orchid",false),peg$c998="palegoldenrod",peg$c999=peg$literalExpectation("palegoldenrod",false),peg$c1000=function(){return"#eee8aaff"},peg$c1001="PaleGoldenRod",peg$c1002=peg$literalExpectation("PaleGoldenRod",false),peg$c1003="palegreen",peg$c1004=peg$literalExpectation("palegreen",false),peg$c1005=function(){return"#98fb98ff"},peg$c1006="PaleGreen",peg$c1007=peg$literalExpectation("PaleGreen",false),peg$c1008="paleturquoise",peg$c1009=peg$literalExpectation("paleturquoise",false),peg$c1010=function(){return"#afeeeeff"},peg$c1011="PaleTurquoise",peg$c1012=peg$literalExpectation("PaleTurquoise",false),peg$c1013="palevioletred",peg$c1014=peg$literalExpectation("palevioletred",false),peg$c1015=function(){return"#d87093ff"},peg$c1016="PaleVioletRed",peg$c1017=peg$literalExpectation("PaleVioletRed",false),peg$c1018="papayawhip",peg$c1019=peg$literalExpectation("papayawhip",false),peg$c1020=function(){return"#ffefd5ff"},peg$c1021="PapayaWhip",peg$c1022=peg$literalExpectation("PapayaWhip",false),peg$c1023="peachpuff",peg$c1024=peg$literalExpectation("peachpuff",false),peg$c1025=function(){return"#ffdab9ff"},peg$c1026="PeachPuff",peg$c1027=peg$literalExpectation("PeachPuff",false),peg$c1028="peru",peg$c1029=peg$literalExpectation("peru",false),peg$c1030=function(){return"#cd853fff"},peg$c1031="Peru",peg$c1032=peg$literalExpectation("Peru",false),peg$c1033="pink",peg$c1034=peg$literalExpectation("pink",false),peg$c1035=function(){return"#ffc0cbff"},peg$c1036="Pink",peg$c1037=peg$literalExpectation("Pink",false),peg$c1038="plum",peg$c1039=peg$literalExpectation("plum",false),peg$c1040=function(){return"#dda0ddff"},peg$c1041="Plum",peg$c1042=peg$literalExpectation("Plum",false),peg$c1043="powderblue",peg$c1044=peg$literalExpectation("powderblue",false),peg$c1045=function(){return"#b0e0e6ff"},peg$c1046="PowderBlue",peg$c1047=peg$literalExpectation("PowderBlue",false),peg$c1048="purple",peg$c1049=peg$literalExpectation("purple",false),peg$c1050=function(){return"#800080ff"},peg$c1051="Purple",peg$c1052=peg$literalExpectation("Purple",false),peg$c1053="red",peg$c1054=peg$literalExpectation("red",false),peg$c1055=function(){return"#ff0000ff"},peg$c1056="Red",peg$c1057=peg$literalExpectation("Red",false),peg$c1058="rosybrown",peg$c1059=peg$literalExpectation("rosybrown",false),peg$c1060=function(){return"#bc8f8fff"},peg$c1061="RosyBrown",peg$c1062=peg$literalExpectation("RosyBrown",false),peg$c1063="royalblue",peg$c1064=peg$literalExpectation("royalblue",false),peg$c1065=function(){return"#4169e1ff"},peg$c1066="RoyalBlue",peg$c1067=peg$literalExpectation("RoyalBlue",false),peg$c1068="saddlebrown",peg$c1069=peg$literalExpectation("saddlebrown",false),peg$c1070=function(){return"#8b4513ff"},peg$c1071="SaddleBrown",peg$c1072=peg$literalExpectation("SaddleBrown",false),peg$c1073="salmon",peg$c1074=peg$literalExpectation("salmon",false),peg$c1075=function(){return"#fa8072ff"},peg$c1076="Salmon",peg$c1077=peg$literalExpectation("Salmon",false),peg$c1078="sandybrown",peg$c1079=peg$literalExpectation("sandybrown",false),peg$c1080=function(){return"#f4a460ff"},peg$c1081="SandyBrown",peg$c1082=peg$literalExpectation("SandyBrown",false),peg$c1083="seagreen",peg$c1084=peg$literalExpectation("seagreen",false),peg$c1085=function(){return"#2e8b57ff"},peg$c1086="SeaGreen",peg$c1087=peg$literalExpectation("SeaGreen",false),peg$c1088="seashell",peg$c1089=peg$literalExpectation("seashell",false),peg$c1090=function(){return"#fff5eeff"},peg$c1091="SeaShell",peg$c1092=peg$literalExpectation("SeaShell",false),peg$c1093="sienna",peg$c1094=peg$literalExpectation("sienna",false),peg$c1095=function(){return"#a0522dff"},peg$c1096="Sienna",peg$c1097=peg$literalExpectation("Sienna",false),peg$c1098="silver",peg$c1099=peg$literalExpectation("silver",false),peg$c1100=function(){return"#c0c0c0ff"},peg$c1101="Silver",peg$c1102=peg$literalExpectation("Silver",false),peg$c1103="skyblue",peg$c1104=peg$literalExpectation("skyblue",false),peg$c1105=function(){return"#87ceebff"},peg$c1106="SkyBlue",peg$c1107=peg$literalExpectation("SkyBlue",false),peg$c1108="slateblue",peg$c1109=peg$literalExpectation("slateblue",false),peg$c1110=function(){return"#6a5acdff"},peg$c1111="SlateBlue",peg$c1112=peg$literalExpectation("SlateBlue",false),peg$c1113="slategray",peg$c1114=peg$literalExpectation("slategray",false),peg$c1115=function(){return"#708090ff"},peg$c1116="SlateGray",peg$c1117=peg$literalExpectation("SlateGray",false),peg$c1118="slategrey",peg$c1119=peg$literalExpectation("slategrey",false),peg$c1120="SlateGrey",peg$c1121=peg$literalExpectation("SlateGrey",false),peg$c1122="snow",peg$c1123=peg$literalExpectation("snow",false),peg$c1124=function(){return"#fffafaff"},peg$c1125="Snow",peg$c1126=peg$literalExpectation("Snow",false),peg$c1127="springgreen",peg$c1128=peg$literalExpectation("springgreen",false),peg$c1129=function(){return"#00ff7fff"},peg$c1130="SpringGreen",peg$c1131=peg$literalExpectation("SpringGreen",false),peg$c1132="steelblue",peg$c1133=peg$literalExpectation("steelblue",false),peg$c1134=function(){return"#4682b4ff"},peg$c1135="SteelBlue",peg$c1136=peg$literalExpectation("SteelBlue",false),peg$c1137="tan",peg$c1138=peg$literalExpectation("tan",false),peg$c1139=function(){return"#d2b48cff"},peg$c1140="Tan",peg$c1141=peg$literalExpectation("Tan",false),peg$c1142="teal",peg$c1143=peg$literalExpectation("teal",false),peg$c1144=function(){return"#008080ff"},peg$c1145="Teal",peg$c1146=peg$literalExpectation("Teal",false),peg$c1147="thistle",peg$c1148=peg$literalExpectation("thistle",false),peg$c1149=function(){return"#d8bfd8ff"},peg$c1150="Thistle",peg$c1151=peg$literalExpectation("Thistle",false),peg$c1152="tomato",peg$c1153=peg$literalExpectation("tomato",false),peg$c1154=function(){return"#ff6347ff"},peg$c1155="Tomato",peg$c1156=peg$literalExpectation("Tomato",false),peg$c1157="transparent",peg$c1158=peg$literalExpectation("transparent",false),peg$c1159=function(){return"#00000000"},peg$c1160="Transparent",peg$c1161=peg$literalExpectation("Transparent",false),peg$c1162="turquoise",peg$c1163=peg$literalExpectation("turquoise",false),peg$c1164=function(){return"#40e0d0ff"},peg$c1165="Turquoise",peg$c1166=peg$literalExpectation("Turquoise",false),peg$c1167="violet",peg$c1168=peg$literalExpectation("violet",false),peg$c1169=function(){return"#ee82eeff"},peg$c1170="Violet",peg$c1171=peg$literalExpectation("Violet",false),peg$c1172="wheat",peg$c1173=peg$literalExpectation("wheat",false),peg$c1174=function(){return"#f5deb3ff"},peg$c1175="Wheat",peg$c1176=peg$literalExpectation("Wheat",false),peg$c1177="whitesmoke",peg$c1178=peg$literalExpectation("whitesmoke",false),peg$c1179=function(){return"#f5f5f5ff"},peg$c1180="WhiteSmoke",peg$c1181=peg$literalExpectation("WhiteSmoke",false),peg$c1182="white",peg$c1183=peg$literalExpectation("white",false),peg$c1184=function(){return"#ffffffff"},peg$c1185="White",peg$c1186=peg$literalExpectation("White",false),peg$c1187="yellowgreen",peg$c1188=peg$literalExpectation("yellowgreen",false),peg$c1189=function(){return"#9acd32ff"},peg$c1190="YellowGreen",peg$c1191=peg$literalExpectation("YellowGreen",false),peg$c1192="yellow",peg$c1193=peg$literalExpectation("yellow",false),peg$c1194=function(){return"#ffff00ff"},peg$c1195="Yellow",peg$c1196=peg$literalExpectation("Yellow",false),peg$c1197=function(lab){return lab},peg$c1198="#",peg$c1199=peg$literalExpectation("#",false),peg$c1200=function(r,g,b){return`#${r}${r}${g}${g}${b}${b}ff`},peg$c1201=function(r1,r2,g1,g2,b1,b2){return`#${r1}${r2}${g1}${g2}${b1}${b2}ff`},peg$c1202=function(r,g,b,a){return`#${r}${r}${g}${g}${b}${b}${a}${a}`},peg$c1203=function(r1,r2,g1,g2,b1,b2,a1,a2){return`#${r1}${r2}${g1}${g2}${b1}${b2}${a1}${a2}`},peg$c1204=peg$otherExpectation("color"),peg$c1205="arc_label",peg$c1206=peg$literalExpectation("arc_label",false),peg$c1207="head_label",peg$c1208=peg$literalExpectation("head_label",false),peg$c1209="tail_label",peg$c1210=peg$literalExpectation("tail_label",false),peg$c1211=":",peg$c1212=peg$literalExpectation(":",false),peg$c1213=";",peg$c1214=peg$literalExpectation(";",false),peg$c1215=function(key,value){const node={key:key,value:value};if(options.locations){node.loc=location()}return node},peg$c1216=peg$otherExpectation("single edge color"),peg$c1217="edge-color",peg$c1218=peg$literalExpectation("edge-color",false),peg$c1219=function(v){return options.locations?{__v:v,__loc:location()}:v},peg$c1220=function(value){const raw=options.locations?value.__v:value;const node={key:"single_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1221="edge_color",peg$c1222=peg$literalExpectation("edge_color",false),peg$c1223=peg$otherExpectation("transition line style"),peg$c1224="line-style",peg$c1225=peg$literalExpectation("line-style",false),peg$c1226=function(value){const node={key:"transition_line_style",value:value};if(options.locations){node.loc=location()}return node},peg$c1227="{",peg$c1228=peg$literalExpectation("{",false),peg$c1229="}",peg$c1230=peg$literalExpectation("}",false),peg$c1231=function(items){return items},peg$c1232="%",peg$c1233=peg$literalExpectation("%",false),peg$c1234=function(value){const node={key:"arrow probability",value:value};if(options.locations){node.loc=location()}return node},peg$c1235="milliseconds",peg$c1236=peg$literalExpectation("milliseconds",false),peg$c1237=function(){return 1},peg$c1238="millisecond",peg$c1239=peg$literalExpectation("millisecond",false),peg$c1240="msecs",peg$c1241=peg$literalExpectation("msecs",false),peg$c1242="msec",peg$c1243=peg$literalExpectation("msec",false),peg$c1244="ms",peg$c1245=peg$literalExpectation("ms",false),peg$c1246="seconds",peg$c1247=peg$literalExpectation("seconds",false),peg$c1248=function(){return 1e3},peg$c1249="second",peg$c1250=peg$literalExpectation("second",false),peg$c1251="secs",peg$c1252=peg$literalExpectation("secs",false),peg$c1253="sec",peg$c1254=peg$literalExpectation("sec",false),peg$c1255="s",peg$c1256=peg$literalExpectation("s",false),peg$c1257="minutes",peg$c1258=peg$literalExpectation("minutes",false),peg$c1259=function(){return 1e3*60},peg$c1260="minute",peg$c1261=peg$literalExpectation("minute",false),peg$c1262="mins",peg$c1263=peg$literalExpectation("mins",false),peg$c1264="min",peg$c1265=peg$literalExpectation("min",false),peg$c1266="m",peg$c1267=peg$literalExpectation("m",false),peg$c1268="hours",peg$c1269=peg$literalExpectation("hours",false),peg$c1270=function(){return 1e3*60*60},peg$c1271="hour",peg$c1272=peg$literalExpectation("hour",false),peg$c1273="hrs",peg$c1274=peg$literalExpectation("hrs",false),peg$c1275="hr",peg$c1276=peg$literalExpectation("hr",false),peg$c1277="h",peg$c1278=peg$literalExpectation("h",false),peg$c1279="days",peg$c1280=peg$literalExpectation("days",false),peg$c1281=function(){return 1e3*60*60*24},peg$c1282="day",peg$c1283=peg$literalExpectation("day",false),peg$c1284="d",peg$c1285=peg$literalExpectation("d",false),peg$c1286="weeks",peg$c1287=peg$literalExpectation("weeks",false),peg$c1288=function(){return 1e3*60*60*24*7},peg$c1289="week",peg$c1290=peg$literalExpectation("week",false),peg$c1291="wks",peg$c1292=peg$literalExpectation("wks",false),peg$c1293="wk",peg$c1294=peg$literalExpectation("wk",false),peg$c1295="w",peg$c1296=peg$literalExpectation("w",false),peg$c1297="after",peg$c1298=peg$literalExpectation("after",false),peg$c1299=function(value,timescale){return value*(timescale||1e3)},peg$c1300=function(names){return names.map(i=>i[0])},peg$c1301=peg$otherExpectation("group reference"),peg$c1302="&",peg$c1303=peg$literalExpectation("&",false),peg$c1304=function(name){return{key:"group_ref",name:name}},peg$c1305="...",peg$c1306=peg$literalExpectation("...",false),peg$c1307=function(name){const m={kind:"group",name:name,mode:"spread"};if(options.locations){m.__loc=location()}return m},peg$c1308=function(name){const m={kind:"group",name:name,mode:"nest"};if(options.locations){m.__loc=location()}return m},peg$c1309=function(name){const m={kind:"state",name:name};if(options.locations){m.__loc=location()}return m},peg$c1310=function(members){const items=members.map(m=>m[0]);const has_group=items.some(m=>m.kind==="group");const collapsed=has_group?items:items.map(m=>m.name);if(options.locations){collapsed.__member_locs=items.map(m=>m.__loc)}return collapsed},peg$c1311="+|",peg$c1312=peg$literalExpectation("+|",false),peg$c1313=function(n){const node={key:"stripe",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1314="-|",peg$c1315=peg$literalExpectation("-|",false),peg$c1316=function(n){const node={key:"stripe",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1317="+",peg$c1318=peg$literalExpectation("+",false),peg$c1319=function(n){const node={key:"cycle",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1320="-",peg$c1321=peg$literalExpectation("-",false),peg$c1322=function(n){const node={key:"cycle",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1323="+0",peg$c1324=peg$literalExpectation("+0",false),peg$c1325=function(){const node={key:"cycle",value:0};if(options.locations){node.loc=location()}return node},peg$c1326=function(v){return{_kind:"after",v:v}},peg$c1327=function(v){return{_kind:"action",v:v,loc:location()}},peg$c1328=function(v){return{_kind:"prob",v:v}},peg$c1329=function(v){return{_kind:"desc",v:v}},peg$c1330=function(d){return d},peg$c1331=function(pre,arrow,post,l){return options.locations?{__v:l,__loc:location()}:l},peg$c1332=function(pre,arrow,post,label,tail){const toVal=options.locations?label.__v:label;const base={kind:arrow,to:toVal};const seen={};for(const d of pre){if(seen["pre:"+d._kind]){error("duplicate "+d._kind+" decoration before arrow",location())}seen["pre:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.r_after=d.v}if(d._kind==="action"&&d.v!=null){base.r_action=d.v;if(options.locations){base.r_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.r_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.l_desc=d.v}}for(const d of post){if(seen["post:"+d._kind]){error("duplicate "+d._kind+" decoration after arrow",location())}seen["post:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.l_after=d.v}if(d._kind==="action"&&d.v!=null){base.l_action=d.v;if(options.locations){base.l_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.l_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.r_desc=d.v}}if(tail){base.se=tail}if(options.locations){base.loc=location();base.to_loc=label.__loc}return base},peg$c1333=function(l){return options.locations?{__v:l,__loc:location()}:l},peg$c1334=function(label,se){const fromVal=options.locations?label.__v:label;const base={key:"transition",from:fromVal};if(se){base.se=se}if(options.locations){base.loc=location();base.from_loc=label.__loc}return base},peg$c1335="dot",peg$c1336=peg$literalExpectation("dot",false),peg$c1337="circo",peg$c1338=peg$literalExpectation("circo",false),peg$c1339="fdp",peg$c1340=peg$literalExpectation("fdp",false),peg$c1341="neato",peg$c1342=peg$literalExpectation("neato",false),peg$c1343="twopi",peg$c1344=peg$literalExpectation("twopi",false),peg$c1345="state",peg$c1346=peg$literalExpectation("state",false),peg$c1347="};",peg$c1348=peg$literalExpectation("};",false),peg$c1349=function(state_items){const node={key:"default_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1350="start_state",peg$c1351=peg$literalExpectation("start_state",false),peg$c1352=function(state_items){const node={key:"default_start_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1353="end_state",peg$c1354=peg$literalExpectation("end_state",false),peg$c1355=function(state_items){const node={key:"default_end_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1356="active_state",peg$c1357=peg$literalExpectation("active_state",false),peg$c1358=function(state_items){const node={key:"default_active_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1359="terminal_state",peg$c1360=peg$literalExpectation("terminal_state",false),peg$c1361=function(state_items){const node={key:"default_terminal_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1362="hooked_state",peg$c1363=peg$literalExpectation("hooked_state",false),peg$c1364=function(state_items){const node={key:"default_hooked_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1365=peg$otherExpectation("graph default edge color"),peg$c1366=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_default_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1367="transition",peg$c1368=peg$literalExpectation("transition",false),peg$c1369=function(items){const node={key:"default_transition_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1370="graph",peg$c1371=peg$literalExpectation("graph",false),peg$c1372=function(items){const node={key:"default_graph_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1373="editor",peg$c1374=peg$literalExpectation("editor",false),peg$c1375=function(items){const node={key:"editor_config",value:items};if(options.locations){node.loc=location()}return node},peg$c1376="stochastic_run_count",peg$c1377=peg$literalExpectation("stochastic_run_count",false),peg$c1378=function(value){const node={key:"stochastic_run_count",value:parseInt(value,10)};if(options.locations){node.loc=location()}return node},peg$c1379="panels",peg$c1380=peg$literalExpectation("panels",false),peg$c1381=function(value){const node={key:"panels",value:value};if(options.locations){node.loc=location()}return node},peg$c1382="graph_layout",peg$c1383=peg$literalExpectation("graph_layout",false),peg$c1384=function(value){const node={key:"graph_layout",value:value};if(options.locations){node.loc=location()}return node},peg$c1385="start_states",peg$c1386=peg$literalExpectation("start_states",false),peg$c1387=function(value){const node={key:"start_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1388="end_states",peg$c1389=peg$literalExpectation("end_states",false),peg$c1390=function(value){const node={key:"end_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1391="failed_outputs",peg$c1392=peg$literalExpectation("failed_outputs",false),peg$c1393=function(value){const raw=options.locations?value.__v:value;const node={key:"failed_outputs",value:typeof raw==="string"?[raw]:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1394="graph_bg_color",peg$c1395=peg$literalExpectation("graph_bg_color",false),peg$c1396=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_bg_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1397="allows_override",peg$c1398=peg$literalExpectation("allows_override",false),peg$c1399=function(value){const node={key:"allows_override",value:value};if(options.locations){node.loc=location()}return node},peg$c1400="allow_islands",peg$c1401=peg$literalExpectation("allow_islands",false),peg$c1402=function(value){const raw=options.locations?value.__v:value;const node={key:"allow_islands",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1403=function(){return true},peg$c1404=function(){return false},peg$c1405="with_start",peg$c1406=peg$literalExpectation("with_start",false),peg$c1407=function(){return"with_start"},peg$c1408=function(){return true},peg$c1409=function(){return false},peg$c1410=peg$otherExpectation("configuration"),peg$c1411="MIT",peg$c1412=peg$literalExpectation("MIT",false),peg$c1413="BSD 2-clause",peg$c1414=peg$literalExpectation("BSD 2-clause",false),peg$c1415="BSD 3-clause",peg$c1416=peg$literalExpectation("BSD 3-clause",false),peg$c1417="Apache 2.0",peg$c1418=peg$literalExpectation("Apache 2.0",false),peg$c1419="Mozilla 2.0",peg$c1420=peg$literalExpectation("Mozilla 2.0",false),peg$c1421="Public domain",peg$c1422=peg$literalExpectation("Public domain",false),peg$c1423="GPL v2",peg$c1424=peg$literalExpectation("GPL v2",false),peg$c1425="GPL v3",peg$c1426=peg$literalExpectation("GPL v3",false),peg$c1427="LGPL v2.1",peg$c1428=peg$literalExpectation("LGPL v2.1",false),peg$c1429="LGPL v3.0",peg$c1430=peg$literalExpectation("LGPL v3.0",false),peg$c1431="Unknown",peg$c1432=peg$literalExpectation("Unknown",false),peg$c1433=peg$otherExpectation("direction"),peg$c1434="up",peg$c1435=peg$literalExpectation("up",false),peg$c1436="right",peg$c1437=peg$literalExpectation("right",false),peg$c1438="down",peg$c1439=peg$literalExpectation("down",false),peg$c1440="left",peg$c1441=peg$literalExpectation("left",false),peg$c1442=peg$otherExpectation("hook definition (open/closed)"),peg$c1443="open",peg$c1444=peg$literalExpectation("open",false),peg$c1445="closed",peg$c1446=peg$literalExpectation("closed",false),peg$c1447="machine_author",peg$c1448=peg$literalExpectation("machine_author",false),peg$c1449=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_author",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1450="machine_contributor",peg$c1451=peg$literalExpectation("machine_contributor",false),peg$c1452=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_contributor",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1453="machine_comment",peg$c1454=peg$literalExpectation("machine_comment",false),peg$c1455=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_comment",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1456="machine_definition",peg$c1457=peg$literalExpectation("machine_definition",false),peg$c1458=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1459="machine_name",peg$c1460=peg$literalExpectation("machine_name",false),peg$c1461=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1462="npm_name",peg$c1463=peg$literalExpectation("npm_name",false),peg$c1464=function(value){const raw=options.locations?value.__v:value;const node={key:"npm_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1465="machine_reference",peg$c1466=peg$literalExpectation("machine_reference",false),peg$c1467=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_reference",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1468="machine_version",peg$c1469=peg$literalExpectation("machine_version",false),peg$c1470=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1471="machine_license",peg$c1472=peg$literalExpectation("machine_license",false),peg$c1473=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_license",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1474="machine_language",peg$c1475=peg$literalExpectation("machine_language",false),peg$c1476=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_language",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1477="fsl_version",peg$c1478=peg$literalExpectation("fsl_version",false),peg$c1479=function(value){const raw=options.locations?value.__v:value;const node={key:"fsl_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1480="theme",peg$c1481=peg$literalExpectation("theme",false),peg$c1482=function(value){const raw=options.locations?value.__v:value;const node={key:"theme",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1483="flow",peg$c1484=peg$literalExpectation("flow",false),peg$c1485=function(value){const raw=options.locations?value.__v:value;const node={key:"flow",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1486="hooks",peg$c1487=peg$literalExpectation("hooks",false),peg$c1488=function(value){const raw=options.locations?value.__v:value;const node={key:"hook_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1489="dot_preamble",peg$c1490=peg$literalExpectation("dot_preamble",false),peg$c1491=function(value){const raw=options.locations?value.__v:value;const node={key:"dot_preamble",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1492="height",peg$c1493=peg$literalExpectation("height",false),peg$c1494=function(n){return{height:n}},peg$c1495=function(w,h){return{width:w,height:h}},peg$c1496=function(w){return{width:w}},peg$c1497="default_size",peg$c1498=peg$literalExpectation("default_size",false),peg$c1499=function(value){const raw=options.locations?value.__v:value;const node={key:"default_size",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1500=peg$otherExpectation("machine attribute"),peg$c1501="label",peg$c1502=peg$literalExpectation("label",false),peg$c1503=function(value){const node={key:"state-label",value:value};if(options.locations){node.loc=location()}return node},peg$c1504="color",peg$c1505=peg$literalExpectation("color",false),peg$c1506=function(value){const raw=options.locations?value.__v:value;const node={key:"color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1507=peg$otherExpectation("text color"),peg$c1508="text-color",peg$c1509=peg$literalExpectation("text-color",false),peg$c1510=function(value){const raw=options.locations?value.__v:value;const node={key:"text-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1511=peg$otherExpectation("background color"),peg$c1512="background-color",peg$c1513=peg$literalExpectation("background-color",false),peg$c1514=function(value){const raw=options.locations?value.__v:value;const node={key:"background-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1515=peg$otherExpectation("border color"),peg$c1516="border-color",peg$c1517=peg$literalExpectation("border-color",false),peg$c1518=function(value){const raw=options.locations?value.__v:value;const node={key:"border-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1519=peg$otherExpectation("shape"),peg$c1520="shape",peg$c1521=peg$literalExpectation("shape",false),peg$c1522=function(value){const node={key:"shape",value:value};if(options.locations){node.loc=location()}return node},peg$c1523=peg$otherExpectation("corners"),peg$c1524="corners",peg$c1525=peg$literalExpectation("corners",false),peg$c1526=function(value){const node={key:"corners",value:value};if(options.locations){node.loc=location()}return node},peg$c1527=peg$otherExpectation("linestyle"),peg$c1528=function(value){const node={key:"line-style",value:value};if(options.locations){node.loc=location()}return node},peg$c1529="linestyle",peg$c1530=peg$literalExpectation("linestyle",false),peg$c1531=peg$otherExpectation("image"),peg$c1532="image",peg$c1533=peg$literalExpectation("image",false),peg$c1534=function(value){const node={key:"image",value:value};if(options.locations){node.loc=location()}return node},peg$c1535=peg$otherExpectation("url"),peg$c1536="url",peg$c1537=peg$literalExpectation("url",false),peg$c1538=function(value){const node={key:"url",value:value};if(options.locations){node.loc=location()}return node},peg$c1539=peg$otherExpectation("state property"),peg$c1540="property",peg$c1541=peg$literalExpectation("property",false),peg$c1542=function(name,value){const node={key:"state_property",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1543="required",peg$c1544=peg$literalExpectation("required",false),peg$c1545=function(name,value){const node={key:"state_property",name:name,value:value,required:true};if(options.locations){node.loc=location()}return node},peg$c1546=function(n){return options.locations?{__v:n,__loc:location()}:n},peg$c1547=function(name,value){const raw=options.locations?name.__v:name;const node={key:"state_declaration",name:raw,value:value};if(options.locations){node.loc=location();node.name_loc=name.__loc}return node},peg$c1548=function(name,value){const node={key:"named_list",name:name,value:value};if(options.locations){node.loc=location();node.value_locs=value.__member_locs;delete value.__member_locs}return node},peg$c1549=function(name,value){const node={key:"named_list",name:name,value:value.name};if(options.locations){node.loc=location();node.value_locs=[value.__loc]}return node},peg$c1550=function(name){const m={name:name};if(options.locations){m.__loc=location()}return m},peg$c1551=peg$otherExpectation("hook event (enter/exit)"),peg$c1552="enter",peg$c1553=peg$literalExpectation("enter",false),peg$c1554="exit",peg$c1555=peg$literalExpectation("exit",false),peg$c1556=peg$otherExpectation("hook declaration"),peg$c1557="on",peg$c1558=peg$literalExpectation("on",false),peg$c1559="do",peg$c1560=peg$literalExpectation("do",false),peg$c1561=function(event,subject,action){const node={key:"hook_decl",event:event,subject:subject,action:action};if(subject.key==="hook_state_subject"){node.subject=subject.name;if(options.locations){node.subject_loc=subject.__loc}}if(options.locations){node.loc=location()}return node},peg$c1562=function(name){const m={key:"hook_state_subject",name:name};if(options.locations){m.__loc=location()}return m},peg$c1563=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value,required:true};if(options.locations){node.loc=location()}return node},peg$c1564=function(name){const node={key:"property_definition",name:name,required:true};if(options.locations){node.loc=location()}return node},peg$c1565=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value};if(options.locations){node.loc=location()}return node},peg$c1566=function(name){const node={key:"property_definition",name:name};if(options.locations){node.loc=location()}return node},peg$c1567="arrange",peg$c1568=peg$literalExpectation("arrange",false),peg$c1569=function(value){const node={key:"arrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1570="arrange-start",peg$c1571=peg$literalExpectation("arrange-start",false),peg$c1572=function(value){const node={key:"arrange_start_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1573="arrange-end",peg$c1574=peg$literalExpectation("arrange-end",false),peg$c1575=function(value){const node={key:"arrange_end_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1576=peg$otherExpectation("oarrange declaration"),peg$c1577="oarrange",peg$c1578=peg$literalExpectation("oarrange",false),peg$c1579=function(value){const node={key:"oarrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1580=peg$otherExpectation("farrange declaration"),peg$c1581="farrange",peg$c1582=peg$literalExpectation("farrange",false),peg$c1583=function(value){const node={key:"farrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1584=peg$otherExpectation("arrange declaration"),peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error(`Can't start parsing from rule "`+options.startRule+'".')}peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function location(){return peg$computeLocation(peg$savedPos,peg$currPos)}function error(message,location2){location2=location2!==void 0?location2:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location2)}function peg$literalExpectation(text2,ignoreCase){return{type:"literal",text:text2,ignoreCase:ignoreCase}}function peg$classExpectation(parts,inverted,ignoreCase){return{type:"class",parts:parts,inverted:inverted,ignoreCase:ignoreCase}}function peg$anyExpectation(){return{type:"any"}}function peg$endExpectation(){return{type:"end"}}function peg$otherExpectation(description){return{type:"other",description:description}}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p;if(details){return details}else{p=pos-1;while(!peg$posDetailsCache[p]){p--}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(p<pos){if(input.charCodeAt(p)===10){details.line++;details.column=1}else{details.column++}p++}peg$posDetailsCache[pos]=details;return details}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}}}function peg$fail(expected2){if(peg$currPos<peg$maxFailPos){return}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected2)}function peg$buildSimpleError(message,location2){return new peg$SyntaxError(message,null,null,location2)}function peg$buildStructuredError(expected2,found,location2){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected2,found),expected2,found,location2)}function peg$parseDocument(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseTermList();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c0(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseTheme(){var s0;if(input.substr(peg$currPos,7)===peg$c1){s0=peg$c1;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c3){s0=peg$c3;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c4)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c5){s0=peg$c5;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c6)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c9){s0=peg$c9;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c10)}}}}}}return s0}function peg$parseThemeOrThemeList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){s4=peg$parseTheme();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s5=peg$c13;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseTheme();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s1)}s0=s1}return s0}function peg$parseGvizShape(){var s0;if(input.substr(peg$currPos,5)===peg$c17){s0=peg$c17;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c18)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c19){s0=peg$c19;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c20)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c21){s0=peg$c21;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c22)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c23){s0=peg$c23;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c24)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c25){s0=peg$c25;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c26)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c27){s0=peg$c27;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c28)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c29){s0=peg$c29;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c30)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c31){s0=peg$c31;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c32)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c33){s0=peg$c33;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c34)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c35){s0=peg$c35;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c36)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c37){s0=peg$c37;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c38)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c39){s0=peg$c39;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c40)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c41){s0=peg$c41;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c42)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c43){s0=peg$c43;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c44)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c45){s0=peg$c45;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c46)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c47){s0=peg$c47;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c48)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c49){s0=peg$c49;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c50)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c51){s0=peg$c51;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c52)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c53){s0=peg$c53;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c54)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c55){s0=peg$c55;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c56)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c57){s0=peg$c57;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c58)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c59){s0=peg$c59;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c60)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c61){s0=peg$c61;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c62)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c63){s0=peg$c63;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c64)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c65){s0=peg$c65;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c66)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c67){s0=peg$c67;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c68)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c69){s0=peg$c69;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c70)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c71){s0=peg$c71;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c72)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c73){s0=peg$c73;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c74)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c75){s0=peg$c75;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c76)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c77){s0=peg$c77;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c78)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c79){s0=peg$c79;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c80)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c81){s0=peg$c81;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c82)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c83){s0=peg$c83;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c84)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c85){s0=peg$c85;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c86)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c87){s0=peg$c87;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c88)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c89){s0=peg$c89;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c90)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c91){s0=peg$c91;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c92)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c93){s0=peg$c93;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c94)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c95){s0=peg$c95;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c96)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c97){s0=peg$c97;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c98)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c99){s0=peg$c99;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c100)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c101){s0=peg$c101;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c102)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,15)===peg$c103){s0=peg$c103;peg$currPos+=15}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c104)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c105){s0=peg$c105;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c106)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,14)===peg$c107){s0=peg$c107;peg$currPos+=14}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c108)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c109){s0=peg$c109;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c110)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c111){s0=peg$c111;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c112)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c113){s0=peg$c113;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c114)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c115){s0=peg$c115;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c116)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c117){s0=peg$c117;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c118)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c119){s0=peg$c119;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c120)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c121){s0=peg$c121;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c122)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c123){s0=peg$c123;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c124)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c125){s0=peg$c125;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c126)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c127){s0=peg$c127;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c128)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c129){s0=peg$c129;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c130)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c131){s0=peg$c131;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c132)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c133){s0=peg$c133;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c134)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseForwardLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c136){s0=peg$c136;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c137)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8594){s1=peg$c138;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c139)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c140()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c135)}}return s0}function peg$parseTwoWayLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c142){s0=peg$c142;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c143)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8596){s1=peg$c144;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c145)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c146()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c141)}}return s0}function peg$parseBackLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c148){s0=peg$c148;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c149)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8592){s1=peg$c150;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c152()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c147)}}return s0}function peg$parseForwardFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c154){s0=peg$c154;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c155)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8658){s1=peg$c156;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c157)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c158()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c153)}}return s0}function peg$parseTwoWayFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c160){s0=peg$c160;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c161)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8660){s1=peg$c162;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c164()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c159)}}return s0}function peg$parseBackFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c166){s0=peg$c166;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c167)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8656){s1=peg$c168;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c169)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c170()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c165)}}return s0}function peg$parseForwardTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c172){s0=peg$c172;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c173)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8603){s1=peg$c174;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c175)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c176()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c171)}}return s0}function peg$parseTwoWayTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c178){s0=peg$c178;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c179)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8622){s1=peg$c180;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c182()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c177)}}return s0}function peg$parseBackTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c184){s0=peg$c184;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c185)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8602){s1=peg$c186;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c187)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c188()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c183)}}return s0}function peg$parseLightFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c190){s0=peg$c190;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c191)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c192){s1=peg$c192;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c194()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c189)}}return s0}function peg$parseLightTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c196){s0=peg$c196;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c197)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c198){s1=peg$c198;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c199)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c200()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c195)}}return s0}function peg$parseFatLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c202){s0=peg$c202;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c203)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c204){s1=peg$c204;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c205)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c206()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c201)}}return s0}function peg$parseFatTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c208){s0=peg$c208;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c209)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c210){s1=peg$c210;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c211)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c212()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c207)}}return s0}function peg$parseTildeLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c214){s0=peg$c214;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c215)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c216){s1=peg$c216;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c217)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c218()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c213)}}return s0}function peg$parseTildeFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c220){s0=peg$c220;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c221)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c222){s1=peg$c222;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c223)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c224()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c219)}}return s0}function peg$parseLightArrow(){var s0;peg$silentFails++;s0=peg$parseForwardLightArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayLightArrow();if(s0===peg$FAILED){s0=peg$parseBackLightArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c225)}}return s0}function peg$parseFatArrow(){var s0;peg$silentFails++;s0=peg$parseForwardFatArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayFatArrow();if(s0===peg$FAILED){s0=peg$parseBackFatArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c226)}}return s0}function peg$parseTildeArrow(){var s0;peg$silentFails++;s0=peg$parseForwardTildeArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayTildeArrow();if(s0===peg$FAILED){s0=peg$parseBackTildeArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c227)}}return s0}function peg$parseMixedArrow(){var s0;peg$silentFails++;s0=peg$parseLightFatArrow();if(s0===peg$FAILED){s0=peg$parseLightTildeArrow();if(s0===peg$FAILED){s0=peg$parseFatLightArrow();if(s0===peg$FAILED){s0=peg$parseFatTildeArrow();if(s0===peg$FAILED){s0=peg$parseTildeLightArrow();if(s0===peg$FAILED){s0=peg$parseTildeFatArrow()}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c228)}}return s0}function peg$parseArrow(){var s0;peg$silentFails++;s0=peg$parseMixedArrow();if(s0===peg$FAILED){s0=peg$parseLightArrow();if(s0===peg$FAILED){s0=peg$parseFatArrow();if(s0===peg$FAILED){s0=peg$parseTildeArrow()}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c229)}}return s0}function peg$parseBoolean(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c232()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235()}s0=s1}return s0}function peg$parseCorners(){var s0;if(input.substr(peg$currPos,7)===peg$c236){s0=peg$c236;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c237)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c238){s0=peg$c238;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c239)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c240){s0=peg$c240;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c241)}}}}return s0}function peg$parseLineStyle(){var s0;if(input.substr(peg$currPos,5)===peg$c242){s0=peg$c242;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c243)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c244){s0=peg$c244;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c245)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c246){s0=peg$c246;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c247)}}}}return s0}function peg$parseNull(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c276){s1=peg$c276;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c277)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c278()}s0=s1;return s0}function peg$parseUndefined(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1;return s0}function peg$parseActionLabel(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===39){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=32&&c!==39&&c!==92){peg$currPos++;continue}if(c===39){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===39){out+="'";peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c288)}return peg$FAILED}function peg$parseLineTerminator(){var s0;if(peg$c290.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c291)}}return s0}function peg$parseBlockComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c293){s1=peg$c293;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c294)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c295){s3=peg$c295;peg$currPos+=2}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c292)}}return s0}function peg$parseEOF(){var s0,s1;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}peg$silentFails--;if(s1===peg$FAILED){s0=void 0}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c299){s1=peg$c299;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c300)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){s3=peg$parseLineTerminator();if(s3===peg$FAILED){s3=peg$parseEOF()}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c298)}}return s0}function peg$parseWS(){var c,r,matched;peg$silentFails++;matched=false;for(;;){c=input.charCodeAt(peg$currPos);if(c===32||c===9||c===13||c===10||c===11){peg$currPos++;matched=true;continue}if(c!==47){break}r=peg$parseBlockComment();if(r===peg$FAILED){r=peg$parseLineComment()}if(r===peg$FAILED){break}matched=true}peg$silentFails--;if(matched){return null}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c301)}return peg$FAILED}function peg$parseString(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===34){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=0&&c!==34&&c!==92){peg$currPos++;continue}if(c===34){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===34){out+='"';peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c304)}return peg$FAILED}function peg$parseAtomLetter(){var s0;if(peg$c307.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c308)}}return s0}function peg$parseAtom(){var c,start;peg$silentFails++;c=input.charCodeAt(peg$currPos);if(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c>=128){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c===43||c===40||c===41||c===38||c===35||c===64||c>=128){peg$currPos++;c=input.charCodeAt(peg$currPos)}peg$silentFails--;return input.substring(start,peg$currPos)}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c309)}return peg$FAILED}function peg$parseLabel(){var s0;peg$silentFails++;s0=peg$parseAtom();if(s0===peg$FAILED){s0=peg$parseString()}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseIntegerLiteral(){var c,start;c=input.charCodeAt(peg$currPos);if(c===48){peg$currPos++;return"0"}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}if(c>=49&&c<=57){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57){peg$currPos++;c=input.charCodeAt(peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}return input.substring(start,peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}return peg$FAILED}function peg$parseDecimalDigit(){var s0;if(peg$c314.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}}return s0}function peg$parseNonZeroDigit(){var s0;if(peg$c316.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}}return s0}function peg$parseHexDigit(){var s0;if(peg$c318.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c319)}}return s0}function peg$parseBinaryDigit(){var s0;if(peg$c320.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c321)}}return s0}function peg$parseOctalDigit(){var s0;if(peg$c322.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c323)}}return s0}function peg$parseNonNegNumber(){var s0,s1,s2,s3,s4;peg$silentFails++;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c324)}}return s0}function peg$parseJsNumericLiteral(){var s0,s1;peg$silentFails++;s0=peg$currPos;s1=peg$parseJsHexIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsBinaryIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonJsOctalIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c330){s1=peg$c330;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c331)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c332()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c333){s1=peg$c333;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c334)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c336){s1=peg$c336;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c337)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c338){s1=peg$c338;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c339)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c340){s1=peg$c340;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c341)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c342){s1=peg$c342;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c343)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c344){s1=peg$c344;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c345)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c346){s1=peg$c346;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c347)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c348){s1=peg$c348;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c349)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c351){s1=peg$c351;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c352)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c353){s1=peg$c353;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c354)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c355){s1=peg$c355;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c356)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8734){s1=peg$c357;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c358)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c359){s1=peg$c359;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c360)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c362){s1=peg$c362;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c363)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===949){s1=peg$c364;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c365)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c366){s1=peg$c366;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c367)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c369){s1=peg$c369;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c370)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===960){s1=peg$c371;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c372)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c373){s1=peg$c373;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c374)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===69){s1=peg$c376;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c377)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===101){s1=peg$c378;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c379)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===400){s1=peg$c380;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c381)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8455){s1=peg$c382;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c383)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c384){s1=peg$c384;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c385)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c386()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c387){s1=peg$c387;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c388)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c389()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c390){s1=peg$c390;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c391)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c393){s1=peg$c393;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c394)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c395){s1=peg$c395;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c396)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c398){s1=peg$c398;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c399)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c400){s1=peg$c400;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c401)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c402()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c403){s1=peg$c403;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c404)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c405()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c406){s1=peg$c406;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c407)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c409){s1=peg$c409;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c410)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c411()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c412){s1=peg$c412;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c413)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c414()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c415){s1=peg$c415;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c416)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c417()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c418){s1=peg$c418;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c419)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c421){s1=peg$c421;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c422)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c423){s1=peg$c423;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c424)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===981){s1=peg$c425;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c426)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===966){s1=peg$c427;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c428)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c429){s1=peg$c429;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c430)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===947){s1=peg$c432;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c433)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c434){s1=peg$c434;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c435)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c328)}}return s0}function peg$parseJsDecimalLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseJsNExponentPart();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===46){s1=peg$c325;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s3=peg$parseJsNExponentPart();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseJsNExponentPart();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}return s0}function peg$parseJsDecimalIntegerLiteral(){var s0,s1,s2,s3;if(input.charCodeAt(peg$currPos)===48){s0=peg$c312;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonZeroDigit();if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseJsNExponentPart(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseJsNExponentIndicator();if(s1!==peg$FAILED){s2=peg$parseJsNSignedInteger();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsNExponentIndicator(){var s0;if(input.substr(peg$currPos,1).toLowerCase()===peg$c378){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c436)}}return s0}function peg$parseJsNSignedInteger(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c437.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c438)}}if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsHexIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c439){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c440)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c441(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsBinaryIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c442){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c443)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseBinaryDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseBinaryDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c444(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNonJsOctalIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c445){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c446)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseOctalDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseOctalDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c447(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSemVer(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=peg$parseIntegerLiteral();if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s4=peg$c325;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s4!==peg$FAILED){s5=peg$parseIntegerLiteral();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c448(s1,s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseUrlProtocol(){var s0;if(input.substr(peg$currPos,7)===peg$c459){s0=peg$c459;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c460)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c461){s0=peg$c461;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c462)}}}return s0}function peg$parseURL(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseUrlProtocol();if(s1!==peg$FAILED){s2=[];if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}}}else{s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c465();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSvgColorLabel(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c466){s1=peg$c466;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c467)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c469){s1=peg$c469;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c470)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c471){s1=peg$c471;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c472)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c474){s1=peg$c474;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c475)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c476){s1=peg$c476;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c477)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c479){s1=peg$c479;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c480)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c481){s1=peg$c481;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c482)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c484){s1=peg$c484;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c485)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c486){s1=peg$c486;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c487)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c489){s1=peg$c489;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c490)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c491){s1=peg$c491;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c492)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c494){s1=peg$c494;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c495)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c496){s1=peg$c496;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c497)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c499){s1=peg$c499;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c500)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c501){s1=peg$c501;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c502)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c504){s1=peg$c504;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c505)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c506){s1=peg$c506;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c507)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c509){s1=peg$c509;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c510)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c511){s1=peg$c511;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c512)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c514){s1=peg$c514;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c515)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c516){s1=peg$c516;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c517)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c519){s1=peg$c519;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c520)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c521){s1=peg$c521;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c522)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c524){s1=peg$c524;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c525)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c526){s1=peg$c526;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c527)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c529){s1=peg$c529;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c530)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c531){s1=peg$c531;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c532)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c534){s1=peg$c534;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c535)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c536){s1=peg$c536;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c537)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c539){s1=peg$c539;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c540)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c541){s1=peg$c541;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c542)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c544){s1=peg$c544;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c545)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c546){s1=peg$c546;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c547)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c549){s1=peg$c549;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c550)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c551){s1=peg$c551;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c552)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c554){s1=peg$c554;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c555)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c556){s1=peg$c556;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c557)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c559){s1=peg$c559;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c560)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c561){s1=peg$c561;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c562)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c564){s1=peg$c564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c565)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c566){s1=peg$c566;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c567)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c568){s1=peg$c568;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c569)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c570){s1=peg$c570;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c571)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c573){s1=peg$c573;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c574)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c575){s1=peg$c575;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c576)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c578){s1=peg$c578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c579)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c580){s1=peg$c580;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c581)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c583){s1=peg$c583;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c584)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c585){s1=peg$c585;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c586)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c588){s1=peg$c588;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c589)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c590){s1=peg$c590;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c591)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c592){s1=peg$c592;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c593)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c594){s1=peg$c594;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c595)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c597){s1=peg$c597;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c598)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c599){s1=peg$c599;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c600)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c602){s1=peg$c602;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c603)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c604){s1=peg$c604;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c605)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c607){s1=peg$c607;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c608)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c609){s1=peg$c609;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c610)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c612){s1=peg$c612;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c613)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c614){s1=peg$c614;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c615)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c617){s1=peg$c617;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c618)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c619){s1=peg$c619;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c620)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c622){s1=peg$c622;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c623)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c624){s1=peg$c624;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c625)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c627){s1=peg$c627;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c628)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c629){s1=peg$c629;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c630)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c632){s1=peg$c632;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c633)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c634){s1=peg$c634;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c635)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c637){s1=peg$c637;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c638)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c639){s1=peg$c639;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c640)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c642){s1=peg$c642;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c643)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c644){s1=peg$c644;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c645)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c647){s1=peg$c647;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c648)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c649){s1=peg$c649;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c650)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c651){s1=peg$c651;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c652)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c653){s1=peg$c653;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c654)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c656){s1=peg$c656;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c657)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c658){s1=peg$c658;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c659)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c661){s1=peg$c661;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c662)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c663){s1=peg$c663;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c664)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c666){s1=peg$c666;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c667)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c668){s1=peg$c668;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c669)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c671){s1=peg$c671;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c672)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c673){s1=peg$c673;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c674)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c676){s1=peg$c676;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c677)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c678){s1=peg$c678;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c679)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c680){s1=peg$c680;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c681)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c682){s1=peg$c682;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c683)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c685){s1=peg$c685;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c686)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c687){s1=peg$c687;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c688)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c690){s1=peg$c690;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c691)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c692){s1=peg$c692;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c693)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c695){s1=peg$c695;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c696)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c697){s1=peg$c697;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c698)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c700){s1=peg$c700;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c701)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c702){s1=peg$c702;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c703)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c705){s1=peg$c705;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c706)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c707){s1=peg$c707;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c708)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c710){s1=peg$c710;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c711)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c712){s1=peg$c712;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c713)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c715){s1=peg$c715;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c716)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c717){s1=peg$c717;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c718)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c720){s1=peg$c720;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c721)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c722){s1=peg$c722;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c723)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c725){s1=peg$c725;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c726)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c727){s1=peg$c727;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c728)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c730){s1=peg$c730;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c731)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c732){s1=peg$c732;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c733)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c734){s1=peg$c734;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c735)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c736){s1=peg$c736;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c737)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c739){s1=peg$c739;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c740)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c741){s1=peg$c741;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c742)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c744){s1=peg$c744;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c745)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c746){s1=peg$c746;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c747)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c749){s1=peg$c749;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c750)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c751){s1=peg$c751;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c752)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c754){s1=peg$c754;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c755)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c756){s1=peg$c756;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c757)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c759){s1=peg$c759;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c760)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c761){s1=peg$c761;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c762)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c764){s1=peg$c764;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c765)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c766){s1=peg$c766;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c767)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c769){s1=peg$c769;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c770)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c771){s1=peg$c771;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c772)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c774){s1=peg$c774;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c775)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c776){s1=peg$c776;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c777)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c779){s1=peg$c779;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c780)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c781){s1=peg$c781;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c782)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c784){s1=peg$c784;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c785)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c786){s1=peg$c786;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c787)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c789){s1=peg$c789;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c790)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c791){s1=peg$c791;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c792)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c794){s1=peg$c794;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c795)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c796){s1=peg$c796;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c797)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c799){s1=peg$c799;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c800)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c801){s1=peg$c801;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c802)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c804){s1=peg$c804;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c805)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c806){s1=peg$c806;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c807)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c809){s1=peg$c809;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c810)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c811){s1=peg$c811;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c812)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c814){s1=peg$c814;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c815)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c816){s1=peg$c816;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c817)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c819){s1=peg$c819;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c820)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c821){s1=peg$c821;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c822)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c823){s1=peg$c823;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c824)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c825){s1=peg$c825;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c826)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c828){s1=peg$c828;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c829)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c830){s1=peg$c830;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c831)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c833){s1=peg$c833;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c834)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c835){s1=peg$c835;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c836)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c838){s1=peg$c838;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c839)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c840){s1=peg$c840;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c841)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c843){s1=peg$c843;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c844)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c845){s1=peg$c845;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c846)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c848){s1=peg$c848;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c849)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c850){s1=peg$c850;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c851)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c853){s1=peg$c853;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c854)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c855){s1=peg$c855;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c856)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c857){s1=peg$c857;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c858)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c859){s1=peg$c859;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c860)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c862){s1=peg$c862;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c863)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c864){s1=peg$c864;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c865)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c867){s1=peg$c867;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c868)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c869){s1=peg$c869;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c870)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c872){s1=peg$c872;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c873)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c874){s1=peg$c874;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c875)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c877){s1=peg$c877;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c878)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c879){s1=peg$c879;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c880)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c882){s1=peg$c882;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c883)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c884){s1=peg$c884;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c885)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c886){s1=peg$c886;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c887)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c888){s1=peg$c888;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c889)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c891){s1=peg$c891;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c892)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c893){s1=peg$c893;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c894)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c896){s1=peg$c896;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c897)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c898){s1=peg$c898;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c899)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c901){s1=peg$c901;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c902)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c903){s1=peg$c903;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c904)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c906){s1=peg$c906;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c907)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c908){s1=peg$c908;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c909)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c911){s1=peg$c911;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c912)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c913){s1=peg$c913;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c914)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c916){s1=peg$c916;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c917)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c918){s1=peg$c918;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c919)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c921){s1=peg$c921;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c922)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c923){s1=peg$c923;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c924)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c926){s1=peg$c926;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c927)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c928){s1=peg$c928;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c929)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c931){s1=peg$c931;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c932)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c933){s1=peg$c933;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c934)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c936){s1=peg$c936;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c937)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c938){s1=peg$c938;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c939)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c941){s1=peg$c941;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c942)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c943){s1=peg$c943;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c944)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c946){s1=peg$c946;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c947)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c948){s1=peg$c948;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c949)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c951){s1=peg$c951;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c952)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c953){s1=peg$c953;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c954)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c956){s1=peg$c956;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c957)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c958){s1=peg$c958;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c959)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c961){s1=peg$c961;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c962)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c963){s1=peg$c963;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c964)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c966){s1=peg$c966;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c967)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c968){s1=peg$c968;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c969)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c971){s1=peg$c971;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c972)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c973){s1=peg$c973;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c974)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c976){s1=peg$c976;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c977)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c978){s1=peg$c978;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c979)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c981){s1=peg$c981;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c982)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c983){s1=peg$c983;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c984)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c986){s1=peg$c986;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c987)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c988){s1=peg$c988;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c989)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c991){s1=peg$c991;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c992)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c993){s1=peg$c993;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c994)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c996){s1=peg$c996;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c997)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c998){s1=peg$c998;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c999)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1001){s1=peg$c1001;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1002)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1003){s1=peg$c1003;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1004)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1006){s1=peg$c1006;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1007)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1008){s1=peg$c1008;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1009)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1011){s1=peg$c1011;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1012)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1013){s1=peg$c1013;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1014)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1016){s1=peg$c1016;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1017)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1018){s1=peg$c1018;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1019)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1021){s1=peg$c1021;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1022)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1023){s1=peg$c1023;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1024)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1026){s1=peg$c1026;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1027)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1028){s1=peg$c1028;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1029)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1031){s1=peg$c1031;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1032)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1033){s1=peg$c1033;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1034)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1036){s1=peg$c1036;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1037)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1038){s1=peg$c1038;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1039)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1041){s1=peg$c1041;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1042)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1043){s1=peg$c1043;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1044)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1046){s1=peg$c1046;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1047)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1048){s1=peg$c1048;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1049)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1051){s1=peg$c1051;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1052)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1053){s1=peg$c1053;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1054)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1056){s1=peg$c1056;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1057)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1058){s1=peg$c1058;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1059)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1061){s1=peg$c1061;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1062)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1063){s1=peg$c1063;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1064)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1066){s1=peg$c1066;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1067)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1068){s1=peg$c1068;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1069)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1071){s1=peg$c1071;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1072)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1073){s1=peg$c1073;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1074)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1076){s1=peg$c1076;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1077)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1078){s1=peg$c1078;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1079)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1081){s1=peg$c1081;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1082)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1083){s1=peg$c1083;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1084)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1086){s1=peg$c1086;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1087)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1088){s1=peg$c1088;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1089)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1091){s1=peg$c1091;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1092)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1093){s1=peg$c1093;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1094)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1096){s1=peg$c1096;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1097)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1098){s1=peg$c1098;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1099)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1101){s1=peg$c1101;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1102)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1103){s1=peg$c1103;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1104)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1106){s1=peg$c1106;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1107)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1108){s1=peg$c1108;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1109)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1111){s1=peg$c1111;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1112)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1113){s1=peg$c1113;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1114)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1116){s1=peg$c1116;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1117)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1118){s1=peg$c1118;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1119)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1120){s1=peg$c1120;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1121)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1122){s1=peg$c1122;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1123)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1125){s1=peg$c1125;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1126)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1127){s1=peg$c1127;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1128)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1130){s1=peg$c1130;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1131)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1132){s1=peg$c1132;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1133)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1135){s1=peg$c1135;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1136)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1137){s1=peg$c1137;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1138)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1140){s1=peg$c1140;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1141)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1142){s1=peg$c1142;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1143)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1145){s1=peg$c1145;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1146)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1147){s1=peg$c1147;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1148)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1150){s1=peg$c1150;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1152){s1=peg$c1152;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1153)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1155){s1=peg$c1155;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1156)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1157){s1=peg$c1157;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1158)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1160){s1=peg$c1160;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1161)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1162){s1=peg$c1162;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1165){s1=peg$c1165;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1166)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1167){s1=peg$c1167;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1168)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1170){s1=peg$c1170;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1171)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1172){s1=peg$c1172;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1173)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1175){s1=peg$c1175;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1176)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1177){s1=peg$c1177;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1178)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1180){s1=peg$c1180;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1182){s1=peg$c1182;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1183)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1185){s1=peg$c1185;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1186)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1187){s1=peg$c1187;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1188)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1190){s1=peg$c1190;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1191)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1192){s1=peg$c1192;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1195){s1=peg$c1195;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1196)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseSvgColor(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSvgColorLabel();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1197(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb3(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1200(s2,s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb6(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseWS();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){peg$savedPos=s0;s1=peg$c1201(s2,s3,s4,s5,s6,s7);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba4(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1202(s2,s3,s4,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba8(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseHexDigit();if(s8!==peg$FAILED){s9=peg$parseHexDigit();if(s9!==peg$FAILED){s10=peg$parseWS();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1203(s2,s3,s4,s5,s6,s7,s8,s9);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseColor(){var s0;peg$silentFails++;s0=peg$parseSvgColor();if(s0===peg$FAILED){s0=peg$parseRgba8();if(s0===peg$FAILED){s0=peg$parseRgb6();if(s0===peg$FAILED){s0=peg$parseRgba4();if(s0===peg$FAILED){s0=peg$parseRgb3()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseArrowItemKey(){var s0;if(input.substr(peg$currPos,9)===peg$c1205){s0=peg$c1205;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1206)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1207){s0=peg$c1207;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1208)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1209){s0=peg$c1209;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1210)}}}}return s0}function peg$parseArrowItem(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowItemKey();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1215(s2,s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSingleEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1216)}}return s0}function peg$parseTransitionLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1226(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1223)}}return s0}function peg$parseArrowItems(){var s0,s1;s0=peg$parseSingleEdgeColor();if(s0===peg$FAILED){s0=peg$parseTransitionLineStyle();if(s0===peg$FAILED){s0=[];s1=peg$parseArrowItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseArrowItem()}}else{s0=peg$FAILED}}}return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseArrowItems();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrowProbability(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===37){s2=peg$c1232;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1233)}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1234(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}var peg$timetype_alts=[[12,peg$c1235,peg$c1236,peg$c1237,109],[11,peg$c1238,peg$c1239,peg$c1237,109],[5,peg$c1240,peg$c1241,peg$c1237,109],[4,peg$c1242,peg$c1243,peg$c1237,109],[2,peg$c1244,peg$c1245,peg$c1237,109],[7,peg$c1246,peg$c1247,peg$c1248,115],[6,peg$c1249,peg$c1250,peg$c1248,115],[4,peg$c1251,peg$c1252,peg$c1248,115],[3,peg$c1253,peg$c1254,peg$c1248,115],[1,peg$c1255,peg$c1256,peg$c1248,115],[7,peg$c1257,peg$c1258,peg$c1259,109],[6,peg$c1260,peg$c1261,peg$c1259,109],[4,peg$c1262,peg$c1263,peg$c1259,109],[3,peg$c1264,peg$c1265,peg$c1259,109],[1,peg$c1266,peg$c1267,peg$c1259,109],[5,peg$c1268,peg$c1269,peg$c1270,104],[4,peg$c1271,peg$c1272,peg$c1270,104],[3,peg$c1273,peg$c1274,peg$c1270,104],[2,peg$c1275,peg$c1276,peg$c1270,104],[1,peg$c1277,peg$c1278,peg$c1270,104],[4,peg$c1279,peg$c1280,peg$c1281,100],[3,peg$c1282,peg$c1283,peg$c1281,100],[1,peg$c1284,peg$c1285,peg$c1281,100],[5,peg$c1286,peg$c1287,peg$c1288,119],[4,peg$c1289,peg$c1290,peg$c1288,119],[3,peg$c1291,peg$c1292,peg$c1288,119],[2,peg$c1293,peg$c1294,peg$c1288,119],[1,peg$c1295,peg$c1296,peg$c1288,119]];function peg$parseTimeType(){var i,j,alt,start;var c=input.charCodeAt(peg$currPos);for(i=0;i<28;i++){alt=peg$timetype_alts[i];if(alt[4]!==c){continue}if(alt[0]!==1&&input.substr(peg$currPos,alt[0])!==alt[1]){continue}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<i;j++){peg$fail(peg$timetype_alts[j][2])}}start=peg$currPos;peg$currPos+=alt[0];peg$savedPos=start;return alt[3]()}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<28;j++){peg$fail(peg$timetype_alts[j][2])}}return peg$FAILED}function peg$parseArrowAfter(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1297){s1=peg$c1297;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1298)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseTimeType();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1299(s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1300(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelOrLabelList(){var s0;s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseLabel()}return s0}function peg$parseGroupRef(){var s0,s1,s2,s3;peg$silentFails++;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1304(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1301)}}return s0}function peg$parseGroupMember(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1305){s1=peg$c1305;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1306)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s3=peg$c1302;peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1307(s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1308(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1309(s1)}s0=s1}}return s0}function peg$parseGroupMemberList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1310(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStripe(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312);peg$fail(peg$c1315)}return peg$FAILED}s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1311){s1=peg$c1311;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1313(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1314){s1=peg$c1314;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1315)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1316(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseCycle(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318);peg$fail(peg$c1321);peg$fail(peg$c1324)}return peg$FAILED}s0=peg$currPos;if(input.charCodeAt(peg$currPos)===43){s1=peg$c1317;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1319(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===45){s1=peg$c1320;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1321)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1322(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1323){s1=peg$c1323;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1324)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1325()}s0=s1}}return s0}function peg$parseArrowTarget(){var s0;s0=peg$parseStripe();if(s0===peg$FAILED){s0=peg$parseCycle();if(s0===peg$FAILED){s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseGroupRef();if(s0===peg$FAILED){s0=peg$parseLabel()}}}}return s0}function peg$parseArrowDecoration(){var s0,s1;s0=peg$currPos;s1=peg$parseArrowAfter();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1326(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseActionLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1327(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowProbability();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1328(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowDesc();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1329(s1)}s0=s1}}}return s0}function peg$parseArrowDecorations(){var s0,s1,s2,s3;s0=[];s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}while(s1!==peg$FAILED){s0.push(s1);s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}}return s0}function peg$parseSubexp(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowDecorations();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseArrow();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseArrowDecorations();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$currPos;s9=peg$parseArrowTarget();if(s9!==peg$FAILED){peg$savedPos=s8;s9=peg$c1331(s2,s4,s6,s9)}s8=s9;if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){s10=peg$parseSubexp();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1332(s2,s4,s6,s8,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseExp(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseArrowTarget();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c1333(s2)}s1=s2;if(s1!==peg$FAILED){s2=peg$parseSubexp();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s4=peg$c1213;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1334(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseGvizLayout(){var s0;if(input.substr(peg$currPos,3)===peg$c1335){s0=peg$c1335;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1336)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1337){s0=peg$c1337;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1338)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1339){s0=peg$c1339;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1340)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1341){s0=peg$c1341;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1342)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1343){s0=peg$c1343;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1344)}}}}}}return s0}function peg$parseStateItems(){var s0,s1;s0=[];s1=peg$parseStateDeclarationItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseStateDeclarationItem()}}else{s0=peg$FAILED}return s0}function peg$parseConfigState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1349(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1350){s2=peg$c1350;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1351)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1352(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1353){s2=peg$c1353;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1354)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1355(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigActiveState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1356){s2=peg$c1356;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1357)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1358(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigTerminalState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1359){s2=peg$c1359;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1360)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1361(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigHookedState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1362){s2=peg$c1362;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1363)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1364(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAnyState(){var s0;s0=peg$parseConfigState();if(s0===peg$FAILED){s0=peg$parseConfigStartState();if(s0===peg$FAILED){s0=peg$parseConfigEndState();if(s0===peg$FAILED){s0=peg$parseConfigActiveState();if(s0===peg$FAILED){s0=peg$parseConfigTerminalState();if(s0===peg$FAILED){s0=peg$parseConfigHookedState()}}}}}return s0}function peg$parseGraphDefaultEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1365)}}return s0}function peg$parseConfigStyleItems(){var s0,s1,s2;s0=peg$parseGraphDefaultEdgeColor();if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseStateDeclarationItem();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseStateDeclarationItem()}}else{s1=peg$FAILED}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s1)}s0=s1}return s0}function peg$parseConfigTransition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1367){s2=peg$c1367;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1368)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1369(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraph(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1370){s2=peg$c1370;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1371)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1372(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEditor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1373){s2=peg$c1373;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1374)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=[];s9=peg$parseEditorConfigItem();while(s9!==peg$FAILED){s8.push(s9);s9=peg$parseEditorConfigItem()}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1375(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorConfigItem(){var s0;s0=peg$parseEditorStochasticRunCount();if(s0===peg$FAILED){s0=peg$parseEditorPanels()}return s0}function peg$parseEditorStochasticRunCount(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,20)===peg$c1376){s2=peg$c1376;peg$currPos+=20}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1377)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseIntegerLiteral();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1378(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorPanels(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1379){s2=peg$c1379;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1380)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1381(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphLayout(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1382){s2=peg$c1382;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1383)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizLayout();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1384(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1385){s2=peg$c1385;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1386)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1387(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1388){s2=peg$c1388;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1389)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1390(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigFailedOutputs(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1391){s2=peg$c1391;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1392)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1393(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphBgColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1394){s2=peg$c1394;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1395)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1396(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowsOverride(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1397){s2=peg$c1397;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1398)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseOverrideT();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1399(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowIslands(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1400){s2=peg$c1400;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1401)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseIslandsT();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1402(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOverrideT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1403()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1404()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1}}return s0}function peg$parseIslandsT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1405){s1=peg$c1405;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1406)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1407()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1409()}s0=s1}}return s0}function peg$parseConfig(){var s0;peg$silentFails++;s0=peg$parseConfigGraphLayout();if(s0===peg$FAILED){s0=peg$parseConfigStartNodes();if(s0===peg$FAILED){s0=peg$parseConfigEndNodes();if(s0===peg$FAILED){s0=peg$parseConfigFailedOutputs();if(s0===peg$FAILED){s0=peg$parseConfigTransition();if(s0===peg$FAILED){s0=peg$parseConfigGraph();if(s0===peg$FAILED){s0=peg$parseConfigEditor();if(s0===peg$FAILED){s0=peg$parseConfigAnyState();if(s0===peg$FAILED){s0=peg$parseConfigGraphBgColor();if(s0===peg$FAILED){s0=peg$parseConfigAllowsOverride();if(s0===peg$FAILED){s0=peg$parseConfigAllowIslands()}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1410)}}return s0}function peg$parseLicenseOrLabelOrList(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1411){s2=peg$c1411;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1412)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,12)===peg$c1413){s2=peg$c1413;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1414)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,12)===peg$c1415){s2=peg$c1415;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1416)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1417){s2=peg$c1417;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1418)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1419){s2=peg$c1419;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1420)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1421){s2=peg$c1421;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1422)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1423){s2=peg$c1423;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1424)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1425){s2=peg$c1425;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1426)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1427){s2=peg$c1427;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1428)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1429){s2=peg$c1429;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1430)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1431){s2=peg$c1431;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1432)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$parseLabel();if(s0===peg$FAILED){s0=peg$parseLabelList()}}}}}}}}}}}}return s0}function peg$parseDirection(){var s0;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c1434){s0=peg$c1434;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1435)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1436){s0=peg$c1436;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1437)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1438){s0=peg$c1438;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1439)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1440){s0=peg$c1440;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1441)}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1433)}}return s0}function peg$parseHookDefinition(){var s0;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c1443){s0=peg$c1443;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1444)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1445){s0=peg$c1445;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1446)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1442)}}return s0}function peg$parseMachineAuthor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1447){s2=peg$c1447;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1448)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1449(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineContributor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,19)===peg$c1450){s2=peg$c1450;peg$currPos+=19}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1451)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1452(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineComment(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1453){s2=peg$c1453;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1454)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1455(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,18)===peg$c1456){s2=peg$c1456;peg$currPos+=18}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1457)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseURL();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1458(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1459){s2=peg$c1459;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1460)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1461(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNpmName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1462){s2=peg$c1462;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1463)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1464(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineReference(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,17)===peg$c1465){s2=peg$c1465;peg$currPos+=17}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1466)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1467(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1468){s2=peg$c1468;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1469)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1470(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLicense(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1471){s2=peg$c1471;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1472)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLicenseOrLabelOrList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1473(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLanguage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1474){s2=peg$c1474;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1475)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1476(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseFslVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1477){s2=peg$c1477;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1478)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1479(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineTheme(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1480){s2=peg$c1480;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1481)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseThemeOrThemeList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1482(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineFlow(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1483){s2=peg$c1483;peg$currPos+=4}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1484)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDirection();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1485(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineHookDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1486){s2=peg$c1486;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1487)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseHookDefinition();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1488(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDotPreamble(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1489){s2=peg$c1489;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1490)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseString();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1491(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDefaultSizeVal(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1492){s1=peg$c1492;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1493)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1494(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){s2=peg$parseNonNegNumber();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1495(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1496(s1)}s0=s1}}return s0}function peg$parseDefaultSize(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1497){s2=peg$c1497;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1498)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDefaultSizeVal();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1499(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineAttribute(){var s0;peg$silentFails++;s0=peg$parseFslVersion();if(s0===peg$FAILED){s0=peg$parseMachineName();if(s0===peg$FAILED){s0=peg$parseNpmName();if(s0===peg$FAILED){s0=peg$parseMachineAuthor();if(s0===peg$FAILED){s0=peg$parseMachineContributor();if(s0===peg$FAILED){s0=peg$parseMachineComment();if(s0===peg$FAILED){s0=peg$parseMachineDefinition();if(s0===peg$FAILED){s0=peg$parseMachineReference();if(s0===peg$FAILED){s0=peg$parseMachineVersion();if(s0===peg$FAILED){s0=peg$parseMachineLicense();if(s0===peg$FAILED){s0=peg$parseMachineLanguage();if(s0===peg$FAILED){s0=peg$parseMachineTheme();if(s0===peg$FAILED){s0=peg$parseDotPreamble();if(s0===peg$FAILED){s0=peg$parseMachineFlow();if(s0===peg$FAILED){s0=peg$parseMachineHookDefinition();if(s0===peg$FAILED){s0=peg$parseDefaultSize()}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1500)}}return s0}function peg$parsePropertyVal(){var s0;s0=peg$parseString();if(s0===peg$FAILED){s0=peg$parseBoolean();if(s0===peg$FAILED){s0=peg$parseJsNumericLiteral();if(s0===peg$FAILED){s0=peg$parseNull();if(s0===peg$FAILED){s0=peg$parseUndefined()}}}}return s0}function peg$parseSdStateLabel(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1501){s2=peg$c1501;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1502)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1503(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseSdStateColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1504){s2=peg$c1504;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1505)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1506(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseSdStateTextColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1508){s2=peg$c1508;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1509)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1510(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1507)}}return s0}function peg$parseSdStateBackgroundColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1512){s2=peg$c1512;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1513)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1514(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1511)}}return s0}function peg$parseSdStateBorderColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1516){s2=peg$c1516;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1517)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1518(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1515)}}return s0}function peg$parseSdStateShape(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1520){s2=peg$c1520;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1521)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizShape();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1522(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1519)}}return s0}function peg$parseSdStateCorners(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1524){s2=peg$c1524;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1525)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseCorners();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1526(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1523)}}return s0}function peg$parseSdStateLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1529){s2=peg$c1529;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1530)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1527)}}return s0}function peg$parseSdStateImage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1532){s2=peg$c1532;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1533)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1534(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1531)}}return s0}function peg$parseSdStateUrl(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1536){s2=peg$c1536;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1537)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1538(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1535)}}return s0}function peg$parseSdStateProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1542(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1545(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1539)}}return s0}function peg$parseStateDeclarationItem(){var s0;s0=peg$parseSdStateLabel();if(s0===peg$FAILED){s0=peg$parseSdStateColor();if(s0===peg$FAILED){s0=peg$parseSdStateTextColor();if(s0===peg$FAILED){s0=peg$parseSdStateBackgroundColor();if(s0===peg$FAILED){s0=peg$parseSdStateBorderColor();if(s0===peg$FAILED){s0=peg$parseSdStateShape();if(s0===peg$FAILED){s0=peg$parseSdStateCorners();if(s0===peg$FAILED){s0=peg$parseSdStateLineStyle();if(s0===peg$FAILED){s0=peg$parseSdStateImage();if(s0===peg$FAILED){s0=peg$parseSdStateUrl();if(s0===peg$FAILED){s0=peg$parseSdStateProperty()}}}}}}}}}}return s0}function peg$parseStateDeclarationDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$parseStateDeclarationItem();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseStateDeclarationItem()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStateDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseGroupRef();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseNamedList(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupMemberList();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupAliasMember();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1549(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseGroupAliasMember(){var s0,s1;s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1550(s1)}s0=s1;return s0}function peg$parseHookEvent(){var s0;peg$silentFails++;if(input.substr(peg$currPos,5)===peg$c1552){s0=peg$c1552;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1553)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1554){s0=peg$c1554;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1555)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1551)}}return s0}function peg$parseHookDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1557){s2=peg$c1557;peg$currPos+=2}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1558)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseHookEvent();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){s6=peg$parseGroupRef();if(s6===peg$FAILED){s6=peg$parseHookStateSubject()}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1559){s8=peg$c1559;peg$currPos+=2}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1560)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){s10=peg$parseActionLabel();if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1561(s4,s6,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1556)}}return s0}function peg$parseHookStateSubject(){var s0,s1;s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1562(s1)}s0=s1;return s0}function peg$parseMachineProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1563(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s6=peg$c1543;peg$currPos+=8}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1564(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1565(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s6=peg$c1213;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c1566(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}}return s0}function peg$parseRegularArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1567){s1=peg$c1567;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1568)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1569(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeStartDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1570){s1=peg$c1570;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1571)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1572(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeEndDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1573){s1=peg$c1573;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1574)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1575(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1577){s1=peg$c1577;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1578)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1579(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1576)}}return s0}function peg$parseFArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1581){s1=peg$c1581;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1582)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1583(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1580)}}return s0}function peg$parseArrangeDeclaration(){var s0;peg$silentFails++;s0=peg$parseArrangeStartDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeEndDeclaration();if(s0===peg$FAILED){s0=peg$parseOArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseFArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseRegularArrangeDeclaration()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1584)}}return s0}function peg$parseTerm(){var s0;s0=peg$parseHookDeclaration();if(s0===peg$FAILED){s0=peg$parseExp();if(s0===peg$FAILED){s0=peg$parseStateDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseNamedList();if(s0===peg$FAILED){s0=peg$parseMachineAttribute();if(s0===peg$FAILED){s0=peg$parseMachineProperty();if(s0===peg$FAILED){s0=peg$parseConfig()}}}}}}}return s0}function peg$parseTermList(){var s0,s1;s0=[];s1=peg$parseTerm();while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseTerm()}return s0}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail(peg$endExpectation())}throw peg$buildStructuredError(peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos))}}function arrow_left_kind(arrow){switch(arrow){case"->":case"→":case"=>":case"⇒":case"~>":case"↛":{return"none"}case"<-":case"←":case"<->":case"↔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<-~>":case"←↛":case"←~>":case"<-↛":{return"legal"}case"<=":case"⇐":case"<=>":case"⇔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":{return"main"}case"<~":case"↚":case"<~>":case"↮":case"<~->":case"↚→":case"↚->":case"<~→":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":{return"forced"}default:{throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}}function arrow_right_kind(arrow){switch(arrow){case"<-":case"←":case"<=":case"⇐":case"<~":case"↚":{return"none"}case"->":case"→":case"<->":case"↔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<~->":case"↚→":case"↚->":case"<~→":{return"legal"}case"=>":case"⇒":case"<=>":case"⇔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":{return"main"}case"~>":case"↛":case"<~>":case"↮":case"<-~>":case"←↛":case"←~>":case"<-↛":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":{return"forced"}default:{throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}}const array_box_if_string=n=>typeof n==="string"?[n]:n;const weighted_rand_select=(options,probability_property="probability",rng)=>{if(!Array.isArray(options)){throw new TypeError("options must be a non-empty array of objects")}if(options.length===0){throw new TypeError("options must be a non-empty array of objects")}if(typeof options[0]!=="object"){throw new TypeError("options must be a non-empty array of objects")}const named=probability_property==="probability";let prob_sum=0;for(const opt of options){const p=named?opt.probability:opt[probability_property];prob_sum+=p===void 0?1:p}const rnd=(rng?rng():Math.random())*prob_sum;let cursor=0,cursor_sum=0;while(cursor<options.length){const p=named?options[cursor].probability:options[cursor][probability_property];cursor_sum+=p===void 0?1:p;++cursor;if(cursor_sum>rnd){break}}return options[cursor-1]};function seq(n){if(!Number.isSafeInteger(n)){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}if(n<0){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}return Array.from({length:n},(_,i)=>i)}const default_lexicographic=(a,b)=>{const sa=String(a),sb=String(b);return sa<sb?-1:sa>sb?1:0};const histograph=ar=>{const counts=new Map;for(const v of ar){const c=counts.get(v);counts.set(v,c===void 0?1:c+1)}const out=new Map;const sorted_keys=[...counts.keys()].sort(default_lexicographic);for(const k of sorted_keys){out.set(k,counts.get(k))}return out};function name_bind_prop_and_state(prop,state){if(typeof prop!=="string"){throw new JssmError(void 0,`Name of property must be a string; got ${prop}`)}if(typeof state!=="string"){throw new JssmError(void 0,`Name of state must be a string; got ${state}`)}return JSON.stringify([prop,state])}function gen_splitmix32(a){if(a===void 0){a=Date.now()}return function(){a=Math.trunc(a);a=a+2654435769|0;let t=a^a>>>16;t=Math.imul(t,569420461);t^=t>>>15;t=Math.imul(t,1935289751);return((t^t>>>15)>>>0)/4294967296}}const unique=arr=>{const seen=new Set;return arr.filter(v=>{if(v!==v){return false}if(seen.has(v)){return false}seen.add(v);return true})};function find_repeated(arr){const uniqued=unique(arr);if(uniqued.length===arr.length){return[]}const residue_keys=new Map;for(const k of arr)residue_keys.set(k,residue_keys.has(k)?residue_keys.get(k)+1:1);for(const k of uniqued)residue_keys.set(k,residue_keys.get(k)-1);return[...residue_keys].filter(e=>e[1]>0&&!Number.isNaN(e[0])).map(e=>[e[0],e[1]+1])}var reductions={abkhazian:"ab","аҧсуа бызшәа, аҧсшәа":"ab",ab:"ab",abk:"ab","аҧсуа бызшәа":"ab","аҧсшәа":"ab",afar:"aa",afaraf:"aa",aa:"aa",aar:"aa",afrikaans:"af",af:"af",afr:"af",akan:"ak",ak:"ak",aka:"ak","aka + 2":"ak",albanian:"sq",shqip:"sq",sq:"sq",sqi:"sq",alb:"sq","sqi + 4":"sq",amharic:"am","አማርኛ":"am",am:"am",amh:"am",arabic:"ar","العربية":"ar",ar:"ar",ara:"ar","ara + 30":"ar",aragonese:"an","aragonés":"an",an:"an",arg:"an",armenian:"hy","հայերեն":"hy",hy:"hy",hye:"hy",arm:"hy",assamese:"as","অসমীয়া":"as",as:"as",asm:"as",avaric:"av","авар мацӏ, магӏарул мацӏ":"av",av:"av",ava:"av","авар мацӏ":"av","магӏарул мацӏ":"av",avestan:"ae",avesta:"ae",ae:"ae",ave:"ae",aymara:"ay","aymar aru":"ay",ay:"ay",aym:"ay","aym + 2":"ay",azerbaijani:"az","azərbaycan dili":"az",az:"az",aze:"az","aze + 2":"az",bambara:"bm",bamanankan:"bm",bm:"bm",bam:"bm",bashkir:"ba","башҡорт теле":"ba",ba:"ba",bak:"ba",basque:"eu","euskara, euskera":"eu",eu:"eu",eus:"eu",baq:"eu",euskara:"eu",euskera:"eu",belarusian:"be","беларуская мова":"be",be:"be",bel:"be",bengali:"bn","বাংলা":"bn",bn:"bn",ben:"bn","bihari languages":"bh","भोजपुरी":"bh",bh:"bh",bih:"bh",bislama:"bi",bi:"bi",bis:"bi",bosnian:"bs","bosanski jezik":"bs",bs:"bs",bos:"bs",breton:"br",brezhoneg:"br",br:"br",bre:"br",bulgarian:"bg","български език":"bg",bg:"bg",bul:"bg",burmese:"my","ဗမာစာ":"my",my:"my",mya:"my",bur:"my","catalan, valencian":"ca","català, valencià":"ca",ca:"ca",cat:"ca","català":"ca","valencià":"ca",chamorro:"ch",chamoru:"ch",ch:"ch",cha:"ch",chechen:"ce","нохчийн мотт":"ce",ce:"ce",che:"ce","chichewa, chewa, nyanja":"ny","chicheŵa, chinyanja":"ny",ny:"ny",nya:"ny","chicheŵa":"ny",chinyanja:"ny",chinese:"zh","中文 (zhōngwén), 汉语, 漢語":"zh",zh:"zh",zho:"zh",chi:"zh","zho + 13":"zh","中文 (zhōngwén)":"zh","汉语":"zh","漢語":"zh",chuvash:"cv","чӑваш чӗлхи":"cv",cv:"cv",chv:"cv",cornish:"kw",kernewek:"kw",kw:"kw",cor:"kw",corsican:"co","corsu, lingua corsa":"co",co:"co",cos:"co",corsu:"co","lingua corsa":"co",cree:"cr","ᓀᐦᐃᔭᐍᐏᐣ":"cr",cr:"cr",cre:"cr","cre + 6":"cr",croatian:"hr","hrvatski jezik":"hr",hr:"hr",hrv:"hr",czech:"cs","čeština, český jazyk":"cs",cs:"cs",ces:"cs",cze:"cs","čeština":"cs","český jazyk":"cs",danish:"da",dansk:"da",da:"da",dan:"da","divehi, dhivehi, maldivian":"dv","ދިވެހި":"dv",dv:"dv",div:"dv","dutch, flemish":"nl","nederlands, vlaams":"nl",nl:"nl",nld:"nl",dut:"nl",nederlands:"nl",vlaams:"nl",dzongkha:"dz","རྫོང་ཁ":"dz",dz:"dz",dzo:"dz",english:"en",en:"en",eng:"en",esperanto:"eo",eo:"eo",epo:"eo",estonian:"et","eesti, eesti keel":"et",et:"et",est:"et","est + 2":"et",eesti:"et","eesti keel":"et",ewe:"ee","eʋegbe":"ee",ee:"ee",faroese:"fo","føroyskt":"fo",fo:"fo",fao:"fo",fijian:"fj","vosa vakaviti":"fj",fj:"fj",fij:"fj",finnish:"fi","suomi, suomen kieli":"fi",fi:"fi",fin:"fi",suomi:"fi","suomen kieli":"fi",french:"fr","français, langue française":"fr",fr:"fr",fra:"fr",fre:"fr","français":"fr","langue française":"fr",fulah:"ff","fulfulde, pulaar, pular":"ff",ff:"ff",ful:"ff","ful + 9":"ff",fulfulde:"ff",pulaar:"ff",pular:"ff",galician:"gl",galego:"gl",gl:"gl",glg:"gl",georgian:"ka","ქართული":"ka",ka:"ka",kat:"ka",geo:"ka",german:"de",deutsch:"de",de:"de",deu:"de",ger:"de","greek (modern)":"el","ελληνικά":"el",el:"el",ell:"el",gre:"el","guaraní":"gn","avañe'ẽ":"gn",gn:"gn",grn:"gn","grn + 5":"gn",gujarati:"gu","ગુજરાતી":"gu",gu:"gu",guj:"gu","haitian, haitian creole":"ht","kreyòl ayisyen":"ht",ht:"ht",hat:"ht",hausa:"ha","(hausa) هَوُسَ":"ha",ha:"ha",hau:"ha","hebrew (modern)":"he","עברית":"he",he:"he",heb:"he",herero:"hz",otjiherero:"hz",hz:"hz",her:"hz",hindi:"hi","हिन्दी, हिंदी":"hi",hi:"hi",hin:"hi","हिन्दी":"hi","हिंदी":"hi","hiri motu":"ho",ho:"ho",hmo:"ho",hungarian:"hu",magyar:"hu",hu:"hu",hun:"hu",interlingua:"ia",ia:"ia",ina:"ia",indonesian:"id","bahasa indonesia":"id",id:"id",ind:"id",interlingue:"ie","originally called occidental; then interlingue after wwii":"ie",ie:"ie",ile:"ie",irish:"ga",gaeilge:"ga",ga:"ga",gle:"ga",igbo:"ig","asụsụ igbo":"ig",ig:"ig",ibo:"ig",inupiaq:"ik","iñupiaq, iñupiatun":"ik",ik:"ik",ipk:"ik","ipk + 2":"ik","iñupiaq":"ik","iñupiatun":"ik",ido:"io",io:"io",icelandic:"is","íslenska":"is",is:"is",isl:"is",ice:"is",italian:"it",italiano:"it",it:"it",ita:"it",inuktitut:"iu","ᐃᓄᒃᑎᑐᑦ":"iu",iu:"iu",iku:"iu","iku + 2":"iu",japanese:"ja","日本語 (にほんご)":"ja",ja:"ja",jpn:"ja",javanese:"jv","ꦧꦱꦗꦮ, basa jawa":"jv",jv:"jv",jav:"jv","ꦧꦱꦗꦮ":"jv","basa jawa":"jv","kalaallisut, greenlandic":"kl","kalaallisut, kalaallit oqaasii":"kl",kl:"kl",kal:"kl",kalaallisut:"kl","kalaallit oqaasii":"kl",kannada:"kn","ಕನ್ನಡ":"kn",kn:"kn",kan:"kn",kanuri:"kr",kr:"kr",kau:"kr","kau + 3":"kr",kashmiri:"ks","कश्मीरी, كشميري‎":"ks",ks:"ks",kas:"ks","कश्मीरी":"ks","كشميري‎":"ks",kazakh:"kk","қазақ тілі":"kk",kk:"kk",kaz:"kk","central khmer":"km","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ":"km",km:"km",khm:"km","ខ្មែរ":"km","ខេមរភាសា":"km","ភាសាខ្មែរ":"km","kikuyu, gikuyu":"ki","gĩkũyũ":"ki",ki:"ki",kik:"ki",kinyarwanda:"rw",ikinyarwanda:"rw",rw:"rw",kin:"rw","kirghiz, kyrgyz":"ky","кыргызча, кыргыз тили":"ky",ky:"ky",kir:"ky","кыргызча":"ky","кыргыз тили":"ky",komi:"kv","коми кыв":"kv",kv:"kv",kom:"kv","kom + 2":"kv",kongo:"kg",kikongo:"kg",kg:"kg",kon:"kg","kon + 3":"kg",korean:"ko","한국어":"ko",ko:"ko",kor:"ko",kurdish:"ku","kurdî, كوردی‎":"ku",ku:"ku",kur:"ku","kur + 3":"ku","kurdî":"ku","كوردی‎":"ku","kuanyama, kwanyama":"kj",kuanyama:"kj",kj:"kj",kua:"kj",latin:"la","latine, lingua latina":"la",la:"la",lat:"la",latine:"la","lingua latina":"la","luxembourgish, letzeburgesch":"lb","lëtzebuergesch":"lb",lb:"lb",ltz:"lb",ganda:"lg",luganda:"lg",lg:"lg",lug:"lg","limburgan, limburger, limburgish":"li",limburgs:"li",li:"li",lim:"li",lingala:"ln","lingála":"ln",ln:"ln",lin:"ln",lao:"lo","ພາສາລາວ":"lo",lo:"lo",lithuanian:"lt","lietuvių kalba":"lt",lt:"lt",lit:"lt","luba-katanga":"lu",kiluba:"lu",lu:"lu",lub:"lu",latvian:"lv","latviešu valoda":"lv",lv:"lv",lav:"lv","lav + 2":"lv",manx:"gv","gaelg, gailck":"gv",gv:"gv",glv:"gv",gaelg:"gv",gailck:"gv",macedonian:"mk","македонски јазик":"mk",mk:"mk",mkd:"mk",mac:"mk",malagasy:"mg","fiteny malagasy":"mg",mg:"mg",mlg:"mg","mlg + 10":"mg",malay:"ms","bahasa melayu, بهاس ملايو‎":"ms",ms:"ms",msa:"ms",may:"ms","msa + 13":"ms","bahasa melayu":"ms","بهاس ملايو‎":"ms",malayalam:"ml","മലയാളം":"ml",ml:"ml",mal:"ml",maltese:"mt",malti:"mt",mt:"mt",mlt:"mt",maori:"mi","te reo māori":"mi",mi:"mi",mri:"mi",mao:"mi",marathi:"mr","मराठी":"mr",mr:"mr",mar:"mr",marshallese:"mh","kajin m̧ajeļ":"mh",mh:"mh",mah:"mh",mongolian:"mn","монгол хэл":"mn",mn:"mn",mon:"mn","mon + 2":"mn",nauru:"na","dorerin naoero":"na",na:"na",nau:"na","navajo, navaho":"nv","diné bizaad":"nv",nv:"nv",nav:"nv","north ndebele":"nd",isindebele:"nr",nd:"nd",nde:"nd",nepali:"ne","नेपाली":"ne",ne:"ne",nep:"ne",ndonga:"ng",owambo:"ng",ng:"ng",ndo:"ng","norwegian bokmål":"nb","norsk bokmål":"nb",nb:"nb",nob:"nb","norwegian nynorsk":"nn","norsk nynorsk":"nn",nn:"nn",nno:"nn",norwegian:"no",norsk:"no",no:"no",nor:"no","nor + 2":"no","sichuan yi, nuosu":"ii","ꆈꌠ꒿ nuosuhxop":"ii",ii:"ii",iii:"ii","south ndebele":"nr",nr:"nr",nbl:"nr",occitan:"oc","occitan, lenga d'òc":"oc",oc:"oc",oci:"oc","lenga d'òc":"oc",ojibwa:"oj","ᐊᓂᔑᓈᐯᒧᐎᓐ":"oj",oj:"oj",oji:"oj","oji + 7":"oj","church slavic, church slavonic, old church slavonic, old slavonic, old bulgarian":"cu","ѩзыкъ словѣньскъ":"cu",cu:"cu",chu:"cu",oromo:"om","afaan oromoo":"om",om:"om",orm:"om","orm + 4":"om",oriya:"or","ଓଡ଼ିଆ":"or",or:"or",ori:"or","ossetian, ossetic":"os","ирон æвзаг":"os",os:"os",oss:"os","panjabi, punjabi":"pa","ਪੰਜਾਬੀ":"pa",pa:"pa",pan:"pa",pali:"pi","पाऴि":"pi",pi:"pi",pli:"pi",persian:"fa","فارسی":"fa",fa:"fa",fas:"fa",per:"fa","fas + 2":"fa",polish:"pl","język polski, polszczyzna":"pl",pl:"pl",pol:"pl","język polski":"pl",polszczyzna:"pl","pashto, pushto":"ps","پښتو":"ps",ps:"ps",pus:"ps","pus + 3":"ps",portuguese:"pt","português":"pt",pt:"pt",por:"pt",quechua:"qu","runa simi, kichwa":"qu",qu:"qu",que:"qu","que + 44":"qu","runa simi":"qu",kichwa:"qu",romansh:"rm","rumantsch grischun":"rm",rm:"rm",roh:"rm",rundi:"rn",ikirundi:"rn",rn:"rn",run:"rn","romanian, moldavian, moldovan":"ro","română":"ro",ro:"ro",ron:"ro",rum:"ro",russian:"ru","русский":"ru",ru:"ru",rus:"ru",sanskrit:"sa","संस्कृतम्":"sa",sa:"sa",san:"sa",sardinian:"sc",sardu:"sc",sc:"sc",srd:"sc","srd + 4":"sc",sindhi:"sd","सिन्धी, سنڌي، سندھی‎":"sd",sd:"sd",snd:"sd","सिन्धी":"sd","سنڌي، سندھی‎":"sd","northern sami":"se","davvisámegiella":"se",se:"se",sme:"se",samoan:"sm","gagana fa'a samoa":"sm",sm:"sm",smo:"sm",sango:"sg","yângâ tî sängö":"sg",sg:"sg",sag:"sg",serbian:"sr","српски језик":"sr",sr:"sr",srp:"sr","gaelic, scottish gaelic":"gd","gàidhlig":"gd",gd:"gd",gla:"gd",shona:"sn",chishona:"sn",sn:"sn",sna:"sn","sinhala, sinhalese":"si","සිංහල":"si",si:"si",sin:"si",slovak:"sk","slovenčina, slovenský jazyk":"sk",sk:"sk",slk:"sk",slo:"sk","slovenčina":"sk","slovenský jazyk":"sk",slovenian:"sl","slovenski jezik, slovenščina":"sl",sl:"sl",slv:"sl","slovenski jezik":"sl","slovenščina":"sl",somali:"so","soomaaliga, af soomaali":"so",so:"so",som:"so",soomaaliga:"so","af soomaali":"so","southern sotho":"st",sesotho:"st",st:"st",sot:"st","spanish, castilian":"es","español":"es",es:"es",spa:"es",sundanese:"su","basa sunda":"su",su:"su",sun:"su",swahili:"sw",kiswahili:"sw",sw:"sw",swa:"sw","swa + 2":"sw",swati:"ss",siswati:"ss",ss:"ss",ssw:"ss",swedish:"sv",svenska:"sv",sv:"sv",swe:"sv",tamil:"ta","தமிழ்":"ta",ta:"ta",tam:"ta",telugu:"te","తెలుగు":"te",te:"te",tel:"te",tajik:"tg","тоҷикӣ, toçikī, تاجیکی‎":"tg",tg:"tg",tgk:"tg","тоҷикӣ":"tg","toçikī":"tg","تاجیکی‎":"tg",thai:"th","ไทย":"th",th:"th",tha:"th",tigrinya:"ti","ትግርኛ":"ti",ti:"ti",tir:"ti",tibetan:"bo","བོད་ཡིག":"bo",bo:"bo",bod:"bo",tib:"bo",turkmen:"tk","türkmen, түркмен":"tk",tk:"tk",tuk:"tk","türkmen":"tk","түркмен":"tk",tagalog:"tl","wikang tagalog":"tl",tl:"tl",tgl:"tl",tswana:"tn",setswana:"tn",tn:"tn",tsn:"tn","tonga (tonga islands)":"to","faka tonga":"to",to:"to",ton:"to",turkish:"tr","türkçe":"tr",tr:"tr",tur:"tr",tsonga:"ts",xitsonga:"ts",ts:"ts",tso:"ts",tatar:"tt","татар теле, tatar tele":"tt",tt:"tt",tat:"tt","татар теле":"tt","tatar tele":"tt",twi:"tw",tw:"tw",tahitian:"ty","reo tahiti":"ty",ty:"ty",tah:"ty","uighur, uyghur":"ug","ئۇيغۇرچە‎, uyghurche":"ug",ug:"ug",uig:"ug","ئۇيغۇرچە‎":"ug",uyghurche:"ug",ukrainian:"uk","українська":"uk",uk:"uk",ukr:"uk",urdu:"ur","اردو":"ur",ur:"ur",urd:"ur",uzbek:"uz","oʻzbek, ўзбек, أۇزبېك‎":"uz",uz:"uz",uzb:"uz","uzb + 2":"uz","oʻzbek":"uz","ўзбек":"uz","أۇزبېك‎":"uz",venda:"ve","tshivenḓa":"ve",ve:"ve",ven:"ve",vietnamese:"vi","tiếng việt":"vi",vi:"vi",vie:"vi","volapük":"vo",vo:"vo",vol:"vo",walloon:"wa",walon:"wa",wa:"wa",wln:"wa",welsh:"cy",cymraeg:"cy",cy:"cy",cym:"cy",wel:"cy",wolof:"wo",wollof:"wo",wo:"wo",wol:"wo","western frisian":"fy",frysk:"fy",fy:"fy",fry:"fy",xhosa:"xh",isixhosa:"xh",xh:"xh",xho:"xh",yiddish:"yi","ייִדיש":"yi",yi:"yi",yid:"yi","yid + 2":"yi",yoruba:"yo","yorùbá":"yo",yo:"yo",yor:"yo","zhuang, chuang":"za","saɯ cueŋƅ, saw cuengh":"za",za:"za",zha:"za","zha + 16":"za","saɯ cueŋƅ":"za","saw cuengh":"za",zulu:"zu",isizulu:"zu",zu:"zu",zul:"zu"};function reduce(from){return reductions[from.toLowerCase()]}function nth_matching_loc(tree,predicate,n){let count=0;for(const node of tree){if(!predicate(node)){continue}count++;if(count===n){return node.loc}}return void 0}function makeTransition(this_se,from,to,isRight,_wasList,_wasIndex){if(from===""){throw new JssmError(void 0,"A state name may not be the empty string (transition source)")}if(to===""){throw new JssmError(void 0,"A state name may not be the empty string (transition target)")}const arrow=this_se.kind,kind=isRight?arrow_right_kind(arrow):arrow_left_kind(arrow),edge={from:from,to:to,kind:kind,after_time:isRight?this_se.r_after:this_se.l_after,forced_only:kind==="forced",main_path:kind==="main",action:void 0,probability:void 0};const action=isRight?"r_action":"l_action",probability=isRight?"r_probability":"l_probability";if(this_se[action]!=null){edge.action=this_se[action]}if(this_se[probability]!=null){edge.probability=this_se[probability]}if(edge.action===""){throw new JssmError(void 0,"An action name may not be the empty string")}return edge}function wrap_parse(input,options){return peg$parse(input,{})}function normalize_group_members(value){return value.map(member=>typeof member==="string"?{kind:"state",name:member}:member)}function build_group_registry(tree){const registry=new Map;for(const node of tree){if(node.key!=="named_list"){continue}if(registry.has(node.name)){throw new JssmError(void 0,`Cannot redeclare group: &${node.name}`)}registry.set(node.name,normalize_group_members(node.value))}return registry}function group_registry_cycle_check(registry){const visiting=new Set;const visited=new Set;const walk=(group,path)=>{if(visiting.has(group)){const cycle=[...path,group].map(g=>`&${g}`).join(" -> ");throw new JssmError(void 0,`Group membership cycle detected: ${cycle}`)}if(visited.has(group)){return}visiting.add(group);const group_members=registry.get(group)??[];for(const member of group_members){if(member.kind==="group"){walk(member.name,[...path,group])}}visiting.delete(group);visited.add(group)};for(const group of registry.keys()){walk(group,[])}}function transitive_members(registry,group,memo){const cached=memo.get(group);if(cached!==void 0){return cached}const out=[];const group_members=registry.get(group)??[];for(const member of group_members){if(member.kind==="state"){out.push(member.name)}else{for(const s of transitive_members(registry,member.name,memo)){out.push(s)}}}memo.set(group,out);return out}function validate_group_members(registry){for(const members of registry.values()){for(const member of members){if(member.kind==="group"&&!registry.has(member.name)){throw new JssmError(void 0,`Unresolved group reference: &${member.name}`)}}}}function membership_distance(registry,state,group){const visited=new Set([group]);let frontier=[{group:group,hops:0}];while(frontier.length>0){const next=[];for(const{group:g,hops:hops}of frontier){const members=registry.get(g)??[];for(const member of members){if(member.kind==="state"){if(member.name===state){return hops+1}}else if(!visited.has(member.name)){visited.add(member.name);next.push({group:member.name,hops:hops+1})}}}frontier=next}return Infinity}const edge_decl_meta=new WeakMap;function resolve_transition_conflicts(edges,has_group_sources=true){if(!has_group_sources){return edges}const buckets=new Map;for(const[index,edge]of edges.entries()){if(edge.action==null){continue}const key=JSON.stringify([String(edge.from),String(edge.action)]);let by_decl=buckets.get(key);if(by_decl===void 0){by_decl=new Map;buckets.set(key,by_decl)}const meta=edge_decl_meta.get(edge);const decl_id=meta===void 0?void 0:meta.decl_id;const entry=by_decl.get(decl_id);if(entry===void 0){by_decl.set(decl_id,{decl_id:decl_id,indices:[index],source_group:meta===void 0?void 0:meta.source_group,specificity:(meta===void 0?void 0:meta.specificity)??Infinity})}else{entry.indices.push(index)}}const dropped=new Set;const arbitrate_bucket=by_decl=>{const decls=[...by_decl.values()];if(decls.length<2){return}const state_decls=decls.filter(d=>d.source_group===void 0);const group_decls=decls.filter(d=>d.source_group!==void 0);if(state_decls.length>0){for(const d of group_decls){for(const i of d.indices){dropped.add(i)}}return}let winner=group_decls[0];for(const d of group_decls){const nearer=d.specificity<winner.specificity;const tie_later=d.specificity===winner.specificity&&d.decl_id>winner.decl_id;if(nearer||tie_later){winner=d}}for(const d of group_decls){if(d.decl_id===winner.decl_id){continue}for(const i of d.indices){dropped.add(i)}console.warn(`jssm: group &${d.source_group} transition for state '${String(edges[d.indices[0]].from)}' on action '${String(edges[d.indices[0]].action)}' is overridden by nearer group &${winner.source_group}`)}};for(const by_decl of buckets.values()){arbitrate_bucket(by_decl)}const out=[];for(const[index,edge]of edges.entries()){if(dropped.has(index)){continue}out.push(edge)}return out}function is_group_ref(endpoint){return typeof endpoint==="object"&&endpoint.key==="group_ref"}function resolve_group_refs(tree,registry){const memo=new Map;const require_resolvable=name=>{if(!registry.has(name)){throw new JssmError(void 0,`Unresolved group reference: &${name}`)}};const rewrite_group_targets=node=>{for(let link=node.se;link;link=link.se){if(!is_group_ref(link.to)){continue}require_resolvable(link.to.name);link.to=transitive_members(registry,link.to.name,memo)}};const resolved=[];let decl_id=0;for(const node of tree){if(node.key==="hook_decl"&&is_group_ref(node.subject)){require_resolvable(node.subject.name)}if(node.key!=="transition"){resolved.push(node);continue}const this_decl=decl_id++;rewrite_group_targets(node);if(is_group_ref(node.from)){const group_name=node.from.name;require_resolvable(group_name);for(const member of transitive_members(registry,group_name,memo)){resolved.push({...node,from:member,__decl_id:this_decl,__source_group:group_name,__specificity:membership_distance(registry,member,group_name)})}}else if(registry.size===0){resolved.push(node)}else{resolved.push({...node,__decl_id:this_decl})}}return resolved}function compile_rule_transition_step(acc,from,to,this_se,next_se){const uFrom=Array.isArray(from)?from:[from],uTo=Array.isArray(to)?to:[to];for(const f of uFrom){for(const t of uTo){const right=makeTransition(this_se,f,t,true);if(right.kind!=="none"){acc.push(right)}const left=makeTransition(this_se,t,f,false);if(left.kind!=="none"){acc.push(left)}}}return next_se?compile_rule_transition_step(acc,to,next_se.to,next_se,next_se.se):acc}function compile_rule_handle_transition(rule){return compile_rule_transition_step([],rule.from,rule.se.to,rule.se,rule.se.se)}function compile_rule_handler(rule){if(rule.key==="transition"){const edges=compile_rule_handle_transition(rule);const decl_id=rule.__decl_id;const source_group=rule.__source_group;const specificity=rule.__specificity;if(decl_id!==void 0){for(const edge of edges){if(edge.from===rule.from){edge_decl_meta.set(edge,{decl_id:decl_id,source_group:source_group,specificity:specificity})}}}return{agg_as:"transition",val:edges}}if(rule.key==="machine_language"){const language_value=rule.value;const primary_subtag=String(language_value).split(/[-_]/,1)[0];return{agg_as:"machine_language",val:reduce(primary_subtag)}}if(rule.key==="property_definition"){const ret={agg_as:"property_definition",val:{name:rule.name}};if(Object.prototype.hasOwnProperty.call(rule,"default_value")){ret.val.default_value=rule.default_value}if(Object.prototype.hasOwnProperty.call(rule,"required")){ret.val.required=rule.required}return ret}if(rule.key==="named_list"){return{agg_as:"named_list",val:[]}}if(rule.key==="hook_decl"){return{agg_as:"hook_decl",val:[rule]}}if(rule.key==="state_declaration"){if(!rule.name){throw new JssmError(void 0,"State declarations must have a name",{source_location:rule.loc})}if(is_group_ref(rule.name)){return{agg_as:"group_metadata",val:[{group:rule.name.name,declarations:rule.value}]}}return{agg_as:"state_declaration",val:{state:rule.name,declarations:rule.value}}}if(["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration"].includes(rule.key)){return{agg_as:rule.key,val:[rule.value]}}const tautologies=["graph_layout","graph_bg_color","start_states","end_states","failed_outputs","machine_name","machine_version","machine_comment","machine_author","machine_contributor","machine_definition","machine_reference","machine_license","fsl_version","state_config","theme","flow","dot_preamble","allows_override","allow_islands","default_state_config","default_transition_config","default_graph_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_active_state_config","default_terminal_state_config","npm_name","default_size","editor_config"];if(tautologies.includes(rule.key)){return{agg_as:rule.key,val:rule.value}}throw new JssmError(void 0,`compile_rule_handler: Unknown rule: ${JSON.stringify(rule)}`)}function canonical_graph_alias_key(alias_key){if(alias_key==="graph_bg_color"){return"background-color"}return alias_key}const WARN_DEPRECATED_GRAPH_ALIASES=new Set(["graph_bg_color"]);function fold_graph_config(aliases,explicit_block){const folded=[];for(const[alias_key,values]of Object.entries(aliases)){for(const value of values){if(WARN_DEPRECATED_GRAPH_ALIASES.has(alias_key)){console.warn(`jssm: top-level \`${alias_key}\` is deprecated; prefer a \`graph: {}\` config block`)}folded.push({key:canonical_graph_alias_key(alias_key),value:value})}}for(const item of explicit_block){folded.push(item)}const seen_at=new Map;const result=[];for(const item of folded){const existing_index=seen_at.get(item.key);if(existing_index===void 0){seen_at.set(item.key,result.length);result.push(item)}else{result[existing_index]=item}}return result}function compile(tree){const results={graph_layout:[],graph_bg_color:[],transition:[],start_states:[],end_states:[],failed_outputs:[],state_config:[],state_declaration:[],fsl_version:[],machine_author:[],machine_comment:[],machine_contributor:[],machine_definition:[],machine_language:[],machine_license:[],machine_name:[],machine_reference:[],npm_name:[],default_size:[],property_definition:[],state_property:{},theme:[],flow:[],dot_preamble:[],arrange_declaration:[],arrange_start_declaration:[],arrange_end_declaration:[],oarrange_declaration:[],farrange_declaration:[],machine_version:[],default_state_config:[],default_active_state_config:[],default_hooked_state_config:[],default_terminal_state_config:[],default_start_state_config:[],default_end_state_config:[],default_transition_config:[],default_graph_config:[],named_list:[],group_metadata:[],hook_decl:[],allows_override:[],allow_islands:[],editor_config:[]};const group_registry=build_group_registry(tree);group_registry_cycle_check(group_registry);validate_group_members(group_registry);const resolved_tree=resolve_group_refs(tree,group_registry);for(const tr of resolved_tree){const rule=compile_rule_handler(tr),val=rule.val,bucket=results[rule.agg_as];if(Array.isArray(val)){for(const v of val){bucket.push(v)}}else{bucket.push(val)}}const property_keys=results["property_definition"].map(pd=>pd.name),repeat_props=find_repeated(property_keys);if(repeat_props.length>0){const dup=repeat_props[0][0];throw new JssmError(void 0,`Cannot repeat property definitions. Saw ${JSON.stringify(repeat_props)}`,{source_location:nth_matching_loc(tree,n=>n.key==="property_definition"&&n.name===dup,2)})}const assembled_transitions=resolve_transition_conflicts(results["transition"],group_registry.size>0);if(assembled_transitions.length===0){throw new JssmError(void 0,"This machine has no transitions, only declarations; a machine requires at least one transition (like `a -> b;`)")}const result_cfg={start_states:results.start_states.length>0?results.start_states:[assembled_transitions[0].from],end_states:results.end_states,failed_outputs:results.failed_outputs,transitions:assembled_transitions,state_property:[]};if(group_registry.size>0){result_cfg.group_registry=group_registry}if(results.group_metadata.length>0){const group_metadata=new Map;for(const gm of results.group_metadata){group_metadata.set(gm.group,{declarations:gm.declarations})}result_cfg.group_metadata=group_metadata}if(results.hook_decl.length>0){const group_hooks=new Map;const state_hooks=new Map;const merge_hook=(table,subject,event,action)=>{const existing=table.get(subject)??{};if(event==="enter"){existing.onEnter=action}else{existing.onExit=action}table.set(subject,existing)};for(const decl of results.hook_decl){if(is_group_ref(decl.subject)){merge_hook(group_hooks,decl.subject.name,decl.event,decl.action)}else{merge_hook(state_hooks,decl.subject,decl.event,decl.action)}}if(group_hooks.size>0){result_cfg.group_hooks=group_hooks}if(state_hooks.size>0){result_cfg.state_hooks=state_hooks}}const oneOnlyKeys=["graph_layout","graph_bg_color","machine_name","machine_version","machine_comment","fsl_version","machine_license","machine_definition","machine_language","flow","dot_preamble","allows_override","allow_islands","npm_name","default_size"];for(const oneOnlyKey of oneOnlyKeys){if(results[oneOnlyKey].length>1){throw new JssmError(void 0,`May only have one ${oneOnlyKey} statement maximum: ${JSON.stringify(results[oneOnlyKey])}`,{source_location:nth_matching_loc(tree,n=>n.key===oneOnlyKey,2)})}if(results[oneOnlyKey].length>0){result_cfg[oneOnlyKey]=results[oneOnlyKey][0]}}const multiKeys=["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration","machine_author","machine_contributor","machine_reference","theme","state_declaration","property_definition","default_state_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_terminal_state_config","default_active_state_config","default_transition_config"];for(const multiKey of multiKeys){if(results[multiKey].length>0){result_cfg[multiKey]=results[multiKey]}}result_cfg.default_graph_config=fold_graph_config({graph_layout:results.graph_layout,graph_bg_color:results.graph_bg_color,dot_preamble:results.dot_preamble,theme:results.theme,flow:results.flow},results.default_graph_config);if(result_cfg.default_graph_config.length===0){delete result_cfg.default_graph_config}if(results.editor_config.length>0){const ec={};for(const item of results.editor_config){if(item.key==="stochastic_run_count"){ec.stochastic_run_count=item.value}else{ec.panels=item.value}}result_cfg.editor_config=ec}const register_state_property=(sd,decl)=>{if(decl.key!=="state_property"){return}const label=name_bind_prop_and_state(decl.name,sd.state);if(result_cfg.state_property.some(c=>c.name===label)){throw new JssmError(void 0,`A state may only bind a property once (${sd.state} re-binds ${decl.name})`,{source_location:nth_matching_loc(tree,n=>n.key==="state_declaration"&&n.name===sd.state,1)})}result_cfg.state_property.push({name:label,default_value:decl.value,property:decl.name,state:sd.state})};for(const sd of results.state_declaration){for(const decl of sd.declarations){register_state_property(sd,decl)}}return result_cfg}function make(plan){return compile(wrap_parse(plan))}const base_state_style$5={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$5={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$5={shape:"component"};const base_terminal_state_style$5={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$4={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$5={backgroundColor:"yellow"};const base_active_start_state_style$4={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$4={backgroundColor:"yellowgreen"};const base_end_state_style$5={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$4={textColor:"white",backgroundColor:"darkgreen"};const default_theme={name:"default",state:base_state_style$5,start:base_start_state_style$5,end:base_end_state_style$5,terminal:base_terminal_state_style$5,hooked:base_hooked_state_style$5,active:base_active_state_style$5,active_start:base_active_start_state_style$4,active_end:base_active_end_state_style$4,active_terminal:base_active_terminal_state_style$4,active_hooked:base_active_hooked_state_style$4,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$4={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$4={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$4={shape:"component"};const base_terminal_state_style$4={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$3={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$4={backgroundColor:"yellow"};const base_active_start_state_style$3={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$3={backgroundColor:"yellowgreen"};const base_end_state_style$4={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$3={textColor:"white",backgroundColor:"darkgreen"};const modern_theme={name:"modern",state:base_state_style$4,start:base_start_state_style$4,end:base_end_state_style$4,terminal:base_terminal_state_style$4,hooked:base_hooked_state_style$4,active:base_active_state_style$4,active_start:base_active_start_state_style$3,active_end:base_active_end_state_style$3,active_terminal:base_active_terminal_state_style$3,active_hooked:base_active_hooked_state_style$3,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$3={backgroundColor:"cadetblue1"};const base_active_state_style$3={textColor:"white",backgroundColor:"deepskyblue"};const base_hooked_state_style$3={shape:"component",backgroundColor:"mediumaquamarine"};const base_terminal_state_style$3={textColor:"white",backgroundColor:"darkviolet"};const base_active_terminal_state_style$2={textColor:"white",backgroundColor:"deeppink"};const base_start_state_style$3={backgroundColor:"darkseagreen1"};const base_active_start_state_style$2={backgroundColor:"aquamarine"};const base_active_hooked_state_style$2={backgroundColor:"aquamarine"};const base_end_state_style$3={textColor:"white",backgroundColor:"chartreuse1"};const base_active_end_state_style$2={textColor:"white",backgroundColor:"darkgreen"};const ocean_theme={name:"ocean",state:base_state_style$3,start:base_start_state_style$3,end:base_end_state_style$3,terminal:base_terminal_state_style$3,hooked:base_hooked_state_style$3,active:base_active_state_style$3,active_start:base_active_start_state_style$2,active_end:base_active_end_state_style$2,active_terminal:base_active_terminal_state_style$2,active_hooked:base_active_hooked_state_style$2,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_hooked_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_terminal_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_start_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_end_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const plain_theme={name:"plain",state:base_state_style$2,start:base_start_state_style$2,end:base_end_state_style$2,terminal:base_terminal_state_style$2,hooked:base_hooked_state_style$2,active:base_active_state_style$2,active_start:base_active_start_state_style$1,active_end:base_active_end_state_style$1,active_terminal:base_active_terminal_state_style$1,active_hooked:base_active_hooked_state_style$1,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$1={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$1={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$1={shape:"component"};const base_terminal_state_style$1={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$1={backgroundColor:"yellow"};const base_active_start_state_style={backgroundColor:"yellowgreen"};const base_active_hooked_state_style={backgroundColor:"yellowgreen"};const base_end_state_style$1={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style={textColor:"white",backgroundColor:"darkgreen"};const bold_theme={name:"bold",state:base_state_style$1,start:base_start_state_style$1,end:base_end_state_style$1,terminal:base_terminal_state_style$1,hooked:base_hooked_state_style$1,active:base_active_state_style$1,active_start:base_active_start_state_style,active_end:base_active_end_state_style,active_terminal:base_active_terminal_state_style,active_hooked:base_active_hooked_state_style,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style={shape:"component"};const base_terminal_state_style={textColor:"white",backgroundColor:"crimson"};const base_start_state_style={backgroundColor:"yellow"};const base_end_state_style={textColor:"white",backgroundColor:"darkolivegreen"};const base_theme={state:base_state_style,start:base_start_state_style,end:base_end_state_style,terminal:base_terminal_state_style,hooked:base_hooked_state_style,active:base_active_state_style};const theme_mapping=new Map([["default",default_theme],["modern",modern_theme],["ocean",ocean_theme],["plain",plain_theme],["bold",bold_theme]]);class Interner{constructor(){this.ids=new Map;this.names=[]}intern(name){const existing=this.ids.get(name);if(existing!==void 0){return existing}const id=this.names.length;this.ids.set(name,id);this.names.push(name);return id}id_of(name){return this.ids.get(name)}name_of(id){return this.names[id]}get size(){return this.names.length}}function pair_key(a,b){return a>=b?a*a+a+b:b*b+a}function un_pair_key(z){const s=Math.floor(Math.sqrt(z));const l=z-s*s;return l<s?[l,s]:[s,l-s]}const state_name_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"+",to:"+"},{from:"_",to:"_"},{from:"^",to:"^"},{from:"(",to:"("},{from:")",to:")"},{from:"*",to:"*"},{from:"&",to:"&"},{from:"$",to:"$"},{from:"#",to:"#"},{from:"@",to:"@"},{from:"!",to:"!"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const state_name_first_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"_",to:"_"},{from:"!",to:"!"},{from:"$",to:"$"},{from:"^",to:"^"},{from:"*",to:"*"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const action_label_chars$1=Object.freeze([{from:" ",to:"&"},{from:"(",to:"["},{from:"]",to:"￿"}]);var constants=Object.freeze({__proto__:null,action_label_chars:action_label_chars$1,state_name_chars:state_name_chars$1,state_name_first_chars:state_name_first_chars$1});const version="5.162.20";var __typeError=msg=>{throw TypeError(msg)};var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj));var __privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value);var __privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),member.set(obj,value),value);var __privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var _states,_edges,_edge_map,_outbound_edge_ids,_named_transitions,_actions,_reverse_actions,_reverse_action_targets,_Machine_instances,unsubscribe_entry_fn,subscribe_fn,fire_one_fn,has_subscribers_fn,fire_fn,validate_hook_description_fn,fire_hook_rejection_fn,fire_boundary_actions_fn,resolved_themes_fn,individual_state_config_fn,groups_by_depth_fn,compose_state_config_fn;const{state_name_chars:state_name_chars,state_name_first_chars:state_name_first_chars,action_label_chars:action_label_chars}=constants;const empty_string_set=new Set;const hook_required_fields={hook:["from","to"],named:["from","to","action"],"global action":["action"],"any action":[],"standard transition":[],"main transition":[],"forced transition":[],"any transition":[],entry:["to"],exit:["from"],after:["from"],"after any":[],"post hook":["from","to"],"post named":["from","to","action"],"post global action":["action"],"post any action":[],"post standard transition":[],"post main transition":[],"post forced transition":[],"post any transition":[],"post entry":["to"],"post exit":["from"],"pre everything":[],everything:[],"pre post everything":[],"post everything":[]};const hook_spatial_fields=["from","to","action"];function transfer_state_properties(state_decl){state_decl.declarations.map(d=>{switch(d.key){case"shape":{state_decl.shape=d.value;break}case"color":{state_decl.color=d.value;break}case"corners":{state_decl.corners=d.value;break}case"line-style":{state_decl.lineStyle=d.value;break}case"text-color":{state_decl.textColor=d.value;break}case"background-color":{state_decl.backgroundColor=d.value;break}case"state-label":{state_decl.stateLabel=d.value;break}case"border-color":{state_decl.borderColor=d.value;break}case"image":{state_decl.image=d.value;break}case"url":{state_decl.url=d.value;break}case"state_property":{state_decl.property={name:d.name,value:d.value};break}default:{throw new JssmError(void 0,`Unknown state property: '${JSON.stringify(d)}'`)}}});return state_decl}function apply_state_style_key(state_style,key,machine){switch(key.key){case"shape":{if(state_style.shape!==void 0){throw new JssmError(machine,`cannot redefine 'shape' in state_style_condense, already defined`)}state_style.shape=key.value;return}case"color":{if(state_style.color!==void 0){throw new JssmError(machine,`cannot redefine 'color' in state_style_condense, already defined`)}state_style.color=key.value;return}case"text-color":{if(state_style.textColor!==void 0){throw new JssmError(machine,`cannot redefine 'text-color' in state_style_condense, already defined`)}state_style.textColor=key.value;return}case"corners":{if(state_style.corners!==void 0){throw new JssmError(machine,`cannot redefine 'corners' in state_style_condense, already defined`)}state_style.corners=key.value;return}case"line-style":{if(state_style.lineStyle!==void 0){throw new JssmError(machine,`cannot redefine 'line-style' in state_style_condense, already defined`)}state_style.lineStyle=key.value;return}case"background-color":{if(state_style.backgroundColor!==void 0){throw new JssmError(machine,`cannot redefine 'background-color' in state_style_condense, already defined`)}state_style.backgroundColor=key.value;return}case"state-label":{if(state_style.stateLabel!==void 0){throw new JssmError(machine,`cannot redefine 'state-label' in state_style_condense, already defined`)}state_style.stateLabel=key.value;return}case"border-color":{if(state_style.borderColor!==void 0){throw new JssmError(machine,`cannot redefine 'border-color' in state_style_condense, already defined`)}state_style.borderColor=key.value;return}case"url":{if(state_style.url!==void 0){throw new JssmError(machine,`cannot redefine 'url' in state_style_condense, already defined`)}state_style.url=key.value;return}default:{throw new JssmError(machine,`unknown state style key in condense: ${key.key}`)}}}function state_style_condense(jssk,machine){const state_style={};if(Array.isArray(jssk)){for(const[i,key]of jssk.entries()){if(typeof key!=="object"){throw new JssmError(machine,`invalid state item ${i} in state_style_condense list: ${JSON.stringify(key)}`)}apply_state_style_key(state_style,key,machine)}}else if(jssk===void 0);else{throw new JssmError(machine,"state_style_condense received a non-array")}return state_style}function merge_state_config(base,over){const merged={...base};for(const[key,value]of Object.entries(over)){if(value!==void 0){merged[key]=value}}return merged}function find_connected_components(states,edges){const adj=new Map;for(const name of states.keys()){adj.set(name,new Set)}for(const edge of edges){adj.get(edge.from).add(edge.to);adj.get(edge.to).add(edge.from)}const visited=new Set;const result=[];for(const start of states.keys()){if(visited.has(start)){continue}const component=[];const queue=[start];visited.add(start);const enqueue_unvisited=neighbor=>{if(visited.has(neighbor)){return}visited.add(neighbor);queue.push(neighbor)};let head=0;while(head<queue.length){const node=queue[head++];component.push(node);for(const neighbor of adj.get(node)){enqueue_unvisited(neighbor)}}result.push(component)}return result}const STOCHASTIC_DEFAULT_RUNS=1e3;const STOCHASTIC_DEFAULT_MAX_STEPS=1e3;const DEFAULT_TIME_SOURCE=()=>Date.now();const DEFAULT_TIMEOUT_SOURCE=(f,a)=>setTimeout(f,a);const DEFAULT_CLEAR_TIMEOUT_SOURCE=h=>clearTimeout(h);const _Machine=class _Machine{constructor({start_states:start_states,end_states:end_states=[],failed_outputs:failed_outputs=[],initial_state:initial_state,start_states_no_enforce:start_states_no_enforce,complete:complete=[],transitions:transitions,machine_author:machine_author,machine_comment:machine_comment,machine_contributor:machine_contributor,machine_definition:machine_definition,machine_language:machine_language,machine_license:machine_license,machine_name:machine_name,machine_version:machine_version,npm_name:npm_name,default_size:default_size,state_declaration:state_declaration,property_definition:property_definition,state_property:state_property,fsl_version:fsl_version,dot_preamble:dot_preamble,arrange_declaration:arrange_declaration=[],arrange_start_declaration:arrange_start_declaration=[],arrange_end_declaration:arrange_end_declaration=[],oarrange_declaration:oarrange_declaration=[],farrange_declaration:farrange_declaration=[],theme:theme=["default"],flow:flow="down",graph_layout:graph_layout="dot",instance_name:instance_name,history:history,boundary_depth_limit:boundary_depth_limit,data:data,default_state_config:default_state_config,default_active_state_config:default_active_state_config,default_hooked_state_config:default_hooked_state_config,default_terminal_state_config:default_terminal_state_config,default_start_state_config:default_start_state_config,default_end_state_config:default_end_state_config,default_transition_config:default_transition_config,default_graph_config:default_graph_config,group_registry:group_registry,group_metadata:group_metadata,group_hooks:group_hooks,state_hooks:state_hooks,allows_override:allows_override,config_allows_override:config_allows_override,allow_islands:allow_islands,editor_config:editor_config,rng_seed:rng_seed,time_source:time_source,timeout_source:timeout_source,clear_timeout_source:clear_timeout_source}){__privateAdd(this,_Machine_instances);__privateAdd(this,_states);__privateAdd(this,_edges);__privateAdd(this,_edge_map);__privateAdd(this,_outbound_edge_ids);__privateAdd(this,_named_transitions);__privateAdd(this,_actions);__privateAdd(this,_reverse_actions);__privateAdd(this,_reverse_action_targets);this._time_source=time_source??DEFAULT_TIME_SOURCE;this._create_started=this._time_source();this._instance_name=instance_name;__privateSet(this,_states,new Map);this._state_declarations=new Map;__privateSet(this,_edges,[]);__privateSet(this,_edge_map,new Map);__privateSet(this,_outbound_edge_ids,new Map);__privateSet(this,_named_transitions,new Map);__privateSet(this,_actions,new Map);__privateSet(this,_reverse_actions,new Map);__privateSet(this,_reverse_action_targets,new Map);this._state_interner=new Interner;this._action_interner=new Interner;this._state_id=NaN;this._edge_id_by_pair=new Map;this._edge_id_by_action_pair=new Map;this._edge_to_ids=[];this._start_states=new Set(start_states);this._end_states=new Set(end_states);this._failed_outputs=new Set(failed_outputs);this._machine_author=array_box_if_string(machine_author);this._machine_comment=machine_comment;this._machine_contributor=array_box_if_string(machine_contributor);this._machine_definition=machine_definition;this._machine_language=machine_language;this._machine_license=machine_license;this._machine_name=machine_name;this._machine_version=machine_version;this._npm_name=npm_name;this._default_size=default_size;this._raw_state_declaration=state_declaration||[];this._fsl_version=fsl_version;this._arrange_declaration=arrange_declaration;this._arrange_start_declaration=arrange_start_declaration;this._arrange_end_declaration=arrange_end_declaration;this._oarrange_declaration=oarrange_declaration;this._farrange_declaration=farrange_declaration;this._dot_preamble=dot_preamble;this._themes=theme;this._flow=flow;this._graph_layout=graph_layout;this._has_hooks=false;this._has_basic_hooks=false;this._has_named_hooks=false;this._has_entry_hooks=false;this._has_exit_hooks=false;this._has_after_hooks=false;this._has_global_action_hooks=false;this._has_transition_hooks=false;this._has_forced_transitions=false;this._hooks=new Map;this._named_hooks=new Map;this._entry_hooks=new Map;this._exit_hooks=new Map;this._after_hooks=new Map;this._after_any_hook=void 0;this._global_action_hooks=new Map;this._any_action_hook=void 0;this._standard_transition_hook=void 0;this._main_transition_hook=void 0;this._forced_transition_hook=void 0;this._any_transition_hook=void 0;this._has_post_hooks=false;this._has_post_basic_hooks=false;this._has_post_named_hooks=false;this._has_post_entry_hooks=false;this._has_post_exit_hooks=false;this._has_post_global_action_hooks=false;this._has_post_transition_hooks=false;this._code_allows_override=allows_override;this._config_allows_override=config_allows_override;this._allow_islands=allow_islands??true;this._editor_config=editor_config;if(allows_override===false&&config_allows_override===true){throw new JssmError(void 0,"Code specifies no override, but config tries to permit; config may not be less strict than code")}this._post_hooks=new Map;this._post_named_hooks=new Map;this._post_entry_hooks=new Map;this._post_exit_hooks=new Map;this._post_global_action_hooks=new Map;this._post_any_action_hook=void 0;this._post_standard_transition_hook=void 0;this._post_main_transition_hook=void 0;this._post_forced_transition_hook=void 0;this._post_any_transition_hook=void 0;this._pre_everything_hook=void 0;this._everything_hook=void 0;this._pre_post_everything_hook=void 0;this._post_everything_hook=void 0;this._data=data;this._property_keys=new Set;this._default_properties=new Map;this._state_properties=new Map;this._required_properties=new Set;this._state_property_first_state=new Map;this._state_style=state_style_condense(default_state_config,this);this._active_state_style=state_style_condense(default_active_state_config,this);this._hooked_state_style=state_style_condense(default_hooked_state_config,this);this._terminal_state_style=state_style_condense(default_terminal_state_config,this);this._start_state_style=state_style_condense(default_start_state_config,this);this._end_state_style=state_style_condense(default_end_state_config,this);this._default_transition_config=default_transition_config;this._default_graph_config=default_graph_config;this._group_registry=group_registry??new Map;this._group_hooks=group_hooks??new Map;this._state_hooks=state_hooks??new Map;this._group_metadata=new Map;if(group_metadata){group_metadata.forEach((raw,group_name)=>this._group_metadata.set(group_name,state_style_condense(raw.declarations,this)))}this._group_order=[...this._group_registry.keys()];this._state_to_groups=new Map;{const memo=new Map;for(const group_name of this._group_order){for(const member of transitive_members(this._group_registry,group_name,memo)){let bucket=this._state_to_groups.get(member);if(bucket===void 0){bucket=new Set;this._state_to_groups.set(member,bucket)}bucket.add(group_name)}}}this._static_state_config_cache=new Map;this._history_length=history||0;this._history=new circular_buffer(this._history_length);this._state_labels=new Map;this._rng_seed=rng_seed??Date.now();this._rng=gen_splitmix32(this._rng_seed);this._timeout_source=timeout_source??DEFAULT_TIMEOUT_SOURCE;this._clear_timeout_source=clear_timeout_source??DEFAULT_CLEAR_TIMEOUT_SOURCE;this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0;this._after_mapping=new Map;this._event_handlers=new Map;this._event_listener_count=0;this._firing_error=false;this._boundary_depth=0;this._boundary_depth_limit=boundary_depth_limit??100;if(state_declaration){for(const state_decl of state_declaration){if(this._state_declarations.has(state_decl.state)){throw new JssmError(this,`Added the same state declaration twice: ${JSON.stringify(state_decl.state)}`)}this._state_declarations.set(state_decl.state,transfer_state_properties(state_decl))}}for(const[key,decl]of this._state_declarations){const labelled=decl.declarations.filter(d=>d.key==="state-label");if(labelled.length>1){throw new JssmError(this,`state ${key} may only have one state-label; has ${labelled.length}`)}if(labelled.length===1){this._state_labels.set(key,labelled[0].value)}}const seen_edges=new Map;const complete_set=new Set(complete);for(const tr of transitions){if(tr.from===void 0){throw new JssmError(this,`transition must define 'from': ${JSON.stringify(tr)}`)}if(tr.to===void 0){throw new JssmError(this,`transition must define 'to': ${JSON.stringify(tr)}`)}let cursor_from=__privateGet(this,_states).get(tr.from);if(cursor_from===void 0){cursor_from={name:tr.from,from:[],to:[],complete:complete_set.has(tr.from)};this._new_state(cursor_from)}let cursor_to=__privateGet(this,_states).get(tr.to);if(cursor_to===void 0){cursor_to={name:tr.to,from:[],to:[],complete:complete_set.has(tr.to)};this._new_state(cursor_to)}let to_slots=seen_edges.get(tr.from);if(to_slots===void 0){to_slots=new Map;seen_edges.set(tr.from,to_slots)}let slots=to_slots.get(tr.to);if(slots===void 0){slots=new Set;to_slots.set(tr.to,slots);cursor_from.to.push(tr.to);cursor_to.from.push(tr.from)}const edge_exempt=!tr.action&&tr.probability!==void 0;if(!edge_exempt){const slot=tr.action||"";if(slots.has(slot)){throw new JssmError(this,`already has ${JSON.stringify(tr.from)} to ${JSON.stringify(tr.to)}`+(tr.action?` on action ${JSON.stringify(tr.action)}`:""))}slots.add(slot)}__privateGet(this,_edges).push(tr);const thisEdgeId=__privateGet(this,_edges).length-1;if(tr.forced_only){this._has_forced_transitions=true}if(tr.name){if(__privateGet(this,_named_transitions).has(tr.name)){throw new JssmError(this,`named transition "${JSON.stringify(tr.name)}" already created`)}__privateGet(this,_named_transitions).set(tr.name,thisEdgeId)}if(tr.after_time){this._after_mapping.set(tr.from,[tr.to,tr.after_time])}let from_mapping=__privateGet(this,_edge_map).get(tr.from);if(from_mapping===void 0){from_mapping=new Map;__privateGet(this,_edge_map).set(tr.from,from_mapping)}if(!from_mapping.has(tr.to)){from_mapping.set(tr.to,thisEdgeId)}const from_id=this._state_interner.intern(tr.from);const to_id=this._state_interner.intern(tr.to);const pair=pair_key(from_id,to_id);if(!this._edge_id_by_pair.has(pair)){this._edge_id_by_pair.set(pair,thisEdgeId)}this._edge_to_ids[thisEdgeId]=to_id;let outbound=__privateGet(this,_outbound_edge_ids).get(tr.from);if(!outbound){outbound=[];__privateGet(this,_outbound_edge_ids).set(tr.from,outbound)}outbound.push(thisEdgeId);if(tr.action){let actionMap=__privateGet(this,_actions).get(tr.action);if(!actionMap){actionMap=new Map;__privateGet(this,_actions).set(tr.action,actionMap)}if(actionMap.has(tr.from)){throw new JssmError(this,`action ${JSON.stringify(tr.action)} already attached to origin ${JSON.stringify(tr.from)}`)}actionMap.set(tr.from,thisEdgeId);let rActionMap=__privateGet(this,_reverse_actions).get(tr.from);if(!rActionMap){rActionMap=new Map;__privateGet(this,_reverse_actions).set(tr.from,rActionMap)}rActionMap.set(tr.action,thisEdgeId);const action_id=this._action_interner.intern(tr.action);this._edge_id_by_action_pair.set(pair_key(action_id,from_id),thisEdgeId);if(!__privateGet(this,_reverse_action_targets).has(tr.to)){__privateGet(this,_reverse_action_targets).set(tr.to,new Map)}}}if(Array.isArray(property_definition)){for(const pr of property_definition){this._property_keys.add(pr.name);if(Object.prototype.hasOwnProperty.call(pr,"default_value")){this._default_properties.set(pr.name,pr.default_value)}if(Object.prototype.hasOwnProperty.call(pr,"required")&&pr.required===true){this._required_properties.add(pr.name)}}}if(Array.isArray(state_property)){for(const sp of state_property){this._state_properties.set(sp.name,sp.default_value);let j_property=sp.property,j_state=sp.state;if(j_property===void 0||j_state===void 0){const inside=JSON.parse(sp.name);j_property=inside[0];j_state=inside[1]}if(!this._state_property_first_state.has(j_property)){this._state_property_first_state.set(j_property,j_state)}}}if(initial_state){if(!__privateGet(this,_states).has(initial_state)){throw new JssmError(this,`requested start state ${initial_state} does not exist`)}if(!start_states_no_enforce&&!start_states.includes(initial_state)){throw new JssmError(this,`requested start state ${initial_state} is not in start state list; add {start_states_no_enforce:true} to constructor options if desired`)}this._state=initial_state}else{this._state=start_states[0]}this._state_id=this._state_interner.intern(this._state);this._state_property_first_state.forEach((j_state,j_property)=>{if(!this.known_prop(j_property)){throw new JssmError(this,`State "${j_state}" has property "${j_property}" which is not globally declared`)}});const all_states_for_props=this.states();this._required_properties.forEach(dp_key=>{if(this._default_properties.has(dp_key)){throw new JssmError(this,`The property "${dp_key}" is required, but also has a default; these conflict`)}for(const s of all_states_for_props){const bound_name=name_bind_prop_and_state(dp_key,s);if(!this._state_properties.has(bound_name)){throw new JssmError(this,`State "${s}" is missing required property "${dp_key}"`)}}});if(!this.has_state(this.state())){throw new JssmError(this,`Current start state "${this.state()}" does not exist`)}for(const[ssi,ss]of start_states.entries()){if(!this.has_state(ss)){throw new JssmError(this,`Start state ${ssi} "${ss}" does not exist`)}}if(start_states.length!==this._start_states.size){throw new JssmError(this,`Start states cannot be repeated`)}if(this._allow_islands!==true){const components=find_connected_components(__privateGet(this,_states),__privateGet(this,_edges));if(this._allow_islands===false){if(components.length>1){throw new JssmError(this,`allow_islands is false but the state graph has ${components.length} disconnected components`)}}else{for(const component of components){const has_start=component.some(s=>this._start_states.has(s));if(!has_start){throw new JssmError(this,`allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(", ")}]`)}}}}this._created=this._time_source();this.auto_set_state_timeout();for(const declaration of[this._arrange_declaration,this._oarrange_declaration,this._farrange_declaration]){for(const arrange_pair of declaration){for(const possibleState of arrange_pair){if(!__privateGet(this,_states).has(possibleState)){throw new JssmError(this,`Cannot arrange state that does not exist "${possibleState}"`)}}}}}_new_state(state_config){if(__privateGet(this,_states).has(state_config.name)){throw new JssmError(this,`state ${JSON.stringify(state_config.name)} already exists`)}__privateGet(this,_states).set(state_config.name,state_config);this._state_interner.intern(state_config.name);return state_config.name}state(){return this._state}label_for(state){return this._state_labels.get(state)}display_text(state){return this._state_labels.get(state)??state}data(){return structuredClone(this._data)}set_data(newData){const oldData=this._data;this._data=newData;if(oldData!==newData){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:this._state,to:this._state,old_data:oldData,new_data:newData,cause:"set_data"})}return this}_data_ref(){return this._data}prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}return this._default_properties.has(name)?this._default_properties.get(name):void 0}strict_prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}if(this._default_properties.has(name)){return this._default_properties.get(name)}throw new JssmError(this,`Strictly requested a prop '${name}' which doesn't exist on current state '${this.state()}' and has no default`)}props(){const ret={};for(const p of this.known_props())ret[p]=this.prop(p);return ret}known_prop(prop_name){return this._property_keys.has(prop_name)}known_props(){return[...this._property_keys]}is_start_state(whichState){return this._start_states.has(whichState)}is_end_state(whichState){return this._end_states.has(whichState)}failed_outputs(){return[...this._failed_outputs]}is_failed_output(whichState){return this._failed_outputs.has(whichState)}is_failed(){return this._failed_outputs.has(this._state)}state_is_final(whichState){return this.state_is_terminal(whichState)||this.state_is_complete(whichState)}is_final(){return this.state_is_final(this.state())}serialize(comment){return{comment:comment,state:this._state,data:this._data,jssm_version:version,history:this._history.toArray(),history_capacity:this._history.capacity,timestamp:this._time_source()}}graph_layout(){return this._graph_layout}dot_preamble(){return this._dot_preamble}default_transition_config(){return this._default_transition_config}default_graph_config(){return this._default_graph_config}machine_author(){return this._machine_author}machine_comment(){return this._machine_comment}machine_contributor(){return this._machine_contributor}machine_definition(){return this._machine_definition}machine_language(){return this._machine_language}machine_license(){return this._machine_license}machine_name(){return this._machine_name}editor_config(){return this._editor_config}npm_name(){return this._npm_name}default_size(){return this._default_size}machine_version(){return this._machine_version}raw_state_declarations(){return this._raw_state_declaration}state_declaration(which){return this._state_declarations.get(which)}state_declarations(){return this._state_declarations}fsl_version(){return this._fsl_version}machine_state(){return{internal_state_impl_version:1,actions:__privateGet(this,_actions),edge_map:__privateGet(this,_edge_map),edges:__privateGet(this,_edges),named_transitions:__privateGet(this,_named_transitions),reverse_actions:__privateGet(this,_reverse_actions),state:this._state,states:__privateGet(this,_states)}}states(){return[...__privateGet(this,_states).keys()]}state_for(whichState){const state=__privateGet(this,_states).get(whichState);if(state){return state}throw new JssmError(this,"No such state",{requested_state:whichState})}has_state(whichState){return __privateGet(this,_states).has(whichState)}list_edges(){return __privateGet(this,_edges)}list_named_transitions(){return __privateGet(this,_named_transitions)}list_actions(){return[...__privateGet(this,_actions).keys()]}get uses_actions(){return __privateGet(this,_actions).size>0}get uses_forced_transitions(){return this._has_forced_transitions}get code_allows_override(){return this._code_allows_override}get config_allows_override(){return this._config_allows_override}get allows_override(){if(this._code_allows_override===false){if(this._config_allows_override===true){throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code; should be unreachable")}return false}if(this._code_allows_override===true){return this._config_allows_override!==false}return this._config_allows_override===true}get allow_islands(){return this._allow_islands}all_themes(){return[...theme_mapping.keys()]}all_state_name_chars(){return state_name_chars}all_state_name_first_chars(){return state_name_first_chars}all_action_label_chars(){return action_label_chars}get themes(){return this._themes}set themes(to){this._themes=typeof to==="string"?[to]:to;this._static_state_config_cache.clear()}flow(){return this._flow}get_transition_by_state_names(from2,to){const emg=__privateGet(this,_edge_map).get(from2);return emg?emg.get(to):void 0}lookup_transition_for(from2,to){const id=this.get_transition_by_state_names(from2,to);return id===void 0||id===null?void 0:__privateGet(this,_edges)[id]}list_transitions(whichState=this.state()){return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}list_entrances(whichState=this.state()){const guaranteed=__privateGet(this,_states).get(whichState)??{from:void 0};return guaranteed.from??[]}list_exits(whichState=this.state()){const guaranteed=__privateGet(this,_states).get(whichState)??{to:void 0};return guaranteed.to??[]}probable_exits_for(whichState){const wstate=__privateGet(this,_states).get(whichState);if(!wstate){throw new JssmError(this,`No such state ${JSON.stringify(whichState)} in probable_exits_for`)}const legal_exits=[],probability_bearing=[];const emg=__privateGet(this,_edge_map).get(whichState);for(const ws of wstate.to){const edge=__privateGet(this,_edges)[emg.get(ws)];if(!edge){continue}if(edge.forced_only){continue}legal_exits.push(edge);if(edge.probability!==void 0){probability_bearing.push(edge)}}return probability_bearing.length>0?probability_bearing:legal_exits}_assert_selectable_exit_pool(whichState,exits){if(exits.length===0){return}let total=0;for(const e of exits){total+=e.probability===void 0?1:e.probability}if(total>0){return}throw new JssmError(this,`Cannot randomly select an exit from state ${JSON.stringify(whichState)}: every candidate edge has probability 0%. Note that an explicit 0% edge excludes unweighted sibling edges from the candidate pool (StoneCypher/fsl#1248)`)}probabilistic_transition(){const exits=this.probable_exits_for(this.state());this._assert_selectable_exit_pool(this.state(),exits);const selected=weighted_rand_select(exits,void 0,this._rng);return this.transition(selected.to)}probabilistic_walk(n){return[...seq(n).map(()=>{const state_was=this.state();this.probabilistic_transition();return state_was}),this.state()]}probabilistic_histo_walk(n){return histograph(this.probabilistic_walk(n))}_stochastic_one_walk(start,max_steps,exit_memo){const states=[start];const edges=[];let cur=start;let exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);this._assert_selectable_exit_pool(cur,exits);exit_memo.set(cur,exits)}let terminated=exits.length===0;for(let step=0;step<max_steps&&!terminated;step++){const selected=weighted_rand_select(exits,void 0,this._rng);edges.push(`${cur}→${selected.to}`);cur=selected.to;states.push(cur);exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);this._assert_selectable_exit_pool(cur,exits);exit_memo.set(cur,exits)}terminated=exits.length===0}return{states:states,edges:edges,length:states.length-1,terminated:terminated}}*stochastic_runs(opts={}){if(opts.seed!==void 0){this.rng_seed=opts.seed}const mode=opts.mode??"montecarlo";const max_steps=opts.max_steps??STOCHASTIC_DEFAULT_MAX_STEPS;const runs=mode==="steady_state"?1:opts.runs??this.editor_config()?.stochastic_run_count??STOCHASTIC_DEFAULT_RUNS;const start=this.state();const exit_memo=new Map;for(let i=0;i<runs;i++){yield this._stochastic_one_walk(start,max_steps,exit_memo)}}stochastic_summary(opts={}){const mode=opts.mode??"montecarlo";const saved_seed=this._rng_seed;if(opts.seed!==void 0){this.rng_seed=opts.seed}const effective_seed=this._rng_seed;const state_visits=new Map;const edge_traversals=new Map;const path_lengths=[];let terminal_reached=0,capped=0,runs=0;try{const run_stream=this.stochastic_runs({...opts,mode:mode});for(const run of run_stream){runs+=1;for(const s of run.states){state_visits.set(s,(state_visits.get(s)??0)+1)}for(const e of run.edges){edge_traversals.set(e,(edge_traversals.get(e)??0)+1)}if(mode==="montecarlo"){if(run.terminated){terminal_reached+=1;path_lengths.push(run.length)}else{capped+=1}}}}finally{this.rng_seed=saved_seed}const total_visits=[...state_visits.values()].reduce((a,b)=>a+b,0);const state_visit_fraction=new Map;for(const[s,c]of state_visits){state_visit_fraction.set(s,c/total_visits)}const summary={mode:mode,runs:runs,seed:effective_seed,state_visits:state_visits,state_visit_fraction:state_visit_fraction,edge_traversals:edge_traversals};if(mode==="montecarlo"){summary.path_lengths=path_lengths;summary.terminal_reached=terminal_reached;summary.capped=capped}return summary}actions(whichState=this.state()){const wstate=__privateGet(this,_reverse_actions).get(whichState);if(wstate){return[...wstate.keys()]}if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}list_states_having_action(whichState){const wstate=__privateGet(this,_actions).get(whichState);if(wstate){return[...wstate.keys()]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}list_exit_actions(whichState=this.state()){const ra_base=__privateGet(this,_reverse_actions).get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}return[...ra_base.keys()]}probable_action_exits(whichState=this.state()){const ra_base=__privateGet(this,_reverse_actions).get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}const exits=[];ra_base.forEach((edgeId,action)=>{exits.push({action:action,probability:__privateGet(this,_edges)[edgeId].probability})});return exits}is_unenterable(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_entrances(whichState).length===0}has_unenterables(){return this.states().some(x=>this.is_unenterable(x))}is_terminal(){return this.state_is_terminal(this.state())}state_is_terminal(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_exits(whichState).length===0}has_terminals(){return this.states().some(x=>this.state_is_terminal(x))}isIn(groupName){return this.groupsOf(this.state()).has(groupName)}groupsOf(state){return new Set(this._state_to_groups.get(state))}groups(){return[...this._group_order]}statesIn(groupName){if(!this._group_registry.has(groupName)){throw new JssmError(this,`No such group ${JSON.stringify(groupName)}`)}return transitive_members(this._group_registry,groupName,new Map)}is_complete(){return this.state_is_complete(this.state())}state_is_complete(whichState){const wstate=__privateGet(this,_states).get(whichState);if(wstate){return wstate.complete}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}has_completes(){return this.states().some(x=>this.state_is_complete(x))}on(name,filterOrFn,maybeFn){return __privateMethod(this,_Machine_instances,subscribe_fn).call(this,name,filterOrFn,maybeFn,false)}once(name,filterOrFn,maybeFn){return __privateMethod(this,_Machine_instances,subscribe_fn).call(this,name,filterOrFn,maybeFn,true)}off(name,handler){const set=this._event_handlers.get(name);if(set===void 0){return false}for(const entry of set){if(entry.handler===handler){__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry);return true}}return false}set_hook(HookDesc){__privateMethod(this,_Machine_instances,validate_hook_description_fn).call(this,HookDesc);switch(HookDesc.kind){case"hook":{this._hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_hooks=true;this._has_basic_hooks=true;break}case"named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._named_hooks.get(pk);if(inner===void 0){inner=new Map;this._named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_named_hooks=true;break}case"global action":{this._global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_global_action_hooks=true;break}case"any action":{this._any_action_hook=HookDesc.handler;this._has_hooks=true;break}case"standard transition":{this._standard_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"main transition":{this._main_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"forced transition":{this._forced_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"any transition":{this._any_transition_hook=HookDesc.handler;this._has_hooks=true;break}case"entry":{this._entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_hooks=true;this._has_entry_hooks=true;break}case"exit":{this._exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_hooks=true;this._has_exit_hooks=true;break}case"after":{this._after_hooks.set(HookDesc.from,HookDesc.handler);this._has_hooks=true;this._has_after_hooks=true;break}case"after any":{this._after_any_hook=HookDesc.handler;this._has_hooks=true;this._has_after_hooks=true;break}case"post hook":{this._post_hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_post_hooks=true;this._has_post_basic_hooks=true;break}case"post named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._post_named_hooks.get(pk);if(inner===void 0){inner=new Map;this._post_named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_named_hooks=true;break}case"post global action":{this._post_global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_global_action_hooks=true;break}case"post any action":{this._post_any_action_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post standard transition":{this._post_standard_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post main transition":{this._post_main_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post forced transition":{this._post_forced_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post any transition":{this._post_any_transition_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post entry":{this._post_entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_post_entry_hooks=true;this._has_post_hooks=true;break}case"post exit":{this._post_exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_post_exit_hooks=true;this._has_post_hooks=true;break}case"pre everything":{this._pre_everything_hook=HookDesc.handler;this._has_hooks=true;break}case"everything":{this._everything_hook=HookDesc.handler;this._has_hooks=true;break}case"pre post everything":{this._pre_post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post everything":{this._post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}}this._static_state_config_cache.clear();__privateMethod(this,_Machine_instances,fire_fn).call(this,"hook-registration",{description:HookDesc})}remove_hook(HookDesc){let removed=false;switch(HookDesc.kind){case"hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._hooks.delete(pair_key(fid,tid));break}case"named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._global_action_hooks.delete(aid);break}case"any action":{if(this._any_action_hook!==void 0){this._any_action_hook=void 0;removed=true}break}case"standard transition":{if(this._standard_transition_hook!==void 0){this._standard_transition_hook=void 0;removed=true}break}case"main transition":{if(this._main_transition_hook!==void 0){this._main_transition_hook=void 0;removed=true}break}case"forced transition":{if(this._forced_transition_hook!==void 0){this._forced_transition_hook=void 0;removed=true}break}case"any transition":{if(this._any_transition_hook!==void 0){this._any_transition_hook=void 0;removed=true}break}case"entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._entry_hooks.delete(tid);break}case"exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._exit_hooks.delete(fid);break}case"after":{removed=this._after_hooks.delete(HookDesc.from);break}case"after any":{if(this._after_any_hook!==void 0){this._after_any_hook=void 0;removed=true}break}case"post hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._post_hooks.delete(pair_key(fid,tid));break}case"post named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._post_named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"post global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._post_global_action_hooks.delete(aid);break}case"post any action":{if(this._post_any_action_hook!==void 0){this._post_any_action_hook=void 0;removed=true}break}case"post standard transition":{if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook=void 0;removed=true}break}case"post main transition":{if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook=void 0;removed=true}break}case"post forced transition":{if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook=void 0;removed=true}break}case"post any transition":{if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook=void 0;removed=true}break}case"post entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._post_entry_hooks.delete(tid);break}case"post exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._post_exit_hooks.delete(fid);break}case"pre everything":{if(this._pre_everything_hook!==void 0){this._pre_everything_hook=void 0;removed=true}break}case"everything":{if(this._everything_hook!==void 0){this._everything_hook=void 0;removed=true}break}case"pre post everything":{if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook=void 0;removed=true}break}case"post everything":{if(this._post_everything_hook!==void 0){this._post_everything_hook=void 0;removed=true}break}default:{throw new JssmError(this,`Unknown hook type ${HookDesc.kind}, should be impossible`)}}if(removed){this._static_state_config_cache.clear();__privateMethod(this,_Machine_instances,fire_fn).call(this,"hook-removal",{description:HookDesc})}return removed}hook(from2,to,handler){this.set_hook({kind:"hook",from:from2,to:to,handler:handler});return this}hook_action(from2,to,action,handler){this.set_hook({kind:"named",from:from2,to:to,action:action,handler:handler});return this}hook_global_action(action,handler){this.set_hook({kind:"global action",action:action,handler:handler});return this}hook_any_action(handler){this.set_hook({kind:"any action",handler:handler});return this}hook_standard_transition(handler){this.set_hook({kind:"standard transition",handler:handler});return this}hook_main_transition(handler){this.set_hook({kind:"main transition",handler:handler});return this}hook_forced_transition(handler){this.set_hook({kind:"forced transition",handler:handler});return this}hook_any_transition(handler){this.set_hook({kind:"any transition",handler:handler});return this}hook_entry(to,handler){this.set_hook({kind:"entry",to:to,handler:handler});return this}hook_exit(from2,handler){this.set_hook({kind:"exit",from:from2,handler:handler});return this}hook_after(from2,handler){this.set_hook({kind:"after",from:from2,handler:handler});return this}hook_after_any(handler){this.set_hook({kind:"after any",handler:handler});return this}post_hook(from2,to,handler){this.set_hook({kind:"post hook",from:from2,to:to,handler:handler});return this}post_hook_action(from2,to,action,handler){this.set_hook({kind:"post named",from:from2,to:to,action:action,handler:handler});return this}post_hook_global_action(action,handler){this.set_hook({kind:"post global action",action:action,handler:handler});return this}post_hook_any_action(handler){this.set_hook({kind:"post any action",handler:handler});return this}post_hook_standard_transition(handler){this.set_hook({kind:"post standard transition",handler:handler});return this}post_hook_main_transition(handler){this.set_hook({kind:"post main transition",handler:handler});return this}post_hook_forced_transition(handler){this.set_hook({kind:"post forced transition",handler:handler});return this}post_hook_any_transition(handler){this.set_hook({kind:"post any transition",handler:handler});return this}post_hook_entry(to,handler){this.set_hook({kind:"post entry",to:to,handler:handler});return this}post_hook_exit(from2,handler){this.set_hook({kind:"post exit",from:from2,handler:handler});return this}hook_pre_everything(handler){this.set_hook({kind:"pre everything",handler:handler});return this}hook_everything(handler){this.set_hook({kind:"everything",handler:handler});return this}hook_post_everything(handler){this.set_hook({kind:"post everything",handler:handler});return this}hook_pre_post_everything(handler){this.set_hook({kind:"pre post everything",handler:handler});return this}get rng_seed(){return this._rng_seed}set rng_seed(to){this._rng_seed=to===void 0?Date.now():to;this._rng=gen_splitmix32(this._rng_seed)}edges_between(from2,to){const to_id=this._state_interner.id_of(to);if(to_id===void 0){return[]}const outbound=__privateGet(this,_outbound_edge_ids).get(from2)??[];const result=[];for(const edgeId of outbound){if(this._edge_to_ids[edgeId]===to_id){result.push(__privateGet(this,_edges)[edgeId])}}return result}override(newState,newData){const dataProvided=arguments.length>=2;if(this.allows_override){if(__privateGet(this,_states).has(newState)){const fromState=this._state;const oldData=this._data;this._state=newState;this._state_id=this._state_interner.intern(newState);if(dataProvided){this._data=newData}__privateMethod(this,_Machine_instances,fire_fn).call(this,"override",{from:fromState,to:newState,old_data:oldData,new_data:this._data});if(dataProvided&&oldData!==newData){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:fromState,to:newState,old_data:oldData,new_data:newData,cause:"override"})}__privateMethod(this,_Machine_instances,fire_boundary_actions_fn).call(this,fromState,newState)}else{throw new JssmError(this,`Cannot override state to "${newState}", a state that does not exist`)}}else{throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code")}}transition_impl(newStateOrAction,newData,wasForced,wasAction,dataProvided=newData!==void 0){let valid=false,trans_type,newState,newStateId=NaN,actionId=NaN,fromAction;if(wasForced){const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0){valid=true;trans_type="forced";newState=newStateOrAction;newStateId=to_id}}else if(wasAction){const aid=this._action_interner.id_of(newStateOrAction);const edgeId=aid===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(aid,this._state_id));if(edgeId!==void 0){const edge=__privateGet(this,_edges)[edgeId];valid=true;trans_type=edge.kind;newState=edge.to;newStateId=this._edge_to_ids[edgeId];fromAction=newStateOrAction;actionId=aid}}else{const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0&&!__privateGet(this,_edges)[edgeId].forced_only){if(this._has_transition_hooks||this._has_post_transition_hooks){trans_type=__privateGet(this,_edges)[edgeId].kind}valid=true;newState=newStateOrAction;newStateId=to_id}}const hook_args_obj=this._has_hooks||this._has_post_hooks?{data:this._data,action:fromAction,from:this._state,to:newState,next_data:newData,forced:wasForced,trans_type:trans_type}:void 0;const hook_args=hook_args_obj;if(wasAction&&this._event_listener_count!==0){__privateMethod(this,_Machine_instances,fire_fn).call(this,"action",{action:newStateOrAction,from:this._state,to:newState,data:this._data,next_data:newData})}const fromState=this._state;const fromStateId=this._state_id;const oldData=this._data;if(valid){if(this._has_hooks){let data_changed=false;if(this._pre_everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._pre_everything_hook,{...hook_args,hook_name:"pre everything"});if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"pre everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(wasAction){const outcome=abstract_hook_step(this._any_action_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"any action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}const outcome2=abstract_hook_step(this._global_action_hooks.get(actionId),hook_args);if(!outcome2.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"global action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome2)){data_changed=true}}if(this._any_transition_hook!==void 0){const outcome=abstract_hook_step(this._any_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"any transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_exit_hooks){const outcome=abstract_hook_step(this._exit_hooks.get(this._state_id),hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"exit",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}const pre_pair_id=pair_key(this._state_id,newStateId);if(this._has_named_hooks&&wasAction){const byPair=this._named_hooks.get(pre_pair_id);const nh=byPair===void 0?void 0:byPair.get(actionId);const outcome=abstract_hook_step(nh,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"named",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_basic_hooks){const h=this._hooks.get(pre_pair_id);const outcome=abstract_hook_step(h,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"hook",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}switch(trans_type){case"legal":{const outcome=abstract_hook_step(this._standard_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"standard transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}case"main":{const outcome=abstract_hook_step(this._main_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"main transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}case"forced":{const outcome=abstract_hook_step(this._forced_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"forced transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}}if(this._has_entry_hooks){const outcome=abstract_hook_step(this._entry_hooks.get(newStateId),hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"entry",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._everything_hook,{...hook_args,hook_name:"everything"});if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(data_changed){this._data=hook_args.data}else if(dataProvided){this._data=newData}}else{if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(dataProvided){this._data=newData}}}else{if(this._event_listener_count!==0){__privateMethod(this,_Machine_instances,fire_fn).call(this,"rejection",{from:fromState,to:newStateOrAction,action:fromAction,data:oldData,next_data:newData,reason:"invalid",forced:wasForced})}return false}if(this._has_post_hooks){if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook({...hook_args,hook_name:"pre post everything"})}if(wasAction){if(this._post_any_action_hook!==void 0){this._post_any_action_hook(hook_args)}const pgah=this._post_global_action_hooks.get(actionId);if(pgah!==void 0){pgah(hook_args)}}if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook(hook_args)}if(this._has_post_exit_hooks){const peh=this._post_exit_hooks.get(fromStateId);if(peh!==void 0){peh(hook_args)}}const post_pair_id=pair_key(fromStateId,newStateId);if(this._has_post_named_hooks&&wasAction){const byPair=this._post_named_hooks.get(post_pair_id);const pnh=byPair===void 0?void 0:byPair.get(actionId);if(pnh!==void 0){pnh(hook_args)}}if(this._has_post_basic_hooks){const hook=this._post_hooks.get(post_pair_id);if(hook!==void 0){hook(hook_args)}}if(trans_type==="legal"&&this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook(hook_args)}if(trans_type==="main"&&this._post_main_transition_hook!==void 0){this._post_main_transition_hook(hook_args)}if(trans_type==="forced"&&this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook(hook_args)}if(this._has_post_entry_hooks){const hook=this._post_entry_hooks.get(newStateId);if(hook!==void 0){hook(hook_args)}}if(this._post_everything_hook!==void 0){this._post_everything_hook({...hook_args,hook_name:"post everything"})}}if(this._event_listener_count!==0){const newData_after=this._data;if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"exit")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"exit",{state:fromState,to:newState,action:fromAction,data:newData_after})}if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"transition")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"transition",{from:fromState,to:newState,action:fromAction,data:newData_after,next_data:newData,trans_type:trans_type,forced:wasForced})}if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"entry")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"entry",{state:newState,from:fromState,action:fromAction,data:newData_after})}if(oldData!==newData_after&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"data-change")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:fromState,to:newState,action:fromAction,old_data:oldData,new_data:newData_after,cause:"transition"})}const new_state_rec=__privateGet(this,_states).get(newState);if(new_state_rec.to.length===0&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"terminal")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"terminal",{state:newState,data:newData_after})}if(new_state_rec.complete&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"complete")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"complete",{state:newState,data:newData_after})}}__privateMethod(this,_Machine_instances,fire_boundary_actions_fn).call(this,fromState,newState);this.clear_state_timeout();this.auto_set_state_timeout();return true}auto_set_state_timeout(){if(this._after_mapping.size===0){return}const after_res=this._after_mapping.get(this._state);if(after_res!==void 0){const[next_state,after_time]=after_res;this.set_state_timeout(next_state,after_time)}}get history(){return this._history.toArray()}get history_inclusive(){const ret=this._history.toArray();ret.push([this.state(),this.data()]);return ret}get history_length(){return this._history_length}set history_length(to){this._history_length=to;this._history.resize(to,true)}action(actionName,newData){return this.transition_impl(actionName,newData,false,true,arguments.length>=2)}get standard_state_style(){return this._state_style}get hooked_state_style(){return this._hooked_state_style}get start_state_style(){return this._start_state_style}get end_state_style(){return this._end_state_style}get terminal_state_style(){return this._terminal_state_style}get active_state_style(){return this._active_state_style}hook_registry(){const entries=[];const state_name=id=>this._state_interner.name_of(id);const action_name=id=>this._action_interner.name_of(id);const push_edges=(table,kind,phase)=>{table.forEach((_handler,pk)=>{const[fid,tid]=un_pair_key(pk);entries.push({kind:kind,phase:phase,target:{scope:"edge",from:state_name(fid),to:state_name(tid)}})})};const push_named=(table,kind,phase)=>{table.forEach((byAction,pk)=>{const[fid,tid]=un_pair_key(pk);const from2=state_name(fid),to=state_name(tid);byAction.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"edge",from:from2,to:to,action:action_name(aid)}})})})};const push_states=(table,kind,phase)=>{table.forEach((_handler,sid)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state_name(sid)}})})};const push_states_by_name=(table,kind,phase)=>{table.forEach((_handler,state)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state}})})};const push_actions=(table,kind,phase)=>{table.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"action",action:action_name(aid)}})})};const push_global=(handler,kind,phase)=>{if(handler!==void 0){entries.push({kind:kind,phase:phase,target:{scope:"global"}})}};const push_boundary=(table,enterKind,exitKind,target_of)=>{table.forEach((bh,subject)=>{if(bh.onEnter!==void 0){entries.push({kind:enterKind,phase:"post",target:target_of(subject)})}if(bh.onExit!==void 0){entries.push({kind:exitKind,phase:"post",target:target_of(subject)})}})};push_edges(this._hooks,"hook","pre");push_named(this._named_hooks,"named","pre");push_states(this._entry_hooks,"entry","pre");push_states(this._exit_hooks,"exit","pre");push_states_by_name(this._after_hooks,"after","pre");push_actions(this._global_action_hooks,"global action","pre");push_global(this._any_action_hook,"any action","pre");push_global(this._standard_transition_hook,"standard transition","pre");push_global(this._main_transition_hook,"main transition","pre");push_global(this._forced_transition_hook,"forced transition","pre");push_global(this._any_transition_hook,"any transition","pre");push_global(this._after_any_hook,"after any","pre");push_global(this._pre_everything_hook,"pre everything","pre");push_global(this._everything_hook,"everything","pre");push_edges(this._post_hooks,"post hook","post");push_named(this._post_named_hooks,"post named","post");push_states(this._post_entry_hooks,"post entry","post");push_states(this._post_exit_hooks,"post exit","post");push_actions(this._post_global_action_hooks,"post global action","post");push_global(this._post_any_action_hook,"post any action","post");push_global(this._post_standard_transition_hook,"post standard transition","post");push_global(this._post_main_transition_hook,"post main transition","post");push_global(this._post_forced_transition_hook,"post forced transition","post");push_global(this._post_any_transition_hook,"post any transition","post");push_global(this._pre_post_everything_hook,"pre post everything","post");push_global(this._post_everything_hook,"post everything","post");push_boundary(this._group_hooks,"group enter","group exit",group=>({scope:"group",group:group}));push_boundary(this._state_hooks,"state enter","state exit",state=>({scope:"state",state:state}));return entries}static _entry_touches_state(entry,state){const t=entry.target;if(t.scope==="state"){return t.state===state}if(t.scope==="edge"){return t.from===state||t.to===state}return false}static _entry_matches_edge(entry,from2,to,action){const t=entry.target;if(t.scope!=="edge"){return false}if(t.from!==from2||t.to!==to){return false}if(action!==void 0){return t.action===action}return true}static _entry_matches_action(entry,action){const t=entry.target;if(t.scope==="action"){return t.action===action}if(t.scope==="edge"){return t.action===action}return false}static _entry_matches_group(entry,group){const t=entry.target;if(t.scope==="group"){return t.group===group}return false}hooks_on(query){const registry=this.hook_registry();if(typeof query==="string"){return registry.filter(e=>_Machine._entry_touches_state(e,query))}if("from"in query){return registry.filter(e=>_Machine._entry_matches_edge(e,query.from,query.to,query.action))}if("group"in query){return registry.filter(e=>_Machine._entry_matches_group(e,query.group))}return registry.filter(e=>_Machine._entry_matches_action(e,query.action))}has_hook(query,phase){const matches=this.hooks_on(query);if(phase===void 0){return matches.length>0}return matches.some(e=>e.phase===phase)}state_has_hooks(state){if(!this._has_hooks&&!this._has_post_hooks&&this._state_hooks.size===0&&this._group_hooks.size===0){return false}return this.hook_registry().some(e=>_Machine._entry_touches_state(e,state))}resolve_state_config(state){if(this.state()===state){const acc=__privateMethod(this,_Machine_instances,compose_state_config_fn).call(this,state,true);return merge_state_config(acc,this._active_state_style)}const cached=this._static_state_config_cache.get(state);if(cached!==void 0){return cached}const resolved=__privateMethod(this,_Machine_instances,compose_state_config_fn).call(this,state,false);this._static_state_config_cache.set(state,resolved);return resolved}style_for(state){return this.resolve_state_config(state)}do(actionName,newData){return this.transition_impl(actionName,newData,false,true,arguments.length>=2)}transition(newState,newData){return this.transition_impl(newState,newData,false,false,arguments.length>=2)}go(newState,newData){return this.transition_impl(newState,newData,false,false,arguments.length>=2)}force_transition(newState,newData){return this.transition_impl(newState,newData,true,false,arguments.length>=2)}current_action_for(action){const action_id=this._action_interner.id_of(action);return action_id===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(action_id,this._state_id))}current_action_edge_for(action){const idx=this.current_action_for(action);if(idx===void 0||idx===null){throw new JssmError(this,`No such action ${JSON.stringify(action)}`)}return __privateGet(this,_edges)[idx]}valid_action(action,_newData){return this.current_action_for(action)!==void 0}valid_transition(newState,_newData){const transition_for=this.lookup_transition_for(this.state(),newState);if(!transition_for){return false}if(transition_for.forced_only){return false}return true}valid_force_transition(newState,_newData){return this.lookup_transition_for(this.state(),newState)!==void 0}instance_name(){return this._instance_name}get creation_date(){return new Date(Math.floor(this.creation_timestamp))}get creation_timestamp(){return this._created}get create_start_time(){return this._create_started}set_state_timeout(next_state,after_time){if(this._timeout_handle!==void 0){throw new JssmError(this,`Asked to set a state timeout to ${next_state}:${after_time}, but already timing out to ${this._timeout_target}:${this._timeout_target_time}`)}this._timeout_handle=this._timeout_source(()=>{const from_state=this.state();this.clear_state_timeout();if(this._has_after_hooks){const ah=this._after_hooks.get(from_state);if(ah!==void 0){ah({data:this._data,next_data:this._data})}if(this._after_any_hook!==void 0){this._after_any_hook({data:this._data,next_data:this._data})}}__privateMethod(this,_Machine_instances,fire_fn).call(this,"timeout",{from:from_state,to:next_state,after_time:after_time});this.go(next_state)},after_time);this._timeout_target=next_state;this._timeout_target_time=after_time}clear_state_timeout(){if(this._timeout_handle===void 0){return}this._clear_timeout_source(this._timeout_handle);this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0}state_timeout_for(which_state){return this._after_mapping.get(which_state)}current_state_timeout(){return this._timeout_target===void 0?void 0:[this._timeout_target,this._timeout_target_time]}sm(template_strings,...remainder){return sm(template_strings,...remainder)}};_states=new WeakMap;_edges=new WeakMap;_edge_map=new WeakMap;_outbound_edge_ids=new WeakMap;_named_transitions=new WeakMap;_actions=new WeakMap;_reverse_actions=new WeakMap;_reverse_action_targets=new WeakMap;_Machine_instances=new WeakSet;unsubscribe_entry_fn=function(set,entry){if(set.delete(entry)){this._event_listener_count--}};subscribe_fn=function(name,filterOrFn,maybeFn,once){let filter;let handler;if(typeof filterOrFn==="function"){filter=void 0;handler=filterOrFn}else{filter=filterOrFn;handler=maybeFn}if(typeof handler!=="function"){throw new JssmError(this,`event handler for "${name}" must be a function`)}let set=this._event_handlers.get(name);if(set===void 0){set=new Set;this._event_handlers.set(name,set)}const entry={handler:handler,filter:filter,once:once};set.add(entry);this._event_listener_count++;return()=>{__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry)}};fire_one_fn=function(entry,set,name,detail){if(entry.filter!==void 0){for(const[k,v]of Object.entries(entry.filter)){if(v!==detail[k]){return}}}if(entry.once){__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry)}try{entry.handler(detail)}catch(error){if(name==="error"||this._firing_error){console.error(error)}else{this._firing_error=true;try{__privateMethod(this,_Machine_instances,fire_fn).call(this,"error",{error:error,source_event:name,source_detail:detail,handler:entry.handler})}finally{this._firing_error=false}}}};has_subscribers_fn=function(name){const set=this._event_handlers.get(name);return set!==void 0&&set.size>0};fire_fn=function(name,detail){const set=this._event_handlers.get(name);if(set===void 0||set.size===0){return}if(set.size===1){const only=set.values().next().value;__privateMethod(this,_Machine_instances,fire_one_fn).call(this,only,set,name,detail);return}const entries=[...set];for(const entry of entries){__privateMethod(this,_Machine_instances,fire_one_fn).call(this,entry,set,name,detail)}};validate_hook_description_fn=function(HookDesc){const required=hook_required_fields[HookDesc.kind];if(required===void 0){throw new JssmError(this,`unknown hook kind ${JSON.stringify(HookDesc.kind)}`)}if(typeof HookDesc.handler!=="function"){throw new JssmError(this,`${HookDesc.kind} hook requires a handler function`)}for(const field of hook_spatial_fields){const needed=required.includes(field);const value=HookDesc[field];if(needed&&(typeof value!=="string"||value==="")){throw new JssmError(this,`${HookDesc.kind} hook requires '${field}' to be a non-empty string`)}if(!needed&&value!==void 0){throw new JssmError(this,`${HookDesc.kind} hook does not take '${field}'`)}}};fire_hook_rejection_fn=function(hook_name,fromState,newState,fromAction,oldData,newData,wasForced){__privateMethod(this,_Machine_instances,fire_fn).call(this,"rejection",{from:fromState,to:newState,action:fromAction,data:oldData,next_data:newData,reason:"hook",hook_name:hook_name,forced:wasForced})};fire_boundary_actions_fn=function(prev_state,next_state){if(prev_state===next_state){return}if(this._group_hooks.size===0&&this._state_hooks.size===0){return}if(this._boundary_depth>=this._boundary_depth_limit){throw new JssmError(this,`boundary-hook action cascade exceeded depth limit (${this._boundary_depth_limit}) crossing from ${JSON.stringify(prev_state)} to ${JSON.stringify(next_state)} (possible infinite loop)`)}const prev_groups=this._state_to_groups.get(prev_state)??empty_string_set;const next_groups=this._state_to_groups.get(next_state)??empty_string_set;const labels=[];for(const group of prev_groups){if(next_groups.has(group)){continue}const label=this._group_hooks.get(group)?.onExit;if(label!==void 0){labels.push(label)}}const prev_state_exit=this._state_hooks.get(prev_state)?.onExit;if(prev_state_exit!==void 0){labels.push(prev_state_exit)}for(const group of next_groups){if(prev_groups.has(group)){continue}const label=this._group_hooks.get(group)?.onEnter;if(label!==void 0){labels.push(label)}}const next_state_enter=this._state_hooks.get(next_state)?.onEnter;if(next_state_enter!==void 0){labels.push(next_state_enter)}if(labels.length===0){return}this._boundary_depth+=1;try{for(const label of labels){this.action(label)}}finally{this._boundary_depth-=1}};resolved_themes_fn=function(){const themes=[];for(const th of this._themes){const theme_impl=theme_mapping.get(th);if(theme_impl!==void 0){themes.push(theme_impl)}}return themes.reverse()};individual_state_config_fn=function(state){const decl=this._state_declarations.get(state);return{color:decl?.color,textColor:decl?.textColor,borderColor:decl?.borderColor,backgroundColor:decl?.backgroundColor,lineStyle:decl?.lineStyle,corners:decl?.corners,shape:decl?.shape,image:decl?.image,url:decl?.url}};groups_by_depth_fn=function(state){const containing=[...this.groupsOf(state)];if(containing.length<2){return containing}return containing.sort((ga,gb)=>{const da=membership_distance(this._group_registry,state,ga),db=membership_distance(this._group_registry,state,gb);if(da!==db){return db-da}return this._group_order.indexOf(ga)-this._group_order.indexOf(gb)})};compose_state_config_fn=function(state,active){const themes=__privateMethod(this,_Machine_instances,resolved_themes_fn).call(this);let acc={};acc=merge_state_config(acc,base_theme.state);for(const theme of themes){if(theme.state){acc=merge_state_config(acc,theme.state)}}acc=merge_state_config(acc,this._state_style);if(this.state_has_hooks(state)){acc=merge_state_config(acc,base_theme.hooked);for(const theme of themes){if(theme.hooked){acc=merge_state_config(acc,theme.hooked)}}acc=merge_state_config(acc,this._hooked_state_style)}if(this.state_is_terminal(state)){acc=merge_state_config(acc,base_theme.terminal);for(const theme of themes){if(theme.terminal){acc=merge_state_config(acc,theme.terminal)}}acc=merge_state_config(acc,this._terminal_state_style)}if(this.is_start_state(state)){acc=merge_state_config(acc,base_theme.start);for(const theme of themes){if(theme.start){acc=merge_state_config(acc,theme.start)}}acc=merge_state_config(acc,this._start_state_style)}if(this.is_end_state(state)){acc=merge_state_config(acc,base_theme.end);for(const theme of themes){if(theme.end){acc=merge_state_config(acc,theme.end)}}acc=merge_state_config(acc,this._end_state_style)}if(active){acc=merge_state_config(acc,base_theme.active);for(const theme of themes){if(theme.active){acc=merge_state_config(acc,theme.active)}}}for(const group_name of __privateMethod(this,_Machine_instances,groups_by_depth_fn).call(this,state)){const group_cfg=this._group_metadata.get(group_name);if(group_cfg!==void 0){acc=merge_state_config(acc,group_cfg)}}acc=merge_state_config(acc,__privateMethod(this,_Machine_instances,individual_state_config_fn).call(this,state));return acc};let Machine=_Machine;function sm(template_strings,...remainder){return new Machine(make(template_strings.reduce((acc,val,idx)=>`${acc}${remainder[idx-1]}${val}`)))}function is_hook_complex_result(hr){return hr!==null&&typeof hr==="object"&&typeof hr.pass==="boolean"}function _update_hook_fields(hook_args,res){if(res===HOOK_PASSED){return false}if(Object.prototype.hasOwnProperty.call(res,"data")){hook_args.data=res.data;hook_args.next_data=res.next_data;return true}return false}const HOOK_PASSED=Object.freeze({pass:true});const HOOK_REJECTED=Object.freeze({pass:false});function abstract_hook_step(maybe_hook,hook_args){if(maybe_hook===void 0){return HOOK_PASSED}const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${String(result)}`)}function abstract_everything_hook_step(maybe_hook,hook_args){if(maybe_hook===void 0){return HOOK_PASSED}const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${String(result)}`)}const default_viz_colors={graph_bg_color:"#eeeeee",fill_final:"#ddddff",fill_terminal:"#ffdddd",fill_complete:"#ddffdd",legal_1:"#888888",legal_2:"#777777",legal_solo:"#777777",legal_final_1:"#7777aa",legal_final_2:"#666699",legal_final_solo:"#666699",legal_terminal_1:"#aa7777",legal_terminal_2:"#996666",legal_terminal_solo:"#996666",legal_complete_1:"#77aa77",legal_complete_2:"#669966",legal_complete_solo:"#669966",main_1:"#444444",main_2:"#333333",main_solo:"#333333",main_final_1:"#333366",main_final_2:"#222255",main_final_solo:"#222255",main_terminal_1:"#663333",main_terminal_2:"#552222",main_terminal_solo:"#552222",main_complete_1:"#336633",main_complete_2:"#225522",main_complete_solo:"#225522",forced_1:"#cccccc",forced_2:"#bbbbbb",forced_solo:"#bbbbbb",forced_final_1:"#bbbbee",forced_final_2:"#aaaadd",forced_final_solo:"#aaaadd",forced_terminal_1:"#eebbbb",forced_terminal_2:"#ddaaaa",forced_terminal_solo:"#ddaaaa",forced_complete_1:"#bbeebb",forced_complete_2:"#aaddaa",forced_complete_solo:"#aaddaa",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"};let viz_instance=null;async function get_viz(){if(viz_instance===null){const mod=await import("@viz-js/viz");viz_instance=await mod.instance()}return viz_instance}function vc(col){return default_viz_colors[col]??""}function doublequote(txt){return txt.replace(/"/g,String.raw`\"`)}const SAFE_URL_SCHEMES=new Set(["http","https","mailto","ftp","ftps","tel"]);function render_safe_url(raw){if(!raw){return""}const stripped=raw.replace(/[\u{0}-\u{20}]+/gu,"");const scheme_match=/^([a-z][a-z0-9+.-]*):/i.exec(stripped);if(scheme_match){const scheme=scheme_match[1].toLowerCase();if(!SAFE_URL_SCHEMES.has(scheme)){console.warn(`jssm-viz: dropping state url with unsafe scheme "${scheme}:"`);return""}}return raw}function undoublequote(txt){return txt.replace(/\\"/g,'"')}function slug_for(state){return state.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function slug_states(states){const used=new Set;const out=new Map;for(const[i,s]of states.entries()){const base=slug_for(s)||`node-${i+1}`;let candidate=base;let n=2;while(used.has(candidate)){candidate=`${base}-${n}`;n+=1}used.add(candidate);out.set(s,candidate)}return out}function node_of(state,state_index){if(Array.isArray(state_index)){return`n${state_index.indexOf(state)}`}const v=state_index.get(state);if(typeof v==="string"){return`"${v}"`}return`n${v}`}function compose_style_string(style){if(style.corners===void 0&&style.lineStyle===void 0){return""}const corners_map={rounded:"rounded",lined:"diagonals",regular:"regular"};const lines_map={dashed:"dashed",dotted:"dotted",solid:"solid"};const corners=corners_map[style.corners??"regular"];const lines=lines_map[style.lineStyle??"solid"];return`${corners},${lines},filled`}function flow_direction_to_rankdir(flow_direction){switch(flow_direction){case"up":{return"rankdir=BT;"}case"right":{return"rankdir=LR;"}case"down":{return"rankdir=TB;"}case"left":{return"rankdir=RL;"}default:{throw new JssmError(void 0,`unknown flow direction '${flow_direction}'`)}}}function edge_attr_for(key,value){switch(key){case"color":case"graph_default_edge_color":{return`color="${doublequote(value)}"`}case"text-color":{return`fontcolor="${doublequote(value)}"`}case"line-style":{return`style="${doublequote(value)}"`}default:{return void 0}}}function edge_defaults_body(config){if(!config){return""}return config.map(item=>edge_attr_for(item.key,item.value)).filter(a=>a!==void 0).join(" ")}function graph_attr_for(key,value){switch(key){case"color":{return`color="${doublequote(value)}"`}case"text-color":{return`fontcolor="${doublequote(value)}"`}default:{return void 0}}}function graph_bg_color_from_config(config,fallback){if(!config){return fallback}const item=config.find(i=>i.key==="background-color");return item?item.value:fallback}function graph_attrs_body(config){if(!config){return""}return config.map(item=>graph_attr_for(item.key,item.value)).filter(a=>a!==void 0).map(a=>`${a};`).join("\n")}function dot_template(rank_dir,graph_bg_color,nodes,edges,arranges,preamble="",footer="",edge_defaults="",extra_graph_attrs=""){return`digraph G {\n${preamble}\n\n${rank_dir}\nfontname="Open Sans";\nstyle=filled;\nbgcolor="${graph_bg_color}";\n${extra_graph_attrs}\nnode [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="Times New Roman"];\nedge [fontsize=6; fontname="Open Sans"; fontcolor="#0066bb"];\n${edge_defaults?`edge [ ${edge_defaults} ];\n`:""}\n${nodes}\n\n${edges}\n\n${arranges}\n\n${footer}\n}`}function classify_states(u_jssm,l_states){const kinds=new Map;for(const s of l_states){const is_complete=u_jssm.state_is_complete(s);const is_terminal=u_jssm.state_is_terminal(s);if(is_complete&&is_terminal){kinds.set(s,"final")}else if(is_complete){kinds.set(s,"complete")}else if(is_terminal){kinds.set(s,"terminal")}else{kinds.set(s,"base")}}return kinds}function default_fillcolor_for(kind){switch(kind){case"final":{return vc("fill_final")}case"complete":{return vc("fill_complete")}case"terminal":{return vc("fill_terminal")}default:{return""}}}function state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips){const style=u_jssm.style_for(s);const fillcolor=style.backgroundColor||default_fillcolor_for(state_kinds.get(s)??"base");const label=hide_state_labels?"":label_with_chips(doublequote(u_jssm.display_text(s)),chips);const features=[["label",label],["shape",doublequote(style.shape||"")],["color",doublequote(style.borderColor||"")],["style",doublequote(compose_style_string(style))],["fontcolor",doublequote(style.textColor||"")],["image",doublequote(style.image||"")],["URL",doublequote(render_safe_url(style.url||""))],["fillcolor",doublequote(fillcolor)]].filter(r=>r[1]).map(r=>`${r[0]}="${r[1]}"`).join(" ");return`${node_of(s,state_index)} [${features}];`}function states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels=false,chips=new Map){return l_states.map(s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[])).join(" ")}function transition_label(tr){if(!tr){return void 0}const parts=[tr.action||"",tr.probability||""].filter(x=>x!=="");return parts.length>0?parts.join("\n"):void 0}function arrow_for(tr){if(!tr){return""}if(tr.forced_only){return"ediamond"}if(tr.main_path){return"normal;weight=5"}return"empty"}function line_color(kind,lkind,suffix){switch(kind){case"final":{return vc(`${lkind}_final${suffix}`)}case"complete":{return vc(`${lkind}_complete${suffix}`)}case"terminal":{return vc(`${lkind}_terminal${suffix}`)}default:{return vc(`${lkind}${suffix}`)}}}function text_color(kind,suffix){switch(kind){case"final":{return vc(`text_final${suffix}`)}case"complete":{return vc(`text_complete${suffix}`)}case"terminal":{return vc(`text_terminal${suffix}`)}default:{return""}}}function colored_label(tr,which,color){if(!tr){return""}const text=[tr.name,tr.probability,tr.action].filter(Boolean).join("<br/>");if(!text){return""}const body=color?`<<font color="${color}">${text}</font>>`:`"${text}"`;return`${which}=${body};`}function states_to_edges_string(u_jssm,l_states,state_index,state_kinds){const strike=new Set;const kind_of=s=>state_kinds.get(s)??"base";const farrange_members=new Set((u_jssm._farrange_declaration||[]).flat().map(String));const cf=(s,ex)=>farrange_members.has(s)||farrange_members.has(ex)?"constraint=false;":"";const solo_edge=(s,ex,tr)=>{const ex_kind=kind_of(ex);const tailColor=text_color(ex_kind,"_solo");const labelInline=colored_label(tr,"taillabel",tailColor);const label=transition_label(tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const arrowHead=arrow_for(tr);const edgeInline=`${maybeLabel}arrowhead=${arrowHead};color="${line_color(ex_kind,tr.kind,"_solo")}"`;return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`};return l_states.map(s=>u_jssm.list_exits(s).map(ex=>{if(strike.has(`${s}|${ex}`)){return""}const forward=u_jssm.edges_between(s,ex);if(forward.length===0){return""}const reverse=s===ex?[]:u_jssm.edges_between(ex,s);if(forward.length===1&&reverse.length===1){const edge_tr=forward[0];const pair_tr=reverse[0];const s_kind=kind_of(s);const ex_kind=kind_of(ex);const headColor=text_color(s_kind,"_1");const tailColor=text_color(ex_kind,"_2");const labelInline=colored_label(pair_tr,"headlabel",headColor)+colored_label(edge_tr,"taillabel",tailColor);const label=transition_label(edge_tr);const rlabel=transition_label(pair_tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const maybeRLabel=rlabel?`headlabel="${doublequote(rlabel)}";`:"";const arrowHead=arrow_for(edge_tr);const arrowTail=arrow_for(pair_tr);const edgeInline=`${maybeLabel}${maybeRLabel}arrowhead=${arrowHead};arrowtail=${arrowTail};dir=both;color="${line_color(ex_kind,edge_tr.kind,"_1")}:${line_color(s_kind,pair_tr.kind,"_2")}"`;strike.add(`${ex}|${s}`);return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`}return forward.map(tr=>solo_edge(s,ex,tr)).join(" ")}).join(" ")).join(" ")}function arranges_for(u_jssm,state_index){const group=(decls,rank)=>decls?decls.map(d=>`{rank=${rank}; ${d.map(di=>node_of(di,state_index)).join("; ")};};`).join("\n"):"";const order_chain=decls=>decls?decls.map(d=>d.slice(1).map((di,i)=>`${node_of(d[i],state_index)}->${node_of(di,state_index)} [style=invis];`).join(" ")).join("\n"):"";return group(u_jssm._arrange_declaration,"same")+group(u_jssm._arrange_start_declaration,"min")+group(u_jssm._arrange_end_declaration,"max")+group(u_jssm._oarrange_declaration,"same")+order_chain(u_jssm._oarrange_declaration)+group(u_jssm._farrange_declaration,"same")+order_chain(u_jssm._farrange_declaration)}function cluster_id_for(group,index){const body=group.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return body?`cluster_${body}_${index}`:`cluster_g${index}`}function label_with_chips(label,chips){if(chips.length===0){return label}return`${label} ${chips.map(c=>`[${doublequote(c)}]`).join(" ")}`}function group_parent_map(registry,order){const parent=new Map;for(const parent_name of order){const members=registry.get(parent_name)??[];for(const member of members){if(member.kind==="group"&&!parent.has(member.name)){parent.set(member.name,parent_name)}}}return parent}function group_ancestry(group,parents){const chain=new Set;let cursor=group;while(cursor!==void 0&&!chain.has(cursor)){chain.add(cursor);cursor=parents.get(cursor)}return chain}function primary_group_for(u_jssm,state,order){const containing=[...u_jssm.groupsOf(state)];if(containing.length===0){return void 0}return containing.reduce((best,g)=>{const d_best=membership_distance(u_jssm._group_registry,state,best);const d_g=membership_distance(u_jssm._group_registry,state,g);if(d_g!==d_best){return d_g<d_best?g:best}return order.indexOf(g)>order.indexOf(best)?g:best})}function plan_cluster_groups(u_jssm,l_states,order,parents){const placement=new Map;const chips=new Map;for(const s of l_states){const primary=primary_group_for(u_jssm,s,order);if(primary===void 0){continue}placement.set(s,primary);const represented=group_ancestry(primary,parents);const overflow=order.filter(g=>u_jssm.groupsOf(s).has(g)&&!represented.has(g));if(overflow.length>0){chips.set(s,overflow)}}return{placement:placement,chips:chips}}function groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels){const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);const{placement:placement,chips:chips}=plan_cluster_groups(u_jssm,l_states,order,parents);const spread_children_of=new Map;const is_spread_child=new Set;const note_spread_child=(p,member)=>{if(!(member.kind==="group"&&member.mode==="spread"&&parents.get(member.name)===p)){return}const bucket=spread_children_of.get(p)??[];bucket.push(member.name);spread_children_of.set(p,bucket);is_spread_child.add(member.name)};for(const p of order){const p_members=u_jssm._group_registry.get(p)??[];for(const member of p_members){note_spread_child(p,member)}}const children=new Map;for(const g of order){const p=parents.get(g);if(p!==void 0&&!is_spread_child.has(g)){const bucket=children.get(p)??[];bucket.push(g);children.set(p,bucket)}}const members=new Map;for(const s of l_states){const g=placement.get(s);if(g!==void 0){const bucket=members.get(g)??[];bucket.push(s);members.set(g,bucket)}}const node_line=s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[]);const render_cluster=(g,index)=>{const direct_nodes=(members.get(g)??[]).map(node_line).join(" ");const spread_nodes=(spread_children_of.get(g)??[]).flatMap(c=>members.get(c)??[]).map(node_line).join(" ");const inner_nodes=[direct_nodes,spread_nodes].filter(Boolean).join(" ");const sub=(children.get(g)??[]).map(c=>render_cluster(c,order.indexOf(c))).join(" ");const body=[inner_nodes,sub].filter(Boolean).join(" ");if(!body){return""}return`subgraph ${cluster_id_for(g,index)} { label="${doublequote(g)}"; ${body} };`};const roots=order.filter(g=>!parents.has(g)&&!is_spread_child.has(g));const clusters=roots.map(g=>render_cluster(g,order.indexOf(g))).filter(Boolean).join(" ");const ungrouped_nodes=l_states.filter(s=>!placement.has(s)).map(node_line).join(" ");return{clusters:clusters,ungrouped_nodes:ungrouped_nodes}}function chips_for_all_groups(u_jssm,l_states){const order=u_jssm.groups();const chips=new Map;for(const s of l_states){const groups=u_jssm.groupsOf(s);const mine=order.filter(g=>groups.has(g));if(mine.length>0){chips.set(s,mine)}}return chips}function node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode){if(mode==="off"||u_jssm.groups().length===0){return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels)}if(mode==="chips"){const chips=chips_for_all_groups(u_jssm,l_states);return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels,chips)}const{clusters:clusters,ungrouped_nodes:ungrouped_nodes}=groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_labels);return`${clusters}${clusters&&ungrouped_nodes?" ":""}${ungrouped_nodes}`}function chips_for_render_mode(u_jssm,l_states,mode){if(mode==="off"||u_jssm.groups().length===0){return new Map}if(mode==="chips"){return chips_for_all_groups(u_jssm,l_states)}const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);return plan_cluster_groups(u_jssm,l_states,order,parents).chips}function state_svg_label_texts(u_jssm,opts={}){const l_states=u_jssm.states();const mode=opts.render_groups??"cluster";const chips=chips_for_render_mode(u_jssm,l_states,mode);const out=new Map;for(const s of l_states){const dot_label=label_with_chips(doublequote(u_jssm.display_text(s)),chips.get(s)??[]);out.set(s,undoublequote(dot_label))}return out}function machine_to_dot(u_jssm,opts={}){const l_states=u_jssm.states();const state_index=slug_states(l_states);const state_kinds=classify_states(u_jssm,l_states);const hide_labels=opts.hide_state_labels;const mode=opts.render_groups??"cluster";const nodes=node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode);const edges=states_to_edges_string(u_jssm,l_states,state_index,state_kinds);const arranges=arranges_for(u_jssm,state_index);const rank_dir=flow_direction_to_rankdir(u_jssm.flow()||"down");const preamble=u_jssm.dot_preamble()||"";const footer=opts?.footer??"";const transition_config=u_jssm.default_transition_config();const graph_config=u_jssm.default_graph_config();const edge_defaults=edge_defaults_body(transition_config);const extra_graph_attrs=graph_attrs_body(graph_config);const bg_color=graph_bg_color_from_config(graph_config,vc("graph_bg_color"));return dot_template(rank_dir,bg_color,nodes,edges,arranges,preamble,footer,edge_defaults,extra_graph_attrs)}function fsl_to_dot(fsl,opts={}){return machine_to_dot(sm`${fsl}`,opts)}async function dot_to_svg(dot2,options){const viz=await get_viz();return viz.renderString(dot2,{format:"svg",...options})}async function fsl_to_svg_string(fsl,opts={}){return dot_to_svg(fsl_to_dot(fsl,opts),opts)}async function svgTarget(fsl){try{return await fsl_to_svg_string(fsl)}catch(error){throw new RenderError(`SVG render failed: ${error.message}`)}}function dotTarget(fsl){try{return Promise.resolve(fsl_to_dot(fsl))}catch(error){return Promise.reject(new RenderError(`DOT render failed: ${error.message}`))}}const escapeHtml=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");async function htmlTarget(fsl,opts={}){const title=escapeHtml(opts.title??"FSL Machine");let svg;try{svg=await svgTarget(fsl)}catch(error){throw error instanceof RenderError?error:new RenderError(`HTML render failed: ${String(error)}`)}return`<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>${title}</title>\n<style>\nbody { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin: 2rem auto; max-width: 80rem; padding: 0 1rem; color: #222; }\nh1 { font-size: 1.4rem; margin-bottom: 1.5rem; }\n.diagram { display: flex; justify-content: center; }\n.diagram svg { max-width: 100%; height: auto; }\n</style>\n</head>\n<body>\n<h1>${title}</h1>\n<div class="diagram">\n${svg}\n</div>\n</body>\n</html>\n`}const BUNDLED_FONT_BASE64=["AAEAAAASAQAABAAgR0RFRhgSGFIAAANEAAAApkdQT1NEdEx1AAABPAAAAB5HU1VC9vYgIQAAFNQAAAn2T1MvMnMmA9oAAAJYAAAAYFNUQVRe/0M5AAAB","+AAAAF5jbWFwbPZpegAAArgAAACMY3Z0ID0/LMgAAAPsAAAA/GZwZ23iGZ5aAAAezAAAD5RnYXNwABUAIwAAASwAAAAQZ2x5ZhGmxv4AAC5gAACA/Ghl","YWQfoeqVAAABwAAAADZoaGVhDcgGWwAAAZwAAAAkaG10eJDssVgAAA10AAAHYGxvY2HUKbTuAAAJwAAAA7JtYXhwBV8QpQAAAVwAAAAgbmFtZTCeW1EA","AAToAAACOHBvc3T/nwAyAAABfAAAACBwcmVwhf176QAAByAAAAKfAAEAAwAIAAoADQAH//8ADwABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAA","AAEAAAHYAJEAFgBfAAUAAgAQAC8AmgAAAr4PgwADAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAIjf2oAAAJpvuc/TQJnAABAAAA","AAAAAAAAAAAAAAAB2AABAAAAAwDFtwl03l8PPPUACwgAAAAAANnMwvcAAAAA4Xvbqfuc/dMJnAhiAAAABgACAAAAAAAAAAEAAQAIAAMAAAAUAAMAAAAs","AAJ3ZHRoAQEAAHdnaHQBAAABaXRhbAEcAAIAJgAWAAYAAwACAAIBHQAAAAAAAQAAAAMAAQACAQQBkAAAArwAAAABAAAAAgEaAGQAAAAAAAQEkAGQAAUA","AAUzBM0AAACaBTMEzQAAAs0AMgKSAAAAAAAAAAAAAAAAgAAABwAAAAIAAAAAAAAAAEdPT0cBwAAgIKwIjf2oAAAI/gKLAAABnwAAAAAESAW2AAAAIAAE","AAAAAgAAAAMAAAAUAAMAAQAAABQABAB4AAAAGgAQAAMACgB+ATABMQFhAWMBfyAUIBkgHSAiICYgrP//AAAAIACgATEBMgFiAWQgEyAYIBwgIiAmIKz/","///h/8AAS/+///n/v+E34TThMuEu4SvgqAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAwAAAAAAAAAAgAZACIAOwABAEIAWwABAGoAagAB","AHoAegABAIAAiwABAJAAlgABAJgAtgABALgA3AABAN4A3gABAOAA4AABAOIA4gABAOQA5wABAOkA6QABAOsA6wABAO0A7QABAO8A7wABAPIBQAABAVsB","XAABAWABYgABAWMBZwACAWoBawABAW0BegABAXwBfgABAYEBiAABAdcB1wABAAAGFAALBbYAFgW2ABYESAAUAAD/6gAA/+wAAP/q/hb//gW2ABUAAP/r","AAAAqACqAJYAlgCmAIIAggCrAJYAcQCfAI8AqQCmAMgAbQCKAJoAawCOAJsAegCkAI0BOgCEAJoAogCKAO4AhQB4AUgAhQB6AJoAngCqALMAlgBxAIUA","kACZAJ8ApACpALAAmwCmAKwAyABtAHoAggCKAJoAawCCAIoAkgCbAKAApgB6AKMAqwCvAIMAjACYAToAcQCAAIcAjwCbAKUAfQCGAIsAlQCbAKUArgDu","AHgAfgCIAJMBSAB5AIAAhgCLAJQAmgCnBsIDegUKABT/OAKeA6cAAAANAKIAAwABBAkAAACsAOoAAwABBAkAAQASANgAAwABBAkAAgAOAMoAAwABBAkA","AwA2AJQAAwABBAkABAAiAHIAAwABBAkABQAaAFgAAwABBAkABgAgADgAAwABBAkBAAAMACwAAwABBAkBAQAKACIAAwABBAkBBAAOAMoAAwABBAkBGgAM","ABYAAwABBAkBHAAMAAoAAwABBAkBHQAKAAAAUgBvAG0AYQBuAEkAdABhAGwAaQBjAE4AbwByAG0AYQBsAFcAaQBkAHQAaABXAGUAaQBnAGgAdABPAHAA","ZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwADMATwBwAGUAbgAgAFMAYQBuAHMAIABSAGUAZwB1AGwAYQBy","ADMALgAwADAAMwA7AEcATwBPAEcAOwBPAHAAZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATwBwAGUAbgAgAFMAYQBuAHMA","QwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAwACAAVABoAGUAIABPAHAAZQBuACAAUwBhAG4AcwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBz","ACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGcAbwBvAGcAbABlAGYAbwBuAHQAcwAvAG8AcABlAG4AcwBhAG4AcwApQP96","PHlVeVl2OE8fdTj/H3Q4qx9zNs0fcjb/H3E2qx9wN/8fbzX/H24zXh9tM/8fbDSrH2s0/x9qMv8faTBnH2gw/x9nMHIfZjBFH2Ux/x9kMc0fYzFPH2Iv","Xh9hL/8fYC5PH18uqx9eLv8fXS42H1wt/x9bLF4fWiz/H1ksZx9YK14fVyuTH1Yr/x9VKv8fVCleH1Mpqx9SKf8fUSiAH1Ao/x9PKIAfTif/H00m/x9M","Jf8fSyWAH0olQB9JJP8fSCP/H0ciqx9GIv8fRSJeH0Qhkx9DIf8fQh/NH0Ef/x9AH6sfPyD/Hz4gZx89Hv8fPB3/Hzscch86HP8fORxPHzdAwjZeHzQz","Tx8xMCsfKShPHygVGxlcJxstHyYlQB8lDhoZXCQaMR8jGR8fIhn/HyEfZx8gH0AfHxwYFlweGBwfHRf/HxwW/x8bMhkfWxg4FjdbGjIZH1sXOBY3WxUZ","Phb/WhMxElURMRBVElkQWQ0yDFUFMgRVDFkEWQ8EfwTvBAMP/w5VCzIKVQcyBlUBXwBVDlkKWQZZzwbvBgIAWW8AfwCvAO8ABBAAAQkyCFUDMgJVCFkC","WQ8CfwLvAgMQAANAQAUBuAGQsFQrS7gH/1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQAdQkuwkFNYsgMAAB1CWbECAkNRWLEEA45Z","QnMAKwArKytzcwArcwArACsAKysrKytzACsAKysrACsAKysrASsBKwErASsBKwErACsrASsrKwErKwArACsrKwErKwErACsrASsrKwArKysrKysrKysB","KysrKwArKysrKysrKysrKysBKysrKwArKysrKysrKysrASsrKysrKysrACsrKysrKysrKysrKwArKxgAAAAAAAAAACkARwCfAQUBZQHYAewCEwI9Am4C","jQKqArsC1gLrAysDUQONA+AEGQRgBLgE1AU8BZUFwgXyBhAGKgZIBpUHIQdWB6EH3QgOCDMIUwiYCLwIzgjzCR8JNQltCZsJ3QoQCl8KmgrvCwoLNQtf","C7ML3gwBDCQMPwxUDG4MigycDL4NDw1bDZIN3Q4dDlMO1Q8NDzMPag+gD7IQARAyEG0QvhELETwRiRG/EfMSGxJuEpsS2hL9E0UTVhOdE9YT1hP9FD4U","hxT8FTsVVBXGFfQWZRayFuoXARcJF3sXjRfBF+wYIRhrGI0YzBj2GP8ZLRlTGYMZtxoVGnIa9BtAG1IbZBt2G4gbmxunG+Mb7xwBHBMcJRw4HEocXBxu","HIEcxBzWHOgc+h0MHR4dMR1kHdQd5h34HgoeHR4vHmgexx7ZHuse/R8OHyAfNB+3H8Mf1R/nH/kgCyAcIC0gPyBSILUgxyDZIOsg/SEPISEhWCHAIdIh","5CH2IggiGiJrIn0ijyKhIrMixSLRIt0i7yMBIxMjJSM3I0kjWyNtI38jkiOaI/AkAiQUJCYkOCRKJFwkaCTOJOAk8iUEJRYlKCU7JU0lYCVsJX0ljyWi","JdomHyYyJkQmVyZoJnsmjCaXJqImtSbBJs0m3ybxJv0nCCc7J00nXydqJ3YniSebJ6cnsyfdKAIoFCgmKDIoPihQKGIobiixKPkpCykdKS8pQSlUKWcp","wCowKkIqVCpgKmwqfiqPKqEqsyrFKtYq4iruKwArESscKycrOStFK3MrtCvGK9gr6iv8LA4sICw0LEgsWyxuLL8syyzdLO8tAS0SLSUtNy1JLVstbS1/","LZAtti3BLcwt+S4oLjsuYi5+Lqsu1S8ML0UvVi9nL4UvpC/WMAkwKTA5ME4wfTDhMQExIDFTMZMxrjIHMhMyHzJMMpsy6TMxMzkzhTORM50zqTO5M8kz","3DPvM/s0BzQZNCU0UTR3NIk0mzStNMA00jTkNPY1AjUNNR81KzU9NU81dDWFNZc1qzYiNi42OTaQNu43ADcSNyQ3VjeGN5c34zgSOFk4ozjXOOA46Tjy","OPs5BDkNORY5HzkoOTE5cTmYOdM6JDpbOqE6+DsSO3k70DvZO+I76zv0O/08BjwPPBg8ITwqPF88hDy/PRA9Rz2NPec+Aj5rPsE/Dz8XPx8/Jz8vPzc/","Pz9HP08/Vz9fP2g/cT96P4M/jD+VP54/pz+wP7k/2T/iQANADEAqQENATEBVQHNAfgAABM0AwQIUAAACHQCWAzAAhwUrADQEkwB/Bp0AZgXUAG8BwQCH","AlwAUgJcAD4EaABZBJMAZwISAFMCkwBSAhoAlgLvABUEkwBnBJMAuQSTAGUEkwBcBJMALASTAIQEkwB0BJMAXQSTAGcEkwBnAhoAlgIaAEEEkwBnBJMA","cwSTAGcDdAAfBywAdgUPAAAFKwDIBQoAfQXOAMgEcgDIBCEAyAXRAH0F5gDIAjwAyAIm/1wE5gDIBC0AyAcyAMgGBgDIBjkAfQTQAMgGOQB9BPAAyARj","AGkEaAASBdUAuQTFAAAHYwAeBJ8ABgR5AAAElABOAp4ApgLvABUCngAzBJMAUAOB//wCOABSBHIAXgTlAK8D1QByBOUAcgR+AHICsQAeBFgAHwToAK8C","BQCgAgX/kAQ0AK8CBQCvB2gArwToAK8E0AByBOUArwTlAHEDRQCvA9AAZwLaACAE6ACjA/8AAAYzABgEMAAnBAIAAgPAAFADAAA5BGUB7AMAAEMEkwBn","AhQAAAIdAJYEkwC5BJMARASTAHkEkwAfBGUB7AQcAHoEowE2BqgAZALTAEQD9wBPBJMAZwKTAFIGqABkBAD/+gNtAHUEkwBnAsgAMgLIACUCOABSBPIA","rwU9AHoCGgCWAcYAHALIAEwC/QBDA/cATQXsAEIGJQAsBjoAIQN0ADUFDwAABQ8AAAUPAAAFDwAABQ8AAAUPAAAG8v/+BQoAfQRyAMgEcgDIBHIAyARy","AMgCPP/0AjwAtAI8/84CPAAGBc4AOgYGAMgGOQB9BjkAfQY5AH0GOQB9BjkAfQSTAIUGOQB9BdUAuQXVALkF1QC5BdUAuQR5AAAE0ADIBPsArwRyAF4E","cgBeBHIAXgRyAF4EcgBeBHIAXgbmAF4D1QByBH4AcgR+AHIEfgByBH4AcgIF//gCBQCPAgX/tQIF/+cEzABxBOgArwTQAHIE0AByBNAAcgTQAHIE0ABy","BJMAZwTQAHIE6ACjBOgAowToAKME6ACjBAIAAgTlAK8EAgACBQ8AAARyAF4FDwAABHIAXgUPAAAEcgBeBQoAfQPVAHIFCgB9A9UAcgUKAH0D1QByBQoA","fQPVAHIFzgDIBOUAcgXOADoE6AByBHIAyAR+AHIEcgDIBH4AcgRyAMgEfgByBHIAyAR+AHIEcgDIBH4AcgXRAH0EWAAfBdEAfQRYAB8F0QB9BFgAHwXR","AH0EWAAfBeYAyATo/7cF5gAABOgAFAI8/60CBf+JAjz/8wIF/9YCPP/nAgX/0wI8AFgCBQAxAjwAvQRiAMgECgCgAib/XAIF/5AE5gDIBDQArwQ0AK8E","LQCnAgUAjwQtAMgCBQCDBC0AyAIFAK8ELQDIAhcArwQtABoCBf/yBgYAyAToAK8GBgDIBOgArwYGAMgE6ACvBWkAAgYGAMgE6ACvBjkAfQTQAHIGOQB9","BNAAcgY5AH0E0AByB2YAfQeWAHAE8ADIA0UArwTwAMgDRQB9BPAAyANFAJUEYwBpA9AAZwRjAGkD0ABnBGMAaQPQAGcEYwBpA9AAZwRoABIC2gAgBGgA","EgLaACAEaAASAtoAIAXVALkE6ACjBdUAuQToAKMF1QC5BOgAowXVALkE6ACjBdUAuQToAKMF1QC5BOgAowdjAB4GMwAYBHkAAAQCAAIEeQAABJQATgPA","AFAElABOA8AAUASUAE4DwABQApUArwRjAGkD0ABnA0UAUgNFAFIC+wBSAxIAUgFsAFICYgBSAe8AUgOKAFIDdgBSBAAAUggAAFIBWwAbAVsAGgLKABsC","ygAaAwIAqwY5AJYBBv6EAzAAcgSTADQEAAGJBAABgQLIABUCyAA+AsgAOgLIADQEaAASAtoAIALIACkCyAApAsgAIwW8AMcGBgDIBakAugViAB4EtgAe","BLYAHgdmAB4HZgAeBC0AyAYGAMgFDwAABHIAyAI8AFgF1QC5AqoAVwNHADgCqgBMAqoAVwKqAAkCqgA6Aqr/3AKqACkCqgAmAqoAVwKqAFcCqgBXBM8A","VwNHADgCBQCvAgX/kATlAHICBQBBBOgArwRyAF4EfgByAgUAMQToAKME5QByBOUAcgTlAHIE5QByAzAAcgK7AHIBUQByBNEAcgMwAHIDLgByAnoAQwHb","ABUCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjBKoAcwN2ADMEagBPBIgAVwSaADAEiAB+BJAAcwQSABEEtAB6BJAAZgLIACkC","yABMAsgAMgLIACUCyAAVAsgAPgLIACkCyAA6AsgANALIACMErABwAyQAKgRQAFUEQwA7BIsALgR7AHkEmQB2BDgAIQSTAGcEmQBiBJMAZwRcAEgEXACX","BFwAXwRcAEsEXAAHBFwAYARcAFQEXABCBFwATARcAEYCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjAcsAUAHLAFABywA9AcsA","PQKtAEgCrQBIAq0ASAKtAEgEAAF0AgUAMwABAAAACgFKAlYABURGTFQBFGN5cmwBFGdyZWsBFGhlYnIBFGxhdG4AIAD4AAVDQVQgAMpNQUggAKBNT0wg","AHZOQVYgAExST00gACIAAP//ABIAAAABAAIAAwAEAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAgACgALAAwADQAOAA8A","EAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAcACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAYACgALAAwADQAOAA8AEAAR","ABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAUACgALAAwADQAOAA8AEAARABIAEwAUABUABAAAAAD//wARAAAAAQACAAMABAAKAAsADAANAA4ADwAQABEA","EgATABQAFQAWYWFsdAEEZG5vbQD+ZnJhYwD0bGlnYQDubG51bQDobG9jbADibG9jbADcbG9jbADWbG9jbADQbG9jbADKbnVtcgDEb251bQC+b3JkbgC4","cG51bQCyc2FsdACqc3MwMQCqc3MwMgCkc3MwMwCec3VicwCYc3VwcwCSdG51bQCMemVybwCGAAAAAQAZAAAAAQAWAAAAAQAKAAAAAQAJAAAAAQAbAAAA","AQAaAAAAAgAaABsAAAABABUAAAABABIAAAABABcAAAABAAsAAAABAAQAAAABAAIAAAABAAMAAAABAAUAAAABAAYAAAABABQAAAABABgAAAADAA0ADgAP","AAAAAQAMAAAAAgAAAAEAHAauBIwEWgQ4BDgEFgPUA7QDlAMqAtwCxAK2AqICxAJaAkwCTAIOAewB1AGOAUgBAgC+AKoAhAA6AAEAAAABAAgAAgAiAA4B","bgFvAXABcQFyAXMBdAF1AXYBdwF5AXoBewF4AAEADgAqACsAjACNAI4AjwDoAOoA7ADuAPAA8QDzAWwAAQAAAAEACAACABAABQGFAYYBhwGIAX4AAQAF","AEgA3QDfAOEA4wABAAAAAQAIAAEABgGoAAEAAQARAAQAAAABAAgAAQA2AAEACAAFACYAHgAYABIADAFlAAIATQFkAAIASgFjAAIARwFnAAMARwBNAWYA","AwBHAEoAAQABAEcAAQAAAAEACAACAC4AFAG6AbsBvAG9Ab4BvwHAAcEBwgHDAa8BsAGxAbIBswG0AbUBtgG3AbgAAgACABEAGgAAAZsBpAAKAAEAAAAB","AAgAAgAuABQAEQASABMAFAAVABYAFwAYABkAGgG6AbsBvAG9Ab4BvwHAAcEBwgHDAAIAAgGbAaQAAAGvAbgACgABAAAAAQAIAAIALgAUAZsBnAGdAZ4B","nwGgAaEBogGjAaQBrwGwAbEBsgGzAbQBtQG2AbcBuAACAAIAEQAaAAABugHDAAoAAQAAAAEACAABAAb/7AACAAEBrwG4AAAAAQAAAAEACAACAA4ABABq","AHoAagB6AAEABAAiADAAQgBQAAYAAAACACQACgADAAEAugABABIAAAABAAAAEwABAAIAMABQAAMAAQCgAAEAEgAAAAEAAAATAAEAAgAiAEIAAQAAAAEA","CAABAD7/7AAGAAAAAgAmAAoAAwABABIAAQAuAAAAAQAAABEAAgABAZEBmgAAAAMAAQAcAAEAEgAAAAEAAAAQAAIAAQGlAa4AAAABAAEBUgABAAAAAQAI","AAEABgFCAAEAAQAQAAEAAAABAAgAAQAUAYAAAQAAAAEACAABAAYBlAACAAEAEQAaAAAAAQAAAAEACAACACQADwHOAdAB0gFdAHkAcgBzAVcBWAFeAVkB","WgFfAdMBUwABAA8ACQAKAAwAEQASABMAFAAVABYAFwAYABkAGgAeAE8AAQAAAAEACAACADIAFgHPAdEB1AHEAcUBxgHHAcgByQHKAcsBzAHNAdUBiQGK","AYsBjAGNAY4BjwGQAAEAFgAJAAoADAARABIAEwAUABUAFgAXABgAGQAaAB4ASQBMAE0ATgBPAFEAVABVAAQAAAABAAgAAQASAAEACAABAAQA/gACAHcA","AQABAC0ABAAAAAEACAABABIAAQAIAAEABAD/AAIAdwABAAEATQAGAAAAAQAIAAEACgACACYAEgABAAIALQBNAAEABAAAAAIAdwABAE0AAQAAAAcAAQAE","AAAAAgB3AAEALQABAAAACAABAAAAAQAIAAIADgAEAWgBfwFpAYAAAQAEAPoA+wEEAQUAAQAAAAEACAACAA4ABAE/AUABIQEiAAEABAEdAR4BWwFcAAEA","AAABAAgAAgAWAAgBagGBAWsBggFsAYMBbQGEAAEACADEAMUA2ADZAO4A7wExATIAAwAAAAEACAABAGYAMAIUAg4CCAH4AeoB3AHOAcABsgGkAZYBiAF6","AXQBbgFoAWIBWgFUAU4BSAFCATwBNgEwASoBJAEeARgBEgEMAQYBAAD6APQA7gDoAOIA3ADWANAAygDEAL4AuACyAKwApgACAAoACQAKAAAADAAMAAIA","EQAaAAMAHgAeAA0ATwBPAA4A7gDvAA8BCQEJABEBmwGkABIBrwG4ABwBugHDACYAAgGkAbgAAgGjAbcAAgGiAbYAAgGhAbUAAgGgAbQAAgGfAbMAAgGe","AbIAAgGdAbEAAgGcAbAAAgGbAa8AAgGkAcMAAgGjAcIAAgGiAcEAAgGhAcAAAgGgAb8AAgGfAb4AAgGeAb0AAgGdAbwAAgGcAbsAAgGbAboAAgAaAbgA","AgAZAbcAAgAYAbYAAgAXAbUAAgAWAbQAAgAVAbMAAgAUAbIAAgATAbEAAgASAbAAAgARAa8AAwFgAWEBYgACAYMB1wACAWwBdwACAVMBjQACAdMB1QAG","AV8BmgGkAa4BwwHNAAYBWgGZAaMBrQHCAcwABgFZAZgBogGsAcEBywAGAV4BlwGhAasBwAHKAAYBWAGWAaABqgG/AckABgFXAZUBnwGpAb4ByAAGAHMB","lAGeAagBvQHHAAYAcgGTAZ0BpwG8AcYABgB5AZIBnAGmAbsBxQAHAV0BkQGbAaUBuQG6AcQAAgHSAdQAAgHQAdEAAgHOAc8AAQAAAAEACAACAHYAOAFS","AGoBbgFvAHoAagGFAYkBfAF9AYoBiwGMAHoBjgGPAZABcAFxAXIBcwFqAYEBawGCAYYBhwGIAX4BdAF1AXYBeQF6AXsBaAF/AWkBgAE/AUABbQGEASEB","IgF4AZEBkgGTAZQBlQGWAZcBmAGZAZoAAQA4ABAAIgAqACsAMABCAEgASQBKAEsATABNAE4AUABRAFQAVQCMAI0AjgCPAMQAxQDYANkA3QDfAOEA4wDo","AOoA7ADwAPEA8wD6APsBBAEFAR0BHgExATIBWwFcAWwBpQGmAacBqAGpAaoBqwGsAa0BrgAAQEqZmJeWh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25t","bGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNRUE9OTUxLSklIR0YoHxAKCSwBsQsKQyNDZQotLACxCgtDI0MLLSwBsAZDsAdDZQotLLBPKyCwQFFYIUtS","WEVEGyEhWRsjIbBAsAQlRbAEJUVhZIpjUlhFRBshIVlZLSwAsAdDsAZDCy0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBsh","IVktLEtUWDgbISFZLSywAkNUWLBGKxshISEhWS0ssAJDVFiwRysbISEhWS0ssAJDVFiwSCsbISEhIVktLLACQ1RYsEkrGyEhIVktLCMgsABQiopksQAD","JVRYsEAbsQEDJVRYsAVDi1mwTytZI7BiKyMhI1hlWS0ssQgADCFUYEMtLLEMAAwhVGBDLSwBIEewAkMguBAAYrgQAGNXI7gBAGK4EABjV1pYsCBgZllI","LSyxAAIlsAIlsAIlU7gANSN4sAIlsAIlYLAgYyAgsAYlI2JQWIohsAFgIxsgILAGJSNiUlgjIbABYRuKISMhIFlZuP/BHGCwIGMjIS0ssQIAQrEjAYhR","sUABiFNaWLgQALAgiFRYsgIBAkNgQlmxJAGIUVi4IACwQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuEAAsICIVFiyAgQCQ2BC","WbhAALCAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZ","sSgBiFFYuUAACABjuBAAiFRYuQACAQCwAkNgQllZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAI","uAGAsQlAG7gBALACQ1JYsgVACLoBgAAJAUAbuAGAsAJDUliyBUAIuAIAsQlAG7IFQAi6AQAACQEAWVlZuEAAsICIVblAAAIAY7gEAIhVWlizDAANARuz","DAANAVlZWUJCQkJCLSxFsQJOKyOwTysgsEBRWCFLUViwAiVFsQFOK2BZGyNLUViwAyVFIGSKY7BAU1ixAk4rYBshWRshWVlELSwgsABQIFgjZRsjWbEU","FIpwRbEQEENLikNRWliwQBuwTytZI7FhBiZgK4pYsAVDi1kjWGVZIxA6LSywAyVJYyNGYLBPKyOwBCWwBCVJsAMlY1YgYLBiYCuwAyUgEEaKRmCwIGNh","Oi0ssAAWsQIDJbEBBCUBPgA+sQECBgywCiNlQrALI0KxAgMlsQEEJQE/AD+xAQIGDLAGI2VCsAcjQrABFrEAAkNUWEUjRSAYaYpjI2IgILBAUFhnG2ZZ","YbAgY7BAI2GwBCNCG7EEAEIhIVkYAS0sIEWxAE4rRC0sS1GxQE8rUFtYIEWxAU4rIIqKRCCxQAQmYWNhsQFOK0QhGyMhikWxAU4rIIojRERZLSxLUbFA","TytQW1hFIIqwQGFjYBsjIUVZsQFOK0QtLCNFIIpFI2EgZLBAUbAEJSCwAFMjsEBRWlqxQE8rVFpYigxkI2QjU1ixQECKYSBjYRsgY1kbilljsQJOK2BE","LSwBLSwALSwFsQsKQyNDZQotLLEKC0MjQwsCLSywAiVjZrACJbggAGJgI2ItLLACJWOwIGBmsAIluCAAYmAjYi0ssAIlY2ewAiW4IABiYCNiLSywAiVj","ZrAgYLACJbggAGJgI2ItLCNKsQJOKy0sI0qxAU4rLSwjikojRWSwAiVksAIlYWSwA0NSWCEgZFmxAk4rI7AAUFhlWS0sI4pKI0VksAIlZLACJWFksAND","UlghIGRZsQFOKyOwAFBYZVktLCCwAyVKsQJOK4oQOy0sILADJUqxAU4rihA7LSywAyWwAyWKsGcrihA7LSywAyWwAyWKsGgrihA7LSywAyVGsAMlRmCw","BCUusAQlsAQlsAQmILAAUFghsGobsGxZK7ADJUawAyVGYGGwgGIgiiAQIzojIBAjOi0ssAMlR7ADJUdgsAUlR7CAY2GwAiWwBiVJYyOwBSVKsIBjIFhi","GyFZsAQmRmCKRopGYLAgY2EtLLAEJrAEJbAEJbAEJrBuKyCKIBAjOiMgECM6LSwjILABVFghsAIlsQJOK7CAUCBgWSBgYCCwAVFYISEbILAFUVghIGZh","sEAjYbEAAyVQsAMlsAMlUFpYILADJWGKU1ghsABZGyFZG7AHVFggZmFlIyEbISGwAFlZWbECTistLLACJbAEJUqwAFNYsAAbioojirABWbAEJUYgZmEg","sAUmsAYmSbAFJrAFJrBwKyNhZbAgYCBmYbAgYWUtLLACJUYgiiCwAFBYIbECTisbRSMhWWFlsAIlEDstLLAEJiC4AgBiILgCAGOKI2EgsF1gK7AFJRGK","EoogOYpYuQBdEACwBCZjVmArIyEgECBGILECTisjYRsjISCKIBBJsQJOK1k7LSy5AF0QALAJJWNWYCuwBSWwBSWwBSawbSuxXQclYCuwBSWwBSWwBSWw","BSWwbyu5AF0QALAIJmNWYCsgsABSWLBQK7AFJbAFJbAHJbAHJbAFJbBxK7ACFziwAFKwAiWwAVJaWLAEJbAGJUmwAyWwBSVJYCCwQFJYIRuwAFJYILAC","VFiwBCWwBCWwByWwByVJsAIXOBuwBCWwBCWwBCWwBiVJsAIXOFlZWVlZISEhISEtLLkAXRAAsAslY1ZgK7AHJbAHJbAGJbAGJbAMJbAMJbAJJbAIJbBu","K7AEFziwByWwByWwByawbSuwBCWwBCWwBCawbSuwUCuwBiWwBiWwAyWwcSuwBSWwBSWwAyWwAhc4ILAGJbAGJbAFJbBxK2CwBiWwBiWwBCVlsAIXOLAC","JbACJWAgsEBTWCGwQGEjsEBhIxu4/8BQWLBAYCOwQGAjWVmwCCWwCCWwBCawAhc4sAUlsAUlirACFzggsABSWLAGJbAIJUmwAyWwBSVJYCCwQFJYIRuw","AFJYsAYlsAYlsAYlsAYlsAslsAslSbAEFziwBiWwBiWwBiWwBiWwCiWwCiWwByWwcSuwBBc4sAQlsAQlsAUlsAclsAUlsHErsAIXOBuwBCWwBCW4/8Cw","Ahc4WVlZISEhISEhISEtLLAEJbADJYewAyWwAyWKILAAUFghsGUbsGhZK2SwBCWwBCUGsAQlsAQlSSAgY7ADJSBjUbEAAyVUW1ghISMhBxsgY7ACJSBj","YSCwUyuKY7AFJbAFJYewBCWwBCZKsABQWGVZsAQmIAFGIwBGsAUmIAFGIwBGsAAWALAAI0gBsAAjSAAgsAEjSLACI0gBILABI0iwAiNII7ICAAEIIziy","AgABCSM4sQIBB7ABFlktLCMQDQyKYyOKY2BkuUAABABjUFiwADgbPFktLLAGJbAJJbAJJbAHJrB2KyOwAFRYBRsEWbAEJbAGJrB3K7AFJbAFJrAFJbAF","JrB2K7AAVFgFGwRZsHcrLSywByWwCiWwCiWwCCawdiuKsABUWAUbBFmwBSWwByawdyuwBiWwBiawBiWwBiawdisIsHcrLSywByWwCiWwCiWwCCawdiuK","igiwBCWwBiawdyuwBSWwBSawBSWwBSawdiuwAFRYBRsEWbB3Ky0ssAglsAslsAslsAkmsHYrsAQmsAQmCLAFJbAHJrB3K7AGJbAGJrAGJbAGJrB2Kwiw","dystLAOwAyWwAyVKsAQlsAMlSgKwBSWwBSZKsAUmsAUmSrAEJmOKimNhLSyxXQ4lYCuwDCYRsAUmErAKJTmwByU5sAolsAolsAklsHwrsABQsAslsAgl","sAolsHwrsABQVFiwByWwCyWHsAQlsAQlC7AKJRCwCSXBsAIlsAIlC7AHJRCwBiXBG7AHJbALJbALJbj//7B2K7AEJbAEJQuwByWwCiWwdyuwCiWwCCWw","CCW4//+wdiuwAiWwAiULsAolsAclsHcrWbAKJUawCiVGYLAIJUawCCVGYLAGJbAGJQuwDCWwDCWwDCYgsABQWCGwahuwbFkrsAQlsAQlC7AJJbAJJbAJ","JiCwAFBYIbBqG7BsWSsjsAolRrAKJUZgYbAgYyOwCCVGsAglRmBhsCBjsQEMJVRYBBsFWbAKJiAQsAMlOrAGJrAGJguwByYgEIo6sQEHJlRYBBsFWbAF","JiAQsAIlOoqKCyMgECM6LSwjsAFUWLkAAEAAG7hAALAAWYqwAVRYuQAAQAAbuEAAsABZsH0rLSyKiggNirABVFi5AABAABu4QACwAFmwfSstLAiwAVRY","uQAAQAAbuEAAsABZDbB9Ky0ssAQmsAQmCA2wBCawBCYIDbB9Ky0sIAFGIwBGsApDsAtDimMjYmEtLLAJK7AGJS6wBSV9xbAGJbAFJbAEJSCwAFBYIbBq","G7BsWSuwBSWwBCWwAyUgsABQWCGwahuwbFkrGLAIJbAHJbAGJbAKJbBvK7AGJbAFJbAEJiCwAFBYIbBmG7BoWSuwBSWwBCWwBCYgsABQWCGwZhuwaFkr","VFh9sAQlELADJcWwAiUQsAElxbAFJiGwBSYhG7AGJrAEJbADJbAIJrBvK1mxAAJDVFh9sAIlsIIrsAUlsIIrICBpYbAEQwEjYbBgYCBpYbAgYSCwCCaw","CCaKsAIXOIqKYSBpYWGwAhc4GyEhISFZGC0sS1KxAQJDU1pYIxAgATwAPBshIVktLCOwAiWwAiVTWCCwBCVYPBs5WbABYLj/6RxZISEhLSywAiVHsAIl","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","AAEHAEEBKQFvAAqzGQUCcgArzjAx//8AAAAABQ0HkAYmACIAAAEHAHQBwAFvAAqzGQUCcgArzjAx//8AAAAABQ0HjwYmACIAAAEHAUEA5wFvAAqzHwUC","cgArzjAx//8AAAAABQ0HTAYmACIAAAEHAUgAuwFvAAqzJAUCcgArzjAx//8AAAAABQ0HQQYmACIAAAEHAGgANAFvAAy0KBwFAnIAK87OMDH//wAAAAAF","DQcKBiYAIgAAAAcBRgFUAIIAAv/+AAAGgQW2AA8AEwArQBUTCQkQAwoNAw0DDQUGAnIOAQEFCHIAKzIRMysROTkvLxEzETMyETMwMWEhESEDIwEhFSER","IRUhESEBIREjBoH9BP4H3rACrwPU/a4CK/3VAlL7TQG3cwHQ/jAFtpb+J5T94wHRArf//wB9/hQEywXLBiYAJAAAAAcAeAIWAAD//wDIAAAD9geQBiYA","JgAAAQcAQQEVAW8ACrMSAgJyACvOMDH//wDIAAAD9geQBiYAJgAAAQcAdAGtAW8ACrMSAgJyACvOMDH//wDIAAAD9gePBiYAJgAAAQcBQQDTAW8ACrMS","AgJyACvOMDH//wDIAAAD9gdBBiYAJgAAAQcAaAAhAW8ADLQhFQICcgArzs4wMf////QAAAGJB5AGJgAqAAABBwBB/6IBbwAKswoBAnIAK84wMf//ALQA","AAJJB5AGJgAqAAABBwB0AGIBbwAKswoBAnIAK84wMf///84AAAJvB48GJgAqAAABBwFB/3wBbwAKswoBAnIAK84wMf//AAYAAAI7B0EGJgAqAAABBwBo","/tABbwAMtA0ZAQJyACvOzjAxAAIAOgAABVEFtgAOABwAH0APDBERCxQUCRAOAnIVCQhyACsyKzIROS8zMxEzMDFBMgQSFRQCBCMhESM1MxEFIxEhFSER","MyAAETQCJgKB3gFDr7T+qvT+gpubAZLpAXT+jMMBLwEuhP0FtqP+wev3/rWnAomVApiR/fmV/gkBKgEnxQEAfQD//wDIAAAFPwdMBiYALwAAAQcBSAE8","AW8ACrMUCgJyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAQQHCAW8ACrMnDgNyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAdAJYAW8ACrMoDgNyACvOMDH/","/wB9/+wFvAePBiYAMAAAAQcBQQF/AW8ACrMtDgNyACvOMDH//wB9/+wFvAdMBiYAMAAAAQcBSAFSAW8ACrMyDgNyACvOMDH//wB9/+wFvAdBBiYAMAAA","AQcAaADMAW8ADLQ2Kg4DcgArzs4wMQABAIUBEAQKBJYACwAkQBMHCQEDCAsCBQgKBgAACgoGBAQGAC8zLxEzLzMvERIXOTAxQRcBAQcBAScBATcBA6xe","/p4BYV/+nP6jYwFh/p5jAWAElmH+nv6eYQFg/qBhAWIBYGP+nAADAH3/wgW8BfcAGgAlADAAOUAcKh4eGBgVFS0tFxYSA3IfKSkLCwgIIiIKCQUJcgAr","zjIzETMRMxEzETMrzjIzETMRMxEzETMwMUEUAgYGIyImJwcnNyYCNTQSJDMyFhc3FwcWEgc0JicBFhYzMjYSJRQWFwEmJiMiBgIFvFap+qV2wEpmdG5b","WpQBLeNruktic2pdY7M4N/1fOJJbqtlo/Cc0NAKeNopVqtxrAt2p/uvHbDMzkEycZAEfsuABUrwzLotPlGL+4baG2Uz8TCgtlAEQuoLTTQOuJiiS/vMA","//8Auf/sBRoHkAYmADYAAAEHAEEBjwFvAAqzGgkCcgArzjAx//8Auf/sBRoHkAYmADYAAAEHAHQCJgFvAAqzGwkCcgArzjAx//8Auf/sBRoHjwYmADYA","AAEHAUEBTQFvAAqzIQkCcgArzjAx//8Auf/sBRoHQQYmADYAAAEHAGgAmwFvAAy0KR0JAnIAK87OMDH//wAAAAAEeQeQBiYAOgAAAQcAdAF4AW8ACrMQ","BwJyACvOMDEAAgDIAAAEZwW2AA4AGAAfQA8PBhgLBgsGCwgJAnIICHIAKysROTkvLxEzETMwMUEUDgIjIxEjETMRMyAEATMyNjY1NCYjIwRnPIffo7Cq","qtEBIgEC/QuekLtct8vDAw5ep39J/r8Ftv8A3f35PYdvk40AAQCv/+wEnQYfADwAFUALLjkBcjQKchoSC3IAKzIrKzIwMUEUDgMVFBYWFx4CFRQGBiMi","Jic1HgIzMjY1NCYmJy4CNTQ+AzU0JiMiBgYVESMRNDY2MzIWFgQaOlVVOh1PSkhqOV6pcWGQNiVdajZ0ZyVVR1NiKjhUUziRc02ATKZ0yoGBwGsE9Edm","TkJBKB8wPTEwYndTcJJHIyCXFSYYY1Q1TksuNlhZOEFZREBPOFhSK2db+1kEp4mlSkOF//8AXv/sA8sGIQYmAEIAAAEHAEEA3AAAAAqzLwAHcgArzjAx","//8AXv/sA8sGIQYmAEIAAAEHAHQBdAAAAAqzLwAHcgArzjAx//8AXv/sA8sGIAYmAEIAAAEHAUEAmgAAAAqzNQAHcgArzjAx//8AXv/sA8sF3QYmAEIA","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"].join("");const decoded_cache={bytes:null};function bundledFontBytes(){if(decoded_cache.bytes===null){decoded_cache.bytes=new Uint8Array(Buffer.from(BUNDLED_FONT_BASE64,"base64"))}return decoded_cache.bytes}const mimeOf=target=>target==="jpeg"?"image/jpeg":"image/png";const DEFAULT_SCALE_ZOOM=3;function zoomFor(opts){return(opts.scale??100)/100*DEFAULT_SCALE_ZOOM}function resvgFitTo(opts){if(opts.width!==void 0)return{mode:"width",value:opts.width};if(opts.height!==void 0)return{mode:"height",value:opts.height};return{mode:"zoom",value:zoomFor(opts)}}async function rasterize(svg,target,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rasterizeViaCanvas(svg,target,opts)}return rasterizeViaResvgWasm(svg,target,opts)}async function loadAndSizeCanvas(svg,opts){const encoded=typeof btoa==="undefined"?Buffer.from(svg,"utf8").toString("base64"):btoa(unescape(encodeURIComponent(svg)));const url=`data:image/svg+xml;base64,${encoded}`;const ImageCtor=globalThis.Image;if(ImageCtor===void 0){throw new RasterizationUnsupportedError("OffscreenCanvas present but Image constructor is not")}const img=new ImageCtor;img.src=url;if(typeof img.decode==="function"){await img.decode()}else{await new Promise((resolve,reject)=>{img.addEventListener("load",()=>resolve());img.addEventListener("error",()=>reject(new Error("image load failed")))})}const natW=img.width??800;const natH=img.height??600;let width;let height;if(opts.width!==void 0){width=opts.width;height=Math.round(width*natH/natW)}else if(opts.height===void 0){const zoom=zoomFor(opts);width=Math.round(natW*zoom);height=Math.round(natH*zoom)}else{height=opts.height;width=Math.round(height*natW/natH)}const canvas=new OffscreenCanvas(width,height);const ctx=canvas.getContext("2d");if(!ctx)throw new RenderError("failed to acquire 2d canvas context");ctx.drawImage(img,0,0,width,height);return{canvas:canvas,ctx:ctx,width:width,height:height}}async function rasterizeViaCanvas(svg,target,opts){const{canvas:canvas}=await loadAndSizeCanvas(svg,opts);const blob=await canvas.convertToBlob({type:mimeOf(target),quality:target==="jpeg"?(opts.quality??85)/100:void 0});const ab=await blob.arrayBuffer();return new Uint8Array(ab)}const wasm_state={inited:false};async function resvgModule(){let mod;try{mod=await import("@resvg/resvg-wasm")}catch{throw new RasterizationUnsupportedError(`PNG/JPEG in this runtime requires @resvg/resvg-wasm; install with: npm install @resvg/resvg-wasm`)}if(typeof mod.initWasm==="function"&&!wasm_state.inited){try{const{readFileSync:readFileSync}=await import("node:fs");const{resolve:resolve}=await import("node:path");const{createRequire:createRequire}=await import("node:module");const req=createRequire(typeof document==="undefined"?require("u"+"rl").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("lib.cjs",document.baseURI).href);const wasmPath=resolve(req.resolve("@resvg/resvg-wasm"),"../index_bg.wasm");const wasmBuffer=readFileSync(wasmPath);await mod.initWasm(wasmBuffer);wasm_state.inited=true}catch{wasm_state.inited=true}}return mod}async function rasterizeViaResvgWasm(svg,target,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const pngData=rendered.asPng();if(target==="png")return new Uint8Array(pngData);throw new RasterizationUnsupportedError("JPEG output in a non-Canvas runtime is not supported in v1; use --target=png instead")}finally{rendered?.free();resvg.free()}}async function rasterizeRgba(svg,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rgbaViaCanvas(svg,opts)}return rgbaViaResvgWasm(svg,opts)}async function rgbaViaCanvas(svg,opts){const{ctx:ctx,width:width,height:height}=await loadAndSizeCanvas(svg,opts);const data=ctx.getImageData(0,0,width,height);const rgba=new Uint8Array(data.data.buffer.slice(data.data.byteOffset,data.data.byteOffset+data.data.byteLength));return{rgba:rgba,width:width,height:height}}async function rgbaViaResvgWasm(svg,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const rgba=new Uint8Array(rendered.pixels);for(let i=0;i<rgba.length;i+=4){const a=rgba[i+3];if(a!==0&&a!==255){rgba[i]=Math.min(255,Math.round(rgba[i]*255/a));rgba[i+1]=Math.min(255,Math.round(rgba[i+1]*255/a));rgba[i+2]=Math.min(255,Math.round(rgba[i+2]*255/a))}}return{rgba:rgba,width:rendered.width,height:rendered.height}}finally{rendered?.free();resvg.free()}}async function pngTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"png",{width:opts.width,height:opts.height,scale:opts.scale})}async function jpegTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"jpeg",{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}function xml_unescape(s){return s.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}const NODE_GROUP_RE=/<g[^>]+\bclass="node"[^>]*>([\s\S]*?)<\/g>/g;const TEXT_RE_G=/<text[^>]*>([\s\S]*?)<\/text>/g;const SHAPE_FILL_RE=/(<(?:ellipse|polygon|path)\b[^>]+\bfill=")([^"]*)(")/;function node_label_text(body){const lines=[...body.matchAll(TEXT_RE_G)].map(m=>xml_unescape(m[1]));return lines.length===0?null:lines.join("\n")}function patch_state_fill(svg,state,fill){let done=false;const out=svg.replace(NODE_GROUP_RE,(whole,body)=>{if(done){return whole}const label=node_label_text(body);if(label===null){return whole}if(label!==state){return whole}const patched_body=body.replace(SHAPE_FILL_RE,(_m,pre,_old,post)=>`${pre}${fill}${post}`);if(patched_body===body){return whole}done=true;return whole.replace(body,()=>patched_body)});return out}const DefaultBufferLength=1024;let nextPropID=0;let Range$1=class Range{constructor(from,to){this.from=from;this.to=to}};class NodeProp{constructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")});this.combine=config.combine||null}add(match){if(this.perNode)throw new RangeError("Can't add per-node props to node types");if(typeof match!="function")match=NodeType.match(match);return type=>{let result=match(type);return result===undefined?null:[this,result]}}}NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.group=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.isolate=new NodeProp({deserialize:value=>{if(value&&value!="rtl"&&value!="ltr"&&value!="auto")throw new RangeError("Invalid value for isolate: "+value);return value||"auto"}});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});class MountedTree{constructor(tree,overlay,parser,bracketed=false){this.tree=tree;this.overlay=overlay;this.parser=parser;this.bracketed=bracketed}static get(tree){return tree&&tree.props&&tree.props[NodeProp.mounted.id]}}const noProps=Object.create(null);class NodeType{constructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags}static define(spec){let props=spec.props&&spec.props.length?Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new NodeType(spec.name||"",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");props[src[0].id]=src[1]}}return type}prop(prop){return this.props[prop.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(name){if(typeof name=="string"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false}return this.id==name}static match(map){let direct=Object.create(null);for(let prop in map)for(let name of prop.split(" "))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);let value=add[1],prop=add[0];if(prop.combine&&prop.id in newProps)value=prop.combine(newProps[prop.id],value);newProps[prop.id]=value}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type)}return new NodeSet(newTypes)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;var IterMode;(function(IterMode){IterMode[IterMode["ExcludeBuffers"]=1]="ExcludeBuffers";IterMode[IterMode["IncludeAnonymous"]=2]="IncludeAnonymous";IterMode[IterMode["IgnoreMounts"]=4]="IgnoreMounts";IterMode[IterMode["IgnoreOverlays"]=8]="IgnoreOverlays";IterMode[IterMode["EnterBracketed"]=16]="EnterBracketed"})(IterMode||(IterMode={}));class Tree{constructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=Object.create(null);for(let[prop,value]of props)this.props[typeof prop=="number"?prop:prop.id]=value}}toString(){let mounted=MountedTree.get(this);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children="";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=",";children+=str}}return!this.type.name?children:(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?"("+children+")":"")}cursor(mode=0){return new TreeCursor(this.topNode,mode)}cursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor}get topNode(){return new TreeNode(this,0,0,null)}resolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node}resolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node}resolveStack(pos,side=0){return stackIterator(this,pos,side)}iterate(spec){let{enter:enter,leave:leave,from:from=0,to:to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true}}}prop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:undefined}get propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result}balance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new Tree(NodeType.none,children,positions,length)))}static build(data){return buildTree(data)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(buffer,index){this.buffer=buffer;this.index=index}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set}get type(){return NodeType.none}toString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3]}return result.join(",")}childString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3]}return result+"("+children.join(",")+")"}findChild(startIndex,endIndex,dir,pos,side){let{buffer:buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break}}return pick}slice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to)}return new TreeBuffer(copy,len,this.set)}}function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true}}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent=scan.parent;parent;scan=parent,parent=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner}}class BaseNode{cursor(mode=0){return new TreeCursor(this,mode)}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null}getChildren(type,before=null,after=null){return getChildren(this,type,before,after)}resolve(pos,side=0){return resolveNode(this,pos,side,false)}resolveInner(pos,side=0){return resolveNode(this,pos,side,true)}matchContext(context){return matchNodeContext(this.parent,context)}enterUnfinishedNodesBefore(pos){let scan=this.childBefore(pos),node=this;while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling}else{scan=last}}return node}get node(){return this}get next(){return this.parent}}class TreeNode extends BaseNode{constructor(_tree,from,index,_parent){super();this._tree=_tree;this.from=from;this.index=index;this._parent=_parent}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children:children,positions:positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from,mounted;if(!(mode&IterMode.EnterBracketed&&next instanceof Tree&&(mounted=MountedTree.get(next))&&!mounted.overlay&&mounted.bracketed&&pos>=start&&pos<=start+next.length)&&!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index)}else if(mode&IterMode.IncludeAnonymous||(!next.type.isAnonymous||hasChild(next))){let mounted;if(!(mode&IterMode.IgnoreMounts)&&(mounted=MountedTree.get(next))&&!mounted.overlay)return new TreeNode(mounted.tree,start,i,parent);let inner=new TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side,mode)}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)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(pos){return this.nextChild(0,1,pos,2)}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2)}prop(prop){return this._tree.prop(prop)}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=MountedTree.get(this._tree))&&mounted.overlay){let rPos=pos-this.from,enterBracketed=mode&IterMode.EnterBracketed&&mounted.bracketed;for(let{from:from,to:to}of mounted.overlay){if((side>0||enterBracketed?from<=rPos:from<rPos)&&(side<0||enterBracketed?to>=rPos:to>rPos))return new TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this)}}return this.nextChild(0,1,pos,side,mode)}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val}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 getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null)for(let found=false;!found;){found=cur.type.is(before);if(!cur.nextSibling())return result}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[]}}function matchNodeContext(node,context,i=context.length-1){for(let p=node;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--}}return true}class BufferContext{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start}}class BufferNode extends BaseNode{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(context,_parent,index){super();this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]]}child(dir,pos,side){let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(pos){return this.child(1,pos,2)}childBefore(pos){return this.child(-1,pos,-2)}prop(prop){return this.type.prop(prop)}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4)}get nextSibling(){let{buffer:buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new BufferNode(this.context,this._parent,after);return this.externalSibling(1)}get prevSibling(){let{buffer:buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4))}get tree(){return null}toTree(){let children=[],positions=[];let{buffer:buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0)}return new Tree(this.type,children,positions,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iterStack(heads){if(!heads.length)return null;let pick=0,picked=heads[0];for(let i=1;i<heads.length;i++){let node=heads[i];if(node.from>picked.from||node.to<picked.to){picked=node;pick=i}}let next=picked instanceof TreeNode&&picked.index<0?null:picked.parent;let newHeads=heads.slice();if(next)newHeads[pick]=next;else newHeads.splice(pick,1);return new StackIterator(newHeads,picked)}class StackIterator{constructor(heads,node){this.heads=heads;this.node=node}get next(){return iterStack(this.heads)}}function stackIterator(tree,pos,side){let inner=tree.resolveInner(pos,side),layers=null;for(let scan=inner instanceof TreeNode?inner:inner.context.parent;scan;scan=scan.parent){if(scan.index<0){let parent=scan.parent;(layers||(layers=[inner])).push(parent.resolve(pos,side));scan=parent}else{let mount=MountedTree.get(scan.tree);if(mount&&mount.overlay&&mount.overlay[0].from<=pos&&mount.overlay[mount.overlay.length-1].to>=pos){let root=new TreeNode(mount.tree,mount.overlay[0].from+scan.from,-1,scan);(layers||(layers=[inner])).push(resolveNode(root,pos,side,false))}}}return layers?iterStack(layers):inner}class TreeCursor{get name(){return this.type.name}constructor(node,mode=0){this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;this.mode=mode&~IterMode.EnterBracketed;if(node instanceof TreeNode){this.yieldNode(node)}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index)}}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true}yieldBuf(index,type){this.index=index;let{start:start,buffer:buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true}yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node)}this.buffer=node.context;return this.yieldBuf(node.index,node.type)}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer:buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index)}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(pos){return this.enterChild(1,pos,2)}childBefore(pos){return this.enterChild(-1,pos,-2)}enter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side)}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent)}sibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer:buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4))}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after)}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(dir){let index,parent,{buffer:buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false}({index:index,parent:parent}=buffer)}else{({index:index,_parent:parent}=this._tree)}for(;parent;({index:index,_parent:parent}=parent)){if(index>-1)for(let i=index+dir,e=dir<0?-1:parent._tree.children.length;i!=e;i+=dir){let child=parent._tree.children[i];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false}}return true}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false}}next(enter=true){return this.move(1,enter)}prev(enter=true){return this.move(-1,enter)}moveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this}get node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan}index=this.stack[--d]}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue}if(!this.type.isAnonymous)mustLeave=true}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(!depth)return;if(this.nextSibling())break;this.parent();depth--;mustLeave=true}}}matchContext(context){if(!this.buffer)return matchNodeContext(this.node.parent,context);let{buffer:buffer}=this.buffer,{types:types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this._tree,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--}}return true}}function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch))}function buildTree(data){var _a;let{buffer:buffer,nodeSet:nodeSet,maxBufferLength:maxBufferLength=DefaultBufferLength,reused:reused=[],minRepeatType:minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children,positions,inRepeat,depth){let{id:id,start:start,end:end,size:size}=cursor;let lookAheadAtStart=lookAhead,contextAtStart=contextHash;if(size<0){cursor.next();if(size==-1){let node=reused[id];children.push(node);positions.push(start-parentStart);return}else if(size==-3){contextHash=id;return}else if(size==-4){lookAhead=id;return}else{throw new RangeError(`Unrecognized record size: ${size}`)}}let type=types[id],node,buffer;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer=findBufferSize(cursor.pos-minPos,inRepeat))){let data=new Uint16Array(buffer.size-buffer.skip);let endPos=cursor.pos-buffer.size,index=data.length;while(cursor.pos>endPos)index=copyToBuffer(buffer.start,data,index);node=new TreeBuffer(data,end-buffer.start,nodeSet);startPos=buffer.start-parentStart}else{let endPos=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);lastGroup=localChildren.length;lastEnd=cursor.end}cursor.next()}else if(depth>2500){takeFlatNode(start,endPos,localChildren,localPositions)}else{takeNode(start,endPos,localChildren,localPositions,localInRepeat,depth+1)}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type,contextAtStart);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make)}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end,contextAtStart)}}children.push(node);positions.push(startPos)}function takeFlatNode(parentStart,minPos,children,positions){let nodes=[];let nodeCount=0,stopAt=-1;while(cursor.pos>minPos){let{id:id,start:start,end:end,size:size}=cursor;if(size>4){cursor.next()}else if(stopAt>-1&&start<stopAt){break}else{if(stopAt<0)stopAt=end-maxBufferLength;nodes.push(id,start,end);nodeCount++;cursor.next()}}if(nodeCount){let buffer=new Uint16Array(nodeCount*4);let start=nodes[nodes.length-2];for(let i=nodes.length-3,j=0;i>=0;i-=3){buffer[j++]=nodes[i];buffer[j++]=nodes[i+1]-start;buffer[j++]=nodes[i+2]-start;buffer[j++]=j}children.push(new TreeBuffer(buffer,nodes[2]-start,nodeSet));positions.push(start-parentStart)}}function makeBalanced(type,contextHash){return(children,positions,length)=>{let lookAhead=0,lastI=children.length-1,last,lookAheadProp;if(lastI>=0&&(last=children[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead=positions[lastI]+last.length+lookAheadProp}return makeTree(type,children,positions,length,lookAhead,contextHash)}}function makeRepeatLeaf(children,positions,base,i,from,to,type,lookAhead,contextHash){let localChildren=[],localPositions=[];while(children.length>i){localChildren.push(children.pop());localPositions.push(positions.pop()+base-from)}children.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead-to,contextHash));positions.push(from-base)}function makeTree(type,children,positions,length,lookAhead,contextHash,props){if(contextHash){let pair=[NodeProp.contextHash,contextHash];props=props?[pair].concat(props):[pair]}if(lookAhead>25){let pair=[NodeProp.lookAhead,lookAhead];props=props?[pair].concat(props):[pair]}return new Tree(type,children,positions,length,props)}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize=fork.size;if(fork.id==inRepeat&&nodeSize>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue}let startPos=fork.pos-nodeSize;if(nodeSize<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3||fork.size==-4)localSkipped+=4;else break scan}else if(fork.id>=minRepeatType){localSkipped+=4}fork.next()}start=nodeStart;size+=nodeSize;skip+=localSkipped}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip}return result.size>4?result:undefined}function copyToBuffer(bufferStart,buffer,index){let{id:id,start:start,end:end,size:size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer,index)}buffer[--index]=startIndex;buffer[--index]=end-bufferStart;buffer[--index]=start-bufferStart;buffer[--index]=id}else if(size==-3){contextHash=id}else if(size==-4){lookAhead=id}return index}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1,0);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length)}const nodeSizeCache=new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break}size+=nodeSize(balanceType,child)}nodeSizeCache.set(node,size)}return size}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children,positions,from,to,offset){for(let i=from;i<to;){let groupFrom=i,groupStart=positions[i],groupSize=nodeSize(balanceType,children[i]);i++;for(;i<to;i++){let nextSize=nodeSize(balanceType,children[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize}if(i==groupFrom+1){if(groupSize>maxChild){let only=children[groupFrom];divide(only.children,only.positions,0,only.children.length,positions[groupFrom]+offset);continue}localChildren.push(children[groupFrom])}else{let length=positions[i-1]+children[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children,positions,groupFrom,i,groupStart,length,null,mkTree))}localPositions.push(groupStart+offset-start)}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length)}class TreeFragment{constructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(tree,fragments=[],partial=false){let result=[new TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result}static applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC)}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB}return result}}class Parser{startParse(input,fragments,ranges){if(typeof input=="string")input=new StringInput(input);ranges=!ranges?[new Range$1(0,input.length)]:ranges.length?ranges.map(r=>new Range$1(r.from,r.to)):[new Range$1(0,0)];return this.createParse(input,fragments||[],ranges)}parse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done}}}class StringInput{constructor(string){this.string=string}get length(){return this.string.length}chunk(from){return this.string.slice(from)}get lineChunks(){return false}read(from,to){return this.string.slice(from,to)}}new NodeProp({perNode:true});let nextTagID=0;class Tag{constructor(name,set,base,modified){this.name=name;this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++}toString(){let{name:name}=this;for(let mod of this.modified)if(mod.name)name=`${mod.name}(${name})`;return name}static define(nameOrParent,parent){let name=typeof nameOrParent=="string"?nameOrParent:"?";if(nameOrParent instanceof Tag)parent=nameOrParent;if(parent===null||parent===void 0?void 0:parent.base)throw new Error("Can not derive from a modified tag");let tag=new Tag(name,[],null,[]);tag.set.push(tag);if(parent)for(let t of parent.set)tag.set.push(t);return tag}static defineModifier(name){let mod=new Modifier(name);return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id))}}}let nextModifierID=0;class Modifier{constructor(name){this.name=name;this.instances=[];this.id=nextModifierID++}static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t=>t.base==base&&sameArray$1(mods,t.modified));if(exists)return exists;let set=[],tag=new Tag(base.name,set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(Modifier.get(parent,config));return tag}}function sameArray$1(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i])}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]))}}return sets.sort((a,b)=>b.length-a.length)}function styleTags(spec){let byName=Object.create(null);for(let prop in spec){let tags=spec[prop];if(!Array.isArray(tags))tags=[tags];for(let part of prop.split(" "))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest=="..."&&pos>0&&pos+3==part.length){mode=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(rest);if(!m)throw new RangeError("Invalid path: "+part);pieces.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next=="!"){mode=0;break}if(next!="/")throw new RangeError("Invalid path: "+part);rest=part.slice(pos)}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError("Invalid path: "+part);let rule=new Rule(tags,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner])}}return ruleNodeProp.add(byName)}const ruleNodeProp=new NodeProp({combine(a,b){let cur,root,take;while(a||b){if(!a||b&&a.depth>=b.depth){take=b;b=b.next}else{take=a;a=a.next}if(cur&&cur.mode==take.mode&&!take.context&&!cur.context)continue;let copy=new Rule(take.tags,take.mode,take.context);if(cur)cur.next=copy;else root=copy;cur=copy}return root}});class Rule{constructor(tags,mode,context,next){this.tags=tags;this.mode=mode;this.context=context;this.next=next}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(other){if(!other||other.depth<this.depth){this.next=other;return this}other.next=this.sort(other.next);return other}get depth(){return this.context?this.context.length:0}}Rule.empty=new Rule([],2,null);function tagHighlighter(tags,options){let map=Object.create(null);for(let style of tags){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class}let{scope:scope,all:all=null}=options||{};return{style:tags=>{let cls=all;for(let tag of tags){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+" "+tagClass:tagClass;break}}}return cls},scope:scope}}const t=Tag.define;const comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t();const tags={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string,docString:t(string),character:t(string),attributeValue:t(string),number:number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator:operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation:punctuation,separator:t(punctuation),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier("definition"),constant:Tag.defineModifier("constant"),function:Tag.defineModifier("function"),standard:Tag.defineModifier("standard"),local:Tag.defineModifier("local"),special:Tag.defineModifier("special")};for(let name in tags){let val=tags[name];if(val instanceof Tag)val.name=name}tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);let rangeFrom=[],rangeTo=[];(()=>{let numbers="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(s=>s?parseInt(s,36):1);for(let i=0,n=0;i<numbers.length;i++)(i%2?rangeTo:rangeFrom).push(n=n+numbers[i])})();function isExtendingChar(code){if(code<768)return false;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code<rangeFrom[mid])to=mid;else if(code>=rangeTo[mid])from=mid+1;else return true;if(from==to)return false}}function isRegionalIndicator(code){return code>=127462&&code<=127487}const ZWJ=8205;function findClusterBreak$1(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending)}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2}if(countBefore%2==0)break;else pos+=2}else{break}}return pos}function prevClusterBreak(str,pos,includeExtending){while(pos>1){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--}return 0}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536}function surrogateLow(ch){return ch>=56320&&ch<57344}function surrogateHigh(ch){return ch>=55296&&ch<56320}function codePointSize(code){return code<65536?1:2}class Text{lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0)}line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0)}replace(from,to,text){[from,to]=clip(this,from,to);let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length)}append(other){return this.replace(this.length,this.length,other)}slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from)}eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true}}iter(dir=1){return new RawTextCursor(this,dir)}iterRange(from,to=this.length){return new PartialTextCursor(this,from,to)}iterLines(from,to){let inner;if(from==null){inner=this.iter()}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to))}return new LineCursor(inner)}toString(){return this.sliceString(0)}toJSON(){let lines=[];this.flatten(lines);return lines}constructor(){}static of(text){if(text.length==0)throw new RangeError("A document must have at least one line");if(text.length==1&&!text[0])return Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]))}}class TextLeaf extends Text{constructor(text,length=textLength(text)){super();this.text=text;this.length=length}get lines(){return this.text.length}get children(){return null}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new TextLeaf(joined,prev.length+text.length))}else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)))}}else{target.push(text)}}replace(from,to,text){if(!(text instanceof TextLeaf))return super.replace(from,to,text);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new TextLeaf(lines,newLen);return TextNode.from(TextLeaf.split(lines,[]),newLen)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1}return result}flatten(target){for(let line of this.text)target.push(line)}scanIdentical(){return 0}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new TextLeaf(part,len));part=[];len=-1}}if(len>-1)target.push(new TextLeaf(part,len));return target}}class TextNode extends Text{constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines}lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen)}pos=end+1}}replace(from,to,text){[from,to]=clip(this,from,to);if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new TextNode(copy,this.length-(to-from)+text.length)}return super.replace(pos,end,updated)}pos=end+1}return super.replace(from,to,text)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1}return result}flatten(target){for(let child of this.children)child.flatten(target)}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length)}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof TextNode){for(let node of child.children)add(node)}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child)}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length)}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child)}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new TextNode(chunked,length)}}Text.empty=new TextLeaf([""],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false}else target.push(line)}pos=end+1}return target}function sliceText(text,from,to){return appendText(text,[""],from,to)}class RawTextCursor{constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value="";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1]}nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value="";return this}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop()}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value="\n";return this}skip--}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this}skip-=next.length}else{let next=top.children[offset+(dir<0?-1:0)];if(skip>next.length){skip-=next.length;this.offsets[last]+=dir}else{if(dir<0)this.offsets[last]--;this.nodes.push(next);this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1)}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length}return this.nextInner(skip,this.dir)}}class PartialTextCursor{constructor(text,start,end){this.value="";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end)}nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value="";this.done=true;return this}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value:value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(inner){this.inner=inner;this.afterBreak=true;this.value="";this.done=false}next(skip=0){let{done:done,lineBreak:lineBreak,value:value}=this.inner.next(skip);if(done&&this.afterBreak){this.value="";this.afterBreak=false}else if(done){this.done=true;this.value=""}else if(lineBreak){if(this.afterBreak){this.value=""}else{this.afterBreak=true;this.next()}}else{this.value=value;this.afterBreak=false}return this}get lineBreak(){return false}}if(typeof Symbol!="undefined"){Text.prototype[Symbol.iterator]=function(){return this.iter()};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this}}class Line{constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text}get length(){return this.to-this.from}}function clip(text,from,to){from=Math.max(0,Math.min(text.length,from));return[from,Math.max(from,Math.min(text.length,to))]}function findClusterBreak(str,pos,forward=true,includeExtending=true){return findClusterBreak$1(str,pos,forward,includeExtending)}const DefaultSplit=/\r\n?|\n/;var MapMode=function(MapMode){MapMode[MapMode["Simple"]=0]="Simple";MapMode[MapMode["TrackDel"]=1]="TrackDel";MapMode[MapMode["TrackBefore"]=2]="TrackBefore";MapMode[MapMode["TrackAfter"]=3]="TrackAfter";return MapMode}(MapMode||(MapMode={}));class ChangeDesc{constructor(sections){this.sections=sections}get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result}get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins}return result}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len}else{posB+=ins}posA+=len}}iterChangedRanges(f,individual=false){iterChanges(this,f,individual)}get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len)}return new ChangeDesc(sections)}composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other)}mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before)}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins}posA=endA}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB}touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?"cover":true;pos=end}return false}toString(){let result="";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?" ":"")+len+(ins>=0?":"+ins:"")}return result}toJSON(){return this.sections}static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(json)}static create(sections){return new ChangeDesc(sections)}}class ChangeSet extends ChangeDesc{constructor(sections,inserted){super(sections);this.inserted=inserted}apply(doc){if(this.length!=doc.length)throw new RangeError("Applying change set to a document with the wrong length");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc}mapDesc(other,before=false){return mapSet(this,other,before,true)}invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty)}pos+=len}return new ChangeSet(sections,inserted)}compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true)}map(other,before=false){return other.empty?this:mapSet(this,other,before,true)}iterChanges(f,individual=false){iterChanges(this,f,individual)}get desc(){return ChangeDesc.create(this.sections)}filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1);addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len);pos+=len}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)}}toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()))}return parts}static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub)}else if(spec instanceof ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec}else{let{from:from,to:to=from,insert:insert}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert?Text.empty:typeof insert=="string"?Text.of(insert.split(lineSep||DefaultSplit)):insert;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to}}process(changes);flush(!total);return total}static empty(length){return new ChangeSet(length?[length,-1]:[],[])}static fromJSON(json){if(!Array.isArray(json))throw new RangeError("Invalid JSON representation of ChangeSet");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part=="number"){sections.push(part,-1)}else if(!Array.isArray(part)||typeof part[0]!="number"||part.some((e,i)=>i&&typeof e!="string")){throw new RangeError("Invalid JSON representation of ChangeSet")}else if(part.length==1){sections.push(part[0],0)}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length)}}return new ChangeSet(sections,inserted)}static createSet(sections,inserted){return new ChangeSet(sections,inserted)}}function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(last>=0&&len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins}else sections.push(len,ins)}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value)}else{while(values.length<index)values.push(Text.empty);values.push(value)}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++]}f(posA,endA,posB,endB,text);posA=endA;posB=endB}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.done&&b.len||b.done&&a.len){throw new Error("Mismatched change set lengths")}else if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len)}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len=b.len;addSection(sections,b.ins,-1);while(len){let piece=Math.min(a.len,len);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert)addInsert(insert,sections,a.text);inserted=a.i}a.forward(piece);len-=piece}b.next()}else if(a.ins>=0){let len=0,left=a.len;while(left){if(b.ins==-1){let piece=Math.min(left,b.len);len+=piece;left-=piece;b.forward(piece)}else if(b.ins==0&&b.len<left){left-=b.len;b.next()}else{break}}addSection(sections,len,inserted<a.i?a.ins:0);if(insert&&inserted<a.i)addInsert(insert,sections,a.text);inserted=a.i;a.forward(a.len-left)}else if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else{throw new Error("Mismatched change set lengths")}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else if(a.ins==0){addSection(sections,a.len,0,open);a.next()}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert)addInsert(insert,sections,b.text);b.next()}else if(a.done||b.done){throw new Error("Mismatched change set lengths")}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert&&insB)addInsert(insert,sections,b.text)}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert)addInsert(insert,sections,a.textBit(len))}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert&&!b.off)addInsert(insert,sections,b.text)}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len)}}}class SectionIter{constructor(set){this.set=set;this.i=0;this.next()}next(){let{sections:sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++]}else{this.len=0;this.ins=-2}this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index]}textBit(len){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?undefined:this.off+len)}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len}}}class SelectionRange{constructor(from,to,flags,goalColumn){this.from=from;this.to=to;this.flags=flags;this.goalColumn=goalColumn}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let level=this.flags&7;return level==7?null:level}map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc)}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1)}return from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags,this.goalColumn)}extend(from,to=from,assoc=0){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to,undefined,undefined,assoc);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head,undefined,undefined,assoc)}eq(other,includeAssoc=false){return this.anchor==other.anchor&&this.head==other.head&&this.goalColumn==other.goalColumn&&(!includeAssoc||!this.empty||this.assoc==other.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(json){if(!json||typeof json.anchor!="number"||typeof json.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(json.anchor,json.head)}static create(from,to,flags,goalColumn){return new SelectionRange(from,to,flags,goalColumn)}}class EditorSelection{constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex}map(change,assoc=-1){if(change.empty)return this;return EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex)}eq(other,includeAssoc=false){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i],includeAssoc))return false;return true}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(range,main=true){return EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1)}replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return EditorSelection.create(ranges,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex}}static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!="number"||json.main>=json.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main)}static single(anchor,head=anchor){return new EditorSelection([EditorSelection.range(anchor,head)],0)}static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError("A selection needs at least one range");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to}return new EditorSelection(ranges,mainIndex)}static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?8:16)|(bidiLevel==null?7:Math.min(6,bidiLevel)),goalColumn)}static range(anchor,head,goalColumn,bidiLevel,assoc){let flags=bidiLevel==null?7:Math.min(6,bidiLevel);if(!assoc&&anchor!=head)assoc=head<anchor?1:-1;if(assoc)flags|=assoc<0?8:16;return head<anchor?SelectionRange.create(head,anchor,flags|32,goalColumn):SelectionRange.create(anchor,head,flags,goalColumn)}static undirectionalRange(from,to){return SelectionRange.create(from,to,64,undefined)}static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?EditorSelection.range(to,from):EditorSelection.range(from,to))}}return new EditorSelection(ranges,mainIndex)}}function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(combine,compareInput,compare,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables=="function"?enables(this):enables}get reader(){return this}static define(config={}){return new Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables)}of(value){return new FacetProvider([],this,0,value)}compute(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,1,get)}computeN(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,2,get)}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)))}}function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i])}class FacetProvider{constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++}dynamicSlot(addresses){var _a;let getter=this.value;let compare=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep=="doc")depDoc=true;else if(dep=="selection")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id])}return{create(state){state.values[idx]=getter(state);return 1},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare):!compare(newVal,state.values[idx])){state.values[idx]=newVal;return 1}}return 0},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true)||(multi?compareArray(newVal=getter(state),oldVal,compare):compare(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0}}else{newVal=getter(state)}state.values[idx]=newVal;return 1}}}get extension(){return this}}function compareArray(a,b,compare){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare(a[i],b[i]))return false;return true}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value)}return facet.combine(values)}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0}state.values[idx]=value;return 1}}}const initField=Facet.define({static:true});class StateField{constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=undefined}static define(config){let field=new StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state)}slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1},reconfigure:(state,oldState)=>{let init=state.facet(initField),oldInit=oldState.facet(initField),reInit;if((reInit=init.find(i=>i.field==this))&&reInit!=oldInit.find(i=>i.field==this)){state.values[idx]=reInit.create(state);return 1}if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0}state.values[idx]=this.create(state);return 1}}}init(create){return[this,initField.of({field:this,create:create})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(inner,prec){this.inner=inner;this.prec=prec}get extension(){return this}}class Compartment{of(ext){return new CompartmentInstance(this,ext)}reconfigure(content){return Compartment.reconfigure.of({compartment:this,extension:content})}get(state){return state.config.compartments.get(this)}}class CompartmentInstance{constructor(compartment,inner){this.compartment=compartment;this.inner=inner}get extension(){return this}}class Configuration{constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0)}staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1]}static resolve(base,compartments,oldState){let fields=[];let facets=Object.create(null);let newCompartments=new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext)}let address=Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a))}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet))}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value)}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value)}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a))}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers))}}let dynamic=dynamicSlots.map(f=>f(address));return new Configuration(base,newCompartments,dynamic,address,staticValues,facets)}}function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=new Map;function inner(ext,prec){let known=seen.get(ext);if(known!=null){if(known<=prec)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment)}seen.set(ext,prec);if(Array.isArray(ext)){for(let e of ext)inner(e,prec)}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec)}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec)}else if(ext instanceof StateField){result[prec].push(ext);if(ext.provides)inner(ext.provides,prec)}else if(ext instanceof FacetProvider){result[prec].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default)}else{let content=ext.extension;if(!content)throw new Error(`Unrecognized extension value in extension set (${ext}).`);if(content==ext)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content,prec)}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b))}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error("Cyclic dependency between fields and/or facets");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1]}const languageData=Facet.define();const allowMultipleSelections=Facet.define({combine:values=>values.some(v=>v),static:true});const lineSeparator=Facet.define({combine:values=>values.length?values[0]:undefined,static:true});const changeFilter=Facet.define();const transactionFilter=Facet.define();const transactionExtender=Facet.define();const readOnly=Facet.define({combine:values=>values.length?values[0]:false});class Annotation{constructor(type,value){this.type=type;this.value=value}static define(){return new AnnotationType}}class AnnotationType{of(value){return new Annotation(this,value)}}class StateEffectType{constructor(map){this.map=map}of(value){return new StateEffect(this,value)}}class StateEffect{constructor(type,value){this.type=type;this.value=value}map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===undefined?undefined:mapped==this.value?this:new StateEffect(this.type,mapped)}is(type){return this.type==type}static define(spec={}){return new StateEffectType(spec.map||(v=>v))}static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped)}return result}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==Transaction.time))this.annotations=annotations.concat(Transaction.time.of(Date.now()))}static create(startState,changes,selection,effects,annotations,scrollIntoView){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView)}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(){if(!this._state)this.startState.applyTransaction(this);return this._state}annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return undefined}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++]}else if(iB<b.length){from=b[iB++];to=b[iB++]}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes)}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA)}return{changes:changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView}}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations:annotations,scrollIntoView:!!spec.scrollIntoView}}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq)}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr)}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break}if(Array.isArray(value))result=result===true?value:joinRanges(result,value)}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length)}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView)}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered=filters[i](tr);if(filtered instanceof Transaction)tr=filtered;else if(Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction)tr=filtered[0];else tr=resolveTransaction(state,asArray(filtered),false)}return tr}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true)}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView)}const none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value]}var CharCategory=function(CharCategory){CharCategory[CharCategory["Word"]=0]="Word";CharCategory[CharCategory["Space"]=1]="Space";CharCategory[CharCategory["Other"]=2]="Other";return CharCategory}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\w/.test(ch)||ch>"€"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true}return false}function makeCategorizer(wordChars){return char=>{if(!/\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null}field(field,require=true){let addr=this.config.address[field.id];if(addr==null){if(require)throw new RangeError("Field is not present in this state");return undefined}ensureAddr(this,addr);return getAddr(this,addr)}update(...specs){return resolveTransaction(this,specs,true)}applyTransaction(tr){let conf=this.config,{base:base,compartments:compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null}compartments.set(effect.value.compartment,effect.value.extension)}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value)}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values}else{startValues=tr.startState.values.slice()}let selection=tr.startState.facet(allowMultipleSelections)?tr.newSelection:tr.newSelection.asSingle();new EditorState(conf,tr.newDoc,selection,startValues,(state,slot)=>slot.update(state,tr),tr)}replaceSelection(text){if(typeof text=="string")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}))}changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy))}return{changes:changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects:effects}}changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator))}toText(string){return Text.of(string.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak)}facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr)}toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this)}return result}static fromJSON(json,config={},fields){if(!json||typeof json.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)))}}return EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit})}static create(config={}){let configuration=Configuration.resolve(config.extensions||[],new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||"").split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}get readOnly(){return this.facet(readOnly)}phrase(phrase,...insert){for(let map of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break}if(insert.length)phrase=phrase.replace(/\$(\$|\d*)/g,(m,i)=>{if(i=="$")return"$";let n=+(i||1);return!n||n>insert.length?m:insert[n-1]});return phrase}languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name])}}return values}charCategorizer(at){let chars=this.languageDataAt("wordChars",at);return makeCategorizer(chars.length?chars[0]:"")}wordAt(pos){let{text:text,from:from,length:length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev}while(end<length){let next=findClusterBreak(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next}return start==end?null:EditorSelection.range(start+from,end+from)}}EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();class RangeValue{eq(other){return this==other}range(from,to=from){return Range.create(from,to,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;function cmpVal(a,b){return a==b||a.constructor==b.constructor&&a.eq(b)}class Range{constructor(from,to,value){this.from=from;this.to=to;this.value=value}static create(from,to,value){return new Range(from,to,value)}}function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide}class Chunk{constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint}get length(){return this.to[this.to.length-1]}findIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos)}return{mapped:value.length?new Chunk(from,to,value,maxPoint):null,pos:newPos}}}class RangeSet{constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint}static create(chunkPos,chunk,nextLayer,maxPoint){return new RangeSet(chunkPos,chunk,nextLayer,maxPoint)}get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size}chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length}update(updateSpec){let{add:add=[],sort:sort=false,filterFrom:filterFrom=0,filterTo:filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range)}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk()}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value))}cur.next()}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?RangeSet.empty:this.nextLayer.update({add:spill,filter:filter,filterFrom:filterFrom,filterTo:filterTo}))}map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start))}else if(touch===true){let{mapped:mapped,pos:pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos)}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new RangeSet(chunkPos,chunks,next||RangeSet.empty,maxPoint)}between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return}this.nextLayer.between(from,to,f)}iter(from=0){return HeapCursor.from([this]).goto(from)}get isEmpty(){return this.nextLayer==this}static iter(sets,from=0){return HeapCursor.from(sets).goto(from)}static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator)}static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!cmpVal(sideA.point,sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next()}}static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:cursor.point.startSide<0?active.length:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length)}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo)}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next()}}static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish()}static join(sets){if(!sets.length)return RangeSet.empty;let result=sets[sets.length-1];for(let i=sets.length-2;i>=0;i--){for(let layer=sets[i];layer!=RangeSet.empty;layer=layer.nextLayer)result=new RangeSet(layer.chunkPos,layer.chunk,result,Math.max(layer.maxPoint,result.maxPoint))}return result}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur}return ranges}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{finishChunk(newArrays){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(newArrays){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(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(from,to,value)}addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true}addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true}finish(){return this.finishInner(RangeSet.empty)}finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result}}function findSharedChunks(a,b,textDiff){let inA=new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=new Set;for(let set of b)for(let i=0;i<set.chunk.length;i++){let known=inA.get(set.chunk[i]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set.chunkPos[i]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set.chunk[i].length)))shared.add(set.chunk[i])}return shared}class LayerCursor{constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex)}this.next()}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++}this.rangeIndex=0}else{this.rangeIndex=index}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next()}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide}}class HeapCursor{constructor(heap){this.heap=heap}static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i))}}return heap.length==1?heap[0]:new HeapCursor(heap)}get startSide(){return this.value?this.value.startSide:0}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next()}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0)}}}function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex}}class SpanCursor{constructor(sets,skip,minPoint){this.minPoint=minPoint;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=HeapCursor.from(sets,skip,minPoint)}goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side)}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo)}addActive(trackOpen){let i=0,{value:value,to:to,rank:rank}=this.cursor;while(i<this.activeRank.length&&(rank-this.activeRank[i]||to-this.activeTo[i])>0)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo)}next(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break}this.removeActive(a);if(trackOpen)remove(trackOpen,a)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next()}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next()}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i])}return active.reverse()}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open}}function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;let bounds=!!comparator.boundChange;for(let boundChange=false;;){let dEnd=a.to+dPos-b.to,diff=dEnd||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);let point=a.point||b.point;if(point){if(!(a.point&&b.point&&cmpVal(a.point,b.point)&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);boundChange=false}else{if(boundChange)comparator.boundChange(pos);if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);if(bounds&&clipEnd<endB&&(dEnd||a.openEnd(end)!=b.openEnd(end)))boundChange=true}if(end>endB)break;pos=end;if(diff<=0)a.next();if(diff>=0)b.next()}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!cmpVal(a[i],b[i]))return false;return true}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop()}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i]}return found}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak(string,i)}return string.length}const C="ͼ";const COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C);const SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet");const top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(spec,options){this.rules=[];let{finish:finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\s*/)}function render(selectors,spec,target,isKeyframes){let local=[],isAt=/^@(\w+)\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]=="keyframes";if(isAt&&spec==null)return target.push(selectors[0]+";");for(let prop in spec){let value=spec[prop];if(/&/.test(prop)){render(prop.split(/,\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target)}else if(value&&typeof value=="object"){if(!isAt)throw new RangeError("The value of a property ("+prop+") should be a primitive value.");render(splitSelector(prop),value,local,keyframes)}else if(value!=null){local.push(prop.replace(/_.*/,"").replace(/[A-Z]/g,l=>"-"+l.toLowerCase())+": "+value+";")}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(", ")+" {"+local.join(" ")+"}")}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36)}static mount(root,modules,options){let set=root[SET],nonce=options&&options.nonce;if(!set)set=new StyleSet(root,nonce);else if(nonce)set.setNonce(nonce);set.mount(Array.isArray(modules)?modules:[modules],root)}}let adoptedSet=new Map;class StyleSet{constructor(root,nonce){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet;adoptedSet.set(doc,this)}else{this.styleTag=doc.createElement("style");if(nonce)this.styleTag.setAttribute("nonce",nonce)}this.modules=[];root[SET]=this}mount(modules,root){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++)}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++}}if(sheet){if(root.adoptedStyleSheets.indexOf(this.sheet)<0)root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets]}else{let text="";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+"\n";this.styleTag.textContent=text;let target=root.head||root;if(this.styleTag.parentNode!=target)target.insertBefore(this.styleTag,target.firstChild)}}setNonce(nonce){if(this.styleTag&&this.styleTag.getAttribute("nonce")!=nonce)this.styleTag.setAttribute("nonce",nonce)}}var base={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:"'"};var shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'};for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i)}for(var code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];let nav=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""};let doc=typeof document!="undefined"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent);const ie_upto10=/MSIE \d/.test(nav.userAgent);const ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent);const ie=!!(ie_upto10||ie_11up||ie_edge);const gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent);const chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent);const webkit="webkitFontSmoothing"in doc.documentElement.style;const safari=!ie&&/Apple Computer/.test(nav.vendor);const ios=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/Mac/.test(nav.platform),ie:ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko:gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios:ios,android:/Android\b/.test(nav.userAgent),webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,safari:safari,safari_version:safari?+(/\bVersion\/(\d+(\.\d+)?)/.exec(nav.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function combineAttrs(source,target){for(let name in source){if(name=="class"&&target.class)target.class+=" "+source.class;else if(name=="style"&&target.style)target.style+=";"+source.style;else target[name]=source[name]}return target}const noAttrs=Object.create(null);function attrsEq(a,b,ignore){if(a==b)return true;if(!a)a=noAttrs;if(!b)b=noAttrs;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length-0!=keysB.length-0)return false;for(let key of keysA){if(key!=ignore&&(keysB.indexOf(key)==-1||a[key]!==b[key]))return false}return true}function setAttrs(dom,attrs){for(let i=dom.attributes.length-1;i>=0;i--){let name=dom.attributes[i].name;if(attrs[name]==null)dom.removeAttribute(name)}for(let name in attrs){let value=attrs[name];if(name=="style")dom.style.cssText=value;else if(dom.getAttribute(name)!=value)dom.setAttribute(name,value)}}function updateAttrs(dom,prev,attrs){let changed=false;if(prev)for(let name in prev)if(!(attrs&&name in attrs)){changed=true;if(name=="style")dom.style.cssText="";else dom.removeAttribute(name)}if(attrs)for(let name in attrs)if(!(prev&&prev[name]==attrs[name])){changed=true;if(name=="style")dom.style.cssText=attrs[name];else dom.setAttribute(name,attrs[name])}return changed}function getAttrs(dom){let attrs=Object.create(null);for(let i=0;i<dom.attributes.length;i++){let attr=dom.attributes[i];attrs[attr.name]=attr.value}return attrs}class WidgetType{eq(widget){return false}updateDOM(dom,view,from){return false}compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(event){return true}coordsAt(dom,pos,side){return null}get isHidden(){return false}get editable(){return false}destroy(dom){}}var BlockType=function(BlockType){BlockType[BlockType["Text"]=0]="Text";BlockType[BlockType["WidgetBefore"]=1]="WidgetBefore";BlockType[BlockType["WidgetAfter"]=2]="WidgetAfter";BlockType[BlockType["WidgetRange"]=3]="WidgetRange";return BlockType}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec}get heightRelevant(){return false}static mark(spec){return new MarkDecoration(spec)}static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block&&!spec.inlineOrder?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false)}static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8}else{let{start:start,end:end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true)}static line(spec){return new LineDecoration(spec)}static set(of,sort=false){return RangeSet.of(of,sort)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(spec){let{start:start,end:end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||"span";this.attrs=spec.class&&spec.attributes?combineAttrs(spec.attributes,{class:spec.class}):spec.class?{class:spec.class}:spec.attributes||noAttrs}eq(other){return this==other||other instanceof MarkDecoration&&this.tagName==other.tagName&&attrsEq(this.attrs,other.attrs)}range(from,to=from){if(from>=to)throw new RangeError("Mark decorations may not be empty");return super.range(from,to)}}MarkDecoration.prototype.point=false;class LineDecoration extends Decoration{constructor(spec){super(-2e8,-2e8,null,spec)}eq(other){return other instanceof LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes)}range(from,to=from){if(to!=from)throw new RangeError("Line decoration ranges must be zero-length");return super.range(from,to)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;class PointDecoration extends Decoration{constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter}get type(){return this.startSide!=this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(other){return other instanceof PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&to!=from)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(from,to)}}PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block}}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b))}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to)}class BlockWrapper extends RangeValue{constructor(tagName,attributes,rank){super();this.tagName=tagName;this.attributes=attributes;this.rank=rank}eq(other){return other==this||other instanceof BlockWrapper&&this.tagName==other.tagName&&attrsEq(this.attributes,other.attributes)}static create(spec){return new BlockWrapper(spec.tagName,spec.attributes||noAttrs,spec.rank==null?50:Math.max(0,Math.min(spec.rank,100)))}static set(of,sort=false){return RangeSet.of(of,sort)}}BlockWrapper.prototype.startSide=BlockWrapper.prototype.endSide=-1;function getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument}else{target=root}return target.getSelection()}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode)}catch(_){return false}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[]}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index}}function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(node.nodeName)}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName=="DIV")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable=="false")return false;off=dir<0?maxOffset(node):0}else{return false}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom}}function windowRect(win){let vp=win.visualViewport;if(vp)return{left:0,right:vp.width,top:0,bottom:vp.height};return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight}}function getScale(elt,rect){let scaleX=rect.width/elt.offsetWidth;let scaleY=rect.height/elt.offsetHeight;if(scaleX>.995&&scaleX<1.005||!isFinite(scaleX)||Math.abs(rect.width-elt.offsetWidth)<1)scaleX=1;if(scaleY>.995&&scaleY<1.005||!isFinite(scaleY)||Math.abs(rect.height-elt.offsetHeight)<1)scaleY=1;return{scaleX:scaleX,scaleY:scaleY}}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc=dom.ownerDocument,win=doc.defaultView||window;for(let cur=dom,stop=false;cur&&!stop;){if(cur.nodeType==1){let bounding,top=cur==doc.body;let scaleX=1,scaleY=1;if(top){bounding=windowRect(win)}else{if(/^(fixed|sticky)$/.test(getComputedStyle(cur).position))stop=true;if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue}let rect=cur.getBoundingClientRect();({scaleX:scaleX,scaleY:scaleY}=getScale(cur,rect));bounding={left:rect.left,right:rect.left+cur.clientWidth*scaleX,top:rect.top,bottom:rect.top+cur.clientHeight*scaleY}}let moveX=0,moveY=0;if(y=="nearest"){if(rect.top<bounding.top+yMargin){moveY=rect.top-(bounding.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+yMargin}else if(rect.bottom>bounding.bottom-yMargin){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=rect.top-(bounding.top+yMargin)}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y=="center"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y=="start"||y=="center"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top}if(x=="nearest"){if(rect.left<bounding.left+xMargin){moveX=rect.left-(bounding.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+xMargin}else if(rect.right>bounding.right-xMargin){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=rect.left-(bounding.left+xMargin)}}else{let targetLeft=x=="center"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x=="start"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left}if(moveX||moveY){if(top){win.scrollBy(moveX,moveY)}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY/scaleY;movedY=(cur.scrollTop-start)*scaleY}if(moveX){let start=cur.scrollLeft;cur.scrollLeft+=moveX/scaleX;movedX=(cur.scrollLeft-start)*scaleX}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x="nearest";if(movedY&&Math.abs(movedY-moveY)<1)y="nearest"}}if(top)break;if(rect.top<bounding.top||rect.bottom>bounding.bottom||rect.left<bounding.left||rect.right>bounding.right)rect={left:Math.max(rect.left,bounding.left),right:Math.min(rect.right,bounding.right),top:Math.max(rect.top,bounding.top),bottom:Math.min(rect.bottom,bounding.bottom)};cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}}function scrollableParents(dom,getX=true){let doc=dom.ownerDocument,x=null,y=null;for(let cur=dom.parentNode;cur;){if(cur==doc.body||(!getX||x)&&y){break}else if(cur.nodeType==1){if(!y&&cur.scrollHeight>cur.clientHeight)y=cur;if(getX&&!x&&cur.scrollWidth>cur.clientWidth)x=cur;cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}return{x:x,y:y}}class DOMSelectionState{constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0}eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset}setRange(range){let{anchorNode:anchorNode,focusNode:focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0))}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset}}let preventScrollSupported=null;if(browser.safari&&browser.safari_version>=26)preventScrollSupported=false;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true}}:undefined);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top=stack[i++],left=stack[i++];if(elt.scrollTop!=top)elt.scrollTop=top;if(elt.scrollLeft!=left)elt.scrollLeft=left}}}let scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range}function dispatchKey(elt,name,code,mods){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};if(mods)({altKey:options.altKey,ctrlKey:options.ctrlKey,shiftKey:options.shiftKey,metaKey:options.metaKey}=mods);let down=new KeyboardEvent("keydown",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent("keyup",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode}return null}function atElementStart(doc,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable=="false")offset--;else{node=prev;offset=maxOffset(node)}}else if(node==doc){return true}else{offset=domIndex(node);node=node.parentNode}}}function isScrolledToBottom(elt){if(elt instanceof Window)return elt.pageYOffset>Math.max(0,elt.document.documentElement.scrollHeight-elt.innerHeight-4);return elt.scrollTop>Math.max(1,elt.scrollHeight-elt.clientHeight-4)}function textNodeBefore(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset>0){return{node:node,offset:offset}}else if(node.nodeType==1&&offset>0){if(node.contentEditable=="false")return null;node=node.childNodes[offset-1];offset=maxOffset(node)}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node);node=node.parentNode}else{return null}}}function textNodeAfter(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset<node.nodeValue.length){return{node:node,offset:offset}}else if(node.nodeType==1&&offset<node.childNodes.length){if(node.contentEditable=="false")return null;node=node.childNodes[offset];offset=0}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node)+1;node=node.parentNode}else{return null}}}class DOMPos{constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise}static before(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom),precise)}static after(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom)+1,precise)}}var Direction=function(Direction){Direction[Direction["LTR"]=0]="LTR";Direction[Direction["RTL"]=1]="RTL";return Direction}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result}const LowTypes=dec("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008");const ArabicTypes=dec("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333");const Brackets=Object.create(null),BracketStack=[];for(let p of["()","[]","{}"]){let l=p.charCodeAt(0),r=p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8204?256:64336<=ch&&ch<=65023?4:1}const BidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class BidiSpan{get dir(){return this.level%2?RTL:LTR}constructor(from,to,level){this.from=from;this.to=to;this.level=level}side(end,dir){return this.dir==dir==end?this.to:this.from}forward(forward,dir){return forward==(this.dir==dir)}static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i}}if(maybe<0)throw new RangeError("Index out of range");return maybe}}function isolatesEq(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let iA=a[i],iB=b[i];if(iA.from!=iB.from||iA.to!=iB.to||iA.direction!=iB.direction||!isolatesEq(iA.inner,iB.inner))return false}return true}const types=[];function computeCharTypes(line,rFrom,rTo,isolates,outerType){for(let iI=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;let prevType=iI?256:outerType;for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type}for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=types[i];if(type==128){if(i<to-1&&prev==types[i+1]&&prev&24)type=types[i]=prev;else types[i]=256}else if(type==64){let end=i+1;while(end<to&&types[end]==64)end++;let replace=i&&prev==8||end<rTo&&types[end]==8?prevStrong==1?1:8:256;for(let j=i;j<end;j++)types[j]=replace;i=end-1}else if(type==8&&prevStrong==1){types[i]=1}prev=type;if(type&7)prevStrong=type}}}function processBracketPairs(line,rFrom,rTo,isolates,outerType){let oppositeType=outerType==1?2:1;for(let iI=0,sI=0,context=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from,ch,br,type;i<to;i++){if(br=Brackets[ch=line.charCodeAt(i)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type)types[i]=types[BracketStack[sJ]]=type;sI=sJ;break}}}else if(BracketStack.length==189){break}else{BracketStack[sI++]=i;BracketStack[sI++]=ch;BracketStack[sI++]=context}}else if((type=types[i])==2||type==1){let embed=type==outerType;context=embed?0:1;for(let sJ=sI-3;sJ>=0;sJ-=3){let cur=BracketStack[sJ+2];if(cur&2)break;if(embed){BracketStack[sJ+2]|=2}else{if(cur&4)break;BracketStack[sJ+2]|=4}}}}}}function processNeutrals(rFrom,rTo,isolates,outerType){for(let iI=0,prev=outerType;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from;i<to;){let type=types[i];if(type==256){let end=i+1;for(;;){if(end==to){if(iI==isolates.length)break;end=isolates[iI++].to;to=iI<isolates.length?isolates[iI].from:rTo}else if(types[end]==256){end++}else{break}}let beforeL=prev==1;let afterL=(end<rTo?types[end]:outerType)==1;let replace=beforeL==afterL?beforeL?1:2:outerType;for(let j=end,jI=iI,fromJ=jI?isolates[jI-1].to:rFrom;j>i;){if(j==fromJ){j=isolates[--jI].from;fromJ=jI?isolates[jI-1].to:rFrom}types[--j]=replace}i=end}else{prev=type;i++}}}}function emitSpans(line,from,to,level,baseLevel,isolates,order){let ourType=level%2?2:1;if(level%2==baseLevel%2){for(let iCh=from,iI=0;iCh<to;){let sameDir=true,isNum=false;if(iI==isolates.length||iCh<isolates[iI].from){let next=types[iCh];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI<isolates.length&&iScan==isolates[iI].from){if(isNum)break run;let iso=isolates[iI];if(!sameDir)for(let upto=iso.to,jI=iI+1;;){if(upto==to)break run;if(jI<isolates.length&&isolates[jI].from==upto)upto=isolates[jI++].to;else if(types[upto]==ourType)break run;else break}iI++;if(recurse){recurse.push(iso)}else{if(iso.from>iCh)order.push(new BidiSpan(iCh,iso.from,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.to}iScan=iso.to}else if(iScan==to||(sameDir?types[iScan]!=ourType:types[iScan]==ourType)){break}else{iScan++}}if(recurse)emitSpans(line,iCh,iScan,level+1,baseLevel,recurse,order);else if(iCh<iScan)order.push(new BidiSpan(iCh,iScan,localLevel));iCh=iScan}}else{for(let iCh=to,iI=isolates.length;iCh>from;){let sameDir=true,isNum=false;if(!iI||iCh>isolates[iI-1].to){let next=types[iCh-1];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI&&iScan==isolates[iI-1].to){if(isNum)break run;let iso=isolates[--iI];if(!sameDir)for(let upto=iso.from,jI=iI;;){if(upto==from)break run;if(jI&&isolates[jI-1].to==upto)upto=isolates[--jI].from;else if(types[upto-1]==ourType)break run;else break}if(recurse){recurse.push(iso)}else{if(iso.to<iCh)order.push(new BidiSpan(iso.to,iCh,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.from}iScan=iso.from}else if(iScan==from||(sameDir?types[iScan-1]!=ourType:types[iScan-1]==ourType)){break}else{iScan--}}if(recurse)emitSpans(line,iScan,iCh,level+1,baseLevel,recurse,order);else if(iScan<iCh)order.push(new BidiSpan(iScan,iCh,localLevel));iCh=iScan}}}function computeSectionOrder(line,level,baseLevel,isolates,from,to,order){let outerType=level%2?2:1;computeCharTypes(line,from,to,isolates,outerType);processBracketPairs(line,from,to,isolates,outerType);processNeutrals(from,to,isolates,outerType);emitSpans(line,from,to,level,baseLevel,isolates,order)}function computeOrder(line,direction,isolates){if(!line)return[new BidiSpan(0,0,direction==RTL?1:0)];if(direction==LTR&&!isolates.length&&!BidiRE.test(line))return trivialOrder(line.length);if(isolates.length)while(line.length>types.length)types[types.length]=256;let order=[],level=direction==LTR?0:1;computeSectionOrder(line,level,level,isolates,0,line.length,order);return order}function trivialOrder(length){return[new BidiSpan(0,length,0)]}let movedOver="";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from;let spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI],spanEnd=span.side(forward,dir);if(startIndex==spanEnd){let nextI=spanI+=forward?1:-1;if(nextI<0||nextI>=order.length)return null;span=order[spanI=nextI];startIndex=span.side(!forward,dir);spanEnd=span.side(forward,dir)}let nextIndex=findClusterBreak(line.text,startIndex,span.forward(forward,dir));if(nextIndex<span.from||nextIndex>span.to)nextIndex=spanEnd;movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(nextSpan&&nextIndex==spanEnd&&nextSpan.level+(forward?0:1)<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,nextSpan.forward(forward,dir)?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,span.forward(forward,dir)?-1:1,span.level)}function autoDirection(text,from,to){for(let i=from;i<to;i++){let type=charType(text.charCodeAt(i));if(type==1)return LTR;if(type==2||type==4)return RTL}return LTR}const clickAddsSelectionRange=Facet.define();const dragMovesSelection$1=Facet.define();const mouseSelectionStyle=Facet.define();const exceptionSink=Facet.define();const updateListener=Facet.define();const inputHandler=Facet.define();const focusChangeEffect=Facet.define();const clipboardInputFilter=Facet.define();const clipboardOutputFilter=Facet.define();const perLineTextDirection=Facet.define({combine:values=>values.some(x=>x)});const nativeSelectionHidden=Facet.define({combine:values=>values.some(x=>x)});const scrollHandler=Facet.define();class ScrollTarget{constructor(range,y,x,yMargin,xMargin,isSnapshot=false){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;this.isSnapshot=isSnapshot}map(changes){return changes.empty?this:new ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(state){return this.range.to<=state.doc.length?this:new ScrollTarget(EditorSelection.cursor(state.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const scrollIntoView=StateEffect.define({map:(t,ch)=>t.map(ch)});const setEditContextFormatting=StateEffect.define();function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror&&window.onerror(String(exception),context,undefined,undefined,exception));else if(context)console.error(context+":",exception);else console.error(exception)}const editable=Facet.define({combine:values=>values.length?values[0]:true});let nextPluginID=0;const viewPlugin=Facet.define({combine(plugins){return plugins.filter((p,i)=>{for(let j=0;j<i;j++)if(plugins[j].plugin==p.plugin)return false;return true})}});class ViewPlugin{constructor(id,create,domEventHandlers,domEventObservers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.domEventObservers=domEventObservers;this.baseExtensions=buildExtensions(this);this.extension=this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:undefined}))}of(arg){return this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:arg}))}static define(create,spec){const{eventHandlers:eventHandlers,eventObservers:eventObservers,provide:provide,decorations:deco}=spec||{};return new ViewPlugin(nextPluginID++,create,eventHandlers,eventObservers,plugin=>{let ext=[];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin);return pluginInst?deco(pluginInst):Decoration.none}));if(provide)ext.push(provide(plugin));return ext})}static fromClass(cls,spec){return ViewPlugin.define((view,arg)=>new cls(view,arg),spec)}}class PluginInstance{constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(view){if(!this.value){if(this.spec){try{this.value=this.spec.plugin.create(view,this.spec.arg)}catch(e){logException(view.state,e,"CodeMirror plugin crashed");this.deactivate()}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update)}catch(e){logException(update.state,e,"CodeMirror plugin crashed");if(this.value.destroy)try{this.value.destroy()}catch(_){}this.deactivate()}}}return this}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy()}catch(e){logException(view.state,e,"CodeMirror plugin crashed")}}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define();const contentAttributes=Facet.define();const decorations=Facet.define();const blockWrappers=Facet.define();const outerDecorations=Facet.define();const atomicRanges=Facet.define();const bidiIsolatedRanges=Facet.define();function getIsolatedRanges(view,line){let isolates=view.state.facet(bidiIsolatedRanges);if(!isolates.length)return isolates;let sets=isolates.map(i=>i instanceof Function?i(view):i);let result=[];RangeSet.spans(sets,line.from,line.to,{point(){},span(fromDoc,toDoc,active,open){let from=fromDoc-line.from,to=toDoc-line.from;let level=result;for(let i=active.length-1;i>=0;i--,open--){let direction=active[i].spec.bidiIsolate,update;if(direction==null)direction=autoDirection(line.text,from,to);if(open>0&&level.length&&(update=level[level.length-1]).to==from&&update.direction==direction){update.to=to;level=update.inner}else{let add={from:from,to:to,direction:direction,inner:[]};level.push(add);level=add.inner}}}});return result}const scrollMargins=Facet.define();function getScrollMargins(view){let left=0,right=0,top=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top=Math.max(top,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom)}}return{left:left,right:right,top:top,bottom:bottom}}const styleModule=Facet.define();class ChangedRange{constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB}join(other){return new ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB))}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1)}set.splice(i,0,me);return set}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,off=0;;){let nextD=dI<diff.length?diff[dI].fromB:1e9;let nextR=rI<ranges.length?ranges[rI]:1e9;let fromB=Math.min(nextD,nextR);if(fromB==1e9)break;let fromA=fromB+off,toB=fromB,toA=fromA;for(;;){if(rI<ranges.length&&ranges[rI]<=toB){let end=ranges[rI+1];rI+=2;toB=Math.max(toB,end);for(let i=dI;i<diff.length&&diff[i].fromB<=toB;i++)off=diff[i].toA-diff[i].toB;toA=Math.max(toA,end+off)}else if(dI<diff.length&&diff[dI].fromB<=toB){let next=diff[dI++];toB=Math.max(toB,next.toB);toA=Math.max(toA,next.toA);off=next.toA-next.toB}else{break}}result.push(new ChangedRange(fromA,toA,fromB,toB))}return result}}class ViewUpdate{constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges}static create(view,state,transactions){return new ViewUpdate(view,state,transactions)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(16|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(tr=>tr.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const noChildren=[];class Tile{constructor(dom,length,flags=0){this.dom=dom;this.length=length;this.flags=flags;this.parent=null;dom.cmTile=this}get breakAfter(){return this.flags&1}get children(){return noChildren}isWidget(){return false}get isHidden(){return false}isComposite(){return false}isLine(){return false}isText(){return false}isBlock(){return false}get domAttrs(){return null}sync(track){this.flags|=2;if(this.flags&4){this.flags&=-5;let attrs=this.domAttrs;if(attrs)setAttrs(this.dom,attrs)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(dom){this.dom=dom;dom.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(tile,start=this.posAtStart){let pos=start;for(let child of this.children){if(child==tile)return pos;pos+=child.length+child.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(tile){return this.posBefore(tile)+tile.length}covers(side){return true}coordsIn(pos,side){return null}domPosFor(off,side){let index=domIndex(this.dom);let after=this.length?off>0:side>0;return new DOMPos(this.parent.dom,index+(after?1:0),off==0||off==this.length)}markDirty(attrs){this.flags&=-3;if(attrs)this.flags|=4;if(this.parent&&this.parent.flags&2)this.parent.markDirty(false)}get overrideDOMText(){return null}get root(){for(let t=this;t;t=t.parent)if(t instanceof DocTile)return t;return null}static get(dom){return dom.cmTile}}class CompositeTile extends Tile{constructor(dom){super(dom,0);this._children=[]}isComposite(){return true}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(child){this.children.push(child);child.parent=this}sync(track){if(this.flags&2)return;super.sync(track);let parent=this.dom,prev=null,next;let tracking=(track===null||track===void 0?void 0:track.node)==parent?track:null;let length=0;for(let child of this.children){child.sync(track);length+=child.length+child.breakAfter;next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next!=child.dom)tracking.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next)}else{parent.insertBefore(child.dom,next)}prev=child.dom}next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next)tracking.written=true;while(next)next=rm$1(next);this.length=length}}function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next}class DocTile extends CompositeTile{constructor(view,dom){super(dom);this.view=view}owns(tile){for(;tile;tile=tile.parent)if(tile==this)return true;return false}isBlock(){return true}nearest(dom){for(;;){if(!dom)return null;let tile=Tile.get(dom);if(tile&&this.owns(tile))return tile;dom=dom.parentNode}}blockTiles(f){for(let stack=[],cur=this,i=0,pos=0;;){if(i==cur.children.length){if(!stack.length)return;cur=cur.parent;if(cur.breakAfter)pos++;i=stack.pop()}else{let next=cur.children[i++];if(next instanceof BlockWrapperTile){stack.push(i);cur=next;i=0}else{let end=pos+next.length;let result=f(next,pos);if(result!==undefined)return result;pos=end+next.breakAfter}}}}resolveBlock(pos,side){let before,beforeOff=-1,after,afterOff=-1;this.blockTiles((tile,off)=>{let end=off+tile.length;if(pos>=off&&pos<=end){if(tile.isWidget()&&side>=-1&&side<=1){if(tile.flags&32)return true;if(tile.flags&16)before=undefined}if((off<pos||pos==end&&(side<-1?tile.length:tile.covers(1)))&&(!before||!tile.isWidget()&&before.isWidget())){before=tile;beforeOff=pos-off}if((end>pos||pos==off&&(side>1?tile.length:tile.covers(-1)))&&(!after||!tile.isWidget()&&after.isWidget())){after=tile;afterOff=pos-off}}});if(!before&&!after)throw new Error("No tile at position "+pos);return before&&side<0||!after?{tile:before,offset:beforeOff}:{tile:after,offset:afterOff}}}class BlockWrapperTile extends CompositeTile{constructor(dom,wrapper){super(dom);this.wrapper=wrapper}isBlock(){return true}covers(side){if(!this.children.length)return false;return side<0?this.children[0].covers(-1):this.lastChild.covers(1)}get domAttrs(){return this.wrapper.attributes}static of(wrapper,dom){let tile=new BlockWrapperTile(dom||document.createElement(wrapper.tagName),wrapper);if(!dom)tile.flags|=4;return tile}}class LineTile extends CompositeTile{constructor(dom,attrs){super(dom);this.attrs=attrs}isLine(){return true}static start(attrs,dom,keepAttrs){let line=new LineTile(dom||document.createElement("div"),attrs);if(!dom||!keepAttrs)line.flags|=4;return line}get domAttrs(){return this.attrs}resolveInline(pos,side,forCoords){let before=null,beforeOff=-1,after=null,afterOff=-1;function scan(tile,pos){for(let i=0,off=0;i<tile.children.length&&off<=pos;i++){let child=tile.children[i],end=off+child.length;if(end>=pos){if(child.isComposite()){scan(child,pos-off)}else if((!after||after.isHidden&&(side>0||forCoords&&onSameLine(after,child)))&&(end>pos||child.flags&32)){after=child;afterOff=pos-off}else if(off<pos||child.flags&16&&!child.isHidden){before=child;beforeOff=pos-off}}off=end}}scan(this,pos);let target=(side<0?before:after)||before||after;return target?{tile:target,offset:target==before?beforeOff:afterOff}:null}coordsIn(pos,side){let found=this.resolveInline(pos,side,true);if(!found)return fallbackRect(this);return found.tile.coordsIn(Math.max(0,found.offset),side)}domIn(pos,side){let found=this.resolveInline(pos,side);if(found){let{tile:tile,offset:offset}=found;if(this.dom.contains(tile.dom)){if(tile.isText())return new DOMPos(tile.dom,Math.min(tile.dom.nodeValue.length,offset));return tile.domPosFor(offset,tile.flags&16?1:tile.flags&32?-1:side)}let parent=found.tile.parent,saw=false;for(let ch of parent.children){if(saw)return new DOMPos(ch.dom,0);if(ch==found.tile){saw=true}}}return new DOMPos(this.dom,0)}}function fallbackRect(tile){let last=tile.dom.lastChild;if(!last)return tile.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null}function onSameLine(a,b){let posA=a.coordsIn(0,1),posB=b.coordsIn(0,1);return posA&&posB&&posB.top<posA.bottom}class MarkTile extends CompositeTile{constructor(dom,mark){super(dom);this.mark=mark}get domAttrs(){return this.mark.attrs}static of(mark,dom){let tile=new MarkTile(dom||document.createElement(mark.tagName),mark);if(!dom)tile.flags|=4;return tile}}class TextTile extends Tile{constructor(dom,text){super(dom,text.length);this.text=text}sync(track){if(this.flags&2)return;super.sync(track);if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text}}isText(){return true}toString(){return JSON.stringify(this.text)}coordsIn(pos,side){let length=this.dom.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1}else if(to<length){to++;flatten=-1}}}else{if(side<0)from--;else if(to<length)to++}let rects=textRange(this.dom,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null}static of(text,dom){let tile=new TextTile(dom||document.createTextNode(text),text);if(!dom)tile.flags|=2;return tile}}class WidgetTile extends Tile{constructor(dom,length,widget,flags){super(dom,length,flags);this.widget=widget}isWidget(){return true}get isHidden(){return this.widget.isHidden}covers(side){if(this.flags&48)return false;return(this.flags&(side<0?64:128))>0}coordsIn(pos,side){return this.coordsInWidget(pos,side,false)}coordsInWidget(pos,side,block){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;if(block){return flattenRect(this.dom.getBoundingClientRect(),this.length?pos==0:side<=0)}else{let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.flags&16?true:this.flags&32?false:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break}return flattenRect(rect,!fromBack)}}get overrideDOMText(){if(!this.length)return Text.empty;let{root:root}=this;if(!root)return Text.empty;let start=this.posAtStart;return root.view.state.doc.slice(start,start+this.length)}destroy(){super.destroy();this.widget.destroy(this.dom)}static of(widget,view,length,flags,dom){if(!dom){dom=widget.toDOM(view);if(!widget.editable)dom.contentEditable="false"}return new WidgetTile(dom,length,widget,flags)}}class WidgetBufferTile extends Tile{constructor(flags){let img=document.createElement("img");img.className="cm-widgetBuffer";img.setAttribute("aria-hidden","true");super(img,0,flags)}get isHidden(){return true}get overrideDOMText(){return Text.empty}coordsIn(pos){return this.dom.getBoundingClientRect()}}class TilePointer{constructor(top){this.index=0;this.beforeBreak=false;this.parents=[];this.tile=top}advance(dist,side,walker){let{tile:tile,index:index,beforeBreak:beforeBreak,parents:parents}=this;while(dist||side>0){if(!tile.isComposite()){if(index==tile.length){beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else if(!dist){break}else{let take=Math.min(dist,tile.length-index);if(walker)walker.skip(tile,index,index+take);dist-=take;index+=take}}else if(beforeBreak){if(!dist)break;if(walker)walker.break();dist--;beforeBreak=false}else if(index==tile.children.length){if(!dist&&!parents.length)break;if(walker)walker.leave(tile);beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else{let next=tile.children[index],brk=next.breakAfter;if((side>0?next.length<=dist:next.length<dist)&&(!walker||walker.skip(next,0,next.length)!==false||!next.isComposite)){beforeBreak=!!brk;index++;dist-=next.length}else{parents.push({tile:tile,index:index});tile=next;index=0;if(walker&&next.isComposite())walker.enter(next)}}}this.tile=tile;this.index=index;this.beforeBreak=beforeBreak;return this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class OpenWrapper{constructor(from,to,wrapper,rank){this.from=from;this.to=to;this.wrapper=wrapper;this.rank=rank}}class TileBuilder{constructor(cache,root,blockWrappers){this.cache=cache;this.root=root;this.blockWrappers=blockWrappers;this.curLine=null;this.lastBlock=null;this.afterWidget=null;this.pos=0;this.wrappers=[];this.wrapperPos=0}addText(text,marks,openStart,tile){var _a;this.flushBuffer();let parent=this.ensureMarks(marks,openStart);let prev=parent.lastChild;if(prev&&prev.isText()&&!(prev.flags&8)&&prev.length+text.length<512){this.cache.reused.set(prev,2);let tile=parent.children[parent.children.length-1]=new TextTile(prev.dom,prev.text+text);tile.parent=parent}else{parent.append(tile||TextTile.of(text,(_a=this.cache.find(TextTile))===null||_a===void 0?void 0:_a.dom))}this.pos+=text.length;this.afterWidget=null}addComposition(composition,context){let line=this.curLine;if(line.dom!=context.line.dom){line.setDOM(this.cache.reused.has(context.line)?freeNode(context.line.dom):context.line.dom);this.cache.reused.set(context.line,2)}let head=line;for(let i=context.marks.length-1;i>=0;i--){let mark=context.marks[i];let last=head.lastChild;if(last instanceof MarkTile&&last.mark.eq(mark.mark)){if(last.dom!=mark.dom)last.setDOM(freeNode(mark.dom));head=last}else{if(this.cache.reused.get(mark)){let tile=Tile.get(mark.dom);if(tile)tile.setDOM(freeNode(mark.dom))}let nw=MarkTile.of(mark.mark,mark.dom);head.append(nw);head=nw}this.cache.reused.set(mark,2)}let oldTile=Tile.get(composition.text);if(oldTile)this.cache.reused.set(oldTile,2);let text=new TextTile(composition.text,composition.text.nodeValue);text.flags|=8;this.pos=composition.range.toB;head.append(text)}addInlineWidget(widget,marks,openStart){let noSpace=this.afterWidget&&widget.flags&48&&(this.afterWidget.flags&48)==(widget.flags&48);if(!noSpace)this.flushBuffer();let parent=this.ensureMarks(marks,openStart);if(!noSpace&&!(widget.flags&16))parent.append(this.getBuffer(1));parent.append(widget);this.pos+=widget.length;this.afterWidget=widget}addMark(tile,marks,openStart){this.flushBuffer();let parent=this.ensureMarks(marks,openStart);parent.append(tile);this.pos+=tile.length;this.afterWidget=null}addBlockWidget(widget){this.getBlockPos().append(widget);this.pos+=widget.length;this.lastBlock=widget;this.endLine()}continueWidget(length){let widget=this.afterWidget||this.lastBlock;widget.length+=length;this.pos+=length}addLineStart(attrs,dom){var _a;if(!attrs)attrs=lineBaseAttrs;let tile=LineTile.start(attrs,dom||((_a=this.cache.find(LineTile))===null||_a===void 0?void 0:_a.dom),!!dom);this.getBlockPos().append(this.lastBlock=this.curLine=tile)}addLine(tile){this.getBlockPos().append(tile);this.pos+=tile.length;this.lastBlock=tile;this.endLine()}addBreak(){this.lastBlock.flags|=1;this.endLine();this.pos++}addLineStartIfNotCovered(attrs){if(!this.blockPosCovered())this.addLineStart(attrs)}ensureLine(attrs){if(!this.curLine)this.addLineStart(attrs)}ensureMarks(marks,openStart){var _a;let parent=this.curLine;for(let i=marks.length-1;i>=0;i--){let mark=marks[i],last;if(openStart>0&&(last=parent.lastChild)&&last instanceof MarkTile&&last.mark.eq(mark)){parent=last;openStart--}else{let tile=MarkTile.of(mark,(_a=this.cache.find(MarkTile,m=>m.mark.eq(mark)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile;openStart=0}}return parent}endLine(){if(this.curLine){this.flushBuffer();let last=this.curLine.lastChild;if(!last||!hasContent(this.curLine,false)||last.dom.nodeName!="BR"&&last.isWidget()&&!(browser.ios&&hasContent(this.curLine,true)))this.curLine.append(this.cache.findWidget(BreakWidget,0,32)||new WidgetTile(BreakWidget.toDOM(),0,BreakWidget,32));this.curLine=this.afterWidget=null}}updateBlockWrappers(){if(this.wrapperPos>this.pos+1e4){this.blockWrappers.goto(this.pos);this.wrappers.length=0}for(let i=this.wrappers.length-1;i>=0;i--)if(this.wrappers[i].to<this.pos)this.wrappers.splice(i,1);for(let cur=this.blockWrappers;cur.value&&cur.from<=this.pos;cur.next())if(cur.to>=this.pos){let rank=cur.rank*102+cur.value.rank;let wrap=new OpenWrapper(cur.from,cur.to,cur.value,rank),i=this.wrappers.length;while(i>0&&(this.wrappers[i-1].rank-wrap.rank||this.wrappers[i-1].to-wrap.to)<0)i--;this.wrappers.splice(i,0,wrap)}this.wrapperPos=this.pos}getBlockPos(){var _a;this.updateBlockWrappers();let parent=this.root;for(let wrap of this.wrappers){let last=parent.lastChild;if(wrap.from<this.pos&&last instanceof BlockWrapperTile&&last.wrapper.eq(wrap.wrapper)){parent=last}else{let tile=BlockWrapperTile.of(wrap.wrapper,(_a=this.cache.find(BlockWrapperTile,t=>t.wrapper.eq(wrap.wrapper)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile}}return parent}blockPosCovered(){let last=this.lastBlock;return last!=null&&!last.breakAfter&&(!last.isWidget()||(last.flags&(32|128))>0)}getBuffer(side){let flags=2|(side<0?16:32);let found=this.cache.find(WidgetBufferTile,undefined,1);if(found)found.flags=flags;return found||new WidgetBufferTile(flags)}flushBuffer(){if(this.afterWidget&&!(this.afterWidget.flags&32)){this.afterWidget.parent.append(this.getBuffer(-1));this.afterWidget=null}}}class TextStream{constructor(doc){this.skipCount=0;this.text="";this.textOff=0;this.cursor=doc.iter()}skip(len){if(this.textOff+len<=this.text.length){this.textOff+=len}else{this.skipCount+=len-(this.text.length-this.textOff);this.text="";this.textOff=0}}next(maxLen){if(this.textOff==this.text.length){let{value:value,lineBreak:lineBreak,done:done}=this.cursor.next(this.skipCount);this.skipCount=0;if(done)throw new Error("Ran out of text content when drawing inline views");this.text=value;let len=this.textOff=Math.min(maxLen,value.length);return lineBreak?null:value.slice(0,len)}let end=Math.min(this.text.length,this.textOff+maxLen);let chars=this.text.slice(this.textOff,end);this.textOff=end;return chars}}const buckets=[WidgetTile,LineTile,TextTile,MarkTile,WidgetBufferTile,BlockWrapperTile,DocTile];for(let i=0;i<buckets.length;i++)buckets[i].bucket=i;class TileCache{constructor(view){this.view=view;this.buckets=buckets.map(()=>[]);this.index=buckets.map(()=>0);this.reused=new Map}add(tile){let i=tile.constructor.bucket,bucket=this.buckets[i];if(bucket.length<6)bucket.push(tile);else bucket[this.index[i]=(this.index[i]+1)%6]=tile}find(cls,test,type=2){let i=cls.bucket;let bucket=this.buckets[i],off=this.index[i];for(let j=bucket.length-1;j>=0;j--){let index=(j+off)%bucket.length,tile=bucket[index];if((!test||test(tile))&&!this.reused.has(tile)){bucket.splice(index,1);if(index<off)this.index[i]--;this.reused.set(tile,type);return tile}}return null}findWidget(widget,length,flags){let widgets=this.buckets[0];if(widgets.length)for(let i=0,pass=0;;i++){if(i==widgets.length){if(pass)return null;pass=1;i=0}let tile=widgets[i];if(!this.reused.has(tile)&&(pass==0?tile.widget.compare(widget):tile.widget.constructor==widget.constructor&&widget.updateDOM(tile.dom,this.view,tile.widget))){widgets.splice(i,1);if(i<this.index[0])this.index[0]--;if(tile.widget==widget&&tile.length==length&&(tile.flags&(496|1))==flags){this.reused.set(tile,1);return tile}else{this.reused.set(tile,2);return new WidgetTile(tile.dom,length,widget,tile.flags&-498|flags)}}}}reuse(tile){this.reused.set(tile,1);return tile}maybeReuse(tile,type=2){if(this.reused.has(tile))return undefined;this.reused.set(tile,type);return tile.dom}clear(){for(let i=0;i<this.buckets.length;i++)this.buckets[i].length=this.index[i]=0}}class TileUpdate{constructor(view,old,blockWrappers,decorations,disallowBlockEffectsFor){this.view=view;this.decorations=decorations;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.openWidget=false;this.openMarks=0;this.cache=new TileCache(view);this.text=new TextStream(view.state.doc);this.builder=new TileBuilder(this.cache,new DocTile(view,view.contentDOM),RangeSet.iter(blockWrappers));this.cache.reused.set(old,2);this.old=new TilePointer(old);this.reuseWalker={skip:(tile,from,to)=>{this.cache.add(tile);if(tile.isComposite())return false},enter:tile=>this.cache.add(tile),leave:()=>{},break:()=>{}}}run(changes,composition){let compositionContext=composition&&this.getCompositionContext(composition.text);for(let posA=0,posB=0,i=0;;){let next=i<changes.length?changes[i++]:null;let skipA=next?next.fromA:this.old.root.length;if(skipA>posA){let len=skipA-posA;this.preserve(len,!i,!next);posA=skipA;posB+=len}if(!next)break;if(composition&&next.fromA<=composition.range.fromA&&next.toA>=composition.range.toA){this.forward(next.fromA,composition.range.fromA,composition.range.fromA<composition.range.toA?1:-1);this.emit(posB,composition.range.fromB);this.builder.flushBuffer();this.cache.clear();this.builder.addComposition(composition,compositionContext);this.text.skip(composition.range.toB-composition.range.fromB);this.forward(composition.range.fromA,next.toA);this.emit(composition.range.toB,next.toB)}else{this.forward(next.fromA,next.toA);this.emit(posB,next.toB)}posB=next.toB;posA=next.toA}if(this.builder.curLine)this.builder.endLine();return this.builder.root}preserve(length,incStart,incEnd){let activeMarks=getMarks(this.old),openMarks=this.openMarks;this.old.advance(length,incEnd?1:-1,{skip:(tile,from,to)=>{if(tile.isWidget()){if(this.openWidget){this.builder.continueWidget(to-from)}else{let widget=to>0||from<tile.length?WidgetTile.of(tile.widget,this.view,to-from,tile.flags&496,this.cache.maybeReuse(tile)):this.cache.reuse(tile);if(widget.flags&256){widget.flags&=-2;this.builder.addBlockWidget(widget)}else{this.builder.ensureLine(null);this.builder.addInlineWidget(widget,activeMarks,openMarks);openMarks=activeMarks.length}}}else if(tile.isText()){this.builder.ensureLine(null);if(!from&&to==tile.length&&!this.cache.reused.has(tile)){this.builder.addText(tile.text,activeMarks,openMarks,this.cache.reuse(tile))}else{this.cache.add(tile);this.builder.addText(tile.text.slice(from,to),activeMarks,openMarks)}openMarks=activeMarks.length}else if(tile.isLine()){tile.flags&=-2;this.cache.reused.set(tile,1);this.builder.addLine(tile)}else if(tile instanceof WidgetBufferTile){this.cache.add(tile)}else if(tile instanceof MarkTile){this.builder.ensureLine(null);this.builder.addMark(tile,activeMarks,openMarks);this.cache.reused.set(tile,1);openMarks=activeMarks.length}else{return false}this.openWidget=false},enter:tile=>{if(tile.isLine()){this.builder.addLineStart(tile.attrs,this.cache.maybeReuse(tile))}else{this.cache.add(tile);if(tile instanceof MarkTile)activeMarks.unshift(tile.mark)}this.openWidget=false},leave:tile=>{if(tile.isLine()){if(activeMarks.length)activeMarks.length=openMarks=0}else if(tile instanceof MarkTile){activeMarks.shift();openMarks=Math.min(openMarks,activeMarks.length)}},break:()=>{this.builder.addBreak();this.openWidget=false}});this.text.skip(length)}emit(from,to){let pendingLineAttrs=null;let b=this.builder,markCount=0;let openEnd=RangeSet.spans(this.decorations,from,to,{point:(from,to,deco,active,openStart,index)=>{if(deco instanceof PointDecoration){if(this.disallowBlockEffectsFor[index]){if(deco.block)throw new RangeError("Block decorations may not be specified via plugins");if(to>this.view.state.doc.lineAt(from).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}markCount=active.length;if(openStart>active.length){b.continueWidget(to-from)}else{let widget=deco.widget||(deco.block?NullWidget.block:NullWidget.inline);let flags=widgetFlags(deco);let tile=this.cache.findWidget(widget,to-from,flags)||WidgetTile.of(widget,this.view,to-from,flags);if(deco.block){if(deco.startSide>0)b.addLineStartIfNotCovered(pendingLineAttrs);b.addBlockWidget(tile)}else{b.ensureLine(pendingLineAttrs);b.addInlineWidget(tile,active,openStart)}}pendingLineAttrs=null}else{pendingLineAttrs=addLineDeco(pendingLineAttrs,deco)}if(to>from)this.text.skip(to-from)},span:(from,to,active,openStart)=>{for(let pos=from;pos<to;){let chars=this.text.next(Math.min(512,to-pos));if(chars==null){b.addLineStartIfNotCovered(pendingLineAttrs);b.addBreak();pos++}else{b.ensureLine(pendingLineAttrs);b.addText(chars,active,pos==from?openStart:active.length);pos+=chars.length}pendingLineAttrs=null}}});b.addLineStartIfNotCovered(pendingLineAttrs);this.openWidget=openEnd>markCount;this.openMarks=openEnd}forward(from,to,side=1){if(to-from<=10){this.old.advance(to-from,side,this.reuseWalker)}else{this.old.advance(5,-1,this.reuseWalker);this.old.advance(to-from-10,-1);this.old.advance(5,side,this.reuseWalker)}}getCompositionContext(text){let marks=[],line=null;for(let parent=text.parentNode;;parent=parent.parentNode){let tile=Tile.get(parent);if(parent==this.view.contentDOM)break;if(tile instanceof MarkTile)marks.push(tile);else if(tile===null||tile===void 0?void 0:tile.isLine())line=tile;else if(tile instanceof BlockWrapperTile);else if(parent.nodeName=="DIV"&&!line&&parent!=this.view.contentDOM)line=new LineTile(parent,lineBaseAttrs);else if(!line)marks.push(MarkTile.of(new MarkDecoration({tagName:parent.nodeName.toLowerCase(),attributes:getAttrs(parent)}),parent))}return{line:line,marks:marks}}}function hasContent(tile,requireText){let scan=tile=>{for(let ch of tile.children)if((requireText?ch.isText():ch.length)||scan(ch))return true;return false};return scan(tile)}function widgetFlags(deco){let flags=deco.isReplace?(deco.startSide<0?64:0)|(deco.endSide>0?128:0):deco.startSide>0?32:16;if(deco.block)flags|=256;return flags}const lineBaseAttrs={class:"cm-line"};function addLineDeco(value,deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(!attrs&&!cls)return value;if(!value)value={class:"cm-line"};if(attrs)combineAttrs(attrs,value);if(cls)value.class+=" "+cls;return value}function getMarks(ptr){let found=[];for(let i=ptr.parents.length;i>1;i--){let tile=i==ptr.parents.length?ptr.tile:ptr.parents[i].tile;if(tile instanceof MarkTile)found.push(tile.mark)}return found}function freeNode(node){let tile=Tile.get(node);if(tile)tile.setDOM(node.cloneNode());return node}class NullWidget extends WidgetType{constructor(tag){super();this.tag=tag}eq(other){return other.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag}get isHidden(){return true}}NullWidget.inline=new NullWidget("span");NullWidget.block=new NullWidget("div");const BreakWidget=new class extends WidgetType{toDOM(){return document.createElement("br")}get isHidden(){return true}get editable(){return true}};class DocView{constructor(view){this.view=view;this.decorations=[];this.blockWrappers=[];this.dynamicDecorationMap=[false];this.domChanged=null;this.hasComposition=null;this.editContextFormatting=Decoration.none;this.lastCompositionAfterCursor=false;this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.updateDeco();this.tile=new DocTile(view,view.contentDOM);this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],null)}update(update){var _a;let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA:fromA,toA:toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1)}}this.updateEditContextFormatting(update);let readCompositionAt=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((_a=this.domChanged)===null||_a===void 0?void 0:_a.newSel)readCompositionAt=this.domChanged.newSel.head;else if(!touchesComposition(update.changes,this.hasComposition)&&!update.selectionSet)readCompositionAt=update.state.selection.main.head}let composition=readCompositionAt>-1?findCompositionRange(this.view,update.changes,readCompositionAt):null;this.domChanged=null;if(this.hasComposition){let{from:from,to:to}=this.hasComposition;changedRanges=new ChangedRange(from,to,update.changes.mapPos(from,-1),update.changes.mapPos(to,1)).addToSet(changedRanges.slice())}this.hasComposition=composition?{from:composition.range.fromB,to:composition.range.toB}:null;if((browser.ie||browser.chrome)&&!composition&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,prevWrappers=this.blockWrappers;this.updateDeco();let decoDiff=findChangedDeco(prevDeco,this.decorations,update.changes);if(decoDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);let blockDiff=findChangedWrappers(prevWrappers,this.blockWrappers,update.changes);if(blockDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,blockDiff);if(composition&&!changedRanges.some(r=>r.fromA<=composition.range.fromA&&r.toA>=composition.range.toA))changedRanges=composition.range.addToSet(changedRanges.slice());if(this.tile.flags&2&&changedRanges.length==0){return false}else{this.updateInner(changedRanges,composition);if(update.transactions.length)this.lastUpdate=Date.now();return true}}updateInner(changes,composition){this.view.viewState.mustMeasureContent=true;let{observer:observer}=this.view;observer.ignore(()=>{if(composition||changes.length){let oldTile=this.tile;let builder=new TileUpdate(this.view,oldTile,this.blockWrappers,this.decorations,this.dynamicDecorationMap);if(composition&&Tile.get(composition.text))builder.cache.reused.set(Tile.get(composition.text),2);this.tile=builder.run(changes,composition);destroyDropped(oldTile,builder.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px";this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:undefined;this.tile.sync(track);if(track&&(track.written||observer.selectionRange.focusNode!=track.node||!this.tile.dom.contains(track.node)))this.forceSelection=true;this.tile.dom.style.height=""});let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let child of this.tile.children)if(child.isWidget()&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);observer.updateGaps(gaps)}updateEditContextFormatting(update){this.editContextFormatting=this.editContextFormatting.map(update.changes);for(let tr of update.transactions)for(let effect of tr.effects)if(effect.is(setEditContextFormatting)){this.editContextFormatting=effect.value}}updateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let{dom:dom}=this.tile;let activeElt=this.view.root.activeElement,focused=activeElt==dom;let selectionNotFocus=!focused&&!(this.view.state.facet(editable)||dom.tabIndex>-1)&&hasSelection(dom,this.view.observer.selectionRange)&&!(activeElt&&dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main,anchor,head;if(main.empty){head=anchor=this.inlineDOMNearPos(main.anchor,main.assoc||1)}else{head=this.inlineDOMNearPos(main.head,main.head==main.from?1:-1);anchor=this.inlineDOMNearPos(main.anchor,main.anchor==main.from?1:-1)}if(browser.gecko&&main.empty&&!this.hasComposition&&betweenUneditable(anchor)){let dummy=document.createTextNode("");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||(!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset))&&!this.suppressWidgetCursorChange(domSel,main)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,dom)){dom.blur();dom.focus({preventScroll:true})}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=(nextTo==1?textNodeBefore:textNodeAfter)(anchor.node,anchor.offset);if(text)anchor=new DOMPos(text.node,text.offset)}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&rawSel.caretBidiLevel!==undefined)rawSel.caretBidiLevel=main.bidiLevel}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset)}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range)}if(selectionNotFocus&&this.view.root.activeElement==dom){dom.blur();if(activeElt)activeElt.focus()}});this.view.observer.setSelectionRange(anchor,head)}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset)}suppressWidgetCursorChange(sel,cursor){return this.hasComposition&&cursor.empty&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset)&&this.posFromDOM(sel.focusNode,sel.focusOffset)==cursor.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode:anchorNode,anchorOffset:anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=this.lineAt(cursor.head,cursor.assoc);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc,cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify("move",cursor.assoc<0?"forward":"backward","lineboundary");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset)}posFromDOM(node,offset){let tile=this.tile.nearest(node);if(!tile)return this.tile.dom.compareDocumentPosition(node)&2?0:this.view.state.doc.length;let start=tile.posAtStart;if(tile.isComposite()){let after;if(node==tile.dom){after=tile.dom.childNodes[offset]}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==tile.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1}node=parent}if(bias<0)after=node;else after=node.nextSibling}if(after==tile.dom.firstChild)return start;while(after&&!Tile.get(after))after=after.nextSibling;if(!after)return start+tile.length;for(let i=0,pos=start;;i++){let child=tile.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter}}else if(tile.isText()){return node==tile.dom?start+offset:start+(offset?tile.length:0)}else{return start}}domAtPos(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget())return tile.domPosFor(pos,side);return tile.domIn(offset,side)}inlineDOMNearPos(pos,side){let before,beforeOff=-1,beforeBad=false;let after,afterOff=-1,afterBad=false;this.tile.blockTiles((tile,off)=>{if(tile.isWidget()){if(tile.flags&32&&off>=pos)return true;if(tile.flags&16)beforeBad=true}else{let end=off+tile.length;if(off<=pos){before=tile;beforeOff=pos-off;beforeBad=end<pos}if(end>=pos&&!after){after=tile;afterOff=pos-off;afterBad=off>pos}if(off>pos&&after)return true}});if(!before&&!after)return this.domAtPos(pos,side);if(beforeBad&&after)before=null;else if(afterBad&&before)after=null;return before&&side<0||!after?before.domIn(beforeOff,side):after.domIn(afterOff,side)}coordsAt(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget()){if(tile.widget instanceof BlockGapWidget)return null;return tile.coordsInWidget(offset,side,true)}return tile.coordsIn(offset,side)}lineAt(pos,side){let{tile:tile}=this.tile.resolveBlock(pos,side);return tile.isLine()?tile:null}coordsForChar(pos){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,1);if(!tile.isLine())return null;function scan(tile,offset){if(tile.isComposite()){for(let ch of tile.children){if(ch.length>=offset){let found=scan(ch,offset);if(found)return found}offset-=ch.length;if(offset<0)break}}else if(tile.isText()&&offset<tile.length){let end=findClusterBreak(tile.text,offset);if(end==offset)return null;let rects=textRange(tile.dom,offset,end).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(i==rects.length-1||rect.top<rect.bottom&&rect.left<rect.right)return rect}}return null}return scan(tile,offset)}measureVisibleLineHeights(viewport){let result=[],{from:from,to:to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;let spaceAbove=0;let scan=(tile,pos,measureBounds)=>{for(let i=0;i<tile.children.length;i++){if(pos>to)break;let child=tile.children[i],end=pos+child.length;let childRect=child.dom.getBoundingClientRect(),{height:height}=childRect;if(measureBounds&&!i)spaceAbove+=childRect.top-measureBounds.top;if(child instanceof BlockWrapperTile){if(end>from)scan(child,pos,childRect)}else if(pos>=from){if(spaceAbove>0)result.push(-spaceAbove);result.push(height+spaceAbove);spaceAbove=0;if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end}}}}if(measureBounds&&i==tile.children.length-1)spaceAbove+=measureBounds.bottom-childRect.bottom;pos=end+child.breakAfter}};scan(this.tile,0,null);return result}textDirectionAt(pos){let{tile:tile}=this.tile.resolveBlock(pos,1);return getComputedStyle(tile.dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){let lineMeasure=this.tile.blockTiles(tile=>{if(tile.isLine()&&tile.children.length&&tile.length<=20){let totalWidth=0,textHeight;for(let child of tile.children){if(!child.isText()||/[^ -~]/.test(child.text))return undefined;let rects=clientRectsFor(child.dom);if(rects.length!=1)return undefined;totalWidth+=rects[0].width;textHeight=rects[0].height}if(totalWidth)return{lineHeight:tile.dom.getBoundingClientRect().height,charWidth:totalWidth/tile.length,textHeight:textHeight}}});if(lineMeasure)return lineMeasure;let dummy=document.createElement("div"),lineHeight,charWidth,textHeight;dummy.className="cm-line";dummy.style.width="99999px";dummy.style.position="absolute";dummy.textContent="abc def ghi jkl mno pqr stu";this.view.observer.ignore(()=>{this.tile.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect&&rect.width?rect.width/27:7;textHeight=rect&&rect.height?rect.height:lineHeight;dummy.remove()});return{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.view.state.doc.length;if(end>pos){let height=(vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top)/this.view.scaleY;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end))}if(!next)break;pos=next.to+1}return Decoration.set(deco)}updateDeco(){let i=1;let allDeco=this.view.state.facet(decorations).map(d=>{let dynamic=this.dynamicDecorationMap[i++]=typeof d=="function";return dynamic?d(this.view):d});let dynamicOuter=false,outerDeco=this.view.state.facet(outerDecorations).map((d,i)=>{let dynamic=typeof d=="function";if(dynamic)dynamicOuter=true;return dynamic?d(this.view):d});if(outerDeco.length){this.dynamicDecorationMap[i++]=dynamicOuter;allDeco.push(RangeSet.join(outerDeco))}this.decorations=[this.editContextFormatting,...allDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(i<this.decorations.length)this.dynamicDecorationMap[i++]=false;this.blockWrappers=this.view.state.facet(blockWrappers).map(v=>typeof v=="function"?v(this.view):v)}scrollIntoView(target){var _a;if(target.isSnapshot){let ref=this.view.viewState.lineBlockAt(target.range.head);this.view.scrollDOM.scrollTop=ref.top-target.yMargin;this.view.scrollDOM.scrollLeft=target.xMargin;return}for(let handler of this.view.state.facet(scrollHandler)){try{if(handler(this.view,target.range,target))return true}catch(e){logException(this.view.state,e,"scroll handler")}}let{range:range}=target;let rect=this.coordsAt(range.head,(_a=range.assoc)!==null&&_a!==void 0?_a:range.empty?0:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};let{offsetWidth:offsetWidth,offsetHeight:offsetHeight}=this.view.scrollDOM;scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,Math.max(Math.min(target.xMargin,offsetWidth),-offsetWidth),Math.max(Math.min(target.yMargin,offsetHeight),-offsetHeight),this.view.textDirection==Direction.LTR);if(window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(rect.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||rect.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let line=this.view.docView.lineAt(range.head,1);if(line)line.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(pos){let scan=child=>child.isWidget()||child.children.some(scan);return scan(this.tile.resolveBlock(pos,1).tile)}destroy(){destroyDropped(this.tile)}}function destroyDropped(tile,reused){let r=reused===null||reused===void 0?void 0:reused.get(tile);if(r!=1){if(r==null)tile.destroy();for(let ch of tile.children)destroyDropped(ch,reused)}}function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable=="false")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable=="false")}function findCompositionNode(view,headPos){let sel=view.observer.selectionRange;if(!sel.focusNode)return null;let textBefore=textNodeBefore(sel.focusNode,sel.focusOffset);let textAfter=textNodeAfter(sel.focusNode,sel.focusOffset);let textNode=textBefore||textAfter;if(textAfter&&textBefore&&textAfter.node!=textBefore.node){let tileAfter=Tile.get(textAfter.node);if(!tileAfter||tileAfter.isText()&&tileAfter.text!=textAfter.node.nodeValue){textNode=textAfter}else if(view.docView.lastCompositionAfterCursor){let tileBefore=Tile.get(textBefore.node);if(!(!tileBefore||tileBefore.isText()&&tileBefore.text!=textBefore.node.nodeValue))textNode=textAfter}}view.docView.lastCompositionAfterCursor=textNode!=textBefore;if(!textNode)return null;let from=headPos-textNode.offset;return{from:from,to:from+textNode.node.nodeValue.length,node:textNode.node}}function findCompositionRange(view,changes,headPos){let found=findCompositionNode(view,headPos);if(!found)return null;let{node:textNode,from:from,to:to}=found,text=textNode.nodeValue;if(/[\n\r]/.test(text))return null;if(view.state.doc.sliceString(found.from,found.to)!=text)return null;let inv=changes.invertedDesc;return{range:new ChangedRange(inv.mapPos(from),inv.mapPos(to),from,to),text:textNode}}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable=="false"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable=="false"?2:0)}let DecorationComparator$1=class DecorationComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(from,to){addRange(from,to,this.changes)}boundChange(pos){addRange(pos,pos,this.changes)}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes}class WrapperComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(){}boundChange(pos){addRange(pos,pos,this.changes)}}function findChangedWrappers(a,b,diff){let comp=new WrapperComparator;RangeSet.compare(a,b,diff,comp);return comp.changes}function inUneditable(node,inside){for(let cur=node;cur&&cur!=inside;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable=="false"){return true}}return false}function touchesComposition(changes,composition){let touched=false;if(composition)changes.iterChangedRanges((from,to)=>{if(from<composition.to&&to>composition.from)touched=true});return touched}class BlockGapWidget extends WidgetType{constructor(height){super();this.height=height}toDOM(){let elt=document.createElement("div");elt.className="cm-gap";this.updateDOM(elt);return elt}eq(other){return other.height==this.height}updateDOM(elt){elt.style.height=this.height+"px";return true}get editable(){return true}get estimatedHeight(){return this.height}ignoreEvent(){return false}}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next}return EditorSelection.undirectionalRange(from+line.from,to+line.from)}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let textHeight=view.viewState.heightOracle.textHeight;let line=Math.floor((y-block.top-(view.defaultLineHeight-textHeight)*.5)/textHeight);into+=line*view.viewState.heightOracle.lineLength}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize)}function blockAt(view,pos,side){let line=view.lineBlockAt(pos);if(Array.isArray(line.type)){let best;for(let l of line.type){if(l.from>pos)break;if(l.to<pos)continue;if(l.from<pos&&l.to>pos)return l;if(!best||l.type==BlockType.Text&&(best.type!=l.type||(side<0?l.from<pos:l.to>pos)))best=l}return best||line}return line}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head,start.assoc||-1);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1)}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1)}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char="\n";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=view.visualLineSide(line,!forward)}if(!check){if(!by)return next;check=by(char)}else if(!check(char)){return cur}cur=next}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat}}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos,start.assoc||((start.empty?forward:start.head==start.from)?1:-1));let docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop}let resolvedGoal=rect.left+goal;let halfText=view.viewState.heightOracle.textHeight>>1,dist=distance!==null&&distance!==void 0?distance:halfText;for(let scan=0;;scan+=halfText){let y=startY+(dist+scan)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:y},false,dir);if(forward?y>rect.bottom:y<rect.top)return EditorSelection.cursor(pos.pos,pos.assoc);let posCoords=view.coordsAtPos(pos.pos,pos.assoc),mid=posCoords?(posCoords.top+posCoords.bottom)/2:0;if(!posCoords||(forward?mid>startY:mid<startY))return EditorSelection.cursor(pos.pos,pos.assoc,undefined,goal)}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side}})}if(!moved)return pos}}function skipAtomsForSelection(atoms,sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1)}else{let from=skipAtomicRanges(atoms,range.from,-1);let to=skipAtomicRanges(atoms,range.to,1);if(from!=range.from||to!=range.to){if(range.undirectional)updated=EditorSelection.undirectionalRange(range.from,range.to);else updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to)}}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1)}class PosAssoc{constructor(pos,assoc){this.pos=pos;this.assoc=assoc}}function posAtCoords(view,coords,precise,scanY){let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let{x:x,y:y}=coords,yOffset=y-docTop,block;for(;;){if(yOffset<0)return new PosAssoc(0,1);if(yOffset>view.viewState.docHeight)return new PosAssoc(view.state.doc.length,-1);block=view.elementAtHeight(yOffset);if(scanY==null)break;if(block.type==BlockType.Text){if(scanY<0?block.to<view.viewport.from:block.from>view.viewport.to)break;let rect=view.docView.coordsAt(scanY<0?block.from:block.to,scanY>0?-1:1);if(rect&&(scanY<0?rect.top<=yOffset+docTop:rect.bottom>=yOffset+docTop))break}let halfLine=view.viewState.heightOracle.textHeight/2;yOffset=scanY>0?block.bottom+halfLine:block.top-halfLine}if(view.viewport.from>=block.to||view.viewport.to<=block.from){if(precise)return null;if(block.type==BlockType.Text){let pos=posAtCoordsImprecise(view,content,block,x,y);return new PosAssoc(pos,pos==block.from?1:-1)}}if(block.type!=BlockType.Text)return yOffset<(block.top+block.bottom)/2?new PosAssoc(block.from,1):new PosAssoc(block.to,-1);let line=view.docView.lineAt(block.from,2);if(!line||line.length!=block.length)line=view.docView.lineAt(block.from,-2);return new InlineCoordsScan(view,x,y,view.textDirectionAt(block.from)).scanTile(line,block.from)}class InlineCoordsScan{constructor(view,x,y,baseDir){this.view=view;this.x=x;this.y=y;this.baseDir=baseDir;this.line=null;this.spans=null}bidiSpansAt(pos){if(!this.line||this.line.from>pos||this.line.to<pos){this.line=this.view.state.doc.lineAt(pos);this.spans=this.view.bidiSpans(this.line)}return this}baseDirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);let level=spans[BidiSpan.find(spans,pos-line.from,-1,side)].level;return level==this.baseDir}dirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);return spans[BidiSpan.find(spans,pos-line.from,-1,side)].dir}bidiIn(from,to){let{spans:spans,line:line}=this.bidiSpansAt(from);return spans.length>1||spans.length&&(spans[0].level!=this.baseDir||spans[0].to+line.from<to)}scan(positions,getRects,recursed=false){let lo=0,hi=positions.length-1,seen=new Set;let bidi=this.bidiIn(positions[0],positions[hi]);let above,below;let closestI=-1,closestDx=1e9,closestRect;search:while(lo<hi){let dist=hi-lo,mid=lo+hi>>1;adjust:if(seen.has(mid)){let scan=lo+Math.floor(Math.random()*dist);for(let i=0;i<dist;i++){if(!seen.has(scan)){mid=scan;break adjust}scan++;if(scan==hi)scan=lo}break search}seen.add(mid);let rects=getRects(mid);if(rects)for(let i=0;i<rects.length;i++){let rect=rects[i],side=0;if(rect.width==0&&rects.length>1)continue;if(rect.bottom<this.y){if(!above||above.bottom<rect.bottom)above=rect;side=1}else if(rect.top>this.y){if(!below||below.top>rect.top)below=rect;side=-1}else{let off=rect.left>this.x?this.x-rect.left:rect.right<this.x?this.x-rect.right:0;let dx=Math.abs(off);if(dx<closestDx){closestI=mid;closestDx=dx;closestRect=rect}if(off)side=off<0==(this.baseDir==Direction.LTR)?-1:1}if(side==-1&&(!bidi||this.baseDirAt(positions[mid],1)))hi=mid;else if(side==1&&(!bidi||this.baseDirAt(positions[mid+1],-1)))lo=mid+1}}if(!closestRect){if(!below&&!above)return{i:positions[0],after:false};let side=above&&(!below||this.y-above.bottom<below.top-this.y)?above:below;this.y=(side.top+side.bottom)/2;return this.scan(positions,getRects,true)}if(closestDx&&!recursed){let{top:top,bottom:bottom}=closestRect;if(above&&above.bottom>(top+top+bottom)/3){this.y=above.bottom-1;return this.scan(positions,getRects,true)}if(below&&below.top<(top+bottom+bottom)/3){this.y=below.top+1;return this.scan(positions,getRects,true)}}let ltr=(bidi?this.dirAt(positions[closestI],1):this.baseDir)==Direction.LTR;return{i:closestI,after:this.x>(closestRect.left+closestRect.right)/2==ltr}}scanText(tile,offset){let positions=[];for(let i=0;i<tile.length;i=findClusterBreak(tile.text,i))positions.push(offset+i);positions.push(offset+tile.length);let scan=this.scan(positions,i=>{let off=positions[i]-offset,end=positions[i+1]-offset;return textRange(tile.dom,off,end).getClientRects()});return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(positions[scan.i],1)}scanTile(tile,offset){if(!tile.length)return new PosAssoc(offset,1);if(tile.children.length==1){let child=tile.children[0];if(child.isText())return this.scanText(child,offset);else if(child.isComposite())return this.scanTile(child,offset)}let positions=[offset];for(let i=0,pos=offset;i<tile.children.length;i++)positions.push(pos+=tile.children[i].length);let scan=this.scan(positions,i=>{let child=tile.children[i];if(child.flags&48)return null;return(child.dom.nodeType==1?child.dom:textRange(child.dom,0,child.length)).getClientRects()});let child=tile.children[scan.i],pos=positions[scan.i];if(child.isText())return this.scanText(child,pos);if(child.isComposite())return this.scanTile(child,pos);return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(pos,1)}}const LineBreakPlaceholder="￿";class DOMReader{constructor(points,view){this.points=points;this.view=view;this.text="";this.lineSeparator=view.state.facet(EditorState.lineSeparator)}append(text){this.text+=text}lineBreak(){this.text+=LineBreakPlaceholder}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let tile=Tile.get(cur),next=cur.nextSibling;if(next==end){if((tile===null||tile===void 0?void 0:tile.breakAfter)&&!next&&parent!=this.view.contentDOM)this.lineBreak();break}let nextTile=Tile.get(next);if((tile&&nextTile?tile.breakAfter:(tile?tile.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!="BR"||(tile===null||tile===void 0?void 0:tile.isWidget()))&&this.text.length>oldLen)&&!isEmptyToEnd(next,end))this.lineBreak();cur=next}this.findPointBefore(parent,end);return this}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\r\n?|\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1)for(let point of this.points)if(point.node==node&&point.pos>this.text.length)point.pos-=breakSize-1;off=nextBreak+breakSize}}readNode(node){let tile=Tile.get(node);let fromView=tile&&tile.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value)}}else if(node.nodeType==3){this.readTextNode(node)}else if(node.nodeName=="BR"){if(node.nextSibling)this.lineBreak()}else if(node.nodeType==1){this.readRange(node.firstChild,null)}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length}findPointInside(node,length){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+(isAtEnd(node,point.node,point.offset)?length:0)}}function isAtEnd(parent,node,offset){for(;;){if(!node||offset<maxOffset(node))return false;if(node==parent)return true;offset=domIndex(node)+1;node=node.parentNode}}function isEmptyToEnd(node,end){let widgets;for(;;node=node.nextSibling){if(node==end||!node)break;let view=Tile.get(node);if(!(view===null||view===void 0?void 0:view.isWidget()))return false;if(view)(widgets||(widgets=[])).push(view)}if(widgets)for(let w of widgets){let override=w.overrideDOMText;if(override===null||override===void 0?void 0:override.length)return false}return true}class DOMPoint{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1}}class DOMChange{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text="";this.domChanged=start>-1;let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView,curSel=view.state.selection;if(view.state.readOnly&&start>-1){this.newSel=null}else if(start>-1&&(this.bounds=domBoundsAround(view.docView.tile,start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from)}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?curSel.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?curSel.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);let vp=view.viewport;if((browser.ios||browser.chrome)&&head!=anchor&&Math.min(head,anchor)<=curSel.main.from&&Math.max(head,anchor)>=curSel.main.to&&(vp.from>0||vp.to<view.state.doc.length)){let from=Math.min(head,anchor),to=Math.max(head,anchor);let offFrom=vp.from-from,offTo=vp.to-to;if((offFrom==0||offFrom==1||from==0)&&(offTo==0||offTo==-1||to==view.state.doc.length)){head=0;anchor=view.state.doc.length}}if(view.inputState.composing>-1&&curSel.ranges.length>1){this.newSel=curSel.replaceRange(EditorSelection.range(anchor,head))}else if(view.lineWrapping&&anchor==head&&!(curSel.main.empty&&curSel.main.head==head)&&view.inputState.lastTouchTime>Date.now()-100){let before=view.coordsAtPos(head,-1),assoc=0;if(before)assoc=view.inputState.lastTouchY<=before.bottom?-1:1;this.newSel=EditorSelection.create([EditorSelection.cursor(head,assoc)])}else{this.newSel=EditorSelection.single(anchor,head)}}}}function domBoundsAround(tile,from,to,offset){if(tile.isComposite()){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<tile.children.length;i++){let child=tile.children[i],end=pos+child.length;if(pos<from&&end>to)return domBoundsAround(child,from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos}if(pos>to&&child.dom.parentNode==tile.dom){toI=i;toEnd=prevEnd;break}prevEnd=end;pos=end+child.breakAfter}return{from:fromStart,to:toEnd<0?offset+tile.length:toEnd,startDOM:(fromI?tile.children[fromI-1].dom.nextSibling:null)||tile.dom.firstChild,endDOM:toI<tile.children.length&&toI>=0?tile.children[toI].dom:null}}else if(tile.isText()){return{from:offset,to:offset+tile.length,startDOM:tile.dom,endDOM:tile.dom.nextSibling}}else{return null}}function applyDOMChange(view,domChange){let change;let{newSel:newSel}=domChange,{state:state}=view,sel=state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from:from,to:to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide="end"}let cmp=state.doc.sliceString(from,to,LineBreakPlaceholder),selEnd,diff;if(!sel.empty&&sel.from>=from&&sel.to<=to&&(domChange.typeOver||cmp!=domChange.text)&&cmp.slice(0,sel.from-from)==domChange.text.slice(0,sel.from-from)&&cmp.slice(sel.to-from)==domChange.text.slice(selEnd=domChange.text.length-(cmp.length-(sel.to-from)))){change={from:sel.from,to:sel.to,insert:Text.of(domChange.text.slice(sel.from-from,selEnd).split(LineBreakPlaceholder))}}else if(diff=findDiff(cmp,domChange.text,preferredPos-from,preferredSide)){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))}}}else if(newSel&&(!view.hasFocus&&state.facet(editable)||sameSelPos(newSel,sel))){newSel=null}if(!change&&!newSel)return false;if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute("autocorrect")=="off"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:change.from,to:change.to,insert:Text.of([change.insert.toString().replace("."," ")])}}else if(state.doc.lineAt(sel.from).to<sel.to&&view.docView.lineHasWidget(sel.to)&&view.inputState.insertingTextAt>Date.now()-50){change={from:sel.from,to:sel.to,insert:state.toText(view.inputState.insertingText)}}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()=="\n "&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([" "])}}if(change){return applyDOMChangeInner(view,change,newSel,lastKey)}else if(newSel&&!sameSelPos(newSel,sel)){let scrollIntoView=false,userEvent="select";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin=="select")scrollIntoView=true;userEvent=view.inputState.lastSelectionOrigin;if(userEvent=="select.pointer")newSel=skipAtomsForSelection(state.facet(atomicRanges).map(f=>f(view)),newSel)}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView,userEvent:userEvent});return true}else{return false}}function applyDOMChangeInner(view,change,newSel,lastKey=-1){if(browser.ios&&view.inputState.flushIOSKey(change))return true;let sel=view.state.selection.main;if(browser.android&&(change.to==sel.to&&(change.from==sel.from||change.from==sel.from-1&&view.state.sliceDoc(change.from,sel.from)==" ")&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,"Enter",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from&&change.to>sel.head)&&dispatchKey(view.contentDOM,"Backspace",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,"Delete",46)))return true;let text=change.insert.toString();if(view.inputState.composing>=0)view.inputState.composing++;let defaultTr;let defaultInsert=()=>defaultTr||(defaultTr=applyDefaultInsert(view,change,newSel));if(!view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text,defaultInsert)))view.dispatch(defaultInsert());return true}function applyDefaultInsert(view,change,newSel){let tr,startState=view.state,sel=startState.selection.main,inAtomic=-1;if(change.from==change.to&&change.from<sel.from||change.from>sel.to){let side=change.from<sel.from?-1:1,pos=side<0?sel.from:sel.to;let moved=skipAtomicRanges(startState.facet(atomicRanges).map(f=>f(view)),pos,side);if(change.from==moved)inAtomic=moved}if(inAtomic>-1){tr={changes:change,selection:EditorSelection.cursor(change.from+change.insert.length,-1)}}else if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):"";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):"";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,undefined,view.state.lineBreak)+after))}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:undefined;if(startState.selection.ranges.length>1&&(view.inputState.composing>=0||view.inputState.compositionPendingChange)&&change.to<=sel.to+10&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange,composition=newSel&&findCompositionNode(view,newSel.main.head);if(composition){let dLen=change.insert.length-(change.to-change.from);compositionRange={from:composition.from,to:composition.to-dLen}}else{compositionRange=view.state.doc.lineAt(sel.head)}let offset=sel.to-change.to;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes:changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(view.state.sliceDoc(from,to)!=replaced||to>=compositionRange.from&&from<=compositionRange.to)return{range:range};let rangeChanges=startState.changes({from:from,to:to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))}})}else{tr={changes:changes,selection:mainSel&&startState.selection.replaceRange(mainSel)}}}let userEvent="input.type";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=".compose";if(view.inputState.compositionFirstChange){userEvent+=".start";view.inputState.compositionFirstChange=false}}return startState.update(tr,{userEvent:userEvent,scrollIntoView:true})}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--}if(preferredSide=="end"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from}else if(toB<from){let move=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move;toA=from+(toA-toB);toB=from}return{from:from,toA:toA,toB:toB}}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset))}return result}function selectionFromPoints(points,base){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base,head+base):null}function sameSelPos(selection,range){return range.head==selection.main.head&&range.anchor==selection.main.anchor}class InputState{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now()}constructor(view){this.view=view;this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastTouchX=0;this.lastTouchY=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.lastWheelEvent=0;this.pendingIOSKey=undefined;this.tabFocusMode=-1;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastContextMenu=0;this.scrollHandlers=[];this.handlers=Object.create(null);this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.insertingText="";this.insertingTextAt=0;this.mouseSelection=null;this.draggedContent=null;this.handleEvent=this.handleEvent.bind(this);this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener("input",()=>null);if(browser.gecko)firefoxCopyCutHack(view.contentDOM.ownerDocument)}handleEvent(event){if(!eventBelongsToEditor(this.view,event)||this.ignoreDuringComposition(event))return;if(event.type=="keydown"&&this.keydown(event))return;if(this.view.updateState!=0)Promise.resolve().then(()=>this.runHandlers(event.type,event));else this.runHandlers(event.type,event)}runHandlers(type,event){let handlers=this.handlers[type];if(handlers){for(let observer of handlers.observers)observer(this.view,event);for(let handler of handlers.handlers){if(event.defaultPrevented)break;if(handler(this.view,event)){event.preventDefault();break}}}}ensureHandlers(plugins){let handlers=computeHandlers(plugins),prev=this.handlers,dom=this.view.contentDOM;for(let type in handlers)if(type!="scroll"){let passive=!handlers[type].handlers.length;let exists=prev[type];if(exists&&passive!=!exists.handlers.length){dom.removeEventListener(type,this.handleEvent);exists=null}if(!exists)dom.addEventListener(type,this.handleEvent,{passive:passive})}for(let type in prev)if(type!="scroll"&&!handlers[type])dom.removeEventListener(type,this.handleEvent);this.handlers=handlers}keydown(event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return true;if(this.tabFocusMode>0&&event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)this.tabFocusMode=-1;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){this.view.observer.delayAndroidKey(event.key,event.keyCode);return true}if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&(PendingKeys.some(key=>key.keyCode==event.keyCode)&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey)){let mods={ctrlKey:event.ctrlKey,altKey:event.altKey,metaKey:event.metaKey,shiftKey:event.shiftKey};if(mods.shiftKey&&browser.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&iosVirtualKeyboardOpen(this.view.win))mods.shiftKey=false;this.pendingIOSKey={key:event.key,keyCode:event.keyCode,mods:mods};setTimeout(()=>this.flushIOSKey(),250);return true}if(event.keyCode!=229)this.view.observer.forceFlush();return false}flushIOSKey(change){let key=this.pendingIOSKey;if(!key)return false;if(key.key=="Enter"&&change&&change.from<change.to&&/^\S+$/.test(change.insert.toString()))return false;this.pendingIOSKey=undefined;return dispatchKey(this.view.contentDOM,key.key,key.keyCode,key.mods)}ignoreDuringComposition(event){if(!/^key/.test(event.type)||event.synthetic)return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true}return false}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection}update(update){this.view.observer.update(update);if(this.mouseSelection)this.mouseSelection.update(update);if(this.draggedContent&&update.docChanged)this.draggedContent=this.draggedContent.map(update.changes);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0}destroy(){if(this.mouseSelection)this.mouseSelection.destroy()}}function iosVirtualKeyboardOpen(win){if(!win.visualViewport)return false;return win.visualViewport.height*win.visualViewport.scale/win.document.documentElement.clientHeight<.85}function bindHandler(plugin,handler){return(view,event)=>{try{return handler.call(plugin,event,view)}catch(e){logException(view.state,e)}}}function computeHandlers(plugins){let result=Object.create(null);function record(type){return result[type]||(result[type]={observers:[],handlers:[]})}for(let plugin of plugins){let spec=plugin.spec,handlers=spec&&spec.plugin.domEventHandlers,observers=spec&&spec.plugin.domEventObservers;if(handlers)for(let type in handlers){let f=handlers[type];if(f)record(type).handlers.push(bindHandler(plugin.value,f))}if(observers)for(let type in observers){let f=observers[type];if(f)record(type).observers.push(bindHandler(plugin.value,f))}}for(let type in handlers)record(type).handlers.push(handlers[type]);for(let type in observers)record(type).observers.push(observers[type]);return result}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}];const EmacsyPendingKeys="dthko";const modifierCodes=[16,17,18,20,91,92,224,225];const dragScrollMargin=6;function dragScrollSpeed(dist){return Math.max(0,dist)*.7+8}function dist(a,b){return Math.max(Math.abs(a.clientX-b.clientX),Math.abs(a.clientY-b.clientY))}class MouseSelection{constructor(view,startEvent,style,mustSelect){this.view=view;this.startEvent=startEvent;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParents=scrollableParents(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc=view.contentDOM.ownerDocument;doc.addEventListener("mousemove",this.move=this.move.bind(this));doc.addEventListener("mouseup",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false}start(event){if(this.dragging===false)this.select(event)}move(event){if(event.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,event)<10)return;this.select(this.lastEvent=event);let sx=0,sy=0;let left=0,top=0,right=this.view.win.innerWidth,bottom=this.view.win.innerHeight;if(this.scrollParents.x)({left:left,right:right}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:top,bottom:bottom}=this.scrollParents.y.getBoundingClientRect());let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=left+dragScrollMargin)sx=-dragScrollSpeed(left-event.clientX);else if(event.clientX+margins.right>=right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-right);if(event.clientY-margins.top<=top+dragScrollMargin)sy=-dragScrollSpeed(top-event.clientY);else if(event.clientY+margins.bottom>=bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-bottom);this.setScrollSpeed(sx,sy)}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy()}destroy(){this.setScrollSpeed(0,0);let doc=this.view.contentDOM.ownerDocument;doc.removeEventListener("mousemove",this.move);doc.removeEventListener("mouseup",this.up);this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50)}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1}}scroll(){let{x:x,y:y}=this.scrollSpeed;if(x&&this.scrollParents.x){this.scrollParents.x.scrollLeft+=x;x=0}if(y&&this.scrollParents.y){this.scrollParents.y.scrollTop+=y;y=0}if(x||y)this.view.win.scrollBy(x,y);if(this.dragging===false)this.select(this.lastEvent)}select(event){let{view:view}=this,selection=skipAtomsForSelection(this.atoms,this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection,this.dragging===false))this.view.dispatch({selection:selection,userEvent:"select.pointer"});this.mustSelect=false}update(update){if(update.transactions.some(tr=>tr.isUserEvent("input.type")))this.destroy();else if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey}function isInPrimarySelection(view,event){let{main:main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true}return false}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,tile;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(tile=Tile.get(node))&&tile.isWidget()&&!tile.isHidden&&tile.widget.ignoreEvent(event))return false;return true}const handlers=Object.create(null);const observers=Object.create(null);const brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value)},50)}function textFilter(state,facet,text){for(let filter of state.facet(facet))text=filter(text,state);return text}function doPaste(view,input){input=textFilter(view.state,clipboardInputFilter,input);let{state:state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range:range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert:insert},range:EditorSelection.cursor(range.from+insert.length)}})}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)}})}else{changes=state.replaceSelection(text)}view.dispatch(changes,{userEvent:"input.paste",scrollIntoView:true})}observers.scroll=view=>{view.inputState.lastScrollTop=view.scrollDOM.scrollTop;view.inputState.lastScrollLeft=view.scrollDOM.scrollLeft};observers.wheel=observers.mousewheel=view=>{view.inputState.lastWheelEvent=Date.now()};handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin("select");if(event.keyCode==27&&view.inputState.tabFocusMode!=0)view.inputState.tabFocusMode=Date.now()+2e3;return false};observers.touchstart=(view,e)=>{let iState=view.inputState,touch=e.targetTouches[0];iState.lastTouchTime=Date.now();if(touch){iState.lastTouchX=touch.clientX;iState.lastTouchY=touch.clientY}iState.setSelectionOrigin("select.pointer")};observers.touchmove=view=>{view.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return false;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=!view.hasFocus;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>{focusPreventScroll(view.contentDOM);let active=view.root.activeElement;if(active&&!active.contains(view.contentDOM))active.blur()});let mouseSel=view.inputState.mouseSelection;if(mouseSel){mouseSel.start(event);return mouseSel.dragging===false}}else{view.inputState.setSelectionOrigin("select.pointer")}return false};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias)}else if(type==2){return groupAt(view.state,pos,bias)}else{let visual=view.docView.lineAt(pos,bias),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.undirectionalRange(from,to)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(view,event){let start=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes)}},get(event,extend,multiple){let cur=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),removed;let range=rangeForClick(view,cur.pos,cur.assoc,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.assoc,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to,range.assoc):EditorSelection.range(to,from,range.assoc)}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to,range.assoc));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range])}}}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from:from,to:to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0))}return null}handlers.dragstart=(view,event)=>{let{selection:{main:range}}=view.state;if(event.target.draggable){let tile=view.docView.tile.nearest(event.target);if(tile&&tile.isWidget()){let from=tile.posAtStart,to=from+tile.length;if(from>=range.to||to<=range.from)range=EditorSelection.undirectionalRange(from,to)}}let{inputState:inputState}=view;if(inputState.mouseSelection)inputState.mouseSelection.dragging=true;inputState.draggedContent=range;if(event.dataTransfer){event.dataTransfer.setData("Text",textFilter(view.state,clipboardOutputFilter,view.state.sliceDoc(range.from,range.to)));event.dataTransfer.effectAllowed="copyMove"}return false};handlers.dragend=view=>{view.inputState.draggedContent=null;return false};function dropText(view,event,text,direct){text=textFilter(view.state,clipboardInputFilter,text);if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);let{draggedContent:draggedContent}=view.inputState;let del=direct&&draggedContent&&dragMovesSelection(view,event)?{from:draggedContent.from,to:draggedContent.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes:changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?"move.drop":"input.drop"});view.inputState.draggedContent=null}handlers.drop=(view,event)=>{if(!event.dataTransfer)return false;if(view.state.readOnly)return true;let files=event.dataTransfer.files;if(files&&files.length){let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false)};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\x00-\x08\x0e-\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile()};reader.readAsText(files[i])}return true}else{let text=event.dataTransfer.getData("Text");if(text){dropText(view,event,text,true);return true}}return false};handlers.paste=(view,event)=>{if(view.state.readOnly)return true;view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData("text/plain")||data.getData("text/uri-list"));return true}else{capturePaste(view);return false}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus()},50)}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range)}if(!content.length){let upto=-1;for(let{from:from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)})}upto=line.number}linewise=true}return{text:textFilter(state,clipboardOutputFilter,content.join(state.lineBreak)),ranges:ranges,linewise:linewise}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{if(!hasSelection(view.contentDOM,view.observer.selectionRange))return false;let{text:text,ranges:ranges,linewise:linewise}=copiedRange(view.state);if(!text&&!linewise)return false;lastLinewiseCopy=linewise?text:null;if(event.type=="cut"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:"delete.cut"});let data=brokenClipboardAPI?null:event.clipboardData;if(data){data.clearData();data.setData("text/plain",text);return true}else{captureCopy(view,text);return false}};const isFocusChange=Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect)}return effects.length?state.update({effects:effects,annotations:isFocusChange.of(true)}):null}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([])}},10)}observers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft}updateForFocusChange(view)};observers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view)};observers.compositionstart=observers.compositionupdate=view=>{if(view.observer.editContext)return;if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0}};observers.compositionend=view=>{if(view.observer.editContext)return;view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon()}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush())}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.hasComposition)view.update([])},50)}};observers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(view,event)=>{var _a,_b;if(event.inputType=="insertText"||event.inputType=="insertCompositionText"){view.inputState.insertingText=event.data;view.inputState.insertingTextAt=Date.now()}if(event.inputType=="insertReplacementText"&&view.observer.editContext){let text=(_a=event.dataTransfer)===null||_a===void 0?void 0:_a.getData("text/plain"),ranges=event.getTargetRanges();if(text&&ranges.length){let r=ranges[0];let from=view.posAtDOM(r.startContainer,r.startOffset),to=view.posAtDOM(r.endContainer,r.endOffset);applyDOMChangeInner(view,{from:from,to:to,insert:view.state.toText(text)},null);return true}}let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key=="Backspace"||pending.key=="Delete"){let startViewHeight=((_b=window.visualViewport)===null||_b===void 0?void 0:_b.height)||0;setTimeout(()=>{var _a;if((((_a=window.visualViewport)===null||_a===void 0?void 0:_a.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus()}},100)}}if(browser.ios&&event.inputType=="deleteContentForward"){view.observer.flushSoon()}if(browser.safari&&event.inputType=="insertText"&&view.inputState.composing>=0){setTimeout(()=>observers.compositionend(view,event),20)}return false};const appliedFirefoxHack=new Set;function firefoxCopyCutHack(doc){if(!appliedFirefoxHack.has(doc)){appliedFirefoxHack.add(doc);doc.addEventListener("copy",()=>{});doc.addEventListener("cut",()=>{})}}const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];let heightChangeFlag=false;function clearHeightChangeFlag(){heightChangeFlag=false}class HeightOracle{constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30}heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/Math.max(1,this.lineLength-5)));return lines*this.lineHeight}setDoc(doc){this.doc=doc;return this}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true}}return newHeight}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.abs(lineHeight-this.lineHeight)>.3||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true}}return changed}}class MeasuredHeights{constructor(from,heights){this.from=from;this.heights=heights;this.index=0}get more(){return this.index<this.heights.length}}class BlockInfo{constructor(from,length,top,height,_content){this.from=from;this.length=length;this.top=top;this.height=height;this._content=_content}get type(){return typeof this._content=="number"?BlockType.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 PointDecoration?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content)}}var QueryType=function(QueryType){QueryType[QueryType["ByPos"]=0]="ByPos";QueryType[QueryType["ByHeight"]=1]="ByHeight";QueryType[QueryType["ByPosNoHeight"]=2]="ByPosNoHeight";return QueryType}(QueryType||(QueryType={}));const Epsilon=.001;class HeightMap{constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags}get outdated(){return(this.flags&2)>0}set outdated(value){this.flags=(value?2:0)|this.flags&-3}setHeight(height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)heightChangeFlag=true;this.height=height}}replace(_from,_to,nodes){return HeightMap.of(nodes)}decomposeLeft(_to,result){result.push(this)}decomposeRight(_from,result){result.push(this)}applyChanges(decorations,oldDoc,oracle,changes){let me=this,doc=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA:fromA,toA:toA,fromB:fromB,toB:toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0)}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc),decorations,fromB,toB);me=replace(me,me.replace(fromA,toA,nodes))}return me.updateHeight(oracle,0)}static empty(){return new HeightMapText(0,0,0)}static of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size}else if(after>before*2){let split=nodes[j];if(split.break)nodes.splice(j,1,split.left,null,split.right);else nodes.splice(j,1,split.left,split.right);j+=2+split.break;after-=split.size}else{break}}else if(before<after){let next=nodes[i++];if(next)before+=next.size}else{let next=nodes[--j];if(next)after+=next.size}}let brk=0;if(nodes[i-1]==null){brk=1;i--}else if(nodes[i]==null){brk=1;j++}return new HeightMapBranch(HeightMap.of(nodes.slice(0,i)),brk,HeightMap.of(nodes.slice(j)))}}function replace(old,val){if(old==val)return old;if(old.constructor!=val.constructor)heightChangeFlag=true;return val}HeightMap.prototype.size=1;const SpaceDeco=Decoration.replace({});class HeightMapBlock extends HeightMap{constructor(length,height,deco){super(length,height);this.deco=deco;this.spaceAbove=0}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(height,_oracle,top,offset){return this.spaceAbove&&height<top+this.spaceAbove?new BlockInfo(offset,0,top,this.spaceAbove,SpaceDeco):this.mainBlock(top,offset)}lineAt(_value,_type,oracle,top,offset){let main=this.mainBlock(top,offset);return this.spaceAbove?this.blockAt(0,oracle,top,offset).join(main):main}forEachLine(from,to,oracle,top,offset,f){if(from<=offset+this.length&&to>=offset)f(this.lineAt(0,QueryType.ByPos,oracle,top,offset))}setMeasuredHeight(measured){let next=measured.heights[measured.index++];if(next<0){this.spaceAbove=-next;next=measured.heights[measured.index++]}else{this.spaceAbove=0}this.setHeight(next)}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setMeasuredHeight(measured);this.outdated=false;return this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(length,height,above){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;this.spaceAbove=above}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new HeightMapText(node.length,this.height,this.spaceAbove);else node.height=this.height;if(!this.outdated)node.outdated=false;return node}else{return HeightMap.of(nodes)}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more){this.setMeasuredHeight(measured)}else if(force||this.outdated){this.spaceAbove=0;this.setHeight(Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight)}this.outdated=false;return this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(length){super(length,0)}heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1)}else{perLine=this.height/lines}return{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}}blockAt(height,oracle,top,offset){let{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+(height<oracle.lineHeight?0:Math.round(Math.max(0,Math.min(1,(height-top)/this.height))*this.length));let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0)}else{let line=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top)/perLine)));let{from:from,length:length}=oracle.doc.line(firstLine+line);return new BlockInfo(from,length,top+perLine*line,perLine,0)}}lineAt(value,type,oracle,top,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top,offset);if(type==QueryType.ByPosNoHeight){let{from:from,to:to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0)}let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top,Math.min(lineTop,top+this.height-lineHeight)),lineHeight,0)}forEachLine(from,to,oracle,top,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove)}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof HeightMapGap)nodes[nodes.length-1]=new HeightMapGap(last.length+after);else nodes.push(null,new HeightMapGap(after-1))}if(from>0){let first=nodes[0];if(first instanceof HeightMapGap)nodes[0]=new HeightMapGap(from+first.length);else nodes.unshift(new HeightMapGap(from-1),null)}return HeightMap.of(nodes)}decomposeLeft(to,result){result.push(new HeightMapGap(to-1),null)}decomposeRight(from,result){result.push(null,new HeightMapGap(this.length-from-1))}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++],above=0;if(height<0){above=-height;height=measured.heights[measured.index++]}if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height,above);line.outdated=false;nodes.push(line);pos+=len+1}if(pos<=end)nodes.push(null,new HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)heightChangeFlag=true;return replace(this,result)}else if(force||this.outdated){this.setHeight(oracle.heightForGap(offset,offset+this.length));this.outdated=false}return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size}get break(){return this.flags&1}blockAt(height,oracle,top,offset){let mid=top+this.left.height;return height<mid?this.left.blockAt(height,oracle,top,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break)}lineAt(value,type,oracle,top,offset){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base=left?this.left.lineAt(value,type,oracle,top,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base.to<rightOffset:base.from>rightOffset))return base;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top,offset).join(base)}forEachLine(from,to,oracle,top,offset,f){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f)}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f)}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right)}return HeightMap.of(result)}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null)}if(to>left)this.right.decomposeLeft(to-left,result)}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right)}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=replace(this.left,left);this.right=replace(this.right,right);this.setHeight(left.height+right.height);this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this}updateHeight(oracle,offset=0,force=false,measured){let{left:left,right:right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1,0));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1}}this.pos=to}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco))}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len)}}else if(to>from){this.span(from,to)}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to}enterLine(){if(this.lineStart>-1)return;let{from:from,to:to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null)}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1,0));this.writtenTo=this.pos}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1,0);this.nodes.push(line);return line}addBlock(block){this.enterLine();let deco=block.deco;if(deco&&deco.startSide>0&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(deco&&deco.endSide>0)this.covering=block}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1,0));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1}return this.nodes}static build(oracle,decorations,from,to){let builder=new NodeBuilder(from,oracle);RangeSet.spans(decorations,from,to,builder,0);return builder.finish(from)}}function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator;RangeSet.compare(a,b,diff,comp,0);return comp.changes}class DecorationComparator{constructor(){this.changes=[]}compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5)}}function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc=dom.ownerDocument,win=doc.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!="visible"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top=Math.max(top,parentRect.top);bottom=Math.min(parent==dom.parentNode?win.innerHeight:bottom,parentRect.bottom)}parent=style.position=="absolute"||style.position=="fixed"?elt.offsetParent:elt.parentNode}else if(parent.nodeType==11){parent=parent.host}else{break}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top-(rect.top+paddingTop),bottom:Math.max(top,bottom)-(rect.top+paddingTop)}}function inWindow(elt){let rect=elt.getBoundingClientRect(),win=elt.ownerDocument.defaultView||window;return rect.left<win.innerWidth&&rect.right>0&&rect.top<win.innerHeight&&rect.bottom>0}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)}}class LineGap{constructor(from,to,size,displaySize){this.from=from;this.to=to;this.size=size;this.displaySize=displaySize}static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false}return true}draw(viewState,wrapping){return Decoration.replace({widget:new LineGapWidget(this.displaySize*(wrapping?viewState.scaleY:viewState.scaleX),wrapping)}).range(this.from,this.to)}}class LineGapWidget extends WidgetType{constructor(size,vertical){super();this.size=size;this.vertical=vertical}eq(other){return other.size==this.size&&other.vertical==this.vertical}toDOM(){let elt=document.createElement("div");if(this.vertical){elt.style.height=this.size+"px"}else{elt.style.width=this.size+"px";elt.style.height="2px";elt.style.display="inline-block"}return elt}get estimatedHeight(){return this.vertical?this.size:-1}}class ViewState{constructor(view,state){this.view=view;this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scaleX=1;this.scaleY=1;this.scrollOffset=0;this.scrolledToBottom=false;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!="function"&&v.class=="cm-lineWrapping");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=staticDeco(state);this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);for(let i=0;i<2;i++){this.viewport=this.getViewport(0,null);if(!this.updateForViewport())break}this.updateViewportLines();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(this,false)));this.scrollParent=view.scrollDOM;this.computeVisibleRanges()}updateForViewport(){let viewports=[this.viewport],{main:main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from:from,to:to})=>pos>=from&&pos<=to)){let{from:from,to:to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to))}}this.viewports=viewports.sort((a,b)=>a.from-b.from);return this.updateScaler()}updateScaler(){let scaler=this.scaler;this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);return scaler.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(scaleBlock(block,this.scaler))})}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=staticDeco(this.state);let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);clearHeightChangeFlag();this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight||heightChangeFlag)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=prevHeight}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let viewportChange=viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;update.flags|=this.updateForViewport();if(viewportChange||!update.changes.empty||update.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges(update.changes);if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&(update.selectionSet||update.focusChanged)&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true}measure(){let{view:view}=this,dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction=="rtl"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace)||this.mustMeasureContent==="refresh";let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;if(domRect.width&&domRect.height){let{scaleX:scaleX,scaleY:scaleY}=getScale(dom,domRect);if(scaleX>.005&&Math.abs(this.scaleX-scaleX)>.005||scaleY>.005&&Math.abs(this.scaleY-scaleY)>.005){this.scaleX=scaleX;this.scaleY=scaleY;result|=16;refresh=measureContent=true}}let paddingTop=(parseInt(style.paddingTop)||0)*this.scaleY;let paddingBottom=(parseInt(style.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=16|2}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=16}let scrollParent=scrollableParents(this.view.contentDOM,false).y;if(scrollParent!=this.scrollParent){this.scrollParent=scrollParent;this.scrollAnchorHeight=-1;this.scrollOffset=0}let scrollOffset=this.getScrollOffset();if(this.scrollOffset!=scrollOffset){this.scrollAnchorHeight=-1;this.scrollOffset=scrollOffset}this.scrolledToBottom=isScrolledToBottom(this.scrollParent||view.win);let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true}if(!this.inView&&!this.scrollTarget&&!inWindow(view.dom))return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=16}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,Math.max(5,contentWidth/charWidth),lineHeights);if(refresh){view.docView.minWidth=0;result|=16}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);clearHeightChangeFlag();for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights))}if(heightChangeFlag)result|=2}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange){if(result&2)result|=this.updateScaler();this.viewport=this.getViewport(bias,this.scrollTarget);result|=this.updateForViewport()}if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc()}return result}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head:head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y=="center")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y=="start"||scrollTarget.y=="nearest"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to)}}return viewport}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:from,to:to},bias=0){if(!this.inView)return true;let{top:top}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom:bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;return(from==0||top<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&(top>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3)}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size,gap.displaySize));return mapped}ensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return}}let gap=find(current,gap=>gap.from>=line.from&&gap.to<=line.to&&Math.abs(gap.from-from)<halfMargin&&Math.abs(gap.to-to)<halfMargin&&!avoid.some(pos=>gap.from<pos&&gap.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart}let size=this.gapSize(line,from,to,structure);let displaySize=wrapping||size<2e6?size:2e6;gap=new LineGap(from,to,size,displaySize)}gaps.push(gap)};let checkLine=line=>{if(line.length<doubleMargin||line.type!=BlockType.Text)return;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)return;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top=targetFrac-spaceFrac;bot=targetFrac+spaceFrac}else{top=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height}viewFrom=findPosition(structure,top);viewTo=findPosition(structure,bot)}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let horizOffset=0;if(totalWidth>2e6)for(let old of current){if(old.from>=line.from&&old.from<line.to&&old.size!=old.displaySize&&old.from*this.heightOracle.charWidth+horizOffset<this.pixelViewport.left)horizOffset=old.size-old.displaySize}let pxLeft=this.pixelViewport.left+horizOffset,pxRight=this.pixelViewport.right+horizOffset;let left,right;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((pxRight-pxLeft)/2+marginWidth)/totalWidth;left=targetFrac-spaceFrac;right=targetFrac+spaceFrac}else{left=(pxLeft-marginWidth)/totalWidth;right=(pxRight+marginWidth)/totalWidth}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right)}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure)};for(let line of this.viewportLines){if(Array.isArray(line.type))line.type.forEach(checkLine);else checkLine(line)}return gaps}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction}else{return structure.total*this.heightOracle.charWidth*fraction}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this,this.heightOracle.lineWrapping)))}}computeVisibleRanges(changes){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from:from,to:to})},point(){}},20);let changed=0;if(ranges.length!=this.visibleRanges.length){changed=8|4}else{for(let i=0;i<ranges.length&&!(changed&8);i++){let old=this.visibleRanges[i],nw=ranges[i];if(old.from!=nw.from||old.to!=nw.to){changed|=4;if(!(changes&&changes.mapPos(old.from,-1)==nw.from&&changes.mapPos(old.to,1)==nw.to))changed|=8}}}this.visibleRanges=ranges;return changed}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(height){return height>=this.viewportLines[0].top&&height<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(l=>l.top<=height&&l.bottom>=height)||scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){let base=this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top;return base*this.scaleY}scrollAnchorAt(scrollOffset){let block=this.lineBlockAtHeight(scrollOffset+8);return block.from>=this.viewport.from||this.viewportLines[0].top-scrollOffset>200?block:this.viewportLines[0]}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(from,to){this.from=from;this.to=to}}function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from,to){if(from>pos){ranges.push({from:pos,to:from});total+=from-pos}pos=to}},20);if(pos<to){ranges.push({from:pos,to:to});total+=to-pos}return{total:total,ranges:ranges}}function findPosition({total:total,ranges:ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist=Math.floor(total*ratio);for(let i=0;;i++){let{from:from,to:to}=ranges[i],size=to-from;if(dist<=size)return from+dist;dist-=size}}function findFraction(structure,pos){let counted=0;for(let{from:from,to:to}of structure.ranges){if(pos<=to){counted+=pos-from;break}counted+=to-from}return counted/structure.total}function find(array,f){for(let val of array)if(f(val))return val;return undefined}const IdScaler={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(other){return other==this}};function staticDeco(state){let deco=state.facet(decorations).filter(d=>typeof d!="function");let outer=state.facet(outerDecorations).filter(d=>typeof d!="function");if(outer.length)deco.push(RangeSet.join(outer));return deco}class BigScaler{constructor(oracle,heightMap,viewports){let vpHeight=0,base=0,domBase=0;this.viewports=viewports.map(({from:from,to:to})=>{let top=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top;return{from:from,to:to,top:top,bottom:bottom,domTop:0,domBottom:0}});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base=obj.bottom}}toDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base=vp.bottom;domBase=vp.domBottom}}fromDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base=vp.bottom;domBase=vp.domBottom}}eq(other){if(!(other instanceof BigScaler))return false;return this.scale==other.scale&&this.viewports.length==other.viewports.length&&this.viewports.every((vp,i)=>vp.from==other.viewports[i].from&&vp.to==other.viewports[i].to)}}function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content)}const theme=Facet.define({combine:strs=>strs.join(" ")});const darkTheme=Facet.define({combine:values=>values.indexOf(true)>-1});const baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName();const lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\w*/,m=>{if(m=="&")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m]}):main+" "+sel}})}const baseTheme$1=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<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"}},lightDarkIDs);const observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};const useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(view){this.view=view;this.active=false;this.editContext=null;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;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=false;this.gapIntersection=null;this.gaps=[];this.printQuery=null;this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type=="childList"&&m.removedNodes.length||m.type=="characterData"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush()});if(window.EditContext&&browser.android&&view.constructor.EDIT_CONTEXT!==false&&!(browser.chrome&&browser.chrome_version<126)){this.editContext=new EditContextManager(view);if(view.state.facet(editable))view.contentDOM.editContext=this.editContext.editContext}if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:"characterData",oldValue:event.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);if(window.matchMedia)this.printQuery=window.matchMedia("print");if(typeof ResizeObserver=="function"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize()});this.resizeScroll.observe(view.scrollDOM)}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver=="function"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent("Event"))}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent("Event"))},{})}this.listenForScroll();this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e);if(this.intersecting)this.view.measure()}onScroll(e){if(this.intersecting)this.flush(false);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(e)}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure()},50)}onPrint(event){if((event.type=="change"||!event.type)&&!event.matches)return;this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure()},500)}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(this.dom,sel))return;let context=sel.anchorNode&&view.docView.tile.nearest(sel.anchorNode);if(context&&context.isWidget()&&context.widget.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&sel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false)}readSelectionRange(){let{view:view}=this;let selection=getSelection(view.root);if(!selection)return false;let range=browser.safari&&view.root.nodeType==11&&view.root.activeElement==this.dom&&safariSelectionRangeHack(this.view,selection)||selection;if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode}else if(dom.nodeType==11){dom=dom.host}else{break}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);for(let dom of this.scrollTargets=changed)dom.addEventListener("scroll",this.onScroll)}}ignore(f){if(!this.active)return f();try{this.stop();return f()}finally{this.start();this.clear()}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener("DOMCharacterDataModified",this.onCharData);this.active=true}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData)}clear(){this.processRecords();this.queue.length=0;this.selectionChanged=false}delayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key=this.delayedAndroidKey;if(key){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key.force)dispatchKey(this.dom,key.key,key.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush)}if(!this.delayedAndroidKey||key=="Enter")this.delayedAndroidKey={key:key,keyCode:keyCode,force:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)}}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush()})}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1}this.flush()}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from:from,to:to}=range)}else{from=Math.min(range.from,from);to=Math.max(range.to,to)}}return{from:from,to:to,typeOver:typeOver}}readChange(){let{from:from,to:to,typeOver:typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;let change=new DOMChange(this.view,from,to,typeOver);this.view.docView.domChanged={newSel:change.newSel?change.newSel.main:null};return change}flush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange){this.view.requestMeasure();return false}let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState&&(domChange.domChanged||domChange.newSel&&!sameSelPos(this.view.state.selection,domChange.newSel.main)))this.view.update([]);return handled}readMutation(rec){let tile=this.view.docView.tile.nearest(rec.target);if(!tile||tile.isWidget())return null;tile.markDirty(rec.type=="attributes");if(rec.type=="childList"){let childBefore=findChild(tile,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(tile,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?tile.posAfter(childBefore):tile.posAtStart,to:childAfter?tile.posBefore(childAfter):tile.posAtEnd,typeOver:false}}else if(rec.type=="characterData"){return{from:tile.posAtStart,to:tile.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue}}else{return null}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win)}}addWindowListeners(win){win.addEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.addEventListener)this.printQuery.addEventListener("change",this.onPrint);else this.printQuery.addListener(this.onPrint)}else win.addEventListener("beforeprint",this.onPrint);win.addEventListener("scroll",this.onScroll);win.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(win){win.removeEventListener("scroll",this.onScroll);win.removeEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.removeEventListener)this.printQuery.removeEventListener("change",this.onPrint);else this.printQuery.removeListener(this.onPrint)}else win.removeEventListener("beforeprint",this.onPrint);win.document.removeEventListener("selectionchange",this.onSelectionChange)}update(update){if(this.editContext){this.editContext.update(update);if(update.startState.facet(editable)!=update.state.facet(editable))update.view.contentDOM.editContext=update.state.facet(editable)?this.editContext.editContext:null}}destroy(){var _a,_b,_c;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);if(this.editContext){this.view.contentDOM.editContext=null;this.editContext.destroy()}}}function findChild(tile,dom,dir){while(dom){let curTile=Tile.get(dom);if(curTile&&curTile.parent==tile)return curTile;let parent=dom.parentNode;dom=parent!=tile.dom?parent:dir>0?dom.nextSibling:dom.previousSibling}return null}function buildSelectionRangeFromRange(view,range){let anchorNode=range.startContainer,anchorOffset=range.startOffset;let focusNode=range.endContainer,focusOffset=range.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor,1);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset];return{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}}function safariSelectionRangeHack(view,selection){if(selection.getComposedRanges){let range=selection.getComposedRanges(view.root)[0];if(range)return buildSelectionRangeFromRange(view,range)}let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0]}view.contentDOM.addEventListener("beforeinput",read,true);view.dom.ownerDocument.execCommand("indent");view.contentDOM.removeEventListener("beforeinput",read,true);return found?buildSelectionRangeFromRange(view,found):null}class EditContextManager{constructor(view){this.from=0;this.to=0;this.pendingContextChange=null;this.handlers=Object.create(null);this.composing=null;this.resetRange(view.state);let context=this.editContext=new window.EditContext({text:view.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,view.state.selection.main.anchor))),selectionEnd:this.toContextPos(view.state.selection.main.head)});this.handlers.textupdate=e=>{let main=view.state.selection.main,{anchor:anchor,head:head}=main;let from=this.toEditorPos(e.updateRangeStart),to=this.toEditorPos(e.updateRangeEnd);if(view.inputState.composing>=0&&!this.composing)this.composing={contextBase:e.updateRangeStart,editorBase:from,drifted:false};let deletes=to-from>e.text.length;if(from==this.from&&anchor<this.from)from=anchor;else if(to==this.to&&anchor>this.to)to=anchor;let diff=findDiff(view.state.sliceDoc(from,to),e.text,(deletes?main.from:main.to)-from,deletes?"end":null);if(!diff){let newSel=EditorSelection.single(this.toEditorPos(e.selectionStart),this.toEditorPos(e.selectionEnd));if(!sameSelPos(newSel,main))view.dispatch({selection:newSel,userEvent:"select"});return}let change={from:diff.from+from,to:diff.toA+from,insert:Text.of(e.text.slice(diff.from,diff.toB).split("\n"))};if((browser.mac||browser.android)&&change.from==head-1&&/^\. ?$/.test(e.text)&&view.contentDOM.getAttribute("autocorrect")=="off")change={from:from,to:to,insert:Text.of([e.text.replace("."," ")])};this.pendingContextChange=change;if(!view.state.readOnly){let newLen=this.to-this.from+(change.to-change.from+change.insert.length);applyDOMChangeInner(view,change,EditorSelection.single(this.toEditorPos(e.selectionStart,newLen),this.toEditorPos(e.selectionEnd,newLen)))}if(this.pendingContextChange){this.revertPending(view.state);this.setSelection(view.state)}if(change.from<change.to&&!change.insert.length&&view.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(context.text.slice(Math.max(0,e.updateRangeStart-1),Math.min(context.text.length,e.updateRangeStart+1))))this.handlers.compositionend(e)};this.handlers.characterboundsupdate=e=>{let rects=[],prev=null;for(let i=this.toEditorPos(e.rangeStart),end=this.toEditorPos(e.rangeEnd);i<end;i++){let rect=view.coordsForChar(i);prev=rect&&new DOMRect(rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top)||prev||new DOMRect;rects.push(prev)}context.updateCharacterBounds(e.rangeStart,rects)};this.handlers.textformatupdate=e=>{let deco=[];for(let format of e.getTextFormats()){let lineStyle=format.underlineStyle,thickness=format.underlineThickness;if(!/none/i.test(lineStyle)&&!/none/i.test(thickness)){let from=this.toEditorPos(format.rangeStart),to=this.toEditorPos(format.rangeEnd);if(from<to){let style=`text-decoration: underline ${/^[a-z]/.test(lineStyle)?lineStyle+" ":lineStyle=="Dashed"?"dashed ":lineStyle=="Squiggle"?"wavy ":""}${/thin/i.test(thickness)?1:2}px`;deco.push(Decoration.mark({attributes:{style:style}}).range(from,to))}}}view.dispatch({effects:setEditContextFormatting.of(Decoration.set(deco))})};this.handlers.compositionstart=()=>{if(view.inputState.composing<0){view.inputState.composing=0;view.inputState.compositionFirstChange=true}};this.handlers.compositionend=()=>{view.inputState.composing=-1;view.inputState.compositionFirstChange=null;if(this.composing){let{drifted:drifted}=this.composing;this.composing=null;if(drifted)this.reset(view.state)}};for(let event in this.handlers)context.addEventListener(event,this.handlers[event]);this.measureReq={read:view=>{let sel=getSelection(view.root);if(sel&&sel.rangeCount)this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect())}}}applyEdits(update){let off=0,abort=false,pending=this.pendingContextChange;update.changes.iterChanges((fromA,toA,_fromB,_toB,insert)=>{if(abort)return;let dLen=insert.length-(toA-fromA);if(pending&&toA>=pending.to){if(pending.from==fromA&&pending.to==toA&&pending.insert.eq(insert)){pending=this.pendingContextChange=null;off+=dLen;this.to+=dLen;return}else{pending=null;this.revertPending(update.state)}}fromA+=off;toA+=off;if(toA<=this.from){this.from+=dLen;this.to+=dLen}else if(fromA<this.to){if(fromA<this.from||toA>this.to||this.to-this.from+insert.length>3e4){abort=true;return}this.editContext.updateText(this.toContextPos(fromA),this.toContextPos(toA),insert.toString());this.to+=dLen}off+=dLen});if(pending&&!abort)this.revertPending(update.state);return!abort}update(update){let reverted=this.pendingContextChange,startSel=update.startState.selection.main;if(this.composing&&(this.composing.drifted||!update.changes.touchesRange(startSel.from,startSel.to)&&update.transactions.some(tr=>!tr.isUserEvent("input.type")&&tr.changes.touchesRange(this.from,this.to)))){this.composing.drifted=true;this.composing.editorBase=update.changes.mapPos(this.composing.editorBase)}else if(!this.applyEdits(update)||!this.rangeIsValid(update.state)){this.pendingContextChange=null;this.reset(update.state)}else if(update.docChanged||update.selectionSet||reverted){this.setSelection(update.state)}if(update.geometryChanged||update.docChanged||update.selectionSet)update.view.requestMeasure(this.measureReq)}resetRange(state){let{head:head}=state.selection.main;this.from=Math.max(0,head-1e4);this.to=Math.min(state.doc.length,head+1e4)}reset(state){this.resetRange(state);this.editContext.updateText(0,this.editContext.text.length,state.doc.sliceString(this.from,this.to));this.setSelection(state)}revertPending(state){let pending=this.pendingContextChange;this.pendingContextChange=null;this.editContext.updateText(this.toContextPos(pending.from),this.toContextPos(pending.from+pending.insert.length),state.doc.sliceString(pending.from,pending.to))}setSelection(state){let{main:main}=state.selection;let start=this.toContextPos(Math.max(this.from,Math.min(this.to,main.anchor)));let end=this.toContextPos(main.head);if(this.editContext.selectionStart!=start||this.editContext.selectionEnd!=end)this.editContext.updateSelection(start,end)}rangeIsValid(state){let{head:head}=state.selection.main;return!(this.from>0&&head-this.from<500||this.to<state.doc.length&&this.to-head<500||this.to-this.from>1e4*3)}toEditorPos(contextPos,clipLen=this.to-this.from){contextPos=Math.min(contextPos,clipLen);let c=this.composing;return c&&c.drifted?c.editorBase+(contextPos-c.contextBase):contextPos+this.from}toContextPos(editorPos){let c=this.composing;return c&&c.drifted?c.contextBase+(editorPos-c.editorBase):editorPos-this.from}destroy(){for(let event in this.handlers)this.editContext.removeEventListener(event,this.handlers[event])}}class EditorView{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(config={}){var _a;this.plugins=[];this.pluginMap=new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;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);if(config.parent)config.parent.appendChild(this.dom);let{dispatch:dispatch}=config;this.dispatchTransactions=config.dispatchTransactions||dispatch&&(trs=>trs.forEach(tr=>dispatch(tr,this)))||(trs=>this.update(trs));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(this,config.state||EditorState.create(config));if(config.scrollTo&&config.scrollTo.is(scrollIntoView))this.viewState.scrollTarget=config.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin of this.plugins)plugin.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if((_a=document.fonts)===null||_a===void 0?void 0:_a.ready)document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh";this.requestMeasure()})}dispatch(...input){let trs=input.length==1&&input[0]instanceof Transaction?input:input.length==1&&Array.isArray(input[0])?input[0]:[this.state.update(...input)];this.dispatchTransactions(trs,this)}update(transactions){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");state=tr.state}if(this.destroyed){this.viewState.state=state;return}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null}else{this.observer.clear()}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr.changes);if(tr.scrollIntoView){let{main:main}=tr.state.selection;let{x:x,y:y}=this.state.facet(EditorView.cursorScrollMargin);scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1),"nearest","nearest",y,x)}for(let e of tr.effects)if(e.is(scrollIntoView))scrollTarget=e.value.clip(this.state)}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update)}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent("select.pointer")))}finally{this.updateState=0}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(redrawn)this.docViewUpdate();if(!update.empty)for(let listener of this.state.facet(updateListener)){try{listener(update)}catch(e){logException(this.state,e,"update listener")}}if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode)}})}setState(newState){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=newState;return}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin of this.plugins)plugin.destroy(this);this.viewState=new ViewState(this,newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin of this.plugins)plugin.update(this);this.docView.destroy();this.docView=new DocView(this);this.inputState.ensureHandlers(this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[]}finally{this.updateState=0}if(hadFocus)this.focus();this.requestMeasure()}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec))}else{let plugin=this.plugins[found];plugin.mustUpdate=update;newPlugins.push(plugin)}}for(let plugin of this.plugins)if(plugin.mustUpdate!=update)plugin.destroy(this);this.plugins=newPlugins;this.pluginMap.clear()}else{for(let p of this.plugins)p.mustUpdate=update}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);if(prevSpecs!=specs)this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let plugin of this.plugins){let val=plugin.value;if(val&&val.docViewUpdate){try{val.docViewUpdate(this)}catch(e){logException(this.state,e,"doc view update listener")}}}}measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1;this.requestMeasure();return}this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let scroll=this.viewState.scrollParent,scrollOffset=this.viewState.getScrollOffset();let{scrollAnchorPos:scrollAnchorPos,scrollAnchorHeight:scrollAnchorHeight}=this.viewState;if(Math.abs(scrollOffset-this.viewState.scrollOffset)>1)scrollAnchorHeight=-1;this.viewState.scrollAnchorHeight=-1;try{for(let i=0;;i++){if(scrollAnchorHeight<0){if(isScrolledToBottom(scroll||this.win)){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height}else{let block=this.viewState.scrollAnchorAt(scrollOffset);scrollAnchorPos=block.from;scrollAnchorHeight=block.top}}this.updateState=1;let changed=this.viewState.measure();if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests];let measured=measuring.map(m=>{try{return m.read(this)}catch(e){logException(this.state,e);return BadMeasure}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);if(redrawn)this.docViewUpdate()}for(let i=0;i<measuring.length;i++)if(measured[i]!=BadMeasure){try{let m=measuring[i];if(m.write)m.write(measured[i],this)}catch(e){logException(this.state,e)}}if(redrawn)this.docView.updateSelection(true);if(!update.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrollAnchorHeight=-1;continue}else{let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=(newAnchorHeight-scrollAnchorHeight)/this.scaleY;if((diff>1||diff<-1)&&(scroll==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){scrollOffset=scrollOffset+diff;if(scroll)scroll.scrollTop+=diff;else this.win.scrollBy(0,diff);scrollAnchorHeight=-1;continue}}}break}}}finally{this.updateState=0;this.measureScheduled=-1}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses});let contentAttrs={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:!this.state.facet(editable)?"false":"true",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};if(this.state.readOnly)contentAttrs["aria-readonly"]="true";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(EditorView.announce)){if(first)this.announceDOM.textContent="";first=false;let div=this.announceDOM.appendChild(document.createElement("div"));div.textContent=effect.value}}mountStyles(){this.styleModules=this.state.facet(styleModule);let nonce=this.state.facet(EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse(),nonce?{nonce:nonce}:undefined)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false)}requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return}}this.measureRequests.push(request)}}plugin(plugin){let known=this.pluginMap.get(plugin);if(known===undefined||known&&known.plugin!=plugin)this.pluginMap.set(plugin,known=this.plugins.find(p=>p.plugin==plugin)||null);return known&&known.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(height){this.readMeasured();return this.viewState.elementAtHeight(height)}lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(pos){return this.viewState.lineBlockAt(pos)}get contentHeight(){return this.viewState.contentHeight}moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by))}moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)))}visualLineSide(line,end){let order=this.bidiSpans(line),dir=this.textDirectionAt(line.from);let span=order[end?order.length-1:0];return EditorSelection.cursor(span.side(end,dir)+line.from,span.forward(!end,dir)?1:-1)}moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap)}moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance))}domAtPos(pos,side=1){return this.docView.domAtPos(pos,side)}posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset)}posAtCoords(coords,precise=true){this.readMeasured();let found=posAtCoords(this,coords,precise);return found&&found.pos}posAndSideAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise)}coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0)}coordsForChar(pos){this.readMeasured();return this.docView.coordsForChar(pos)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos)}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from),isolates;for(let entry of this.bidiCache){if(entry.from==line.from&&entry.dir==dir&&(entry.fresh||isolatesEq(entry.isolates,isolates=getIsolatedRanges(this,line))))return entry.order}if(!isolates)isolates=getIsolatedRanges(this,line);let order=computeOrder(line.text,dir,isolates);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,isolates,true,order));return order}get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection()})}setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles()}}destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let plugin of this.plugins)plugin.destroy(this);this.plugins=[];this.inputState.destroy();this.docView.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true}static scrollIntoView(pos,options={}){var _a,_b,_c,_d;return scrollIntoView.of(new ScrollTarget(typeof pos=="number"?EditorSelection.cursor(pos):pos,(_a=options.y)!==null&&_a!==void 0?_a:"nearest",(_b=options.x)!==null&&_b!==void 0?_b:"nearest",(_c=options.yMargin)!==null&&_c!==void 0?_c:5,(_d=options.xMargin)!==null&&_d!==void 0?_d:5))}scrollSnapshot(){let{scrollTop:scrollTop,scrollLeft:scrollLeft}=this.scrollDOM;let ref=this.viewState.scrollAnchorAt(scrollTop);return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from),"start","start",ref.top-scrollTop,scrollLeft,true))}setTabFocusMode(to){if(to==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof to=="boolean")this.inputState.tabFocusMode=to?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+to}static domEventHandlers(handlers){return ViewPlugin.define(()=>({}),{eventHandlers:handlers})}static domEventObservers(observers){return ViewPlugin.define(()=>({}),{eventObservers:observers})}static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec))];if(options&&options.dark)result.push(darkTheme.of(true));return result}static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,spec,lightDarkIDs)))}static findFromDOM(dom){var _a;let content=dom.querySelector(".cm-content");let tile=content&&Tile.get(content)||Tile.get(dom);return((_a=tile===null||tile===void 0?void 0:tile.root)===null||_a===void 0?void 0:_a.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.blockWrappers=blockWrappers;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.cursorScrollMargin=Facet.define({combine:inputs=>{let x=5,y=5;for(let i of inputs){if(typeof i=="number")x=y=i;else({x:x,y:y}=i)}return{x:x,y:y}}});EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=Facet.define({combine:values=>values.length?values[0]:""});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096;const BadMeasure={};class CachedOrder{constructor(from,to,dir,isolates,fresh,order){this.from=from;this.to=to;this.dir=dir;this.isolates=isolates;this.fresh=fresh;this.order=order}static update(cache,changes){if(changes.empty&&!cache.some(c=>c.fresh))return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.isolates,false,entry.order))}return result}}function attrsFromFacet(view,facet,base){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source=="function"?source(view):source;if(value)combineAttrs(value,base)}return base}class GutterMarker extends RangeValue{compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}eq(other){return false}destroy(dom){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=undefined;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):undefined})}const sublanguageProp=new NodeProp;class Language{constructor(data,parser,extraExtensions=[],name=""){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty("tree"))Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top=topNodeAt(state,pos,side),data=top.type.prop(languageDataProp);if(!data)return[];let base=state.facet(data),sub=top.type.prop(sublanguageProp);if(sub){let innerNode=top.resolve(pos-top.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data=state.facet(sublang.facet);return sublang.type=="replace"?data:data.concat(base)}}return base})].concat(extraExtensions)}isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data}findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from:from,to:from+tree.length});return}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from:from,to:from+tree.length});return}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from)}};explore(syntaxTree(state),0);return result}get allowsNesting(){return true}}Language.setState=StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers|IterMode.EnterBracketed))if(node.type.isTop)tree=node}return tree}function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty}class DocInput{constructor(doc){this.doc=doc;this.cursorPos=0;this.string="";this.cursor=doc.iter()}get length(){return this.doc.length}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length}chunk(pos){this.syncTo(pos);return this.string}get lineChunks(){return true}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart)}}let currentContext=null;class ParseContext{constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[]}static create(parser,state,viewport){return new ParseContext(parser,state,[],Tree.empty,0,viewport,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=undefined;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true}return this.withContext(()=>{var _a;if(typeof until=="number"){let endTime=Date.now()+until;until=()=>Date.now()>endTime}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a=this.parse.stoppedAt)!==null&&_a!==void 0?_a:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true}if(until())return false}})}takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null}}withContext(f){let prev=currentContext;currentContext=this;try{return f()}finally{currentContext=prev}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments}changes(changes,newState){let{fragments:fragments,tree:tree,treeLen:treeLen,viewport:viewport,skipped:skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA:fromA,toA:toA,fromB:fromB,toB:toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from:from,to:to})}}}return new ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn)}updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:from,to:to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1)}}if(this.skipped.length>=startLen)return false;this.reset();return true}reset(){if(this.parse){this.takeTree();this.parse=null}}skipUntilInView(from,to){this.skipped.push({from:from,to:to})}static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from)},stoppedAt:null,stopAt(){}};return parser}}}isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto}static get(){return currentContext}}function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to}])}class LanguageState{constructor(context){this.context=context;this.tree=context.tree}apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?undefined:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new LanguageState(newCx)}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new LanguageState(parseState)}}Language.state=StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr)}});let requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout)};if(typeof requestIdleCallback!="undefined")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100})},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle)};const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;const parseWorker=ViewPlugin.fromClass(class ParseWorker{constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork()}update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged||update.selectionSet){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork()}this.checkAsyncSchedule(cx)}scheduleWork(){if(this.working)return;let{state:state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work)}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3}if(this.chunkBudget<=0)return;let{state:state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>isInputPending&&isInputPending()||Date.now()>endTime,vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))})}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context)}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null}}destroy(){if(this.working)this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}});const language=Facet.define({combine(languages){return languages.length?languages[0]:null},enables:language=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language],state=>{let lang=state.facet(language);return lang&&lang.name?{"data-language":lang.name}:{}})]});const indentUnit=Facet.define({combine:values=>{if(!values.length)return" ";let unit=values[0];if(!unit||/\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error("Invalid indent unit: "+JSON.stringify(values[0]));return unit}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length}const indentNodeProp=new NodeProp;class HighlightStyle{constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=Object.create(null)))["."+cls]=spec;return cls}const all=typeof options.all=="string"?options.all:options.all?def(options.all):undefined;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:undefined;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all:all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType}static define(specs,options){return new HighlightStyle(specs,options||{})}}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\s\u00a0]/);if(end==-1)end=string.length}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++}return n}class StringStream{constructor(string,tabSize,indentUnit,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||undefined}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match=="string")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch}}eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start}eatSpace(){let start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start}skipToEnd(){this.pos=this.string.length}skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true}}backUp(n){this.pos-=n}column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start}return this.lastColumnValue}indentation(){var _a;return(_a=this.overrideIndent)!==null&&_a!==void 0?_a:countCol(this.string,null,this.tabSize)}match(pattern,consume,caseInsensitive){if(typeof pattern=="string"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true}else return null}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match}}current(){return this.string.slice(this.start,this.pos)}}function fullParser(spec){return{name:spec.name||"",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens,mergeTokens:spec.mergeTokens!==false}}function defaultCopyState(state){if(typeof state!="object")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val}return newState}const IndentedFrom=new WeakMap;class StreamLanguage extends Language{constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges)}};super(data,impl,[],parser.name);this.topNode=docID(data,this);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable}static define(spec){return new StreamLanguage(spec)}getIndent(cx){let from=undefined;let{overrideIndentation:overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<cx.pos-1e4)from=undefined}let start=findState(this,cx.node.tree,cx.node.from,cx.node.from,from!==null&&from!==void 0?from:cx.pos),statePos,state;if(start){state=start.state;statePos=start.pos+1}else{state=this.streamParser.startState(cx.unit);statePos=cx.node.from}if(cx.pos-statePos>1e4)return null;while(statePos<cx.pos){let line=cx.state.doc.lineAt(statePos),end=Math.min(cx.pos,line.to);if(line.length){let indentation=overrideIndentation?overrideIndentation(line.from):-1;let stream=new StringStream(line.text,cx.state.tabSize,cx.unit,indentation<0?undefined:indentation);while(stream.pos<end-line.from)readToken(this.streamParser.token,stream,state)}else{this.streamParser.blankLine(state,cx.unit)}if(end==cx.pos)break;statePos=line.to+1}let line=cx.lineAt(cx.pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\s*(.*)/.exec(line.text)[1],cx)}get allowsNesting(){return false}}function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found}return null}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&from==0&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length)}}return null}function findStartInFragments(lang,fragments,startPos,endPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&found.pos<=endPos&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree:tree}}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty}}class Parse{constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=undefined;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state:state,tree:tree}=findStartInFragments(lang,fragments,from,this.to,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i])}if(context&&this.parsedPos<context.viewport.from-1e5&&ranges.some(r=>r.from<=context.viewport.from&&r.to>=context.viewport.from)){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from}this.moveRangeIndex()}advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+512);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish()}return null}stopAt(pos){this.stoppedAt=pos}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf("\n");if(eol>-1)chunk=chunk.slice(0,eol)}else if(chunk=="\n"){chunk=""}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos)}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length}return{line:line,end:end}}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end}return offset}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++}emitToken(id,from,to,offset){let size=4;if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0}let last=this.chunk.length-4;if(this.lang.streamParser.mergeTokens&&size==4&&last>=0&&this.chunk[last]==id&&this.chunk[last+2]==from)this.chunk[last+2]=to;else this.chunk.push(id,from,to,size);return offset}parseLine(context){let{line:line,end:end}=this.nextLine(),offset=0,{streamParser:streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit)}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,offset);if(stream.start>1e4)break}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:nodeSet,topID:0,maxBufferLength:512,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=undefined;this.chunkStart=this.parsedPos}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result}throw new Error("Stream parser failed to advance stream.")}const noTokens=Object.create(null);const typeArray=[NodeType.none];const nodeSet=new NodeSet(typeArray);const warned=[];const byTag=Object.create(null);const defaultTable=Object.create(null);for(let[legacyName,name]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[legacyName]=createTokenType(noTokens,name);class TokenTable{constructor(extra){this.extra=extra;this.table=Object.assign(Object.create(null),defaultTable)}resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag))}}const defaultTokenTable=new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg)}function createTokenType(extra,tagStr){let tags$1=[];for(let name of tagStr.split(" ")){let found=[];for(let part of name.split(".")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`)}else if(typeof value=="function"){if(!found.length)warnForPart(part,`Modifier ${part} used at start of tag`);else found=found.map(value)}else{if(found.length)warnForPart(part,`Tag ${part} used as modifier`);else found=Array.isArray(value)?value:[value]}}for(let tag of found)tags$1.push(tag)}if(!tags$1.length)return 0;let name=tagStr.replace(/ /g,"_"),key=name+" "+tags$1.map(t=>t.id);let known=byTag[key];if(known)return known.id;let type=byTag[key]=NodeType.define({id:typeArray.length,name:name,props:[styleTags({[name]:tags$1})]});typeArray.push(type);return type.id}function docID(data,lang){let type=NodeType.define({id:typeArray.length,name:"Document",props:[languageDataProp.add(()=>data),indentNodeProp.add(()=>cx=>lang.getIndent(cx))],top:true});typeArray.push(type);return type}({rtl:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"rtl"},bidiIsolate:Direction.RTL}),ltr:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"ltr"},bidiIsolate:Direction.LTR})});const fslDeprecated=Tag.defineModifier("fslDeprecated");const STRUCTURAL_KEYWORDS=new Set(["state","start_state","end_state","active_state","terminal_state","hooked_state","action","transition","validation","configuration","graph","editor","hooks","property","required","default"]);const PROPERTY_KEYWORDS=new Set(["machine_name","machine_version","machine_author","machine_license","machine_comment","machine_contributor","machine_definition","machine_language","machine_reference","npm_name","fsl_version","graph_layout","start_states","end_states","failed_outputs","allows_override","allow_islands","edge_color","theme","flow","dot_preamble","default_size","label","color","shape","corners","linestyle","image","url","background-color","text-color","border-color","edge-color","line-style","stochastic_run_count","panels"]);const DEPRECATED_KEYWORDS=new Set(["graph_bg_color"]);const ENUM_KEYWORDS=new Set(["true","false","none","default","modern","ocean","bold","dot","circo","fdp","neato","twopi","up","right","down","left","solid","dotted","dashed","regular","rounded","lined","MIT"]);const DEPRECATED_TOKEN="fslDeprecatedKeyword";const ARROWS=/^(?:<-=>|<-~>|<=->|<=~>|<~->|<~=>|<->|<=>|<~>|->|<-|=>|<=|~>|<~|[↔←→⇔⇐⇒↮↚↛])/;const COMPARATORS=/^(?:>=|<=|>|<)/;const ATOM_START=/[\w.!$^*?,\u{80}-\u{FFFF}]/u;const ATOM_BODY=/[\w.+^()*&$#@!?,\u{80}-\u{FFFF}]/u;const fslStreamParser={name:"fsl",startState:()=>({inBlockComment:false}),token(stream,state){if(state.inBlockComment){while(!stream.eol()){if(stream.match("*/")){state.inBlockComment=false;return"comment"}stream.next()}return"comment"}if(stream.eatSpace()){return null}if(stream.match("//")){stream.skipToEnd();return"comment"}if(stream.match("/*")){state.inBlockComment=true;return"comment"}if(stream.match(/^"(?:\\.|[^"\\])*"?/)){return"string"}if(stream.match(/^'(?:\\.|[^'\\])*'?/)){return"labelName"}if(stream.match(ARROWS)){return"operator"}if(stream.match(COMPARATORS)){return"operator"}if(stream.match(/^\d+(?:\.\d+)*/)){return"number"}if(stream.match(/^&[A-Z_]\w*/i)){return"variableName.special"}const ch=stream.peek();if(ATOM_START.test(ch)){let tok="";let next=stream.peek();while(next!==void 0){const interior_hyphen=next==="-"&&ATOM_BODY.test(stream.string.slice(stream.pos+1,stream.pos+2));if(ATOM_BODY.test(next)||interior_hyphen){tok+=stream.next()}else{break}next=stream.peek()}if(DEPRECATED_KEYWORDS.has(tok)){return DEPRECATED_TOKEN}if(STRUCTURAL_KEYWORDS.has(tok)){return"keyword"}if(PROPERTY_KEYWORDS.has(tok)){return"propertyName"}if(ENUM_KEYWORDS.has(tok)){return"atom"}return"variableName"}if(stream.match(/^[[\]{}()]/)){return"bracket"}if(stream.match(/^[;:,|]/)){return"punctuation"}stream.next();return null},tokenTable:{[DEPRECATED_TOKEN]:fslDeprecated(tags.propertyName)},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};StreamLanguage.define(fslStreamParser);HighlightStyle.define([{tag:fslDeprecated(tags.propertyName),textDecoration:"line-through",opacity:"0.6"}]);function plan_walk(machine){const edges=machine.list_edges();const main=edges.filter(e=>e.main_path);if(main.length>0){const seen=new Set;const out2=[];let current=machine.state();while(!seen.has(current)){seen.add(current);out2.push(current);const next=main.find(e=>e.from===current);if(next===void 0){break}current=next.to}return out2}const out=[];for(const e of edges){if(out[out.length-1]!==e.from){out.push(e.from)}out.push(e.to)}return out}function packed_over_white(rgba,pixel){const a=rgba[pixel*4+3]/255;const r=Math.round(rgba[pixel*4]*a+255*(1-a));const g=Math.round(rgba[pixel*4+1]*a+255*(1-a));const b=Math.round(rgba[pixel*4+2]*a+255*(1-a));return r<<16|g<<8|b}function accumulate_histogram(rgba,histogram){const pixel_count=rgba.length/4;for(let i=0;i<pixel_count;++i){const key=packed_over_white(rgba,i);histogram.set(key,(histogram.get(key)??0)+1)}}function palette_from_histogram(histogram,max_colors){const distinct=[...histogram.keys()];if(distinct.length<=max_colors){const index_of=new Map;const palette=new Uint8Array(distinct.length*3);for(const[i,key]of distinct.entries()){index_of.set(key,i);palette[i*3]=key>>16&255;palette[i*3+1]=key>>8&255;palette[i*3+2]=key&255}return{palette:palette,palette_count:distinct.length,index_of:index_of}}return median_cut_palette(histogram,max_colors)}const CHANNELS=[key=>key>>16&255,key=>key>>8&255,key=>key&255];function median_cut_palette(histogram,max_colors){const boxes=[[...histogram.keys()]];while(boxes.length<max_colors){let best_box=-1,best_range=-1,best_channel=0;pick_box:for(const[bi,box2]of boxes.entries()){if(box2.length<2){continue pick_box}for(const[ci,ch2]of CHANNELS.entries()){let lo=256,hi=-1;for(const key of box2){const v=ch2(key);if(v<lo){lo=v}if(v>hi){hi=v}}if(hi-lo>best_range){best_range=hi-lo;best_box=bi;best_channel=ci}}}const box=boxes[best_box];const ch=CHANNELS[best_channel];box.sort((a,b)=>ch(a)-ch(b));const total=box.reduce((sum,key)=>sum+histogram.get(key),0);let acc=0,split=1;find_split:for(let i=0;i<box.length-1;++i){acc+=histogram.get(box[i]);if(acc*2>=total){split=i+1;break find_split}}boxes.splice(best_box,1,box.slice(0,split),box.slice(split))}const palette=new Uint8Array(boxes.length*3);const index_of=new Map;for(const[bi,box]of boxes.entries()){let r=0,g=0,b=0,n=0;for(const key of box){const count=histogram.get(key);r+=(key>>16&255)*count;g+=(key>>8&255)*count;b+=(key&255)*count;n+=count;index_of.set(key,bi)}palette[bi*3]=Math.round(r/n);palette[bi*3+1]=Math.round(g/n);palette[bi*3+2]=Math.round(b/n)}return{palette:palette,palette_count:boxes.length,index_of:index_of}}function lzw_encode(indices,min_code_size){const clear=1<<min_code_size;const eoi=clear+1;let next_code=eoi+1;let code_size=min_code_size+1;let dict=new Map;const bytes=[];let bit_acc=0,bit_count=0;const emit=code=>{bit_acc|=code<<bit_count;bit_count+=code_size;while(bit_count>=8){bytes.push(bit_acc&255);bit_acc>>=8;bit_count-=8}};emit(clear);let prefix=indices[0];for(let i=1;i<indices.length;++i){const k=indices[i];const key=prefix<<8|k;const hit=dict.get(key);if(hit!==void 0){prefix=hit;continue}emit(prefix);if(next_code<4096){dict.set(key,next_code);next_code+=1;if(next_code-1===1<<code_size){code_size+=1}}else{emit(clear);dict=new Map;next_code=eoi+1;code_size=min_code_size+1}prefix=k}emit(prefix);emit(eoi);if(bit_count>0){bytes.push(bit_acc&255)}return new Uint8Array(bytes)}function encode_gif(frames,opts={}){if(frames.length===0){throw new JssmError(void 0,"encode_gif: at least one frame is required")}const{width:width,height:height}=frames[0];if(width===0||height===0){throw new JssmError(void 0,`encode_gif: frame dimensions must be non-zero (got ${width}x${height})`)}for(const f of frames){if(f.width!==width||f.height!==height){throw new JssmError(void 0,`encode_gif: frame dimensions differ (${f.width}x${f.height} vs ${width}x${height})`)}if(f.rgba.length!==4*f.width*f.height){throw new JssmError(void 0,"encode_gif: rgba length does not match stated dimensions")}}const delay_cs=opts.delay_cs??70;const loop=opts.loop??0;const union_histogram=new Map;for(const f of frames){accumulate_histogram(f.rgba,union_histogram)}const{palette:palette,palette_count:palette_count}=palette_from_histogram(union_histogram,256);const gct_bits=Math.max(1,Math.ceil(Math.log2(Math.max(2,palette_count))));const gct_size=1<<gct_bits;const min_code_size=Math.max(2,gct_bits);const palette_cache=new Map;const map_to_palette=rgba=>{const n=rgba.length/4;const out2=new Uint8Array(n);for(let i=0;i<n;++i){const key=packed_over_white(rgba,i);const hit=palette_cache.get(key);if(hit!==void 0){out2[i]=hit;continue}const r=key>>16&255;const g=key>>8&255;const b=key&255;let best=0,best_d=Infinity;for(let p=0;p<palette_count;++p){const dr=r-palette[p*3];const dg=g-palette[p*3+1];const db=b-palette[p*3+2];const d=dr*dr+dg*dg+db*db;if(d<best_d){best_d=d;best=p}}palette_cache.set(key,best);out2[i]=best}return out2};let out=new Uint8Array(1024);let len=0;const need=extra=>{if(len+extra<=out.length){return}const bigger=new Uint8Array(Math.max(out.length*2,len+extra));bigger.set(out.subarray(0,len));out=bigger};const push=(...vals)=>{need(vals.length);for(const val of vals){out[len++]=val&255}};const push_u16=v=>{push(v&255,v>>8&255)};push(71,73,70,56,57,97);push_u16(width);push_u16(height);push(128|112|gct_bits-1);push(0,0);for(let p=0;p<gct_size;++p){if(p<palette_count){push(palette[p*3],palette[p*3+1],palette[p*3+2])}else{push(0,0,0)}}push(33,255,11);push(..."NETSCAPE2.0".split("").map(c=>c.charCodeAt(0)));push(3,1);push_u16(loop);push(0);for(const frame of frames){push(33,249,4,4);push_u16(delay_cs);push(0,0);push(44);push_u16(0);push_u16(0);push_u16(width);push_u16(height);push(0);const indices=map_to_palette(frame.rgba);const packed_lzw=lzw_encode(indices,min_code_size);push(min_code_size);for(let at=0;at<packed_lzw.length;at+=255){const chunk=packed_lzw.slice(at,at+255);push(chunk.length,...chunk)}push(0)}push(59);return out.slice(0,len)}async function render_fence_gif(source,opts={}){const machine=sm`${source}`;const max_frames=opts.max_frames??64;const walk=plan_walk(machine).slice(0,max_frames);const base_svg=await fsl_to_svg_string(source);const highlight=opts.highlight_fill??"#ff9930";const scale=opts.scale??100;const label_texts=state_svg_label_texts(machine);const frames=[];for(const state of walk){const patched=patch_state_fill(base_svg,label_texts.get(state),highlight);const raster=await rasterizeRgba(patched,{scale:scale});frames.push({rgba:raster.rgba,width:raster.width,height:raster.height})}return encode_gif(frames,{delay_cs:opts.delay_cs??70,loop:opts.loop??0})}function wrap_gif_error(e){if(e instanceof RasterizationUnsupportedError){throw e}throw new RenderError(`GIF render failed: ${e.message}`)}async function render(fsl,opts){switch(opts.target){case"svg":{return{target:"svg",kind:"text",content:await svgTarget(fsl)}}case"dot":{return{target:"dot",kind:"text",content:await dotTarget(fsl)}}case"html":{return{target:"html",kind:"text",content:await htmlTarget(fsl)}}case"png":{return{target:"png",kind:"raster",buffer:await pngTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale})}}case"jpeg":{return{target:"jpeg",kind:"raster",buffer:await jpegTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}}case"gif":{try{return{target:"gif",kind:"raster",buffer:await render_fence_gif(fsl,{scale:opts.scale,delay_cs:opts.delay,max_frames:opts.maxFrames})}}catch(error){return wrap_gif_error(error)}}default:{throw new RenderError(`unknown target: ${String(opts.target)}`)}}}async function renderSet(inputs,opts){return Promise.all(inputs.map(async(fsl,index)=>{try{const result=await render(fsl,opts);return{ok:true,index:index,result:result}}catch(error){return{ok:false,index:index,error:error}}}))}function parseFslArgs(argv,spec){const positional=[];const flags={};const shortMap={};for(const[name,fs]of Object.entries(spec.flags)){if(fs.short)shortMap[fs.short]=name}const isBoolean=name=>spec.flags[name]?.boolean;const flagType=name=>{const fs=spec.flags[name];return fs.type??"string"};const coerce=(name,raw)=>{const t=flagType(name);if(t==="number"){const n=Number(raw);if(Number.isNaN(n)){throw new TypeError(`flag --${name} requires a number, got: ${raw}`)}return n}const fs=spec.flags[name];if(fs.enum&&!fs.enum.includes(raw)){throw new Error(`flag --${name} value '${raw}' not in: ${fs.enum.join(", ")}`)}return raw};let i=0;let positionalOnly=false;while(i<argv.length){const a=argv[i];if(positionalOnly){positional.push(a);i++;continue}if(a==="--"){positionalOnly=true;i++;continue}if(a==="-"){positional.push(a);i++;continue}if(a.startsWith("--")){const eq=a.indexOf("=");const name=eq===-1?a.slice(2):a.slice(2,eq);if(!Object.prototype.hasOwnProperty.call(spec.flags,name))throw new Error(`unknown flag: --${name}`);if(isBoolean(name)){flags[name]=true;i++}else if(eq===-1){if(i+1>=argv.length)throw new Error(`flag --${name} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}else{flags[name]=coerce(name,a.slice(eq+1));i++}continue}if(a.startsWith("-")&&a.length>1){const short=a[1];const name=shortMap[short];if(!name)throw new Error(`unknown flag: -${short}`);if(isBoolean(name)){flags[name]=true;if(a.length>2)throw new Error(`combined short flags not supported: ${a}`);i++}else if(a.length>2){flags[name]=coerce(name,a.slice(2));i++}else{if(i+1>=argv.length)throw new Error(`flag -${short} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}positional.push(a);i++}for(const[name,fs]of Object.entries(spec.flags)){if(flags[name]===void 0&&fs.default!==void 0){flags[name]=fs.default}}const helpText=()=>{const lines=["Usage:"," "+spec.usage,"","Options:"];for(const[name,fs]of Object.entries(spec.flags)){const short=fs.short?`-${fs.short}, `:" ".repeat(4);const longPart=`--${name}`;let arg=" VALUE";if(fs.boolean){arg=""}else if(fs.enum){arg=` ${fs.enum.join("|")}`}else if(fs.type==="number"){arg=" N"}const defStr=fs.default===void 0?"":` (default: ${fs.default})`;lines.push(` ${short}${longPart}${arg}${defStr}`)}return lines.join("\n")};return{positional:positional,flags:flags,helpText:helpText}}exports.RasterizationUnsupportedError=RasterizationUnsupportedError;exports.RenderError=RenderError;exports.parseFslArgs=parseFslArgs;exports.render=render;exports.renderSet=renderSet;
1
+ "use strict";var _documentCurrentScript=typeof document!=="undefined"?document.currentScript:null;class RenderError extends Error{constructor(message,opts={}){super(message);this.name="RenderError";this.path=opts.path;this.line=opts.line;this.column=opts.column}}class RasterizationUnsupportedError extends RenderError{constructor(message){super(message);this.name="RasterizationUnsupportedError";Object.setPrototypeOf(this,RasterizationUnsupportedError.prototype)}}class circular_buffer{constructor(uCapacity){if(!Number.isInteger(uCapacity)){throw new RangeError(`Capacity must be an integer, received ${uCapacity}`)}if(uCapacity<0){throw new RangeError(`Capacity must be a non-negative integer, received ${uCapacity}`)}this._values=new Array(uCapacity);this._capacity=uCapacity;this._cursor=0;this._offset=0;this._length=0}get capacity(){return this._capacity}set capacity(newSize){this.resize(newSize)}get length(){return this._length}set length(newLength){if(newLength>this._capacity){throw new RangeError(`Requested new length [${newLength}] exceeds container capacity [${this._capacity}]`)}if(newLength<0){throw new RangeError(`Requested new length [${newLength}] cannot be negative`)}if(!Number.isInteger(newLength)){throw new RangeError(`Requested new length [${newLength}] must be an integer`)}if(this._length<=newLength){return}this._length=newLength}get available(){return this._capacity-this._length}get isEmpty(){return this._length===0}get isFull(){return this._length===this._capacity}get first(){if(this.isEmpty){throw new RangeError("Cannot return first element of an empty container")}return this.at(0)}get last(){if(this.isEmpty){throw new RangeError("Cannot return last element of an empty container")}return this.at(this.length-1)}static from(i,map_fn,t){const new_array=map_fn?Array.from(i,map_fn,t):Array.from(i);const target_length=new_array.length;const ncb=new circular_buffer(target_length);ncb._values=new_array;ncb._length=target_length;return ncb}push(v){if(this.isFull){throw new RangeError(`Cannot push, structure is full to capacity`)}this._values[(this._cursor+this._length++)%this._capacity]=v;return v}shove(v){let shoved;if(this._capacity===0){throw new RangeError(`Cannot shove, structure is zero-capacity`)}if(this.isFull){shoved=this.pop()}this.push(v);return shoved}fill(x){for(let i=0;i<this._capacity;i++){this._values[i]=x}this._length=this._capacity;return this._values}indexOf(searchElement,fromIndex){const normalized=this.toArray();return normalized.indexOf(searchElement,fromIndex)}find(predicate,thisArg){return this.toArray().find(predicate,thisArg)}every(functor,thisArg){const normalized=this.toArray(),res=normalized.every(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}some(functor,thisArg){const normalized=this.toArray(),res=normalized.some(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}reverse(){const normalized=this.toArray();this._values=normalized.reverse();this._values.length=this._capacity;this._cursor=0;return this}clear(){const old=this.toArray();this._length=0;return old}pop(){if(this._length<=0){throw new RangeError(`Cannot pop, structure is empty`)}const cache=this.at(0);--this._length;++this._offset;++this._cursor;if(this._cursor>=this._capacity){this._cursor-=this._capacity}return cache}at(i){if(i<0){throw new RangeError(`circular_buffer does not support negative traversals; called at(${i})`)}if(!Number.isInteger(i)){throw new RangeError(`Accessors must be non-negative integers; called at(${i})`)}if(i>=this._capacity){throw new RangeError(`Requested cell ${i} exceeds container permanent capacity`)}if(i>=this._length){throw new RangeError(`Requested cell ${i} exceeds container current length`)}return this._values[(this._cursor+i)%this._capacity]}pos(i){return this.at(i-this.offset())}offset(){return this._offset}resize(newSize,preferEnd=false){this._values=this.toArray();this._cursor=0;const oldSize=this._length;this._length=Math.min(this._length,newSize);this._capacity=newSize;if(newSize>=oldSize){this._values.length=newSize}else{if(preferEnd){const tmp=this._values.slice(oldSize-newSize);this._values=tmp}else{this._values.length=newSize}}}toArray(){const startPoint=this._cursor%this._capacity;if(this._capacity>startPoint+this._length){return this._values.slice(startPoint,startPoint+this._length)}else{const base=this._values.slice(startPoint,this._capacity);base.push(...this._values.slice(0,this.length-(this._capacity-startPoint)));return base}}}class JssmError extends Error{constructor(machine,message,JEEI){const{requested_state:requested_state,source_location:source_location}=JEEI===void 0?{requested_state:void 0,source_location:void 0}:JEEI;const follow_ups=[];if(machine&&machine.state()!==void 0){follow_ups.push(`at "${machine.state()}"`)}if(requested_state!==void 0){follow_ups.push(`requested "${requested_state}"`)}const complex_msg=`${machine?.instance_name()===void 0?"":`[[${machine.instance_name()}]]: `}${message}${follow_ups.length>0?` (${follow_ups.join(", ")})`:""}`;super(complex_msg);this.name="JssmError";this.message=complex_msg;this.base_message=message;this.requested_state=requested_state;this.source_location=source_location}}function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError)}}peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function(expectation){return'"'+literalEscape(expectation.text)+'"'},class:function(expectation){var escapedParts="",i;for(i=0;i<expectation.parts.length;i++){escapedParts+=expectation.parts[i]instanceof Array?classEscape(expectation.parts[i][0])+"-"+classEscape(expectation.parts[i][1]):classEscape(expectation.parts[i])}return"["+(expectation.inverted?"^":"")+escapedParts+"]"},any:function(expectation){return"any character"},end:function(expectation){return"end of input"},other:function(expectation){return expectation.description}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase()}function literalEscape(s){return s.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function classEscape(s){return s.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation)}function describeExpected(expected2){var descriptions=new Array(expected2.length),i,j;for(i=0;i<expected2.length;i++){descriptions[i]=describeExpectation(expected2[i])}descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++}}descriptions.length=j}switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")+", or "+descriptions[descriptions.length-1]}}function describeFound(found2){return found2?'"'+literalEscape(found2)+'"':"end of input"}return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found."};function peg$parse(input,options){options=options!==void 0?options:{};var peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="default",peg$c2=peg$literalExpectation("default",false),peg$c3="ocean",peg$c4=peg$literalExpectation("ocean",false),peg$c5="modern",peg$c6=peg$literalExpectation("modern",false),peg$c7="plain",peg$c8=peg$literalExpectation("plain",false),peg$c9="bold",peg$c10=peg$literalExpectation("bold",false),peg$c11="[",peg$c12=peg$literalExpectation("[",false),peg$c13="]",peg$c14=peg$literalExpectation("]",false),peg$c15=function(ths,th){const themes=ths.map(t=>t[0]);if(th)themes.push(th);return themes},peg$c16=function(th){return[th]},peg$c17="box3d",peg$c18=peg$literalExpectation("box3d",false),peg$c19="polygon",peg$c20=peg$literalExpectation("polygon",false),peg$c21="ellipse",peg$c22=peg$literalExpectation("ellipse",false),peg$c23="oval",peg$c24=peg$literalExpectation("oval",false),peg$c25="circle",peg$c26=peg$literalExpectation("circle",false),peg$c27="point",peg$c28=peg$literalExpectation("point",false),peg$c29="egg",peg$c30=peg$literalExpectation("egg",false),peg$c31="triangle",peg$c32=peg$literalExpectation("triangle",false),peg$c33="plaintext",peg$c34=peg$literalExpectation("plaintext",false),peg$c35="diamond",peg$c36=peg$literalExpectation("diamond",false),peg$c37="trapezium",peg$c38=peg$literalExpectation("trapezium",false),peg$c39="parallelogram",peg$c40=peg$literalExpectation("parallelogram",false),peg$c41="house",peg$c42=peg$literalExpectation("house",false),peg$c43="pentagon",peg$c44=peg$literalExpectation("pentagon",false),peg$c45="hexagon",peg$c46=peg$literalExpectation("hexagon",false),peg$c47="septagon",peg$c48=peg$literalExpectation("septagon",false),peg$c49="octagon",peg$c50=peg$literalExpectation("octagon",false),peg$c51="doublecircle",peg$c52=peg$literalExpectation("doublecircle",false),peg$c53="doubleoctagon",peg$c54=peg$literalExpectation("doubleoctagon",false),peg$c55="tripleoctagon",peg$c56=peg$literalExpectation("tripleoctagon",false),peg$c57="invtriangle",peg$c58=peg$literalExpectation("invtriangle",false),peg$c59="invtrapezium",peg$c60=peg$literalExpectation("invtrapezium",false),peg$c61="invhouse",peg$c62=peg$literalExpectation("invhouse",false),peg$c63="Mdiamond",peg$c64=peg$literalExpectation("Mdiamond",false),peg$c65="Msquare",peg$c66=peg$literalExpectation("Msquare",false),peg$c67="Mcircle",peg$c68=peg$literalExpectation("Mcircle",false),peg$c69="rectangle",peg$c70=peg$literalExpectation("rectangle",false),peg$c71="rect",peg$c72=peg$literalExpectation("rect",false),peg$c73="square",peg$c74=peg$literalExpectation("square",false),peg$c75="star",peg$c76=peg$literalExpectation("star",false),peg$c77="none",peg$c78=peg$literalExpectation("none",false),peg$c79="underline",peg$c80=peg$literalExpectation("underline",false),peg$c81="cylinder",peg$c82=peg$literalExpectation("cylinder",false),peg$c83="note",peg$c84=peg$literalExpectation("note",false),peg$c85="tab",peg$c86=peg$literalExpectation("tab",false),peg$c87="folder",peg$c88=peg$literalExpectation("folder",false),peg$c89="box",peg$c90=peg$literalExpectation("box",false),peg$c91="component",peg$c92=peg$literalExpectation("component",false),peg$c93="promoter",peg$c94=peg$literalExpectation("promoter",false),peg$c95="cds",peg$c96=peg$literalExpectation("cds",false),peg$c97="terminator",peg$c98=peg$literalExpectation("terminator",false),peg$c99="utr",peg$c100=peg$literalExpectation("utr",false),peg$c101="primersite",peg$c102=peg$literalExpectation("primersite",false),peg$c103="restrictionsite",peg$c104=peg$literalExpectation("restrictionsite",false),peg$c105="fivepoverhang",peg$c106=peg$literalExpectation("fivepoverhang",false),peg$c107="threepoverhang",peg$c108=peg$literalExpectation("threepoverhang",false),peg$c109="noverhang",peg$c110=peg$literalExpectation("noverhang",false),peg$c111="assembly",peg$c112=peg$literalExpectation("assembly",false),peg$c113="signature",peg$c114=peg$literalExpectation("signature",false),peg$c115="insulator",peg$c116=peg$literalExpectation("insulator",false),peg$c117="ribosite",peg$c118=peg$literalExpectation("ribosite",false),peg$c119="rnastab",peg$c120=peg$literalExpectation("rnastab",false),peg$c121="proteasesite",peg$c122=peg$literalExpectation("proteasesite",false),peg$c123="proteinstab",peg$c124=peg$literalExpectation("proteinstab",false),peg$c125="rpromoter",peg$c126=peg$literalExpectation("rpromoter",false),peg$c127="rarrow",peg$c128=peg$literalExpectation("rarrow",false),peg$c129="larrow",peg$c130=peg$literalExpectation("larrow",false),peg$c131="lpromoter",peg$c132=peg$literalExpectation("lpromoter",false),peg$c133="record",peg$c134=peg$literalExpectation("record",false),peg$c135=peg$otherExpectation("forward light arrow ->"),peg$c136="->",peg$c137=peg$literalExpectation("->",false),peg$c138="→",peg$c139=peg$literalExpectation("→",false),peg$c140=function(){return"->"},peg$c141=peg$otherExpectation("two way light arrow <->"),peg$c142="<->",peg$c143=peg$literalExpectation("<->",false),peg$c144="↔",peg$c145=peg$literalExpectation("↔",false),peg$c146=function(){return"<->"},peg$c147=peg$otherExpectation("back light arrow <-"),peg$c148="<-",peg$c149=peg$literalExpectation("<-",false),peg$c150="←",peg$c151=peg$literalExpectation("←",false),peg$c152=function(){return"<-"},peg$c153=peg$otherExpectation("forward fat arrow =>"),peg$c154="=>",peg$c155=peg$literalExpectation("=>",false),peg$c156="⇒",peg$c157=peg$literalExpectation("⇒",false),peg$c158=function(){return"=>"},peg$c159=peg$otherExpectation("two way fat arrow <=>"),peg$c160="<=>",peg$c161=peg$literalExpectation("<=>",false),peg$c162="⇔",peg$c163=peg$literalExpectation("⇔",false),peg$c164=function(){return"<=>"},peg$c165=peg$otherExpectation("back fat arrow <="),peg$c166="<=",peg$c167=peg$literalExpectation("<=",false),peg$c168="⇐",peg$c169=peg$literalExpectation("⇐",false),peg$c170=function(){return"<="},peg$c171=peg$otherExpectation("forward tilde arrow ~>"),peg$c172="~>",peg$c173=peg$literalExpectation("~>",false),peg$c174="↛",peg$c175=peg$literalExpectation("↛",false),peg$c176=function(){return"~>"},peg$c177=peg$otherExpectation("two way tilde arrow <~>"),peg$c178="<~>",peg$c179=peg$literalExpectation("<~>",false),peg$c180="↮",peg$c181=peg$literalExpectation("↮",false),peg$c182=function(){return"<~>"},peg$c183=peg$otherExpectation("back tilde arrow <~"),peg$c184="<~",peg$c185=peg$literalExpectation("<~",false),peg$c186="↚",peg$c187=peg$literalExpectation("↚",false),peg$c188=function(){return"<~"},peg$c189=peg$otherExpectation("light fat arrow <-=>"),peg$c190="<-=>",peg$c191=peg$literalExpectation("<-=>",false),peg$c192="←⇒",peg$c193=peg$literalExpectation("←⇒",false),peg$c194=function(){return"<-=>"},peg$c195=peg$otherExpectation("light tilde arrow <-~>"),peg$c196="<-~>",peg$c197=peg$literalExpectation("<-~>",false),peg$c198="←↛",peg$c199=peg$literalExpectation("←↛",false),peg$c200=function(){return"<-~>"},peg$c201=peg$otherExpectation("fat light arrow <=->"),peg$c202="<=->",peg$c203=peg$literalExpectation("<=->",false),peg$c204="⇐→",peg$c205=peg$literalExpectation("⇐→",false),peg$c206=function(){return"<=->"},peg$c207=peg$otherExpectation("fat tilde arrow <=~>"),peg$c208="<=~>",peg$c209=peg$literalExpectation("<=~>",false),peg$c210="⇐↛",peg$c211=peg$literalExpectation("⇐↛",false),peg$c212=function(){return"<=~>"},peg$c213=peg$otherExpectation("tilde light arrow <~->"),peg$c214="<~->",peg$c215=peg$literalExpectation("<~->",false),peg$c216="↚→",peg$c217=peg$literalExpectation("↚→",false),peg$c218=function(){return"<~->"},peg$c219=peg$otherExpectation("tilde fat arrow <~=>"),peg$c220="<~=>",peg$c221=peg$literalExpectation("<~=>",false),peg$c222="↚⇒",peg$c223=peg$literalExpectation("↚⇒",false),peg$c224=function(){return"<~=>"},peg$c225=peg$otherExpectation("light arrow"),peg$c226=peg$otherExpectation("fat arrow"),peg$c227=peg$otherExpectation("tilde arrow"),peg$c228=peg$otherExpectation("mixed arrow"),peg$c229=peg$otherExpectation("arrow"),peg$c230="true",peg$c231=peg$literalExpectation("true",false),peg$c232=function(){return true},peg$c233="false",peg$c234=peg$literalExpectation("false",false),peg$c235=function(){return false},peg$c236="regular",peg$c237=peg$literalExpectation("regular",false),peg$c238="rounded",peg$c239=peg$literalExpectation("rounded",false),peg$c240="lined",peg$c241=peg$literalExpectation("lined",false),peg$c242="solid",peg$c243=peg$literalExpectation("solid",false),peg$c244="dotted",peg$c245=peg$literalExpectation("dotted",false),peg$c246="dashed",peg$c247=peg$literalExpectation("dashed",false),peg$c276="null",peg$c277=peg$literalExpectation("null",false),peg$c278=function(){return null},peg$c279="undefined",peg$c280=peg$literalExpectation("undefined",false),peg$c281=function(){return void 0},peg$c288=peg$otherExpectation("action label"),peg$c290=/^[\n\r\u2028\u2029]/,peg$c291=peg$classExpectation(["\n","\r","\u2028","\u2029"],false,false),peg$c292=peg$otherExpectation("block comment"),peg$c293="/*",peg$c294=peg$literalExpectation("/*",false),peg$c295="*/",peg$c296=peg$literalExpectation("*/",false),peg$c297=peg$anyExpectation(),peg$c298=peg$otherExpectation("line comment"),peg$c299="//",peg$c300=peg$literalExpectation("//",false),peg$c301=peg$otherExpectation("whitespace"),peg$c304=peg$otherExpectation("string"),peg$c307=/^[0-9a-zA-Z.+_\^()*&$#@!?,\x80-\uFFFF]/,peg$c308=peg$classExpectation([["0","9"],["a","z"],["A","Z"],".","+","_","^","(",")","*","&","$","#","@","!","?",",",["€","￿"]],false,false),peg$c309=peg$otherExpectation("atom"),peg$c311=peg$otherExpectation("label"),peg$c312="0",peg$c313=peg$literalExpectation("0",false),peg$c314=/^[0-9]/,peg$c315=peg$classExpectation([["0","9"]],false,false),peg$c316=/^[1-9]/,peg$c317=peg$classExpectation([["1","9"]],false,false),peg$c318=/^[0-9a-f]/i,peg$c319=peg$classExpectation([["0","9"],["a","f"]],false,true),peg$c320=/^[0-1]/,peg$c321=peg$classExpectation([["0","1"]],false,false),peg$c322=/^[0-7]/,peg$c323=peg$classExpectation([["0","7"]],false,false),peg$c324=peg$otherExpectation("nonneg number"),peg$c325=".",peg$c326=peg$literalExpectation(".",false),peg$c327=function(){return parseFloat(text())},peg$c328=peg$otherExpectation("number"),peg$c329=function(literal){return literal},peg$c330="NaN",peg$c331=peg$literalExpectation("NaN",false),peg$c332=function(){return NaN},peg$c333="NegativeInfinity",peg$c334=peg$literalExpectation("NegativeInfinity",false),peg$c335=function(){return Number.NEGATIVE_INFINITY},peg$c336="NegativeInf",peg$c337=peg$literalExpectation("NegativeInf",false),peg$c338="NegInfinity",peg$c339=peg$literalExpectation("NegInfinity",false),peg$c340="NegInf",peg$c341=peg$literalExpectation("NegInf",false),peg$c342="NInfinity",peg$c343=peg$literalExpectation("NInfinity",false),peg$c344="NInf",peg$c345=peg$literalExpectation("NInf",false),peg$c346="-∞",peg$c347=peg$literalExpectation("-∞",false),peg$c348="PInfinity",peg$c349=peg$literalExpectation("PInfinity",false),peg$c350=function(){return Number.POSITIVE_INFINITY},peg$c351="Infinity",peg$c352=peg$literalExpectation("Infinity",false),peg$c353="PInf",peg$c354=peg$literalExpectation("PInf",false),peg$c355="Inf",peg$c356=peg$literalExpectation("Inf",false),peg$c357="∞",peg$c358=peg$literalExpectation("∞",false),peg$c359="Epsilon",peg$c360=peg$literalExpectation("Epsilon",false),peg$c361=function(){return Number.EPSILON},peg$c362="𝜀",peg$c363=peg$literalExpectation("𝜀",false),peg$c364="ε",peg$c365=peg$literalExpectation("ε",false),peg$c366="Pi",peg$c367=peg$literalExpectation("Pi",false),peg$c368=function(){return Math.PI},peg$c369="𝜋",peg$c370=peg$literalExpectation("𝜋",false),peg$c371="π",peg$c372=peg$literalExpectation("π",false),peg$c373="EulerNumber",peg$c374=peg$literalExpectation("EulerNumber",false),peg$c375=function(){return Math.E},peg$c376="E",peg$c377=peg$literalExpectation("E",false),peg$c378="e",peg$c379=peg$literalExpectation("e",false),peg$c380="Ɛ",peg$c381=peg$literalExpectation("Ɛ",false),peg$c382="ℇ",peg$c383=peg$literalExpectation("ℇ",false),peg$c384="Root2",peg$c385=peg$literalExpectation("Root2",false),peg$c386=function(){return Math.SQRT2},peg$c387="RootHalf",peg$c388=peg$literalExpectation("RootHalf",false),peg$c389=function(){return Math.SQRT1_2},peg$c390="Ln2",peg$c391=peg$literalExpectation("Ln2",false),peg$c392=function(){return Math.LN2},peg$c393="NatLog2",peg$c394=peg$literalExpectation("NatLog2",false),peg$c395="Ln10",peg$c396=peg$literalExpectation("Ln10",false),peg$c397=function(){return Math.LN10},peg$c398="NatLog10",peg$c399=peg$literalExpectation("NatLog10",false),peg$c400="Log2E",peg$c401=peg$literalExpectation("Log2E",false),peg$c402=function(){return Math.LOG2E},peg$c403="Log10E",peg$c404=peg$literalExpectation("Log10E",false),peg$c405=function(){return Math.LOG10E},peg$c406="MaxSafeInt",peg$c407=peg$literalExpectation("MaxSafeInt",false),peg$c408=function(){return Number.MAX_SAFE_INTEGER},peg$c409="MinSafeInt",peg$c410=peg$literalExpectation("MinSafeInt",false),peg$c411=function(){return Number.MIN_SAFE_INTEGER},peg$c412="MaxPosNum",peg$c413=peg$literalExpectation("MaxPosNum",false),peg$c414=function(){return Number.MAX_VALUE},peg$c415="MinPosNum",peg$c416=peg$literalExpectation("MinPosNum",false),peg$c417=function(){return Number.MIN_VALUE},peg$c418="Phi",peg$c419=peg$literalExpectation("Phi",false),peg$c420=function(){return 1.618033988749895},peg$c421="𝜑",peg$c422=peg$literalExpectation("𝜑",false),peg$c423="𝜙",peg$c424=peg$literalExpectation("𝜙",false),peg$c425="ϕ",peg$c426=peg$literalExpectation("ϕ",false),peg$c427="φ",peg$c428=peg$literalExpectation("φ",false),peg$c429="EulerConstant",peg$c430=peg$literalExpectation("EulerConstant",false),peg$c431=function(){return.5772156649015329},peg$c432="γ",peg$c433=peg$literalExpectation("γ",false),peg$c434="𝛾",peg$c435=peg$literalExpectation("𝛾",false),peg$c436=peg$literalExpectation("e",true),peg$c437=/^[+\-]/,peg$c438=peg$classExpectation(["+","-"],false,false),peg$c439="0x",peg$c440=peg$literalExpectation("0x",true),peg$c441=function(digits){return parseInt(digits,16)},peg$c442="0b",peg$c443=peg$literalExpectation("0b",true),peg$c444=function(digits){return parseInt(digits,2)},peg$c445="0o",peg$c446=peg$literalExpectation("0o",true),peg$c447=function(digits){return parseInt(digits,8)},peg$c448=function(major,minor,patch){const node={major:parseInt(major,10),minor:parseInt(minor,10),patch:parseInt(patch,10),full:text()};if(options.locations){node.loc=location()}return node},peg$c459="http://",peg$c460=peg$literalExpectation("http://",false),peg$c461="https://",peg$c462=peg$literalExpectation("https://",false),peg$c463=/^[a-zA-Z0-9!*'():;@&=+$,\/?#[\]_.~\-]/,peg$c464=peg$classExpectation([["a","z"],["A","Z"],["0","9"],"!","*","'","(",")",":",";","@","&","=","+","$",",","/","?","#","[","]","_",".","~","-"],false,false),peg$c465=function(protocol){return text()},peg$c466="aliceblue",peg$c467=peg$literalExpectation("aliceblue",false),peg$c468=function(){return"#f0f8ffff"},peg$c469="AliceBlue",peg$c470=peg$literalExpectation("AliceBlue",false),peg$c471="antiquewhite",peg$c472=peg$literalExpectation("antiquewhite",false),peg$c473=function(){return"#faebd7ff"},peg$c474="AntiqueWhite",peg$c475=peg$literalExpectation("AntiqueWhite",false),peg$c476="aquamarine",peg$c477=peg$literalExpectation("aquamarine",false),peg$c478=function(){return"#7fffd4ff"},peg$c479="Aquamarine",peg$c480=peg$literalExpectation("Aquamarine",false),peg$c481="aqua",peg$c482=peg$literalExpectation("aqua",false),peg$c483=function(){return"#00ffffff"},peg$c484="Aqua",peg$c485=peg$literalExpectation("Aqua",false),peg$c486="azure",peg$c487=peg$literalExpectation("azure",false),peg$c488=function(){return"#f0ffffff"},peg$c489="Azure",peg$c490=peg$literalExpectation("Azure",false),peg$c491="beige",peg$c492=peg$literalExpectation("beige",false),peg$c493=function(){return"#f5f5dcff"},peg$c494="Beige",peg$c495=peg$literalExpectation("Beige",false),peg$c496="bisque",peg$c497=peg$literalExpectation("bisque",false),peg$c498=function(){return"#ffe4c4ff"},peg$c499="Bisque",peg$c500=peg$literalExpectation("Bisque",false),peg$c501="black",peg$c502=peg$literalExpectation("black",false),peg$c503=function(){return"#000000ff"},peg$c504="Black",peg$c505=peg$literalExpectation("Black",false),peg$c506="blanchedalmond",peg$c507=peg$literalExpectation("blanchedalmond",false),peg$c508=function(){return"#ffebcdff"},peg$c509="BlanchedAlmond",peg$c510=peg$literalExpectation("BlanchedAlmond",false),peg$c511="blueviolet",peg$c512=peg$literalExpectation("blueviolet",false),peg$c513=function(){return"#8a2be2ff"},peg$c514="BlueViolet",peg$c515=peg$literalExpectation("BlueViolet",false),peg$c516="blue",peg$c517=peg$literalExpectation("blue",false),peg$c518=function(){return"#0000ffff"},peg$c519="Blue",peg$c520=peg$literalExpectation("Blue",false),peg$c521="brown",peg$c522=peg$literalExpectation("brown",false),peg$c523=function(){return"#a52a2aff"},peg$c524="Brown",peg$c525=peg$literalExpectation("Brown",false),peg$c526="burlywood",peg$c527=peg$literalExpectation("burlywood",false),peg$c528=function(){return"#deb887ff"},peg$c529="BurlyWood",peg$c530=peg$literalExpectation("BurlyWood",false),peg$c531="cadetblue",peg$c532=peg$literalExpectation("cadetblue",false),peg$c533=function(){return"#5f9ea0ff"},peg$c534="CadetBlue",peg$c535=peg$literalExpectation("CadetBlue",false),peg$c536="chartreuse",peg$c537=peg$literalExpectation("chartreuse",false),peg$c538=function(){return"#7fff00ff"},peg$c539="Chartreuse",peg$c540=peg$literalExpectation("Chartreuse",false),peg$c541="chocolate",peg$c542=peg$literalExpectation("chocolate",false),peg$c543=function(){return"#d2691eff"},peg$c544="Chocolate",peg$c545=peg$literalExpectation("Chocolate",false),peg$c546="coral",peg$c547=peg$literalExpectation("coral",false),peg$c548=function(){return"#ff7f50ff"},peg$c549="Coral",peg$c550=peg$literalExpectation("Coral",false),peg$c551="cornflowerblue",peg$c552=peg$literalExpectation("cornflowerblue",false),peg$c553=function(){return"#6495edff"},peg$c554="CornflowerBlue",peg$c555=peg$literalExpectation("CornflowerBlue",false),peg$c556="cornsilk",peg$c557=peg$literalExpectation("cornsilk",false),peg$c558=function(){return"#fff8dcff"},peg$c559="Cornsilk",peg$c560=peg$literalExpectation("Cornsilk",false),peg$c561="crimson",peg$c562=peg$literalExpectation("crimson",false),peg$c563=function(){return"#dc143cff"},peg$c564="Crimson",peg$c565=peg$literalExpectation("Crimson",false),peg$c566="cyan",peg$c567=peg$literalExpectation("cyan",false),peg$c568="Cyan",peg$c569=peg$literalExpectation("Cyan",false),peg$c570="darkblue",peg$c571=peg$literalExpectation("darkblue",false),peg$c572=function(){return"#00008bff"},peg$c573="DarkBlue",peg$c574=peg$literalExpectation("DarkBlue",false),peg$c575="darkcyan",peg$c576=peg$literalExpectation("darkcyan",false),peg$c577=function(){return"#008b8bff"},peg$c578="DarkCyan",peg$c579=peg$literalExpectation("DarkCyan",false),peg$c580="darkgoldenrod",peg$c581=peg$literalExpectation("darkgoldenrod",false),peg$c582=function(){return"#b8860bff"},peg$c583="DarkGoldenRod",peg$c584=peg$literalExpectation("DarkGoldenRod",false),peg$c585="darkgray",peg$c586=peg$literalExpectation("darkgray",false),peg$c587=function(){return"#a9a9a9ff"},peg$c588="DarkGray",peg$c589=peg$literalExpectation("DarkGray",false),peg$c590="darkgrey",peg$c591=peg$literalExpectation("darkgrey",false),peg$c592="DarkGrey",peg$c593=peg$literalExpectation("DarkGrey",false),peg$c594="darkgreen",peg$c595=peg$literalExpectation("darkgreen",false),peg$c596=function(){return"#006400ff"},peg$c597="DarkGreen",peg$c598=peg$literalExpectation("DarkGreen",false),peg$c599="darkkhaki",peg$c600=peg$literalExpectation("darkkhaki",false),peg$c601=function(){return"#bdb76bff"},peg$c602="DarkKhaki",peg$c603=peg$literalExpectation("DarkKhaki",false),peg$c604="darkmagenta",peg$c605=peg$literalExpectation("darkmagenta",false),peg$c606=function(){return"#8b008bff"},peg$c607="DarkMagenta",peg$c608=peg$literalExpectation("DarkMagenta",false),peg$c609="darkolivegreen",peg$c610=peg$literalExpectation("darkolivegreen",false),peg$c611=function(){return"#556b2fff"},peg$c612="DarkOliveGreen",peg$c613=peg$literalExpectation("DarkOliveGreen",false),peg$c614="darkorange",peg$c615=peg$literalExpectation("darkorange",false),peg$c616=function(){return"#ff8c00ff"},peg$c617="Darkorange",peg$c618=peg$literalExpectation("Darkorange",false),peg$c619="darkorchid",peg$c620=peg$literalExpectation("darkorchid",false),peg$c621=function(){return"#9932ccff"},peg$c622="DarkOrchid",peg$c623=peg$literalExpectation("DarkOrchid",false),peg$c624="darkred",peg$c625=peg$literalExpectation("darkred",false),peg$c626=function(){return"#8b0000ff"},peg$c627="DarkRed",peg$c628=peg$literalExpectation("DarkRed",false),peg$c629="darksalmon",peg$c630=peg$literalExpectation("darksalmon",false),peg$c631=function(){return"#e9967aff"},peg$c632="DarkSalmon",peg$c633=peg$literalExpectation("DarkSalmon",false),peg$c634="darkseagreen",peg$c635=peg$literalExpectation("darkseagreen",false),peg$c636=function(){return"#8fbc8fff"},peg$c637="DarkSeaGreen",peg$c638=peg$literalExpectation("DarkSeaGreen",false),peg$c639="darkslateblue",peg$c640=peg$literalExpectation("darkslateblue",false),peg$c641=function(){return"#483d8bff"},peg$c642="DarkSlateBlue",peg$c643=peg$literalExpectation("DarkSlateBlue",false),peg$c644="darkslategray",peg$c645=peg$literalExpectation("darkslategray",false),peg$c646=function(){return"#2f4f4fff"},peg$c647="DarkSlateGray",peg$c648=peg$literalExpectation("DarkSlateGray",false),peg$c649="darkslategrey",peg$c650=peg$literalExpectation("darkslategrey",false),peg$c651="DarkSlateGrey",peg$c652=peg$literalExpectation("DarkSlateGrey",false),peg$c653="darkturquoise",peg$c654=peg$literalExpectation("darkturquoise",false),peg$c655=function(){return"#00ced1ff"},peg$c656="DarkTurquoise",peg$c657=peg$literalExpectation("DarkTurquoise",false),peg$c658="darkviolet",peg$c659=peg$literalExpectation("darkviolet",false),peg$c660=function(){return"#9400d3ff"},peg$c661="DarkViolet",peg$c662=peg$literalExpectation("DarkViolet",false),peg$c663="deeppink",peg$c664=peg$literalExpectation("deeppink",false),peg$c665=function(){return"#ff1493ff"},peg$c666="DeepPink",peg$c667=peg$literalExpectation("DeepPink",false),peg$c668="deepskyblue",peg$c669=peg$literalExpectation("deepskyblue",false),peg$c670=function(){return"#00bfffff"},peg$c671="DeepSkyBlue",peg$c672=peg$literalExpectation("DeepSkyBlue",false),peg$c673="dimgray",peg$c674=peg$literalExpectation("dimgray",false),peg$c675=function(){return"#696969ff"},peg$c676="DimGray",peg$c677=peg$literalExpectation("DimGray",false),peg$c678="dimgrey",peg$c679=peg$literalExpectation("dimgrey",false),peg$c680="DimGrey",peg$c681=peg$literalExpectation("DimGrey",false),peg$c682="dodgerblue",peg$c683=peg$literalExpectation("dodgerblue",false),peg$c684=function(){return"#1e90ffff"},peg$c685="DodgerBlue",peg$c686=peg$literalExpectation("DodgerBlue",false),peg$c687="firebrick",peg$c688=peg$literalExpectation("firebrick",false),peg$c689=function(){return"#b22222ff"},peg$c690="FireBrick",peg$c691=peg$literalExpectation("FireBrick",false),peg$c692="floralwhite",peg$c693=peg$literalExpectation("floralwhite",false),peg$c694=function(){return"#fffaf0ff"},peg$c695="FloralWhite",peg$c696=peg$literalExpectation("FloralWhite",false),peg$c697="forestgreen",peg$c698=peg$literalExpectation("forestgreen",false),peg$c699=function(){return"#228b22ff"},peg$c700="ForestGreen",peg$c701=peg$literalExpectation("ForestGreen",false),peg$c702="fuchsia",peg$c703=peg$literalExpectation("fuchsia",false),peg$c704=function(){return"#ff00ffff"},peg$c705="Fuchsia",peg$c706=peg$literalExpectation("Fuchsia",false),peg$c707="gainsboro",peg$c708=peg$literalExpectation("gainsboro",false),peg$c709=function(){return"#dcdcdcff"},peg$c710="Gainsboro",peg$c711=peg$literalExpectation("Gainsboro",false),peg$c712="ghostwhite",peg$c713=peg$literalExpectation("ghostwhite",false),peg$c714=function(){return"#f8f8ffff"},peg$c715="GhostWhite",peg$c716=peg$literalExpectation("GhostWhite",false),peg$c717="goldenrod",peg$c718=peg$literalExpectation("goldenrod",false),peg$c719=function(){return"#daa520ff"},peg$c720="GoldenRod",peg$c721=peg$literalExpectation("GoldenRod",false),peg$c722="gold",peg$c723=peg$literalExpectation("gold",false),peg$c724=function(){return"#ffd700ff"},peg$c725="Gold",peg$c726=peg$literalExpectation("Gold",false),peg$c727="gray",peg$c728=peg$literalExpectation("gray",false),peg$c729=function(){return"#808080ff"},peg$c730="Gray",peg$c731=peg$literalExpectation("Gray",false),peg$c732="grey",peg$c733=peg$literalExpectation("grey",false),peg$c734="Grey",peg$c735=peg$literalExpectation("Grey",false),peg$c736="greenyellow",peg$c737=peg$literalExpectation("greenyellow",false),peg$c738=function(){return"#adff2fff"},peg$c739="GreenYellow",peg$c740=peg$literalExpectation("GreenYellow",false),peg$c741="green",peg$c742=peg$literalExpectation("green",false),peg$c743=function(){return"#008000ff"},peg$c744="Green",peg$c745=peg$literalExpectation("Green",false),peg$c746="honeydew",peg$c747=peg$literalExpectation("honeydew",false),peg$c748=function(){return"#f0fff0ff"},peg$c749="HoneyDew",peg$c750=peg$literalExpectation("HoneyDew",false),peg$c751="hotpink",peg$c752=peg$literalExpectation("hotpink",false),peg$c753=function(){return"#ff69b4ff"},peg$c754="HotPink",peg$c755=peg$literalExpectation("HotPink",false),peg$c756="indianred",peg$c757=peg$literalExpectation("indianred",false),peg$c758=function(){return"#cd5c5cff"},peg$c759="IndianRed",peg$c760=peg$literalExpectation("IndianRed",false),peg$c761="indigo",peg$c762=peg$literalExpectation("indigo",false),peg$c763=function(){return"#4b0082ff"},peg$c764="Indigo",peg$c765=peg$literalExpectation("Indigo",false),peg$c766="ivory",peg$c767=peg$literalExpectation("ivory",false),peg$c768=function(){return"#fffff0ff"},peg$c769="Ivory",peg$c770=peg$literalExpectation("Ivory",false),peg$c771="khaki",peg$c772=peg$literalExpectation("khaki",false),peg$c773=function(){return"#f0e68cff"},peg$c774="Khaki",peg$c775=peg$literalExpectation("Khaki",false),peg$c776="lavenderblush",peg$c777=peg$literalExpectation("lavenderblush",false),peg$c778=function(){return"#fff0f5ff"},peg$c779="LavenderBlush",peg$c780=peg$literalExpectation("LavenderBlush",false),peg$c781="lavender",peg$c782=peg$literalExpectation("lavender",false),peg$c783=function(){return"#e6e6faff"},peg$c784="Lavender",peg$c785=peg$literalExpectation("Lavender",false),peg$c786="lawngreen",peg$c787=peg$literalExpectation("lawngreen",false),peg$c788=function(){return"#7cfc00ff"},peg$c789="LawnGreen",peg$c790=peg$literalExpectation("LawnGreen",false),peg$c791="lemonchiffon",peg$c792=peg$literalExpectation("lemonchiffon",false),peg$c793=function(){return"#fffacdff"},peg$c794="LemonChiffon",peg$c795=peg$literalExpectation("LemonChiffon",false),peg$c796="lightblue",peg$c797=peg$literalExpectation("lightblue",false),peg$c798=function(){return"#add8e6ff"},peg$c799="LightBlue",peg$c800=peg$literalExpectation("LightBlue",false),peg$c801="lightcoral",peg$c802=peg$literalExpectation("lightcoral",false),peg$c803=function(){return"#f08080ff"},peg$c804="LightCoral",peg$c805=peg$literalExpectation("LightCoral",false),peg$c806="lightcyan",peg$c807=peg$literalExpectation("lightcyan",false),peg$c808=function(){return"#e0ffffff"},peg$c809="LightCyan",peg$c810=peg$literalExpectation("LightCyan",false),peg$c811="lightgoldenrodyellow",peg$c812=peg$literalExpectation("lightgoldenrodyellow",false),peg$c813=function(){return"#fafad2ff"},peg$c814="LightGoldenRodYellow",peg$c815=peg$literalExpectation("LightGoldenRodYellow",false),peg$c816="lightgray",peg$c817=peg$literalExpectation("lightgray",false),peg$c818=function(){return"#d3d3d3ff"},peg$c819="LightGray",peg$c820=peg$literalExpectation("LightGray",false),peg$c821="lightgrey",peg$c822=peg$literalExpectation("lightgrey",false),peg$c823="LightGrey",peg$c824=peg$literalExpectation("LightGrey",false),peg$c825="lightgreen",peg$c826=peg$literalExpectation("lightgreen",false),peg$c827=function(){return"#90ee90ff"},peg$c828="LightGreen",peg$c829=peg$literalExpectation("LightGreen",false),peg$c830="lightpink",peg$c831=peg$literalExpectation("lightpink",false),peg$c832=function(){return"#ffb6c1ff"},peg$c833="LightPink",peg$c834=peg$literalExpectation("LightPink",false),peg$c835="lightsalmon",peg$c836=peg$literalExpectation("lightsalmon",false),peg$c837=function(){return"#ffa07aff"},peg$c838="LightSalmon",peg$c839=peg$literalExpectation("LightSalmon",false),peg$c840="lightseagreen",peg$c841=peg$literalExpectation("lightseagreen",false),peg$c842=function(){return"#20b2aaff"},peg$c843="LightSeaGreen",peg$c844=peg$literalExpectation("LightSeaGreen",false),peg$c845="lightskyblue",peg$c846=peg$literalExpectation("lightskyblue",false),peg$c847=function(){return"#87cefaff"},peg$c848="LightSkyBlue",peg$c849=peg$literalExpectation("LightSkyBlue",false),peg$c850="lightslategray",peg$c851=peg$literalExpectation("lightslategray",false),peg$c852=function(){return"#778899ff"},peg$c853="LightSlateGray",peg$c854=peg$literalExpectation("LightSlateGray",false),peg$c855="lightslategrey",peg$c856=peg$literalExpectation("lightslategrey",false),peg$c857="LightSlateGrey",peg$c858=peg$literalExpectation("LightSlateGrey",false),peg$c859="lightsteelblue",peg$c860=peg$literalExpectation("lightsteelblue",false),peg$c861=function(){return"#b0c4deff"},peg$c862="LightSteelBlue",peg$c863=peg$literalExpectation("LightSteelBlue",false),peg$c864="lightyellow",peg$c865=peg$literalExpectation("lightyellow",false),peg$c866=function(){return"#ffffe0ff"},peg$c867="LightYellow",peg$c868=peg$literalExpectation("LightYellow",false),peg$c869="limegreen",peg$c870=peg$literalExpectation("limegreen",false),peg$c871=function(){return"#32cd32ff"},peg$c872="LimeGreen",peg$c873=peg$literalExpectation("LimeGreen",false),peg$c874="lime",peg$c875=peg$literalExpectation("lime",false),peg$c876=function(){return"#00ff00ff"},peg$c877="Lime",peg$c878=peg$literalExpectation("Lime",false),peg$c879="linen",peg$c880=peg$literalExpectation("linen",false),peg$c881=function(){return"#faf0e6ff"},peg$c882="Linen",peg$c883=peg$literalExpectation("Linen",false),peg$c884="magenta",peg$c885=peg$literalExpectation("magenta",false),peg$c886="Magenta",peg$c887=peg$literalExpectation("Magenta",false),peg$c888="maroon",peg$c889=peg$literalExpectation("maroon",false),peg$c890=function(){return"#800000ff"},peg$c891="Maroon",peg$c892=peg$literalExpectation("Maroon",false),peg$c893="mediumaquamarine",peg$c894=peg$literalExpectation("mediumaquamarine",false),peg$c895=function(){return"#66cdaaff"},peg$c896="MediumAquaMarine",peg$c897=peg$literalExpectation("MediumAquaMarine",false),peg$c898="mediumblue",peg$c899=peg$literalExpectation("mediumblue",false),peg$c900=function(){return"#0000cdff"},peg$c901="MediumBlue",peg$c902=peg$literalExpectation("MediumBlue",false),peg$c903="mediumorchid",peg$c904=peg$literalExpectation("mediumorchid",false),peg$c905=function(){return"#ba55d3ff"},peg$c906="MediumOrchid",peg$c907=peg$literalExpectation("MediumOrchid",false),peg$c908="mediumpurple",peg$c909=peg$literalExpectation("mediumpurple",false),peg$c910=function(){return"#9370d8ff"},peg$c911="MediumPurple",peg$c912=peg$literalExpectation("MediumPurple",false),peg$c913="mediumseagreen",peg$c914=peg$literalExpectation("mediumseagreen",false),peg$c915=function(){return"#3cb371ff"},peg$c916="MediumSeaGreen",peg$c917=peg$literalExpectation("MediumSeaGreen",false),peg$c918="mediumslateblue",peg$c919=peg$literalExpectation("mediumslateblue",false),peg$c920=function(){return"#7b68eeff"},peg$c921="MediumSlateBlue",peg$c922=peg$literalExpectation("MediumSlateBlue",false),peg$c923="mediumspringgreen",peg$c924=peg$literalExpectation("mediumspringgreen",false),peg$c925=function(){return"#00fa9aff"},peg$c926="MediumSpringGreen",peg$c927=peg$literalExpectation("MediumSpringGreen",false),peg$c928="mediumturquoise",peg$c929=peg$literalExpectation("mediumturquoise",false),peg$c930=function(){return"#48d1ccff"},peg$c931="MediumTurquoise",peg$c932=peg$literalExpectation("MediumTurquoise",false),peg$c933="mediumvioletred",peg$c934=peg$literalExpectation("mediumvioletred",false),peg$c935=function(){return"#c71585ff"},peg$c936="MediumVioletRed",peg$c937=peg$literalExpectation("MediumVioletRed",false),peg$c938="midnightblue",peg$c939=peg$literalExpectation("midnightblue",false),peg$c940=function(){return"#191970ff"},peg$c941="MidnightBlue",peg$c942=peg$literalExpectation("MidnightBlue",false),peg$c943="mintcream",peg$c944=peg$literalExpectation("mintcream",false),peg$c945=function(){return"#f5fffaff"},peg$c946="MintCream",peg$c947=peg$literalExpectation("MintCream",false),peg$c948="mistyrose",peg$c949=peg$literalExpectation("mistyrose",false),peg$c950=function(){return"#ffe4e1ff"},peg$c951="MistyRose",peg$c952=peg$literalExpectation("MistyRose",false),peg$c953="moccasin",peg$c954=peg$literalExpectation("moccasin",false),peg$c955=function(){return"#ffe4b5ff"},peg$c956="Moccasin",peg$c957=peg$literalExpectation("Moccasin",false),peg$c958="navajowhite",peg$c959=peg$literalExpectation("navajowhite",false),peg$c960=function(){return"#ffdeadff"},peg$c961="NavajoWhite",peg$c962=peg$literalExpectation("NavajoWhite",false),peg$c963="navy",peg$c964=peg$literalExpectation("navy",false),peg$c965=function(){return"#000080ff"},peg$c966="Navy",peg$c967=peg$literalExpectation("Navy",false),peg$c968="oldlace",peg$c969=peg$literalExpectation("oldlace",false),peg$c970=function(){return"#fdf5e6ff"},peg$c971="OldLace",peg$c972=peg$literalExpectation("OldLace",false),peg$c973="olivedrab",peg$c974=peg$literalExpectation("olivedrab",false),peg$c975=function(){return"#6b8e23ff"},peg$c976="OliveDrab",peg$c977=peg$literalExpectation("OliveDrab",false),peg$c978="olive",peg$c979=peg$literalExpectation("olive",false),peg$c980=function(){return"#808000ff"},peg$c981="Olive",peg$c982=peg$literalExpectation("Olive",false),peg$c983="orangered",peg$c984=peg$literalExpectation("orangered",false),peg$c985=function(){return"#ff4500ff"},peg$c986="OrangeRed",peg$c987=peg$literalExpectation("OrangeRed",false),peg$c988="orange",peg$c989=peg$literalExpectation("orange",false),peg$c990=function(){return"#ffa500ff"},peg$c991="Orange",peg$c992=peg$literalExpectation("Orange",false),peg$c993="orchid",peg$c994=peg$literalExpectation("orchid",false),peg$c995=function(){return"#da70d6ff"},peg$c996="Orchid",peg$c997=peg$literalExpectation("Orchid",false),peg$c998="palegoldenrod",peg$c999=peg$literalExpectation("palegoldenrod",false),peg$c1000=function(){return"#eee8aaff"},peg$c1001="PaleGoldenRod",peg$c1002=peg$literalExpectation("PaleGoldenRod",false),peg$c1003="palegreen",peg$c1004=peg$literalExpectation("palegreen",false),peg$c1005=function(){return"#98fb98ff"},peg$c1006="PaleGreen",peg$c1007=peg$literalExpectation("PaleGreen",false),peg$c1008="paleturquoise",peg$c1009=peg$literalExpectation("paleturquoise",false),peg$c1010=function(){return"#afeeeeff"},peg$c1011="PaleTurquoise",peg$c1012=peg$literalExpectation("PaleTurquoise",false),peg$c1013="palevioletred",peg$c1014=peg$literalExpectation("palevioletred",false),peg$c1015=function(){return"#d87093ff"},peg$c1016="PaleVioletRed",peg$c1017=peg$literalExpectation("PaleVioletRed",false),peg$c1018="papayawhip",peg$c1019=peg$literalExpectation("papayawhip",false),peg$c1020=function(){return"#ffefd5ff"},peg$c1021="PapayaWhip",peg$c1022=peg$literalExpectation("PapayaWhip",false),peg$c1023="peachpuff",peg$c1024=peg$literalExpectation("peachpuff",false),peg$c1025=function(){return"#ffdab9ff"},peg$c1026="PeachPuff",peg$c1027=peg$literalExpectation("PeachPuff",false),peg$c1028="peru",peg$c1029=peg$literalExpectation("peru",false),peg$c1030=function(){return"#cd853fff"},peg$c1031="Peru",peg$c1032=peg$literalExpectation("Peru",false),peg$c1033="pink",peg$c1034=peg$literalExpectation("pink",false),peg$c1035=function(){return"#ffc0cbff"},peg$c1036="Pink",peg$c1037=peg$literalExpectation("Pink",false),peg$c1038="plum",peg$c1039=peg$literalExpectation("plum",false),peg$c1040=function(){return"#dda0ddff"},peg$c1041="Plum",peg$c1042=peg$literalExpectation("Plum",false),peg$c1043="powderblue",peg$c1044=peg$literalExpectation("powderblue",false),peg$c1045=function(){return"#b0e0e6ff"},peg$c1046="PowderBlue",peg$c1047=peg$literalExpectation("PowderBlue",false),peg$c1048="purple",peg$c1049=peg$literalExpectation("purple",false),peg$c1050=function(){return"#800080ff"},peg$c1051="Purple",peg$c1052=peg$literalExpectation("Purple",false),peg$c1053="red",peg$c1054=peg$literalExpectation("red",false),peg$c1055=function(){return"#ff0000ff"},peg$c1056="Red",peg$c1057=peg$literalExpectation("Red",false),peg$c1058="rosybrown",peg$c1059=peg$literalExpectation("rosybrown",false),peg$c1060=function(){return"#bc8f8fff"},peg$c1061="RosyBrown",peg$c1062=peg$literalExpectation("RosyBrown",false),peg$c1063="royalblue",peg$c1064=peg$literalExpectation("royalblue",false),peg$c1065=function(){return"#4169e1ff"},peg$c1066="RoyalBlue",peg$c1067=peg$literalExpectation("RoyalBlue",false),peg$c1068="saddlebrown",peg$c1069=peg$literalExpectation("saddlebrown",false),peg$c1070=function(){return"#8b4513ff"},peg$c1071="SaddleBrown",peg$c1072=peg$literalExpectation("SaddleBrown",false),peg$c1073="salmon",peg$c1074=peg$literalExpectation("salmon",false),peg$c1075=function(){return"#fa8072ff"},peg$c1076="Salmon",peg$c1077=peg$literalExpectation("Salmon",false),peg$c1078="sandybrown",peg$c1079=peg$literalExpectation("sandybrown",false),peg$c1080=function(){return"#f4a460ff"},peg$c1081="SandyBrown",peg$c1082=peg$literalExpectation("SandyBrown",false),peg$c1083="seagreen",peg$c1084=peg$literalExpectation("seagreen",false),peg$c1085=function(){return"#2e8b57ff"},peg$c1086="SeaGreen",peg$c1087=peg$literalExpectation("SeaGreen",false),peg$c1088="seashell",peg$c1089=peg$literalExpectation("seashell",false),peg$c1090=function(){return"#fff5eeff"},peg$c1091="SeaShell",peg$c1092=peg$literalExpectation("SeaShell",false),peg$c1093="sienna",peg$c1094=peg$literalExpectation("sienna",false),peg$c1095=function(){return"#a0522dff"},peg$c1096="Sienna",peg$c1097=peg$literalExpectation("Sienna",false),peg$c1098="silver",peg$c1099=peg$literalExpectation("silver",false),peg$c1100=function(){return"#c0c0c0ff"},peg$c1101="Silver",peg$c1102=peg$literalExpectation("Silver",false),peg$c1103="skyblue",peg$c1104=peg$literalExpectation("skyblue",false),peg$c1105=function(){return"#87ceebff"},peg$c1106="SkyBlue",peg$c1107=peg$literalExpectation("SkyBlue",false),peg$c1108="slateblue",peg$c1109=peg$literalExpectation("slateblue",false),peg$c1110=function(){return"#6a5acdff"},peg$c1111="SlateBlue",peg$c1112=peg$literalExpectation("SlateBlue",false),peg$c1113="slategray",peg$c1114=peg$literalExpectation("slategray",false),peg$c1115=function(){return"#708090ff"},peg$c1116="SlateGray",peg$c1117=peg$literalExpectation("SlateGray",false),peg$c1118="slategrey",peg$c1119=peg$literalExpectation("slategrey",false),peg$c1120="SlateGrey",peg$c1121=peg$literalExpectation("SlateGrey",false),peg$c1122="snow",peg$c1123=peg$literalExpectation("snow",false),peg$c1124=function(){return"#fffafaff"},peg$c1125="Snow",peg$c1126=peg$literalExpectation("Snow",false),peg$c1127="springgreen",peg$c1128=peg$literalExpectation("springgreen",false),peg$c1129=function(){return"#00ff7fff"},peg$c1130="SpringGreen",peg$c1131=peg$literalExpectation("SpringGreen",false),peg$c1132="steelblue",peg$c1133=peg$literalExpectation("steelblue",false),peg$c1134=function(){return"#4682b4ff"},peg$c1135="SteelBlue",peg$c1136=peg$literalExpectation("SteelBlue",false),peg$c1137="tan",peg$c1138=peg$literalExpectation("tan",false),peg$c1139=function(){return"#d2b48cff"},peg$c1140="Tan",peg$c1141=peg$literalExpectation("Tan",false),peg$c1142="teal",peg$c1143=peg$literalExpectation("teal",false),peg$c1144=function(){return"#008080ff"},peg$c1145="Teal",peg$c1146=peg$literalExpectation("Teal",false),peg$c1147="thistle",peg$c1148=peg$literalExpectation("thistle",false),peg$c1149=function(){return"#d8bfd8ff"},peg$c1150="Thistle",peg$c1151=peg$literalExpectation("Thistle",false),peg$c1152="tomato",peg$c1153=peg$literalExpectation("tomato",false),peg$c1154=function(){return"#ff6347ff"},peg$c1155="Tomato",peg$c1156=peg$literalExpectation("Tomato",false),peg$c1157="transparent",peg$c1158=peg$literalExpectation("transparent",false),peg$c1159=function(){return"#00000000"},peg$c1160="Transparent",peg$c1161=peg$literalExpectation("Transparent",false),peg$c1162="turquoise",peg$c1163=peg$literalExpectation("turquoise",false),peg$c1164=function(){return"#40e0d0ff"},peg$c1165="Turquoise",peg$c1166=peg$literalExpectation("Turquoise",false),peg$c1167="violet",peg$c1168=peg$literalExpectation("violet",false),peg$c1169=function(){return"#ee82eeff"},peg$c1170="Violet",peg$c1171=peg$literalExpectation("Violet",false),peg$c1172="wheat",peg$c1173=peg$literalExpectation("wheat",false),peg$c1174=function(){return"#f5deb3ff"},peg$c1175="Wheat",peg$c1176=peg$literalExpectation("Wheat",false),peg$c1177="whitesmoke",peg$c1178=peg$literalExpectation("whitesmoke",false),peg$c1179=function(){return"#f5f5f5ff"},peg$c1180="WhiteSmoke",peg$c1181=peg$literalExpectation("WhiteSmoke",false),peg$c1182="white",peg$c1183=peg$literalExpectation("white",false),peg$c1184=function(){return"#ffffffff"},peg$c1185="White",peg$c1186=peg$literalExpectation("White",false),peg$c1187="yellowgreen",peg$c1188=peg$literalExpectation("yellowgreen",false),peg$c1189=function(){return"#9acd32ff"},peg$c1190="YellowGreen",peg$c1191=peg$literalExpectation("YellowGreen",false),peg$c1192="yellow",peg$c1193=peg$literalExpectation("yellow",false),peg$c1194=function(){return"#ffff00ff"},peg$c1195="Yellow",peg$c1196=peg$literalExpectation("Yellow",false),peg$c1197=function(lab){return lab},peg$c1198="#",peg$c1199=peg$literalExpectation("#",false),peg$c1200=function(r,g,b){return`#${r}${r}${g}${g}${b}${b}ff`},peg$c1201=function(r1,r2,g1,g2,b1,b2){return`#${r1}${r2}${g1}${g2}${b1}${b2}ff`},peg$c1202=function(r,g,b,a){return`#${r}${r}${g}${g}${b}${b}${a}${a}`},peg$c1203=function(r1,r2,g1,g2,b1,b2,a1,a2){return`#${r1}${r2}${g1}${g2}${b1}${b2}${a1}${a2}`},peg$c1204=peg$otherExpectation("color"),peg$c1205="arc_label",peg$c1206=peg$literalExpectation("arc_label",false),peg$c1207="head_label",peg$c1208=peg$literalExpectation("head_label",false),peg$c1209="tail_label",peg$c1210=peg$literalExpectation("tail_label",false),peg$c1211=":",peg$c1212=peg$literalExpectation(":",false),peg$c1213=";",peg$c1214=peg$literalExpectation(";",false),peg$c1215=function(key,value){const node={key:key,value:value};if(options.locations){node.loc=location()}return node},peg$c1216=peg$otherExpectation("single edge color"),peg$c1217="edge-color",peg$c1218=peg$literalExpectation("edge-color",false),peg$c1219=function(v){return options.locations?{__v:v,__loc:location()}:v},peg$c1220=function(value){const raw=options.locations?value.__v:value;const node={key:"single_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1221="edge_color",peg$c1222=peg$literalExpectation("edge_color",false),peg$c1223=peg$otherExpectation("transition line style"),peg$c1224="line-style",peg$c1225=peg$literalExpectation("line-style",false),peg$c1226=function(value){const node={key:"transition_line_style",value:value};if(options.locations){node.loc=location()}return node},peg$c1227="{",peg$c1228=peg$literalExpectation("{",false),peg$c1229="}",peg$c1230=peg$literalExpectation("}",false),peg$c1231=function(items){return items},peg$c1232="%",peg$c1233=peg$literalExpectation("%",false),peg$c1234=function(value){const node={key:"arrow probability",value:value};if(options.locations){node.loc=location()}return node},peg$c1235="milliseconds",peg$c1236=peg$literalExpectation("milliseconds",false),peg$c1237=function(){return 1},peg$c1238="millisecond",peg$c1239=peg$literalExpectation("millisecond",false),peg$c1240="msecs",peg$c1241=peg$literalExpectation("msecs",false),peg$c1242="msec",peg$c1243=peg$literalExpectation("msec",false),peg$c1244="ms",peg$c1245=peg$literalExpectation("ms",false),peg$c1246="seconds",peg$c1247=peg$literalExpectation("seconds",false),peg$c1248=function(){return 1e3},peg$c1249="second",peg$c1250=peg$literalExpectation("second",false),peg$c1251="secs",peg$c1252=peg$literalExpectation("secs",false),peg$c1253="sec",peg$c1254=peg$literalExpectation("sec",false),peg$c1255="s",peg$c1256=peg$literalExpectation("s",false),peg$c1257="minutes",peg$c1258=peg$literalExpectation("minutes",false),peg$c1259=function(){return 1e3*60},peg$c1260="minute",peg$c1261=peg$literalExpectation("minute",false),peg$c1262="mins",peg$c1263=peg$literalExpectation("mins",false),peg$c1264="min",peg$c1265=peg$literalExpectation("min",false),peg$c1266="m",peg$c1267=peg$literalExpectation("m",false),peg$c1268="hours",peg$c1269=peg$literalExpectation("hours",false),peg$c1270=function(){return 1e3*60*60},peg$c1271="hour",peg$c1272=peg$literalExpectation("hour",false),peg$c1273="hrs",peg$c1274=peg$literalExpectation("hrs",false),peg$c1275="hr",peg$c1276=peg$literalExpectation("hr",false),peg$c1277="h",peg$c1278=peg$literalExpectation("h",false),peg$c1279="days",peg$c1280=peg$literalExpectation("days",false),peg$c1281=function(){return 1e3*60*60*24},peg$c1282="day",peg$c1283=peg$literalExpectation("day",false),peg$c1284="d",peg$c1285=peg$literalExpectation("d",false),peg$c1286="weeks",peg$c1287=peg$literalExpectation("weeks",false),peg$c1288=function(){return 1e3*60*60*24*7},peg$c1289="week",peg$c1290=peg$literalExpectation("week",false),peg$c1291="wks",peg$c1292=peg$literalExpectation("wks",false),peg$c1293="wk",peg$c1294=peg$literalExpectation("wk",false),peg$c1295="w",peg$c1296=peg$literalExpectation("w",false),peg$c1297="after",peg$c1298=peg$literalExpectation("after",false),peg$c1299=function(value,timescale){return value*(timescale||1e3)},peg$c1300=function(names){return names.map(i=>i[0])},peg$c1301=peg$otherExpectation("group reference"),peg$c1302="&",peg$c1303=peg$literalExpectation("&",false),peg$c1304=function(name){return{key:"group_ref",name:name}},peg$c1305="...",peg$c1306=peg$literalExpectation("...",false),peg$c1307=function(name){const m={kind:"group",name:name,mode:"spread"};if(options.locations){m.__loc=location()}return m},peg$c1308=function(name){const m={kind:"group",name:name,mode:"nest"};if(options.locations){m.__loc=location()}return m},peg$c1309=function(name){const m={kind:"state",name:name};if(options.locations){m.__loc=location()}return m},peg$c1310=function(members){const items=members.map(m=>m[0]);const has_group=items.some(m=>m.kind==="group");const collapsed=has_group?items:items.map(m=>m.name);if(options.locations){collapsed.__member_locs=items.map(m=>m.__loc)}return collapsed},peg$c1311="+|",peg$c1312=peg$literalExpectation("+|",false),peg$c1313=function(n){const node={key:"stripe",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1314="-|",peg$c1315=peg$literalExpectation("-|",false),peg$c1316=function(n){const node={key:"stripe",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1317="+",peg$c1318=peg$literalExpectation("+",false),peg$c1319=function(n){const node={key:"cycle",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1320="-",peg$c1321=peg$literalExpectation("-",false),peg$c1322=function(n){const node={key:"cycle",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1323="+0",peg$c1324=peg$literalExpectation("+0",false),peg$c1325=function(){const node={key:"cycle",value:0};if(options.locations){node.loc=location()}return node},peg$c1326=function(v){return{_kind:"after",v:v}},peg$c1327=function(v){return{_kind:"action",v:v,loc:location()}},peg$c1328=function(v){return{_kind:"prob",v:v}},peg$c1329=function(v){return{_kind:"desc",v:v}},peg$c1330=function(d){return d},peg$c1331=function(pre,arrow,post,l){return options.locations?{__v:l,__loc:location()}:l},peg$c1332=function(pre,arrow,post,label,tail){const toVal=options.locations?label.__v:label;const base={kind:arrow,to:toVal};const seen={};for(const d of pre){if(seen["pre:"+d._kind]){error("duplicate "+d._kind+" decoration before arrow",location())}seen["pre:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.r_after=d.v}if(d._kind==="action"&&d.v!=null){base.r_action=d.v;if(options.locations){base.r_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.r_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.l_desc=d.v}}for(const d of post){if(seen["post:"+d._kind]){error("duplicate "+d._kind+" decoration after arrow",location())}seen["post:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.l_after=d.v}if(d._kind==="action"&&d.v!=null){base.l_action=d.v;if(options.locations){base.l_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.l_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.r_desc=d.v}}if(tail){base.se=tail}if(options.locations){base.loc=location();base.to_loc=label.__loc}return base},peg$c1333=function(l){return options.locations?{__v:l,__loc:location()}:l},peg$c1334=function(label,se){const fromVal=options.locations?label.__v:label;const base={key:"transition",from:fromVal};if(se){base.se=se}if(options.locations){base.loc=location();base.from_loc=label.__loc}return base},peg$c1335="dot",peg$c1336=peg$literalExpectation("dot",false),peg$c1337="circo",peg$c1338=peg$literalExpectation("circo",false),peg$c1339="fdp",peg$c1340=peg$literalExpectation("fdp",false),peg$c1341="neato",peg$c1342=peg$literalExpectation("neato",false),peg$c1343="twopi",peg$c1344=peg$literalExpectation("twopi",false),peg$c1345="state",peg$c1346=peg$literalExpectation("state",false),peg$c1347="};",peg$c1348=peg$literalExpectation("};",false),peg$c1349=function(state_items){const node={key:"default_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1350="start_state",peg$c1351=peg$literalExpectation("start_state",false),peg$c1352=function(state_items){const node={key:"default_start_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1353="end_state",peg$c1354=peg$literalExpectation("end_state",false),peg$c1355=function(state_items){const node={key:"default_end_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1356="active_state",peg$c1357=peg$literalExpectation("active_state",false),peg$c1358=function(state_items){const node={key:"default_active_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1359="terminal_state",peg$c1360=peg$literalExpectation("terminal_state",false),peg$c1361=function(state_items){const node={key:"default_terminal_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1362="hooked_state",peg$c1363=peg$literalExpectation("hooked_state",false),peg$c1364=function(state_items){const node={key:"default_hooked_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1365=peg$otherExpectation("graph default edge color"),peg$c1366=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_default_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1367="transition",peg$c1368=peg$literalExpectation("transition",false),peg$c1369=function(items){const node={key:"default_transition_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1370="graph",peg$c1371=peg$literalExpectation("graph",false),peg$c1372=function(items){const node={key:"default_graph_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1373="editor",peg$c1374=peg$literalExpectation("editor",false),peg$c1375=function(items){const node={key:"editor_config",value:items};if(options.locations){node.loc=location()}return node},peg$c1376="stochastic_run_count",peg$c1377=peg$literalExpectation("stochastic_run_count",false),peg$c1378=function(value){const node={key:"stochastic_run_count",value:parseInt(value,10)};if(options.locations){node.loc=location()}return node},peg$c1379="panels",peg$c1380=peg$literalExpectation("panels",false),peg$c1381=function(value){const node={key:"panels",value:value};if(options.locations){node.loc=location()}return node},peg$c1382="graph_layout",peg$c1383=peg$literalExpectation("graph_layout",false),peg$c1384=function(value){const node={key:"graph_layout",value:value};if(options.locations){node.loc=location()}return node},peg$c1385="start_states",peg$c1386=peg$literalExpectation("start_states",false),peg$c1387=function(value){const node={key:"start_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1388="end_states",peg$c1389=peg$literalExpectation("end_states",false),peg$c1390=function(value){const node={key:"end_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1391="failed_outputs",peg$c1392=peg$literalExpectation("failed_outputs",false),peg$c1393=function(value){const raw=options.locations?value.__v:value;const node={key:"failed_outputs",value:typeof raw==="string"?[raw]:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1394="graph_bg_color",peg$c1395=peg$literalExpectation("graph_bg_color",false),peg$c1396=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_bg_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1397="allows_override",peg$c1398=peg$literalExpectation("allows_override",false),peg$c1399=function(value){const node={key:"allows_override",value:value};if(options.locations){node.loc=location()}return node},peg$c1400="allow_islands",peg$c1401=peg$literalExpectation("allow_islands",false),peg$c1402=function(value){const raw=options.locations?value.__v:value;const node={key:"allow_islands",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1403=function(){return true},peg$c1404=function(){return false},peg$c1405="with_start",peg$c1406=peg$literalExpectation("with_start",false),peg$c1407=function(){return"with_start"},peg$c1408=function(){return true},peg$c1409=function(){return false},peg$c1410=peg$otherExpectation("configuration"),peg$c1411="MIT",peg$c1412=peg$literalExpectation("MIT",false),peg$c1413="BSD 2-clause",peg$c1414=peg$literalExpectation("BSD 2-clause",false),peg$c1415="BSD 3-clause",peg$c1416=peg$literalExpectation("BSD 3-clause",false),peg$c1417="Apache 2.0",peg$c1418=peg$literalExpectation("Apache 2.0",false),peg$c1419="Mozilla 2.0",peg$c1420=peg$literalExpectation("Mozilla 2.0",false),peg$c1421="Public domain",peg$c1422=peg$literalExpectation("Public domain",false),peg$c1423="GPL v2",peg$c1424=peg$literalExpectation("GPL v2",false),peg$c1425="GPL v3",peg$c1426=peg$literalExpectation("GPL v3",false),peg$c1427="LGPL v2.1",peg$c1428=peg$literalExpectation("LGPL v2.1",false),peg$c1429="LGPL v3.0",peg$c1430=peg$literalExpectation("LGPL v3.0",false),peg$c1431="Unknown",peg$c1432=peg$literalExpectation("Unknown",false),peg$c1433=peg$otherExpectation("direction"),peg$c1434="up",peg$c1435=peg$literalExpectation("up",false),peg$c1436="right",peg$c1437=peg$literalExpectation("right",false),peg$c1438="down",peg$c1439=peg$literalExpectation("down",false),peg$c1440="left",peg$c1441=peg$literalExpectation("left",false),peg$c1442=peg$otherExpectation("hook definition (open/closed)"),peg$c1443="open",peg$c1444=peg$literalExpectation("open",false),peg$c1445="closed",peg$c1446=peg$literalExpectation("closed",false),peg$c1447="machine_author",peg$c1448=peg$literalExpectation("machine_author",false),peg$c1449=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_author",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1450="machine_contributor",peg$c1451=peg$literalExpectation("machine_contributor",false),peg$c1452=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_contributor",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1453="machine_comment",peg$c1454=peg$literalExpectation("machine_comment",false),peg$c1455=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_comment",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1456="machine_definition",peg$c1457=peg$literalExpectation("machine_definition",false),peg$c1458=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1459="machine_name",peg$c1460=peg$literalExpectation("machine_name",false),peg$c1461=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1462="npm_name",peg$c1463=peg$literalExpectation("npm_name",false),peg$c1464=function(value){const raw=options.locations?value.__v:value;const node={key:"npm_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1465="machine_reference",peg$c1466=peg$literalExpectation("machine_reference",false),peg$c1467=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_reference",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1468="machine_version",peg$c1469=peg$literalExpectation("machine_version",false),peg$c1470=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1471="machine_license",peg$c1472=peg$literalExpectation("machine_license",false),peg$c1473=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_license",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1474="machine_language",peg$c1475=peg$literalExpectation("machine_language",false),peg$c1476=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_language",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1477="fsl_version",peg$c1478=peg$literalExpectation("fsl_version",false),peg$c1479=function(value){const raw=options.locations?value.__v:value;const node={key:"fsl_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1480="theme",peg$c1481=peg$literalExpectation("theme",false),peg$c1482=function(value){const raw=options.locations?value.__v:value;const node={key:"theme",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1483="flow",peg$c1484=peg$literalExpectation("flow",false),peg$c1485=function(value){const raw=options.locations?value.__v:value;const node={key:"flow",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1486="hooks",peg$c1487=peg$literalExpectation("hooks",false),peg$c1488=function(value){const raw=options.locations?value.__v:value;const node={key:"hook_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1489="dot_preamble",peg$c1490=peg$literalExpectation("dot_preamble",false),peg$c1491=function(value){const raw=options.locations?value.__v:value;const node={key:"dot_preamble",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1492="height",peg$c1493=peg$literalExpectation("height",false),peg$c1494=function(n){return{height:n}},peg$c1495=function(w,h){return{width:w,height:h}},peg$c1496=function(w){return{width:w}},peg$c1497="default_size",peg$c1498=peg$literalExpectation("default_size",false),peg$c1499=function(value){const raw=options.locations?value.__v:value;const node={key:"default_size",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1500=peg$otherExpectation("machine attribute"),peg$c1501="label",peg$c1502=peg$literalExpectation("label",false),peg$c1503=function(value){const node={key:"state-label",value:value};if(options.locations){node.loc=location()}return node},peg$c1504="color",peg$c1505=peg$literalExpectation("color",false),peg$c1506=function(value){const raw=options.locations?value.__v:value;const node={key:"color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1507=peg$otherExpectation("text color"),peg$c1508="text-color",peg$c1509=peg$literalExpectation("text-color",false),peg$c1510=function(value){const raw=options.locations?value.__v:value;const node={key:"text-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1511=peg$otherExpectation("background color"),peg$c1512="background-color",peg$c1513=peg$literalExpectation("background-color",false),peg$c1514=function(value){const raw=options.locations?value.__v:value;const node={key:"background-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1515=peg$otherExpectation("border color"),peg$c1516="border-color",peg$c1517=peg$literalExpectation("border-color",false),peg$c1518=function(value){const raw=options.locations?value.__v:value;const node={key:"border-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1519=peg$otherExpectation("shape"),peg$c1520="shape",peg$c1521=peg$literalExpectation("shape",false),peg$c1522=function(value){const node={key:"shape",value:value};if(options.locations){node.loc=location()}return node},peg$c1523=peg$otherExpectation("corners"),peg$c1524="corners",peg$c1525=peg$literalExpectation("corners",false),peg$c1526=function(value){const node={key:"corners",value:value};if(options.locations){node.loc=location()}return node},peg$c1527=peg$otherExpectation("linestyle"),peg$c1528=function(value){const node={key:"line-style",value:value};if(options.locations){node.loc=location()}return node},peg$c1529="linestyle",peg$c1530=peg$literalExpectation("linestyle",false),peg$c1531=peg$otherExpectation("image"),peg$c1532="image",peg$c1533=peg$literalExpectation("image",false),peg$c1534=function(value){const node={key:"image",value:value};if(options.locations){node.loc=location()}return node},peg$c1535=peg$otherExpectation("url"),peg$c1536="url",peg$c1537=peg$literalExpectation("url",false),peg$c1538=function(value){const node={key:"url",value:value};if(options.locations){node.loc=location()}return node},peg$c1539=peg$otherExpectation("state property"),peg$c1540="property",peg$c1541=peg$literalExpectation("property",false),peg$c1542=function(name,value){const node={key:"state_property",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1543="required",peg$c1544=peg$literalExpectation("required",false),peg$c1545=function(name,value){const node={key:"state_property",name:name,value:value,required:true};if(options.locations){node.loc=location()}return node},peg$c1546=function(n){return options.locations?{__v:n,__loc:location()}:n},peg$c1547=function(name,value){const raw=options.locations?name.__v:name;const node={key:"state_declaration",name:raw,value:value};if(options.locations){node.loc=location();node.name_loc=name.__loc}return node},peg$c1548=function(name,value){const node={key:"named_list",name:name,value:value};if(options.locations){node.loc=location();node.value_locs=value.__member_locs;delete value.__member_locs}return node},peg$c1549=function(name,value){const node={key:"named_list",name:name,value:value.name};if(options.locations){node.loc=location();node.value_locs=[value.__loc]}return node},peg$c1550=function(name){const m={name:name};if(options.locations){m.__loc=location()}return m},peg$c1551=peg$otherExpectation("hook event (enter/exit)"),peg$c1552="enter",peg$c1553=peg$literalExpectation("enter",false),peg$c1554="exit",peg$c1555=peg$literalExpectation("exit",false),peg$c1556=peg$otherExpectation("hook declaration"),peg$c1557="on",peg$c1558=peg$literalExpectation("on",false),peg$c1559="do",peg$c1560=peg$literalExpectation("do",false),peg$c1561=function(event,subject,action){const node={key:"hook_decl",event:event,subject:subject,action:action};if(subject.key==="hook_state_subject"){node.subject=subject.name;if(options.locations){node.subject_loc=subject.__loc}}if(options.locations){node.loc=location()}return node},peg$c1562=function(name){const m={key:"hook_state_subject",name:name};if(options.locations){m.__loc=location()}return m},peg$c1563=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value,required:true};if(options.locations){node.loc=location()}return node},peg$c1564=function(name){const node={key:"property_definition",name:name,required:true};if(options.locations){node.loc=location()}return node},peg$c1565=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value};if(options.locations){node.loc=location()}return node},peg$c1566=function(name){const node={key:"property_definition",name:name};if(options.locations){node.loc=location()}return node},peg$c1567="arrange",peg$c1568=peg$literalExpectation("arrange",false),peg$c1569=function(value){const node={key:"arrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1570="arrange-start",peg$c1571=peg$literalExpectation("arrange-start",false),peg$c1572=function(value){const node={key:"arrange_start_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1573="arrange-end",peg$c1574=peg$literalExpectation("arrange-end",false),peg$c1575=function(value){const node={key:"arrange_end_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1576=peg$otherExpectation("oarrange declaration"),peg$c1577="oarrange",peg$c1578=peg$literalExpectation("oarrange",false),peg$c1579=function(value){const node={key:"oarrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1580=peg$otherExpectation("farrange declaration"),peg$c1581="farrange",peg$c1582=peg$literalExpectation("farrange",false),peg$c1583=function(value){const node={key:"farrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1584=peg$otherExpectation("arrange declaration"),peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error(`Can't start parsing from rule "`+options.startRule+'".')}peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function location(){return peg$computeLocation(peg$savedPos,peg$currPos)}function error(message,location2){location2=location2!==void 0?location2:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location2)}function peg$literalExpectation(text2,ignoreCase){return{type:"literal",text:text2,ignoreCase:ignoreCase}}function peg$classExpectation(parts,inverted,ignoreCase){return{type:"class",parts:parts,inverted:inverted,ignoreCase:ignoreCase}}function peg$anyExpectation(){return{type:"any"}}function peg$endExpectation(){return{type:"end"}}function peg$otherExpectation(description){return{type:"other",description:description}}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p;if(details){return details}else{p=pos-1;while(!peg$posDetailsCache[p]){p--}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(p<pos){if(input.charCodeAt(p)===10){details.line++;details.column=1}else{details.column++}p++}peg$posDetailsCache[pos]=details;return details}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}}}function peg$fail(expected2){if(peg$currPos<peg$maxFailPos){return}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected2)}function peg$buildSimpleError(message,location2){return new peg$SyntaxError(message,null,null,location2)}function peg$buildStructuredError(expected2,found,location2){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected2,found),expected2,found,location2)}function peg$parseDocument(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseTermList();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c0(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseTheme(){var s0;if(input.substr(peg$currPos,7)===peg$c1){s0=peg$c1;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c3){s0=peg$c3;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c4)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c5){s0=peg$c5;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c6)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c9){s0=peg$c9;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c10)}}}}}}return s0}function peg$parseThemeOrThemeList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){s4=peg$parseTheme();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s5=peg$c13;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseTheme();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s1)}s0=s1}return s0}function peg$parseGvizShape(){var s0;if(input.substr(peg$currPos,5)===peg$c17){s0=peg$c17;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c18)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c19){s0=peg$c19;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c20)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c21){s0=peg$c21;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c22)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c23){s0=peg$c23;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c24)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c25){s0=peg$c25;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c26)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c27){s0=peg$c27;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c28)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c29){s0=peg$c29;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c30)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c31){s0=peg$c31;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c32)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c33){s0=peg$c33;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c34)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c35){s0=peg$c35;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c36)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c37){s0=peg$c37;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c38)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c39){s0=peg$c39;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c40)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c41){s0=peg$c41;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c42)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c43){s0=peg$c43;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c44)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c45){s0=peg$c45;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c46)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c47){s0=peg$c47;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c48)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c49){s0=peg$c49;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c50)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c51){s0=peg$c51;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c52)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c53){s0=peg$c53;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c54)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c55){s0=peg$c55;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c56)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c57){s0=peg$c57;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c58)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c59){s0=peg$c59;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c60)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c61){s0=peg$c61;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c62)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c63){s0=peg$c63;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c64)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c65){s0=peg$c65;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c66)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c67){s0=peg$c67;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c68)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c69){s0=peg$c69;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c70)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c71){s0=peg$c71;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c72)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c73){s0=peg$c73;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c74)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c75){s0=peg$c75;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c76)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c77){s0=peg$c77;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c78)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c79){s0=peg$c79;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c80)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c81){s0=peg$c81;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c82)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c83){s0=peg$c83;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c84)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c85){s0=peg$c85;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c86)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c87){s0=peg$c87;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c88)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c89){s0=peg$c89;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c90)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c91){s0=peg$c91;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c92)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c93){s0=peg$c93;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c94)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c95){s0=peg$c95;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c96)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c97){s0=peg$c97;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c98)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c99){s0=peg$c99;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c100)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c101){s0=peg$c101;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c102)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,15)===peg$c103){s0=peg$c103;peg$currPos+=15}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c104)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c105){s0=peg$c105;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c106)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,14)===peg$c107){s0=peg$c107;peg$currPos+=14}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c108)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c109){s0=peg$c109;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c110)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c111){s0=peg$c111;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c112)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c113){s0=peg$c113;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c114)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c115){s0=peg$c115;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c116)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c117){s0=peg$c117;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c118)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c119){s0=peg$c119;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c120)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c121){s0=peg$c121;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c122)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c123){s0=peg$c123;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c124)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c125){s0=peg$c125;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c126)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c127){s0=peg$c127;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c128)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c129){s0=peg$c129;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c130)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c131){s0=peg$c131;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c132)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c133){s0=peg$c133;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c134)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseForwardLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c136){s0=peg$c136;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c137)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8594){s1=peg$c138;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c139)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c140()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c135)}}return s0}function peg$parseTwoWayLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c142){s0=peg$c142;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c143)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8596){s1=peg$c144;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c145)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c146()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c141)}}return s0}function peg$parseBackLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c148){s0=peg$c148;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c149)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8592){s1=peg$c150;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c152()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c147)}}return s0}function peg$parseForwardFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c154){s0=peg$c154;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c155)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8658){s1=peg$c156;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c157)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c158()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c153)}}return s0}function peg$parseTwoWayFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c160){s0=peg$c160;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c161)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8660){s1=peg$c162;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c164()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c159)}}return s0}function peg$parseBackFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c166){s0=peg$c166;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c167)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8656){s1=peg$c168;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c169)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c170()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c165)}}return s0}function peg$parseForwardTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c172){s0=peg$c172;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c173)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8603){s1=peg$c174;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c175)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c176()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c171)}}return s0}function peg$parseTwoWayTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c178){s0=peg$c178;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c179)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8622){s1=peg$c180;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c182()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c177)}}return s0}function peg$parseBackTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c184){s0=peg$c184;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c185)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8602){s1=peg$c186;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c187)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c188()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c183)}}return s0}function peg$parseLightFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c190){s0=peg$c190;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c191)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c192){s1=peg$c192;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c194()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c189)}}return s0}function peg$parseLightTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c196){s0=peg$c196;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c197)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c198){s1=peg$c198;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c199)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c200()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c195)}}return s0}function peg$parseFatLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c202){s0=peg$c202;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c203)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c204){s1=peg$c204;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c205)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c206()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c201)}}return s0}function peg$parseFatTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c208){s0=peg$c208;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c209)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c210){s1=peg$c210;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c211)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c212()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c207)}}return s0}function peg$parseTildeLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c214){s0=peg$c214;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c215)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c216){s1=peg$c216;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c217)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c218()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c213)}}return s0}function peg$parseTildeFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c220){s0=peg$c220;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c221)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c222){s1=peg$c222;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c223)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c224()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c219)}}return s0}function peg$parseLightArrow(){var s0;peg$silentFails++;s0=peg$parseForwardLightArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayLightArrow();if(s0===peg$FAILED){s0=peg$parseBackLightArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c225)}}return s0}function peg$parseFatArrow(){var s0;peg$silentFails++;s0=peg$parseForwardFatArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayFatArrow();if(s0===peg$FAILED){s0=peg$parseBackFatArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c226)}}return s0}function peg$parseTildeArrow(){var s0;peg$silentFails++;s0=peg$parseForwardTildeArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayTildeArrow();if(s0===peg$FAILED){s0=peg$parseBackTildeArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c227)}}return s0}function peg$parseMixedArrow(){var s0;peg$silentFails++;s0=peg$parseLightFatArrow();if(s0===peg$FAILED){s0=peg$parseLightTildeArrow();if(s0===peg$FAILED){s0=peg$parseFatLightArrow();if(s0===peg$FAILED){s0=peg$parseFatTildeArrow();if(s0===peg$FAILED){s0=peg$parseTildeLightArrow();if(s0===peg$FAILED){s0=peg$parseTildeFatArrow()}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c228)}}return s0}function peg$parseArrow(){var s0;peg$silentFails++;s0=peg$parseMixedArrow();if(s0===peg$FAILED){s0=peg$parseLightArrow();if(s0===peg$FAILED){s0=peg$parseFatArrow();if(s0===peg$FAILED){s0=peg$parseTildeArrow()}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c229)}}return s0}function peg$parseBoolean(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c232()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235()}s0=s1}return s0}function peg$parseCorners(){var s0;if(input.substr(peg$currPos,7)===peg$c236){s0=peg$c236;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c237)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c238){s0=peg$c238;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c239)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c240){s0=peg$c240;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c241)}}}}return s0}function peg$parseLineStyle(){var s0;if(input.substr(peg$currPos,5)===peg$c242){s0=peg$c242;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c243)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c244){s0=peg$c244;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c245)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c246){s0=peg$c246;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c247)}}}}return s0}function peg$parseNull(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c276){s1=peg$c276;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c277)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c278()}s0=s1;return s0}function peg$parseUndefined(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1;return s0}function peg$parseActionLabel(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===39){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=32&&c!==39&&c!==92){peg$currPos++;continue}if(c===39){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===39){out+="'";peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c288)}return peg$FAILED}function peg$parseLineTerminator(){var s0;if(peg$c290.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c291)}}return s0}function peg$parseBlockComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c293){s1=peg$c293;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c294)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c295){s3=peg$c295;peg$currPos+=2}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c292)}}return s0}function peg$parseEOF(){var s0,s1;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}peg$silentFails--;if(s1===peg$FAILED){s0=void 0}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c299){s1=peg$c299;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c300)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){s3=peg$parseLineTerminator();if(s3===peg$FAILED){s3=peg$parseEOF()}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c298)}}return s0}function peg$parseWS(){var c,r,matched;peg$silentFails++;matched=false;for(;;){c=input.charCodeAt(peg$currPos);if(c===32||c===9||c===13||c===10||c===11){peg$currPos++;matched=true;continue}if(c!==47){break}r=peg$parseBlockComment();if(r===peg$FAILED){r=peg$parseLineComment()}if(r===peg$FAILED){break}matched=true}peg$silentFails--;if(matched){return null}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c301)}return peg$FAILED}function peg$parseString(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===34){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=0&&c!==34&&c!==92){peg$currPos++;continue}if(c===34){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===34){out+='"';peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c304)}return peg$FAILED}function peg$parseAtomLetter(){var s0;if(peg$c307.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c308)}}return s0}function peg$parseAtom(){var c,start;peg$silentFails++;c=input.charCodeAt(peg$currPos);if(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c>=128){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c===43||c===40||c===41||c===38||c===35||c===64||c>=128){peg$currPos++;c=input.charCodeAt(peg$currPos)}peg$silentFails--;return input.substring(start,peg$currPos)}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c309)}return peg$FAILED}function peg$parseLabel(){var s0;peg$silentFails++;s0=peg$parseAtom();if(s0===peg$FAILED){s0=peg$parseString()}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseIntegerLiteral(){var c,start;c=input.charCodeAt(peg$currPos);if(c===48){peg$currPos++;return"0"}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}if(c>=49&&c<=57){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57){peg$currPos++;c=input.charCodeAt(peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}return input.substring(start,peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}return peg$FAILED}function peg$parseDecimalDigit(){var s0;if(peg$c314.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}}return s0}function peg$parseNonZeroDigit(){var s0;if(peg$c316.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}}return s0}function peg$parseHexDigit(){var s0;if(peg$c318.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c319)}}return s0}function peg$parseBinaryDigit(){var s0;if(peg$c320.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c321)}}return s0}function peg$parseOctalDigit(){var s0;if(peg$c322.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c323)}}return s0}function peg$parseNonNegNumber(){var s0,s1,s2,s3,s4;peg$silentFails++;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c324)}}return s0}function peg$parseJsNumericLiteral(){var s0,s1;peg$silentFails++;s0=peg$currPos;s1=peg$parseJsHexIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsBinaryIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonJsOctalIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c330){s1=peg$c330;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c331)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c332()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c333){s1=peg$c333;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c334)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c336){s1=peg$c336;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c337)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c338){s1=peg$c338;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c339)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c340){s1=peg$c340;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c341)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c342){s1=peg$c342;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c343)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c344){s1=peg$c344;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c345)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c346){s1=peg$c346;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c347)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c348){s1=peg$c348;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c349)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c351){s1=peg$c351;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c352)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c353){s1=peg$c353;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c354)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c355){s1=peg$c355;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c356)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8734){s1=peg$c357;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c358)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c359){s1=peg$c359;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c360)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c362){s1=peg$c362;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c363)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===949){s1=peg$c364;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c365)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c366){s1=peg$c366;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c367)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c369){s1=peg$c369;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c370)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===960){s1=peg$c371;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c372)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c373){s1=peg$c373;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c374)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===69){s1=peg$c376;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c377)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===101){s1=peg$c378;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c379)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===400){s1=peg$c380;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c381)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8455){s1=peg$c382;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c383)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c384){s1=peg$c384;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c385)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c386()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c387){s1=peg$c387;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c388)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c389()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c390){s1=peg$c390;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c391)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c393){s1=peg$c393;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c394)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c395){s1=peg$c395;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c396)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c398){s1=peg$c398;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c399)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c400){s1=peg$c400;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c401)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c402()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c403){s1=peg$c403;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c404)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c405()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c406){s1=peg$c406;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c407)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c409){s1=peg$c409;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c410)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c411()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c412){s1=peg$c412;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c413)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c414()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c415){s1=peg$c415;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c416)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c417()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c418){s1=peg$c418;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c419)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c421){s1=peg$c421;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c422)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c423){s1=peg$c423;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c424)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===981){s1=peg$c425;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c426)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===966){s1=peg$c427;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c428)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c429){s1=peg$c429;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c430)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===947){s1=peg$c432;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c433)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c434){s1=peg$c434;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c435)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c328)}}return s0}function peg$parseJsDecimalLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseJsNExponentPart();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===46){s1=peg$c325;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s3=peg$parseJsNExponentPart();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseJsNExponentPart();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}return s0}function peg$parseJsDecimalIntegerLiteral(){var s0,s1,s2,s3;if(input.charCodeAt(peg$currPos)===48){s0=peg$c312;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonZeroDigit();if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseJsNExponentPart(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseJsNExponentIndicator();if(s1!==peg$FAILED){s2=peg$parseJsNSignedInteger();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsNExponentIndicator(){var s0;if(input.substr(peg$currPos,1).toLowerCase()===peg$c378){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c436)}}return s0}function peg$parseJsNSignedInteger(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c437.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c438)}}if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsHexIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c439){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c440)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c441(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsBinaryIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c442){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c443)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseBinaryDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseBinaryDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c444(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNonJsOctalIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c445){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c446)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseOctalDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseOctalDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c447(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSemVer(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=peg$parseIntegerLiteral();if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s4=peg$c325;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s4!==peg$FAILED){s5=peg$parseIntegerLiteral();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c448(s1,s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseUrlProtocol(){var s0;if(input.substr(peg$currPos,7)===peg$c459){s0=peg$c459;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c460)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c461){s0=peg$c461;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c462)}}}return s0}function peg$parseURL(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseUrlProtocol();if(s1!==peg$FAILED){s2=[];if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}}}else{s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c465();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSvgColorLabel(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c466){s1=peg$c466;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c467)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c469){s1=peg$c469;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c470)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c471){s1=peg$c471;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c472)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c474){s1=peg$c474;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c475)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c476){s1=peg$c476;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c477)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c479){s1=peg$c479;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c480)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c481){s1=peg$c481;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c482)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c484){s1=peg$c484;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c485)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c486){s1=peg$c486;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c487)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c489){s1=peg$c489;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c490)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c491){s1=peg$c491;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c492)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c494){s1=peg$c494;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c495)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c496){s1=peg$c496;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c497)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c499){s1=peg$c499;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c500)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c501){s1=peg$c501;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c502)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c504){s1=peg$c504;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c505)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c506){s1=peg$c506;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c507)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c509){s1=peg$c509;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c510)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c511){s1=peg$c511;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c512)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c514){s1=peg$c514;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c515)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c516){s1=peg$c516;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c517)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c519){s1=peg$c519;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c520)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c521){s1=peg$c521;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c522)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c524){s1=peg$c524;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c525)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c526){s1=peg$c526;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c527)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c529){s1=peg$c529;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c530)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c531){s1=peg$c531;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c532)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c534){s1=peg$c534;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c535)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c536){s1=peg$c536;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c537)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c539){s1=peg$c539;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c540)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c541){s1=peg$c541;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c542)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c544){s1=peg$c544;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c545)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c546){s1=peg$c546;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c547)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c549){s1=peg$c549;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c550)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c551){s1=peg$c551;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c552)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c554){s1=peg$c554;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c555)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c556){s1=peg$c556;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c557)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c559){s1=peg$c559;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c560)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c561){s1=peg$c561;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c562)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c564){s1=peg$c564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c565)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c566){s1=peg$c566;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c567)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c568){s1=peg$c568;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c569)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c570){s1=peg$c570;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c571)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c573){s1=peg$c573;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c574)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c575){s1=peg$c575;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c576)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c578){s1=peg$c578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c579)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c580){s1=peg$c580;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c581)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c583){s1=peg$c583;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c584)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c585){s1=peg$c585;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c586)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c588){s1=peg$c588;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c589)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c590){s1=peg$c590;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c591)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c592){s1=peg$c592;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c593)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c594){s1=peg$c594;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c595)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c597){s1=peg$c597;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c598)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c599){s1=peg$c599;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c600)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c602){s1=peg$c602;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c603)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c604){s1=peg$c604;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c605)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c607){s1=peg$c607;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c608)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c609){s1=peg$c609;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c610)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c612){s1=peg$c612;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c613)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c614){s1=peg$c614;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c615)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c617){s1=peg$c617;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c618)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c619){s1=peg$c619;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c620)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c622){s1=peg$c622;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c623)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c624){s1=peg$c624;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c625)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c627){s1=peg$c627;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c628)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c629){s1=peg$c629;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c630)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c632){s1=peg$c632;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c633)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c634){s1=peg$c634;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c635)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c637){s1=peg$c637;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c638)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c639){s1=peg$c639;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c640)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c642){s1=peg$c642;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c643)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c644){s1=peg$c644;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c645)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c647){s1=peg$c647;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c648)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c649){s1=peg$c649;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c650)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c651){s1=peg$c651;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c652)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c653){s1=peg$c653;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c654)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c656){s1=peg$c656;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c657)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c658){s1=peg$c658;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c659)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c661){s1=peg$c661;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c662)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c663){s1=peg$c663;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c664)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c666){s1=peg$c666;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c667)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c668){s1=peg$c668;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c669)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c671){s1=peg$c671;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c672)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c673){s1=peg$c673;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c674)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c676){s1=peg$c676;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c677)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c678){s1=peg$c678;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c679)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c680){s1=peg$c680;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c681)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c682){s1=peg$c682;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c683)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c685){s1=peg$c685;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c686)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c687){s1=peg$c687;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c688)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c690){s1=peg$c690;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c691)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c692){s1=peg$c692;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c693)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c695){s1=peg$c695;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c696)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c697){s1=peg$c697;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c698)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c700){s1=peg$c700;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c701)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c702){s1=peg$c702;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c703)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c705){s1=peg$c705;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c706)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c707){s1=peg$c707;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c708)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c710){s1=peg$c710;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c711)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c712){s1=peg$c712;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c713)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c715){s1=peg$c715;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c716)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c717){s1=peg$c717;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c718)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c720){s1=peg$c720;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c721)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c722){s1=peg$c722;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c723)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c725){s1=peg$c725;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c726)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c727){s1=peg$c727;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c728)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c730){s1=peg$c730;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c731)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c732){s1=peg$c732;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c733)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c734){s1=peg$c734;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c735)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c736){s1=peg$c736;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c737)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c739){s1=peg$c739;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c740)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c741){s1=peg$c741;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c742)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c744){s1=peg$c744;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c745)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c746){s1=peg$c746;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c747)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c749){s1=peg$c749;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c750)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c751){s1=peg$c751;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c752)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c754){s1=peg$c754;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c755)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c756){s1=peg$c756;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c757)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c759){s1=peg$c759;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c760)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c761){s1=peg$c761;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c762)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c764){s1=peg$c764;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c765)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c766){s1=peg$c766;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c767)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c769){s1=peg$c769;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c770)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c771){s1=peg$c771;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c772)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c774){s1=peg$c774;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c775)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c776){s1=peg$c776;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c777)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c779){s1=peg$c779;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c780)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c781){s1=peg$c781;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c782)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c784){s1=peg$c784;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c785)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c786){s1=peg$c786;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c787)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c789){s1=peg$c789;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c790)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c791){s1=peg$c791;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c792)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c794){s1=peg$c794;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c795)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c796){s1=peg$c796;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c797)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c799){s1=peg$c799;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c800)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c801){s1=peg$c801;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c802)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c804){s1=peg$c804;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c805)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c806){s1=peg$c806;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c807)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c809){s1=peg$c809;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c810)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c811){s1=peg$c811;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c812)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c814){s1=peg$c814;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c815)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c816){s1=peg$c816;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c817)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c819){s1=peg$c819;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c820)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c821){s1=peg$c821;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c822)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c823){s1=peg$c823;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c824)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c825){s1=peg$c825;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c826)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c828){s1=peg$c828;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c829)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c830){s1=peg$c830;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c831)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c833){s1=peg$c833;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c834)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c835){s1=peg$c835;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c836)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c838){s1=peg$c838;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c839)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c840){s1=peg$c840;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c841)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c843){s1=peg$c843;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c844)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c845){s1=peg$c845;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c846)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c848){s1=peg$c848;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c849)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c850){s1=peg$c850;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c851)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c853){s1=peg$c853;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c854)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c855){s1=peg$c855;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c856)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c857){s1=peg$c857;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c858)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c859){s1=peg$c859;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c860)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c862){s1=peg$c862;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c863)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c864){s1=peg$c864;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c865)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c867){s1=peg$c867;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c868)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c869){s1=peg$c869;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c870)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c872){s1=peg$c872;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c873)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c874){s1=peg$c874;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c875)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c877){s1=peg$c877;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c878)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c879){s1=peg$c879;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c880)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c882){s1=peg$c882;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c883)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c884){s1=peg$c884;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c885)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c886){s1=peg$c886;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c887)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c888){s1=peg$c888;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c889)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c891){s1=peg$c891;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c892)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c893){s1=peg$c893;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c894)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c896){s1=peg$c896;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c897)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c898){s1=peg$c898;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c899)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c901){s1=peg$c901;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c902)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c903){s1=peg$c903;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c904)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c906){s1=peg$c906;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c907)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c908){s1=peg$c908;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c909)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c911){s1=peg$c911;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c912)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c913){s1=peg$c913;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c914)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c916){s1=peg$c916;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c917)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c918){s1=peg$c918;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c919)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c921){s1=peg$c921;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c922)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c923){s1=peg$c923;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c924)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c926){s1=peg$c926;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c927)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c928){s1=peg$c928;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c929)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c931){s1=peg$c931;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c932)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c933){s1=peg$c933;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c934)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c936){s1=peg$c936;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c937)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c938){s1=peg$c938;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c939)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c941){s1=peg$c941;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c942)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c943){s1=peg$c943;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c944)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c946){s1=peg$c946;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c947)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c948){s1=peg$c948;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c949)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c951){s1=peg$c951;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c952)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c953){s1=peg$c953;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c954)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c956){s1=peg$c956;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c957)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c958){s1=peg$c958;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c959)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c961){s1=peg$c961;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c962)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c963){s1=peg$c963;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c964)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c966){s1=peg$c966;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c967)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c968){s1=peg$c968;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c969)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c971){s1=peg$c971;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c972)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c973){s1=peg$c973;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c974)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c976){s1=peg$c976;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c977)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c978){s1=peg$c978;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c979)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c981){s1=peg$c981;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c982)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c983){s1=peg$c983;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c984)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c986){s1=peg$c986;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c987)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c988){s1=peg$c988;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c989)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c991){s1=peg$c991;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c992)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c993){s1=peg$c993;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c994)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c996){s1=peg$c996;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c997)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c998){s1=peg$c998;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c999)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1001){s1=peg$c1001;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1002)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1003){s1=peg$c1003;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1004)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1006){s1=peg$c1006;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1007)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1008){s1=peg$c1008;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1009)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1011){s1=peg$c1011;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1012)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1013){s1=peg$c1013;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1014)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1016){s1=peg$c1016;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1017)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1018){s1=peg$c1018;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1019)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1021){s1=peg$c1021;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1022)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1023){s1=peg$c1023;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1024)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1026){s1=peg$c1026;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1027)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1028){s1=peg$c1028;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1029)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1031){s1=peg$c1031;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1032)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1033){s1=peg$c1033;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1034)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1036){s1=peg$c1036;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1037)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1038){s1=peg$c1038;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1039)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1041){s1=peg$c1041;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1042)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1043){s1=peg$c1043;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1044)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1046){s1=peg$c1046;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1047)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1048){s1=peg$c1048;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1049)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1051){s1=peg$c1051;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1052)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1053){s1=peg$c1053;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1054)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1056){s1=peg$c1056;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1057)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1058){s1=peg$c1058;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1059)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1061){s1=peg$c1061;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1062)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1063){s1=peg$c1063;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1064)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1066){s1=peg$c1066;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1067)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1068){s1=peg$c1068;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1069)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1071){s1=peg$c1071;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1072)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1073){s1=peg$c1073;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1074)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1076){s1=peg$c1076;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1077)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1078){s1=peg$c1078;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1079)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1081){s1=peg$c1081;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1082)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1083){s1=peg$c1083;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1084)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1086){s1=peg$c1086;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1087)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1088){s1=peg$c1088;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1089)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1091){s1=peg$c1091;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1092)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1093){s1=peg$c1093;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1094)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1096){s1=peg$c1096;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1097)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1098){s1=peg$c1098;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1099)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1101){s1=peg$c1101;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1102)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1103){s1=peg$c1103;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1104)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1106){s1=peg$c1106;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1107)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1108){s1=peg$c1108;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1109)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1111){s1=peg$c1111;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1112)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1113){s1=peg$c1113;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1114)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1116){s1=peg$c1116;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1117)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1118){s1=peg$c1118;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1119)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1120){s1=peg$c1120;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1121)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1122){s1=peg$c1122;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1123)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1125){s1=peg$c1125;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1126)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1127){s1=peg$c1127;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1128)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1130){s1=peg$c1130;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1131)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1132){s1=peg$c1132;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1133)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1135){s1=peg$c1135;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1136)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1137){s1=peg$c1137;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1138)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1140){s1=peg$c1140;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1141)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1142){s1=peg$c1142;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1143)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1145){s1=peg$c1145;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1146)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1147){s1=peg$c1147;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1148)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1150){s1=peg$c1150;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1152){s1=peg$c1152;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1153)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1155){s1=peg$c1155;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1156)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1157){s1=peg$c1157;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1158)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1160){s1=peg$c1160;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1161)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1162){s1=peg$c1162;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1165){s1=peg$c1165;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1166)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1167){s1=peg$c1167;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1168)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1170){s1=peg$c1170;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1171)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1172){s1=peg$c1172;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1173)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1175){s1=peg$c1175;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1176)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1177){s1=peg$c1177;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1178)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1180){s1=peg$c1180;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1182){s1=peg$c1182;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1183)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1185){s1=peg$c1185;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1186)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1187){s1=peg$c1187;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1188)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1190){s1=peg$c1190;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1191)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1192){s1=peg$c1192;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1195){s1=peg$c1195;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1196)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseSvgColor(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSvgColorLabel();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1197(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb3(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1200(s2,s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb6(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseWS();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){peg$savedPos=s0;s1=peg$c1201(s2,s3,s4,s5,s6,s7);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba4(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1202(s2,s3,s4,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba8(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseHexDigit();if(s8!==peg$FAILED){s9=peg$parseHexDigit();if(s9!==peg$FAILED){s10=peg$parseWS();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1203(s2,s3,s4,s5,s6,s7,s8,s9);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseColor(){var s0;peg$silentFails++;s0=peg$parseSvgColor();if(s0===peg$FAILED){s0=peg$parseRgba8();if(s0===peg$FAILED){s0=peg$parseRgb6();if(s0===peg$FAILED){s0=peg$parseRgba4();if(s0===peg$FAILED){s0=peg$parseRgb3()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseArrowItemKey(){var s0;if(input.substr(peg$currPos,9)===peg$c1205){s0=peg$c1205;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1206)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1207){s0=peg$c1207;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1208)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1209){s0=peg$c1209;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1210)}}}}return s0}function peg$parseArrowItem(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowItemKey();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1215(s2,s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSingleEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1216)}}return s0}function peg$parseTransitionLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1226(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1223)}}return s0}function peg$parseArrowItems(){var s0,s1;s0=peg$parseSingleEdgeColor();if(s0===peg$FAILED){s0=peg$parseTransitionLineStyle();if(s0===peg$FAILED){s0=[];s1=peg$parseArrowItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseArrowItem()}}else{s0=peg$FAILED}}}return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseArrowItems();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrowProbability(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===37){s2=peg$c1232;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1233)}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1234(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}var peg$timetype_alts=[[12,peg$c1235,peg$c1236,peg$c1237,109],[11,peg$c1238,peg$c1239,peg$c1237,109],[5,peg$c1240,peg$c1241,peg$c1237,109],[4,peg$c1242,peg$c1243,peg$c1237,109],[2,peg$c1244,peg$c1245,peg$c1237,109],[7,peg$c1246,peg$c1247,peg$c1248,115],[6,peg$c1249,peg$c1250,peg$c1248,115],[4,peg$c1251,peg$c1252,peg$c1248,115],[3,peg$c1253,peg$c1254,peg$c1248,115],[1,peg$c1255,peg$c1256,peg$c1248,115],[7,peg$c1257,peg$c1258,peg$c1259,109],[6,peg$c1260,peg$c1261,peg$c1259,109],[4,peg$c1262,peg$c1263,peg$c1259,109],[3,peg$c1264,peg$c1265,peg$c1259,109],[1,peg$c1266,peg$c1267,peg$c1259,109],[5,peg$c1268,peg$c1269,peg$c1270,104],[4,peg$c1271,peg$c1272,peg$c1270,104],[3,peg$c1273,peg$c1274,peg$c1270,104],[2,peg$c1275,peg$c1276,peg$c1270,104],[1,peg$c1277,peg$c1278,peg$c1270,104],[4,peg$c1279,peg$c1280,peg$c1281,100],[3,peg$c1282,peg$c1283,peg$c1281,100],[1,peg$c1284,peg$c1285,peg$c1281,100],[5,peg$c1286,peg$c1287,peg$c1288,119],[4,peg$c1289,peg$c1290,peg$c1288,119],[3,peg$c1291,peg$c1292,peg$c1288,119],[2,peg$c1293,peg$c1294,peg$c1288,119],[1,peg$c1295,peg$c1296,peg$c1288,119]];function peg$parseTimeType(){var i,j,alt,start;var c=input.charCodeAt(peg$currPos);for(i=0;i<28;i++){alt=peg$timetype_alts[i];if(alt[4]!==c){continue}if(alt[0]!==1&&input.substr(peg$currPos,alt[0])!==alt[1]){continue}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<i;j++){peg$fail(peg$timetype_alts[j][2])}}start=peg$currPos;peg$currPos+=alt[0];peg$savedPos=start;return alt[3]()}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<28;j++){peg$fail(peg$timetype_alts[j][2])}}return peg$FAILED}function peg$parseArrowAfter(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1297){s1=peg$c1297;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1298)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseTimeType();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1299(s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1300(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelOrLabelList(){var s0;s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseLabel()}return s0}function peg$parseGroupRef(){var s0,s1,s2,s3;peg$silentFails++;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1304(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1301)}}return s0}function peg$parseGroupMember(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1305){s1=peg$c1305;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1306)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s3=peg$c1302;peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1307(s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1308(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1309(s1)}s0=s1}}return s0}function peg$parseGroupMemberList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1310(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStripe(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312);peg$fail(peg$c1315)}return peg$FAILED}s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1311){s1=peg$c1311;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1313(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1314){s1=peg$c1314;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1315)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1316(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseCycle(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318);peg$fail(peg$c1321);peg$fail(peg$c1324)}return peg$FAILED}s0=peg$currPos;if(input.charCodeAt(peg$currPos)===43){s1=peg$c1317;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1319(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===45){s1=peg$c1320;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1321)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1322(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1323){s1=peg$c1323;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1324)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1325()}s0=s1}}return s0}function peg$parseArrowTarget(){var s0;s0=peg$parseStripe();if(s0===peg$FAILED){s0=peg$parseCycle();if(s0===peg$FAILED){s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseGroupRef();if(s0===peg$FAILED){s0=peg$parseLabel()}}}}return s0}function peg$parseArrowDecoration(){var s0,s1;s0=peg$currPos;s1=peg$parseArrowAfter();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1326(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseActionLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1327(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowProbability();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1328(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowDesc();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1329(s1)}s0=s1}}}return s0}function peg$parseArrowDecorations(){var s0,s1,s2,s3;s0=[];s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}while(s1!==peg$FAILED){s0.push(s1);s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}}return s0}function peg$parseSubexp(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowDecorations();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseArrow();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseArrowDecorations();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$currPos;s9=peg$parseArrowTarget();if(s9!==peg$FAILED){peg$savedPos=s8;s9=peg$c1331(s2,s4,s6,s9)}s8=s9;if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){s10=peg$parseSubexp();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1332(s2,s4,s6,s8,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseExp(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseArrowTarget();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c1333(s2)}s1=s2;if(s1!==peg$FAILED){s2=peg$parseSubexp();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s4=peg$c1213;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1334(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseGvizLayout(){var s0;if(input.substr(peg$currPos,3)===peg$c1335){s0=peg$c1335;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1336)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1337){s0=peg$c1337;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1338)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1339){s0=peg$c1339;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1340)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1341){s0=peg$c1341;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1342)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1343){s0=peg$c1343;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1344)}}}}}}return s0}function peg$parseStateItems(){var s0,s1;s0=[];s1=peg$parseStateDeclarationItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseStateDeclarationItem()}}else{s0=peg$FAILED}return s0}function peg$parseConfigState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1349(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1350){s2=peg$c1350;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1351)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1352(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1353){s2=peg$c1353;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1354)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1355(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigActiveState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1356){s2=peg$c1356;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1357)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1358(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigTerminalState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1359){s2=peg$c1359;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1360)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1361(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigHookedState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1362){s2=peg$c1362;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1363)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1364(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAnyState(){var s0;s0=peg$parseConfigState();if(s0===peg$FAILED){s0=peg$parseConfigStartState();if(s0===peg$FAILED){s0=peg$parseConfigEndState();if(s0===peg$FAILED){s0=peg$parseConfigActiveState();if(s0===peg$FAILED){s0=peg$parseConfigTerminalState();if(s0===peg$FAILED){s0=peg$parseConfigHookedState()}}}}}return s0}function peg$parseGraphDefaultEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1365)}}return s0}function peg$parseConfigStyleItems(){var s0,s1,s2;s0=peg$parseGraphDefaultEdgeColor();if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseStateDeclarationItem();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseStateDeclarationItem()}}else{s1=peg$FAILED}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s1)}s0=s1}return s0}function peg$parseConfigTransition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1367){s2=peg$c1367;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1368)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1369(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraph(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1370){s2=peg$c1370;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1371)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1372(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEditor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1373){s2=peg$c1373;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1374)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=[];s9=peg$parseEditorConfigItem();while(s9!==peg$FAILED){s8.push(s9);s9=peg$parseEditorConfigItem()}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1375(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorConfigItem(){var s0;s0=peg$parseEditorStochasticRunCount();if(s0===peg$FAILED){s0=peg$parseEditorPanels()}return s0}function peg$parseEditorStochasticRunCount(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,20)===peg$c1376){s2=peg$c1376;peg$currPos+=20}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1377)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseIntegerLiteral();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1378(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorPanels(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1379){s2=peg$c1379;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1380)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1381(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphLayout(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1382){s2=peg$c1382;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1383)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizLayout();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1384(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1385){s2=peg$c1385;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1386)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1387(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1388){s2=peg$c1388;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1389)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1390(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigFailedOutputs(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1391){s2=peg$c1391;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1392)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1393(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphBgColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1394){s2=peg$c1394;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1395)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1396(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowsOverride(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1397){s2=peg$c1397;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1398)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseOverrideT();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1399(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowIslands(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1400){s2=peg$c1400;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1401)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseIslandsT();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1402(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOverrideT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1403()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1404()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1}}return s0}function peg$parseIslandsT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1405){s1=peg$c1405;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1406)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1407()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1409()}s0=s1}}return s0}function peg$parseConfig(){var s0;peg$silentFails++;s0=peg$parseConfigGraphLayout();if(s0===peg$FAILED){s0=peg$parseConfigStartNodes();if(s0===peg$FAILED){s0=peg$parseConfigEndNodes();if(s0===peg$FAILED){s0=peg$parseConfigFailedOutputs();if(s0===peg$FAILED){s0=peg$parseConfigTransition();if(s0===peg$FAILED){s0=peg$parseConfigGraph();if(s0===peg$FAILED){s0=peg$parseConfigEditor();if(s0===peg$FAILED){s0=peg$parseConfigAnyState();if(s0===peg$FAILED){s0=peg$parseConfigGraphBgColor();if(s0===peg$FAILED){s0=peg$parseConfigAllowsOverride();if(s0===peg$FAILED){s0=peg$parseConfigAllowIslands()}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1410)}}return s0}function peg$parseLicenseOrLabelOrList(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1411){s2=peg$c1411;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1412)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,12)===peg$c1413){s2=peg$c1413;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1414)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,12)===peg$c1415){s2=peg$c1415;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1416)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1417){s2=peg$c1417;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1418)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1419){s2=peg$c1419;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1420)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1421){s2=peg$c1421;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1422)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1423){s2=peg$c1423;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1424)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1425){s2=peg$c1425;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1426)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1427){s2=peg$c1427;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1428)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1429){s2=peg$c1429;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1430)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1431){s2=peg$c1431;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1432)}}if(s2!==peg$FAILED){s3=peg$currPos;peg$silentFails++;s4=peg$parseAtomLetter();peg$silentFails--;if(s4===peg$FAILED){s3=void 0}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=[s2,s3];s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}if(s1!==peg$FAILED){s0=input.substring(s0,peg$currPos)}else{s0=s1}if(s0===peg$FAILED){s0=peg$parseLabel();if(s0===peg$FAILED){s0=peg$parseLabelList()}}}}}}}}}}}}return s0}function peg$parseDirection(){var s0;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c1434){s0=peg$c1434;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1435)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1436){s0=peg$c1436;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1437)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1438){s0=peg$c1438;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1439)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1440){s0=peg$c1440;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1441)}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1433)}}return s0}function peg$parseHookDefinition(){var s0;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c1443){s0=peg$c1443;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1444)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1445){s0=peg$c1445;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1446)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1442)}}return s0}function peg$parseMachineAuthor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1447){s2=peg$c1447;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1448)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1449(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineContributor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,19)===peg$c1450){s2=peg$c1450;peg$currPos+=19}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1451)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1452(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineComment(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1453){s2=peg$c1453;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1454)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1455(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,18)===peg$c1456){s2=peg$c1456;peg$currPos+=18}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1457)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseURL();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1458(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1459){s2=peg$c1459;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1460)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1461(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNpmName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1462){s2=peg$c1462;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1463)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1464(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineReference(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,17)===peg$c1465){s2=peg$c1465;peg$currPos+=17}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1466)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1467(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1468){s2=peg$c1468;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1469)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1470(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLicense(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1471){s2=peg$c1471;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1472)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLicenseOrLabelOrList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1473(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLanguage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1474){s2=peg$c1474;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1475)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1476(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseFslVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1477){s2=peg$c1477;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1478)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1479(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineTheme(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1480){s2=peg$c1480;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1481)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseThemeOrThemeList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1482(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineFlow(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1483){s2=peg$c1483;peg$currPos+=4}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1484)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDirection();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1485(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineHookDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1486){s2=peg$c1486;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1487)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseHookDefinition();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1488(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDotPreamble(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1489){s2=peg$c1489;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1490)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseString();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1491(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDefaultSizeVal(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1492){s1=peg$c1492;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1493)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1494(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){s2=peg$parseNonNegNumber();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1495(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1496(s1)}s0=s1}}return s0}function peg$parseDefaultSize(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1497){s2=peg$c1497;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1498)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDefaultSizeVal();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1499(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineAttribute(){var s0;peg$silentFails++;s0=peg$parseFslVersion();if(s0===peg$FAILED){s0=peg$parseMachineName();if(s0===peg$FAILED){s0=peg$parseNpmName();if(s0===peg$FAILED){s0=peg$parseMachineAuthor();if(s0===peg$FAILED){s0=peg$parseMachineContributor();if(s0===peg$FAILED){s0=peg$parseMachineComment();if(s0===peg$FAILED){s0=peg$parseMachineDefinition();if(s0===peg$FAILED){s0=peg$parseMachineReference();if(s0===peg$FAILED){s0=peg$parseMachineVersion();if(s0===peg$FAILED){s0=peg$parseMachineLicense();if(s0===peg$FAILED){s0=peg$parseMachineLanguage();if(s0===peg$FAILED){s0=peg$parseMachineTheme();if(s0===peg$FAILED){s0=peg$parseDotPreamble();if(s0===peg$FAILED){s0=peg$parseMachineFlow();if(s0===peg$FAILED){s0=peg$parseMachineHookDefinition();if(s0===peg$FAILED){s0=peg$parseDefaultSize()}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1500)}}return s0}function peg$parsePropertyVal(){var s0;s0=peg$parseString();if(s0===peg$FAILED){s0=peg$parseBoolean();if(s0===peg$FAILED){s0=peg$parseJsNumericLiteral();if(s0===peg$FAILED){s0=peg$parseNull();if(s0===peg$FAILED){s0=peg$parseUndefined()}}}}return s0}function peg$parseSdStateLabel(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1501){s2=peg$c1501;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1502)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1503(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseSdStateColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1504){s2=peg$c1504;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1505)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1506(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseSdStateTextColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1508){s2=peg$c1508;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1509)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1510(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1507)}}return s0}function peg$parseSdStateBackgroundColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1512){s2=peg$c1512;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1513)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1514(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1511)}}return s0}function peg$parseSdStateBorderColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1516){s2=peg$c1516;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1517)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1518(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1515)}}return s0}function peg$parseSdStateShape(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1520){s2=peg$c1520;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1521)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizShape();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1522(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1519)}}return s0}function peg$parseSdStateCorners(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1524){s2=peg$c1524;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1525)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseCorners();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1526(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1523)}}return s0}function peg$parseSdStateLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1529){s2=peg$c1529;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1530)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1527)}}return s0}function peg$parseSdStateImage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1532){s2=peg$c1532;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1533)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1534(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1531)}}return s0}function peg$parseSdStateUrl(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1536){s2=peg$c1536;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1537)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1538(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1535)}}return s0}function peg$parseSdStateProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1542(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1545(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1539)}}return s0}function peg$parseStateDeclarationItem(){var s0;s0=peg$parseSdStateLabel();if(s0===peg$FAILED){s0=peg$parseSdStateColor();if(s0===peg$FAILED){s0=peg$parseSdStateTextColor();if(s0===peg$FAILED){s0=peg$parseSdStateBackgroundColor();if(s0===peg$FAILED){s0=peg$parseSdStateBorderColor();if(s0===peg$FAILED){s0=peg$parseSdStateShape();if(s0===peg$FAILED){s0=peg$parseSdStateCorners();if(s0===peg$FAILED){s0=peg$parseSdStateLineStyle();if(s0===peg$FAILED){s0=peg$parseSdStateImage();if(s0===peg$FAILED){s0=peg$parseSdStateUrl();if(s0===peg$FAILED){s0=peg$parseSdStateProperty()}}}}}}}}}}return s0}function peg$parseStateDeclarationDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$parseStateDeclarationItem();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseStateDeclarationItem()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStateDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseGroupRef();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseNamedList(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupMemberList();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupAliasMember();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1549(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseGroupAliasMember(){var s0,s1;s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1550(s1)}s0=s1;return s0}function peg$parseHookEvent(){var s0;peg$silentFails++;if(input.substr(peg$currPos,5)===peg$c1552){s0=peg$c1552;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1553)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1554){s0=peg$c1554;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1555)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1551)}}return s0}function peg$parseHookDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1557){s2=peg$c1557;peg$currPos+=2}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1558)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseHookEvent();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){s6=peg$parseGroupRef();if(s6===peg$FAILED){s6=peg$parseHookStateSubject()}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1559){s8=peg$c1559;peg$currPos+=2}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1560)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){s10=peg$parseActionLabel();if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1561(s4,s6,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1556)}}return s0}function peg$parseHookStateSubject(){var s0,s1;s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1562(s1)}s0=s1;return s0}function peg$parseMachineProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1563(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s6=peg$c1543;peg$currPos+=8}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1564(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1565(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s6=peg$c1213;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c1566(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}}return s0}function peg$parseRegularArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1567){s1=peg$c1567;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1568)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1569(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeStartDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1570){s1=peg$c1570;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1571)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1572(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeEndDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1573){s1=peg$c1573;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1574)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1575(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1577){s1=peg$c1577;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1578)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1579(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1576)}}return s0}function peg$parseFArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1581){s1=peg$c1581;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1582)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1583(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1580)}}return s0}function peg$parseArrangeDeclaration(){var s0;peg$silentFails++;s0=peg$parseArrangeStartDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeEndDeclaration();if(s0===peg$FAILED){s0=peg$parseOArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseFArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseRegularArrangeDeclaration()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1584)}}return s0}function peg$parseTerm(){var s0;s0=peg$parseHookDeclaration();if(s0===peg$FAILED){s0=peg$parseExp();if(s0===peg$FAILED){s0=peg$parseStateDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseNamedList();if(s0===peg$FAILED){s0=peg$parseMachineAttribute();if(s0===peg$FAILED){s0=peg$parseMachineProperty();if(s0===peg$FAILED){s0=peg$parseConfig()}}}}}}}return s0}function peg$parseTermList(){var s0,s1;s0=[];s1=peg$parseTerm();while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseTerm()}return s0}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail(peg$endExpectation())}throw peg$buildStructuredError(peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos))}}function arrow_left_kind(arrow){switch(arrow){case"->":case"→":case"=>":case"⇒":case"~>":case"↛":{return"none"}case"<-":case"←":case"<->":case"↔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<-~>":case"←↛":case"←~>":case"<-↛":{return"legal"}case"<=":case"⇐":case"<=>":case"⇔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":{return"main"}case"<~":case"↚":case"<~>":case"↮":case"<~->":case"↚→":case"↚->":case"<~→":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":{return"forced"}default:{throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}}function arrow_right_kind(arrow){switch(arrow){case"<-":case"←":case"<=":case"⇐":case"<~":case"↚":{return"none"}case"->":case"→":case"<->":case"↔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<~->":case"↚→":case"↚->":case"<~→":{return"legal"}case"=>":case"⇒":case"<=>":case"⇔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":{return"main"}case"~>":case"↛":case"<~>":case"↮":case"<-~>":case"←↛":case"←~>":case"<-↛":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":{return"forced"}default:{throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}}const array_box_if_string=n=>typeof n==="string"?[n]:n;const weighted_rand_select=(options,probability_property="probability",rng)=>{if(!Array.isArray(options)){throw new TypeError("options must be a non-empty array of objects")}if(options.length===0){throw new TypeError("options must be a non-empty array of objects")}if(typeof options[0]!=="object"){throw new TypeError("options must be a non-empty array of objects")}const named=probability_property==="probability";let prob_sum=0;for(const opt of options){const p=named?opt.probability:opt[probability_property];prob_sum+=p===void 0?1:p}const rnd=(rng?rng():Math.random())*prob_sum;let cursor=0,cursor_sum=0;while(cursor<options.length){const p=named?options[cursor].probability:options[cursor][probability_property];cursor_sum+=p===void 0?1:p;++cursor;if(cursor_sum>rnd){break}}return options[cursor-1]};function seq(n){if(!Number.isSafeInteger(n)){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}if(n<0){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}return Array.from({length:n},(_,i)=>i)}const default_lexicographic=(a,b)=>{const sa=String(a),sb=String(b);return sa<sb?-1:sa>sb?1:0};const histograph=ar=>{const counts=new Map;for(const v of ar){const c=counts.get(v);counts.set(v,c===void 0?1:c+1)}const out=new Map;const sorted_keys=[...counts.keys()].sort(default_lexicographic);for(const k of sorted_keys){out.set(k,counts.get(k))}return out};function name_bind_prop_and_state(prop,state){if(typeof prop!=="string"){throw new JssmError(void 0,`Name of property must be a string; got ${prop}`)}if(typeof state!=="string"){throw new JssmError(void 0,`Name of state must be a string; got ${state}`)}return JSON.stringify([prop,state])}function gen_splitmix32(a){if(a===void 0){a=Date.now()}return function(){a=Math.trunc(a);a=a+2654435769|0;let t=a^a>>>16;t=Math.imul(t,569420461);t^=t>>>15;t=Math.imul(t,1935289751);return((t^t>>>15)>>>0)/4294967296}}const unique=arr=>{const seen=new Set;return arr.filter(v=>{if(v!==v){return false}if(seen.has(v)){return false}seen.add(v);return true})};function find_repeated(arr){const uniqued=unique(arr);if(uniqued.length===arr.length){return[]}const residue_keys=new Map;for(const k of arr)residue_keys.set(k,residue_keys.has(k)?residue_keys.get(k)+1:1);for(const k of uniqued)residue_keys.set(k,residue_keys.get(k)-1);return[...residue_keys].filter(e=>e[1]>0&&!Number.isNaN(e[0])).map(e=>[e[0],e[1]+1])}var reductions={abkhazian:"ab","аҧсуа бызшәа, аҧсшәа":"ab",ab:"ab",abk:"ab","аҧсуа бызшәа":"ab","аҧсшәа":"ab",afar:"aa",afaraf:"aa",aa:"aa",aar:"aa",afrikaans:"af",af:"af",afr:"af",akan:"ak",ak:"ak",aka:"ak","aka + 2":"ak",albanian:"sq",shqip:"sq",sq:"sq",sqi:"sq",alb:"sq","sqi + 4":"sq",amharic:"am","አማርኛ":"am",am:"am",amh:"am",arabic:"ar","العربية":"ar",ar:"ar",ara:"ar","ara + 30":"ar",aragonese:"an","aragonés":"an",an:"an",arg:"an",armenian:"hy","հայերեն":"hy",hy:"hy",hye:"hy",arm:"hy",assamese:"as","অসমীয়া":"as",as:"as",asm:"as",avaric:"av","авар мацӏ, магӏарул мацӏ":"av",av:"av",ava:"av","авар мацӏ":"av","магӏарул мацӏ":"av",avestan:"ae",avesta:"ae",ae:"ae",ave:"ae",aymara:"ay","aymar aru":"ay",ay:"ay",aym:"ay","aym + 2":"ay",azerbaijani:"az","azərbaycan dili":"az",az:"az",aze:"az","aze + 2":"az",bambara:"bm",bamanankan:"bm",bm:"bm",bam:"bm",bashkir:"ba","башҡорт теле":"ba",ba:"ba",bak:"ba",basque:"eu","euskara, euskera":"eu",eu:"eu",eus:"eu",baq:"eu",euskara:"eu",euskera:"eu",belarusian:"be","беларуская мова":"be",be:"be",bel:"be",bengali:"bn","বাংলা":"bn",bn:"bn",ben:"bn","bihari languages":"bh","भोजपुरी":"bh",bh:"bh",bih:"bh",bislama:"bi",bi:"bi",bis:"bi",bosnian:"bs","bosanski jezik":"bs",bs:"bs",bos:"bs",breton:"br",brezhoneg:"br",br:"br",bre:"br",bulgarian:"bg","български език":"bg",bg:"bg",bul:"bg",burmese:"my","ဗမာစာ":"my",my:"my",mya:"my",bur:"my","catalan, valencian":"ca","català, valencià":"ca",ca:"ca",cat:"ca","català":"ca","valencià":"ca",chamorro:"ch",chamoru:"ch",ch:"ch",cha:"ch",chechen:"ce","нохчийн мотт":"ce",ce:"ce",che:"ce","chichewa, chewa, nyanja":"ny","chicheŵa, chinyanja":"ny",ny:"ny",nya:"ny","chicheŵa":"ny",chinyanja:"ny",chinese:"zh","中文 (zhōngwén), 汉语, 漢語":"zh",zh:"zh",zho:"zh",chi:"zh","zho + 13":"zh","中文 (zhōngwén)":"zh","汉语":"zh","漢語":"zh",chuvash:"cv","чӑваш чӗлхи":"cv",cv:"cv",chv:"cv",cornish:"kw",kernewek:"kw",kw:"kw",cor:"kw",corsican:"co","corsu, lingua corsa":"co",co:"co",cos:"co",corsu:"co","lingua corsa":"co",cree:"cr","ᓀᐦᐃᔭᐍᐏᐣ":"cr",cr:"cr",cre:"cr","cre + 6":"cr",croatian:"hr","hrvatski jezik":"hr",hr:"hr",hrv:"hr",czech:"cs","čeština, český jazyk":"cs",cs:"cs",ces:"cs",cze:"cs","čeština":"cs","český jazyk":"cs",danish:"da",dansk:"da",da:"da",dan:"da","divehi, dhivehi, maldivian":"dv","ދިވެހި":"dv",dv:"dv",div:"dv","dutch, flemish":"nl","nederlands, vlaams":"nl",nl:"nl",nld:"nl",dut:"nl",nederlands:"nl",vlaams:"nl",dzongkha:"dz","རྫོང་ཁ":"dz",dz:"dz",dzo:"dz",english:"en",en:"en",eng:"en",esperanto:"eo",eo:"eo",epo:"eo",estonian:"et","eesti, eesti keel":"et",et:"et",est:"et","est + 2":"et",eesti:"et","eesti keel":"et",ewe:"ee","eʋegbe":"ee",ee:"ee",faroese:"fo","føroyskt":"fo",fo:"fo",fao:"fo",fijian:"fj","vosa vakaviti":"fj",fj:"fj",fij:"fj",finnish:"fi","suomi, suomen kieli":"fi",fi:"fi",fin:"fi",suomi:"fi","suomen kieli":"fi",french:"fr","français, langue française":"fr",fr:"fr",fra:"fr",fre:"fr","français":"fr","langue française":"fr",fulah:"ff","fulfulde, pulaar, pular":"ff",ff:"ff",ful:"ff","ful + 9":"ff",fulfulde:"ff",pulaar:"ff",pular:"ff",galician:"gl",galego:"gl",gl:"gl",glg:"gl",georgian:"ka","ქართული":"ka",ka:"ka",kat:"ka",geo:"ka",german:"de",deutsch:"de",de:"de",deu:"de",ger:"de","greek (modern)":"el","ελληνικά":"el",el:"el",ell:"el",gre:"el","guaraní":"gn","avañe'ẽ":"gn",gn:"gn",grn:"gn","grn + 5":"gn",gujarati:"gu","ગુજરાતી":"gu",gu:"gu",guj:"gu","haitian, haitian creole":"ht","kreyòl ayisyen":"ht",ht:"ht",hat:"ht",hausa:"ha","(hausa) هَوُسَ":"ha",ha:"ha",hau:"ha","hebrew (modern)":"he","עברית":"he",he:"he",heb:"he",herero:"hz",otjiherero:"hz",hz:"hz",her:"hz",hindi:"hi","हिन्दी, हिंदी":"hi",hi:"hi",hin:"hi","हिन्दी":"hi","हिंदी":"hi","hiri motu":"ho",ho:"ho",hmo:"ho",hungarian:"hu",magyar:"hu",hu:"hu",hun:"hu",interlingua:"ia",ia:"ia",ina:"ia",indonesian:"id","bahasa indonesia":"id",id:"id",ind:"id",interlingue:"ie","originally called occidental; then interlingue after wwii":"ie",ie:"ie",ile:"ie",irish:"ga",gaeilge:"ga",ga:"ga",gle:"ga",igbo:"ig","asụsụ igbo":"ig",ig:"ig",ibo:"ig",inupiaq:"ik","iñupiaq, iñupiatun":"ik",ik:"ik",ipk:"ik","ipk + 2":"ik","iñupiaq":"ik","iñupiatun":"ik",ido:"io",io:"io",icelandic:"is","íslenska":"is",is:"is",isl:"is",ice:"is",italian:"it",italiano:"it",it:"it",ita:"it",inuktitut:"iu","ᐃᓄᒃᑎᑐᑦ":"iu",iu:"iu",iku:"iu","iku + 2":"iu",japanese:"ja","日本語 (にほんご)":"ja",ja:"ja",jpn:"ja",javanese:"jv","ꦧꦱꦗꦮ, basa jawa":"jv",jv:"jv",jav:"jv","ꦧꦱꦗꦮ":"jv","basa jawa":"jv","kalaallisut, greenlandic":"kl","kalaallisut, kalaallit oqaasii":"kl",kl:"kl",kal:"kl",kalaallisut:"kl","kalaallit oqaasii":"kl",kannada:"kn","ಕನ್ನಡ":"kn",kn:"kn",kan:"kn",kanuri:"kr",kr:"kr",kau:"kr","kau + 3":"kr",kashmiri:"ks","कश्मीरी, كشميري‎":"ks",ks:"ks",kas:"ks","कश्मीरी":"ks","كشميري‎":"ks",kazakh:"kk","қазақ тілі":"kk",kk:"kk",kaz:"kk","central khmer":"km","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ":"km",km:"km",khm:"km","ខ្មែរ":"km","ខេមរភាសា":"km","ភាសាខ្មែរ":"km","kikuyu, gikuyu":"ki","gĩkũyũ":"ki",ki:"ki",kik:"ki",kinyarwanda:"rw",ikinyarwanda:"rw",rw:"rw",kin:"rw","kirghiz, kyrgyz":"ky","кыргызча, кыргыз тили":"ky",ky:"ky",kir:"ky","кыргызча":"ky","кыргыз тили":"ky",komi:"kv","коми кыв":"kv",kv:"kv",kom:"kv","kom + 2":"kv",kongo:"kg",kikongo:"kg",kg:"kg",kon:"kg","kon + 3":"kg",korean:"ko","한국어":"ko",ko:"ko",kor:"ko",kurdish:"ku","kurdî, كوردی‎":"ku",ku:"ku",kur:"ku","kur + 3":"ku","kurdî":"ku","كوردی‎":"ku","kuanyama, kwanyama":"kj",kuanyama:"kj",kj:"kj",kua:"kj",latin:"la","latine, lingua latina":"la",la:"la",lat:"la",latine:"la","lingua latina":"la","luxembourgish, letzeburgesch":"lb","lëtzebuergesch":"lb",lb:"lb",ltz:"lb",ganda:"lg",luganda:"lg",lg:"lg",lug:"lg","limburgan, limburger, limburgish":"li",limburgs:"li",li:"li",lim:"li",lingala:"ln","lingála":"ln",ln:"ln",lin:"ln",lao:"lo","ພາສາລາວ":"lo",lo:"lo",lithuanian:"lt","lietuvių kalba":"lt",lt:"lt",lit:"lt","luba-katanga":"lu",kiluba:"lu",lu:"lu",lub:"lu",latvian:"lv","latviešu valoda":"lv",lv:"lv",lav:"lv","lav + 2":"lv",manx:"gv","gaelg, gailck":"gv",gv:"gv",glv:"gv",gaelg:"gv",gailck:"gv",macedonian:"mk","македонски јазик":"mk",mk:"mk",mkd:"mk",mac:"mk",malagasy:"mg","fiteny malagasy":"mg",mg:"mg",mlg:"mg","mlg + 10":"mg",malay:"ms","bahasa melayu, بهاس ملايو‎":"ms",ms:"ms",msa:"ms",may:"ms","msa + 13":"ms","bahasa melayu":"ms","بهاس ملايو‎":"ms",malayalam:"ml","മലയാളം":"ml",ml:"ml",mal:"ml",maltese:"mt",malti:"mt",mt:"mt",mlt:"mt",maori:"mi","te reo māori":"mi",mi:"mi",mri:"mi",mao:"mi",marathi:"mr","मराठी":"mr",mr:"mr",mar:"mr",marshallese:"mh","kajin m̧ajeļ":"mh",mh:"mh",mah:"mh",mongolian:"mn","монгол хэл":"mn",mn:"mn",mon:"mn","mon + 2":"mn",nauru:"na","dorerin naoero":"na",na:"na",nau:"na","navajo, navaho":"nv","diné bizaad":"nv",nv:"nv",nav:"nv","north ndebele":"nd",isindebele:"nr",nd:"nd",nde:"nd",nepali:"ne","नेपाली":"ne",ne:"ne",nep:"ne",ndonga:"ng",owambo:"ng",ng:"ng",ndo:"ng","norwegian bokmål":"nb","norsk bokmål":"nb",nb:"nb",nob:"nb","norwegian nynorsk":"nn","norsk nynorsk":"nn",nn:"nn",nno:"nn",norwegian:"no",norsk:"no",no:"no",nor:"no","nor + 2":"no","sichuan yi, nuosu":"ii","ꆈꌠ꒿ nuosuhxop":"ii",ii:"ii",iii:"ii","south ndebele":"nr",nr:"nr",nbl:"nr",occitan:"oc","occitan, lenga d'òc":"oc",oc:"oc",oci:"oc","lenga d'òc":"oc",ojibwa:"oj","ᐊᓂᔑᓈᐯᒧᐎᓐ":"oj",oj:"oj",oji:"oj","oji + 7":"oj","church slavic, church slavonic, old church slavonic, old slavonic, old bulgarian":"cu","ѩзыкъ словѣньскъ":"cu",cu:"cu",chu:"cu",oromo:"om","afaan oromoo":"om",om:"om",orm:"om","orm + 4":"om",oriya:"or","ଓଡ଼ିଆ":"or",or:"or",ori:"or","ossetian, ossetic":"os","ирон æвзаг":"os",os:"os",oss:"os","panjabi, punjabi":"pa","ਪੰਜਾਬੀ":"pa",pa:"pa",pan:"pa",pali:"pi","पाऴि":"pi",pi:"pi",pli:"pi",persian:"fa","فارسی":"fa",fa:"fa",fas:"fa",per:"fa","fas + 2":"fa",polish:"pl","język polski, polszczyzna":"pl",pl:"pl",pol:"pl","język polski":"pl",polszczyzna:"pl","pashto, pushto":"ps","پښتو":"ps",ps:"ps",pus:"ps","pus + 3":"ps",portuguese:"pt","português":"pt",pt:"pt",por:"pt",quechua:"qu","runa simi, kichwa":"qu",qu:"qu",que:"qu","que + 44":"qu","runa simi":"qu",kichwa:"qu",romansh:"rm","rumantsch grischun":"rm",rm:"rm",roh:"rm",rundi:"rn",ikirundi:"rn",rn:"rn",run:"rn","romanian, moldavian, moldovan":"ro","română":"ro",ro:"ro",ron:"ro",rum:"ro",russian:"ru","русский":"ru",ru:"ru",rus:"ru",sanskrit:"sa","संस्कृतम्":"sa",sa:"sa",san:"sa",sardinian:"sc",sardu:"sc",sc:"sc",srd:"sc","srd + 4":"sc",sindhi:"sd","सिन्धी, سنڌي، سندھی‎":"sd",sd:"sd",snd:"sd","सिन्धी":"sd","سنڌي، سندھی‎":"sd","northern sami":"se","davvisámegiella":"se",se:"se",sme:"se",samoan:"sm","gagana fa'a samoa":"sm",sm:"sm",smo:"sm",sango:"sg","yângâ tî sängö":"sg",sg:"sg",sag:"sg",serbian:"sr","српски језик":"sr",sr:"sr",srp:"sr","gaelic, scottish gaelic":"gd","gàidhlig":"gd",gd:"gd",gla:"gd",shona:"sn",chishona:"sn",sn:"sn",sna:"sn","sinhala, sinhalese":"si","සිංහල":"si",si:"si",sin:"si",slovak:"sk","slovenčina, slovenský jazyk":"sk",sk:"sk",slk:"sk",slo:"sk","slovenčina":"sk","slovenský jazyk":"sk",slovenian:"sl","slovenski jezik, slovenščina":"sl",sl:"sl",slv:"sl","slovenski jezik":"sl","slovenščina":"sl",somali:"so","soomaaliga, af soomaali":"so",so:"so",som:"so",soomaaliga:"so","af soomaali":"so","southern sotho":"st",sesotho:"st",st:"st",sot:"st","spanish, castilian":"es","español":"es",es:"es",spa:"es",sundanese:"su","basa sunda":"su",su:"su",sun:"su",swahili:"sw",kiswahili:"sw",sw:"sw",swa:"sw","swa + 2":"sw",swati:"ss",siswati:"ss",ss:"ss",ssw:"ss",swedish:"sv",svenska:"sv",sv:"sv",swe:"sv",tamil:"ta","தமிழ்":"ta",ta:"ta",tam:"ta",telugu:"te","తెలుగు":"te",te:"te",tel:"te",tajik:"tg","тоҷикӣ, toçikī, تاجیکی‎":"tg",tg:"tg",tgk:"tg","тоҷикӣ":"tg","toçikī":"tg","تاجیکی‎":"tg",thai:"th","ไทย":"th",th:"th",tha:"th",tigrinya:"ti","ትግርኛ":"ti",ti:"ti",tir:"ti",tibetan:"bo","བོད་ཡིག":"bo",bo:"bo",bod:"bo",tib:"bo",turkmen:"tk","türkmen, түркмен":"tk",tk:"tk",tuk:"tk","türkmen":"tk","түркмен":"tk",tagalog:"tl","wikang tagalog":"tl",tl:"tl",tgl:"tl",tswana:"tn",setswana:"tn",tn:"tn",tsn:"tn","tonga (tonga islands)":"to","faka tonga":"to",to:"to",ton:"to",turkish:"tr","türkçe":"tr",tr:"tr",tur:"tr",tsonga:"ts",xitsonga:"ts",ts:"ts",tso:"ts",tatar:"tt","татар теле, tatar tele":"tt",tt:"tt",tat:"tt","татар теле":"tt","tatar tele":"tt",twi:"tw",tw:"tw",tahitian:"ty","reo tahiti":"ty",ty:"ty",tah:"ty","uighur, uyghur":"ug","ئۇيغۇرچە‎, uyghurche":"ug",ug:"ug",uig:"ug","ئۇيغۇرچە‎":"ug",uyghurche:"ug",ukrainian:"uk","українська":"uk",uk:"uk",ukr:"uk",urdu:"ur","اردو":"ur",ur:"ur",urd:"ur",uzbek:"uz","oʻzbek, ўзбек, أۇزبېك‎":"uz",uz:"uz",uzb:"uz","uzb + 2":"uz","oʻzbek":"uz","ўзбек":"uz","أۇزبېك‎":"uz",venda:"ve","tshivenḓa":"ve",ve:"ve",ven:"ve",vietnamese:"vi","tiếng việt":"vi",vi:"vi",vie:"vi","volapük":"vo",vo:"vo",vol:"vo",walloon:"wa",walon:"wa",wa:"wa",wln:"wa",welsh:"cy",cymraeg:"cy",cy:"cy",cym:"cy",wel:"cy",wolof:"wo",wollof:"wo",wo:"wo",wol:"wo","western frisian":"fy",frysk:"fy",fy:"fy",fry:"fy",xhosa:"xh",isixhosa:"xh",xh:"xh",xho:"xh",yiddish:"yi","ייִדיש":"yi",yi:"yi",yid:"yi","yid + 2":"yi",yoruba:"yo","yorùbá":"yo",yo:"yo",yor:"yo","zhuang, chuang":"za","saɯ cueŋƅ, saw cuengh":"za",za:"za",zha:"za","zha + 16":"za","saɯ cueŋƅ":"za","saw cuengh":"za",zulu:"zu",isizulu:"zu",zu:"zu",zul:"zu"};function reduce(from){return reductions[from.toLowerCase()]}function nth_matching_loc(tree,predicate,n){let count=0;for(const node of tree){if(!predicate(node)){continue}count++;if(count===n){return node.loc}}return void 0}function makeTransition(this_se,from,to,isRight,_wasList,_wasIndex){if(from===""){throw new JssmError(void 0,"A state name may not be the empty string (transition source)")}if(to===""){throw new JssmError(void 0,"A state name may not be the empty string (transition target)")}const arrow=this_se.kind,kind=isRight?arrow_right_kind(arrow):arrow_left_kind(arrow),edge={from:from,to:to,kind:kind,after_time:isRight?this_se.r_after:this_se.l_after,forced_only:kind==="forced",main_path:kind==="main",action:void 0,probability:void 0};const action=isRight?"r_action":"l_action",probability=isRight?"r_probability":"l_probability";if(this_se[action]!=null){edge.action=this_se[action]}if(this_se[probability]!=null){edge.probability=this_se[probability]}if(edge.action===""){throw new JssmError(void 0,"An action name may not be the empty string")}return edge}function wrap_parse(input,options){return peg$parse(input,{})}function normalize_group_members(value){return value.map(member=>typeof member==="string"?{kind:"state",name:member}:member)}function build_group_registry(tree){const registry=new Map;for(const node of tree){if(node.key!=="named_list"){continue}if(registry.has(node.name)){throw new JssmError(void 0,`Cannot redeclare group: &${node.name}`)}registry.set(node.name,normalize_group_members(node.value))}return registry}function group_registry_cycle_check(registry){const visiting=new Set;const visited=new Set;const walk=(group,path)=>{if(visiting.has(group)){const cycle=[...path,group].map(g=>`&${g}`).join(" -> ");throw new JssmError(void 0,`Group membership cycle detected: ${cycle}`)}if(visited.has(group)){return}visiting.add(group);const group_members=registry.get(group)??[];for(const member of group_members){if(member.kind==="group"){walk(member.name,[...path,group])}}visiting.delete(group);visited.add(group)};for(const group of registry.keys()){walk(group,[])}}function transitive_members(registry,group,memo){const cached=memo.get(group);if(cached!==void 0){return cached}const out=[];const group_members=registry.get(group)??[];for(const member of group_members){if(member.kind==="state"){out.push(member.name)}else{for(const s of transitive_members(registry,member.name,memo)){out.push(s)}}}memo.set(group,out);return out}function validate_group_members(registry){for(const members of registry.values()){for(const member of members){if(member.kind==="group"&&!registry.has(member.name)){throw new JssmError(void 0,`Unresolved group reference: &${member.name}`)}}}}function membership_distance(registry,state,group){const visited=new Set([group]);let frontier=[{group:group,hops:0}];while(frontier.length>0){const next=[];for(const{group:g,hops:hops}of frontier){const members=registry.get(g)??[];for(const member of members){if(member.kind==="state"){if(member.name===state){return hops+1}}else if(!visited.has(member.name)){visited.add(member.name);next.push({group:member.name,hops:hops+1})}}}frontier=next}return Infinity}const edge_decl_meta=new WeakMap;function resolve_transition_conflicts(edges,has_group_sources=true){if(!has_group_sources){return edges}const buckets=new Map;for(const[index,edge]of edges.entries()){if(edge.action==null){continue}const key=JSON.stringify([String(edge.from),String(edge.action)]);let by_decl=buckets.get(key);if(by_decl===void 0){by_decl=new Map;buckets.set(key,by_decl)}const meta=edge_decl_meta.get(edge);const decl_id=meta===void 0?void 0:meta.decl_id;const entry=by_decl.get(decl_id);if(entry===void 0){by_decl.set(decl_id,{decl_id:decl_id,indices:[index],source_group:meta===void 0?void 0:meta.source_group,specificity:(meta===void 0?void 0:meta.specificity)??Infinity})}else{entry.indices.push(index)}}const dropped=new Set;const arbitrate_bucket=by_decl=>{const decls=[...by_decl.values()];if(decls.length<2){return}const state_decls=decls.filter(d=>d.source_group===void 0);const group_decls=decls.filter(d=>d.source_group!==void 0);if(state_decls.length>0){for(const d of group_decls){for(const i of d.indices){dropped.add(i)}}return}let winner=group_decls[0];for(const d of group_decls){const nearer=d.specificity<winner.specificity;const tie_later=d.specificity===winner.specificity&&d.decl_id>winner.decl_id;if(nearer||tie_later){winner=d}}for(const d of group_decls){if(d.decl_id===winner.decl_id){continue}for(const i of d.indices){dropped.add(i)}console.warn(`jssm: group &${d.source_group} transition for state '${String(edges[d.indices[0]].from)}' on action '${String(edges[d.indices[0]].action)}' is overridden by nearer group &${winner.source_group}`)}};for(const by_decl of buckets.values()){arbitrate_bucket(by_decl)}const out=[];for(const[index,edge]of edges.entries()){if(dropped.has(index)){continue}out.push(edge)}return out}function is_group_ref(endpoint){return typeof endpoint==="object"&&endpoint.key==="group_ref"}function resolve_group_refs(tree,registry){const memo=new Map;const require_resolvable=name=>{if(!registry.has(name)){throw new JssmError(void 0,`Unresolved group reference: &${name}`)}};const rewrite_group_targets=node=>{for(let link=node.se;link;link=link.se){if(!is_group_ref(link.to)){continue}require_resolvable(link.to.name);link.to=transitive_members(registry,link.to.name,memo)}};const resolved=[];let decl_id=0;for(const node of tree){if(node.key==="hook_decl"&&is_group_ref(node.subject)){require_resolvable(node.subject.name)}if(node.key!=="transition"){resolved.push(node);continue}const this_decl=decl_id++;rewrite_group_targets(node);if(is_group_ref(node.from)){const group_name=node.from.name;require_resolvable(group_name);for(const member of transitive_members(registry,group_name,memo)){resolved.push({...node,from:member,__decl_id:this_decl,__source_group:group_name,__specificity:membership_distance(registry,member,group_name)})}}else if(registry.size===0){resolved.push(node)}else{resolved.push({...node,__decl_id:this_decl})}}return resolved}function compile_rule_transition_step(acc,from,to,this_se,next_se){const uFrom=Array.isArray(from)?from:[from],uTo=Array.isArray(to)?to:[to];for(const f of uFrom){for(const t of uTo){const right=makeTransition(this_se,f,t,true);if(right.kind!=="none"){acc.push(right)}const left=makeTransition(this_se,t,f,false);if(left.kind!=="none"){acc.push(left)}}}return next_se?compile_rule_transition_step(acc,to,next_se.to,next_se,next_se.se):acc}function compile_rule_handle_transition(rule){return compile_rule_transition_step([],rule.from,rule.se.to,rule.se,rule.se.se)}function compile_rule_handler(rule){if(rule.key==="transition"){const edges=compile_rule_handle_transition(rule);const decl_id=rule.__decl_id;const source_group=rule.__source_group;const specificity=rule.__specificity;if(decl_id!==void 0){for(const edge of edges){if(edge.from===rule.from){edge_decl_meta.set(edge,{decl_id:decl_id,source_group:source_group,specificity:specificity})}}}return{agg_as:"transition",val:edges}}if(rule.key==="machine_language"){const language_value=rule.value;const primary_subtag=String(language_value).split(/[-_]/,1)[0];return{agg_as:"machine_language",val:reduce(primary_subtag)}}if(rule.key==="property_definition"){const ret={agg_as:"property_definition",val:{name:rule.name}};if(Object.prototype.hasOwnProperty.call(rule,"default_value")){ret.val.default_value=rule.default_value}if(Object.prototype.hasOwnProperty.call(rule,"required")){ret.val.required=rule.required}return ret}if(rule.key==="named_list"){return{agg_as:"named_list",val:[]}}if(rule.key==="hook_decl"){return{agg_as:"hook_decl",val:[rule]}}if(rule.key==="state_declaration"){if(!rule.name){throw new JssmError(void 0,"State declarations must have a name",{source_location:rule.loc})}if(is_group_ref(rule.name)){return{agg_as:"group_metadata",val:[{group:rule.name.name,declarations:rule.value}]}}return{agg_as:"state_declaration",val:{state:rule.name,declarations:rule.value}}}if(["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration"].includes(rule.key)){return{agg_as:rule.key,val:[rule.value]}}const tautologies=["graph_layout","graph_bg_color","start_states","end_states","failed_outputs","machine_name","machine_version","machine_comment","machine_author","machine_contributor","machine_definition","machine_reference","machine_license","fsl_version","state_config","theme","flow","dot_preamble","allows_override","allow_islands","default_state_config","default_transition_config","default_graph_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_active_state_config","default_terminal_state_config","npm_name","default_size","editor_config"];if(tautologies.includes(rule.key)){return{agg_as:rule.key,val:rule.value}}throw new JssmError(void 0,`compile_rule_handler: Unknown rule: ${JSON.stringify(rule)}`)}function canonical_graph_alias_key(alias_key){if(alias_key==="graph_bg_color"){return"background-color"}return alias_key}const WARN_DEPRECATED_GRAPH_ALIASES=new Set(["graph_bg_color"]);function fold_graph_config(aliases,explicit_block){const folded=[];for(const[alias_key,values]of Object.entries(aliases)){for(const value of values){if(WARN_DEPRECATED_GRAPH_ALIASES.has(alias_key)){console.warn(`jssm: top-level \`${alias_key}\` is deprecated; prefer a \`graph: {}\` config block`)}folded.push({key:canonical_graph_alias_key(alias_key),value:value})}}for(const item of explicit_block){folded.push(item)}const seen_at=new Map;const result=[];for(const item of folded){const existing_index=seen_at.get(item.key);if(existing_index===void 0){seen_at.set(item.key,result.length);result.push(item)}else{result[existing_index]=item}}return result}function compile(tree){const results={graph_layout:[],graph_bg_color:[],transition:[],start_states:[],end_states:[],failed_outputs:[],state_config:[],state_declaration:[],fsl_version:[],machine_author:[],machine_comment:[],machine_contributor:[],machine_definition:[],machine_language:[],machine_license:[],machine_name:[],machine_reference:[],npm_name:[],default_size:[],property_definition:[],state_property:{},theme:[],flow:[],dot_preamble:[],arrange_declaration:[],arrange_start_declaration:[],arrange_end_declaration:[],oarrange_declaration:[],farrange_declaration:[],machine_version:[],default_state_config:[],default_active_state_config:[],default_hooked_state_config:[],default_terminal_state_config:[],default_start_state_config:[],default_end_state_config:[],default_transition_config:[],default_graph_config:[],named_list:[],group_metadata:[],hook_decl:[],allows_override:[],allow_islands:[],editor_config:[]};const group_registry=build_group_registry(tree);group_registry_cycle_check(group_registry);validate_group_members(group_registry);const resolved_tree=resolve_group_refs(tree,group_registry);for(const tr of resolved_tree){const rule=compile_rule_handler(tr),val=rule.val,bucket=results[rule.agg_as];if(Array.isArray(val)){for(const v of val){bucket.push(v)}}else{bucket.push(val)}}const property_keys=results["property_definition"].map(pd=>pd.name),repeat_props=find_repeated(property_keys);if(repeat_props.length>0){const dup=repeat_props[0][0];throw new JssmError(void 0,`Cannot repeat property definitions. Saw ${JSON.stringify(repeat_props)}`,{source_location:nth_matching_loc(tree,n=>n.key==="property_definition"&&n.name===dup,2)})}const assembled_transitions=resolve_transition_conflicts(results["transition"],group_registry.size>0);if(assembled_transitions.length===0){throw new JssmError(void 0,"This machine has no transitions, only declarations; a machine requires at least one transition (like `a -> b;`)")}const result_cfg={start_states:results.start_states.length>0?results.start_states:[assembled_transitions[0].from],end_states:results.end_states,failed_outputs:results.failed_outputs,transitions:assembled_transitions,state_property:[]};if(group_registry.size>0){result_cfg.group_registry=group_registry}if(results.group_metadata.length>0){const group_metadata=new Map;for(const gm of results.group_metadata){group_metadata.set(gm.group,{declarations:gm.declarations})}result_cfg.group_metadata=group_metadata}if(results.hook_decl.length>0){const group_hooks=new Map;const state_hooks=new Map;const merge_hook=(table,subject,event,action)=>{const existing=table.get(subject)??{};if(event==="enter"){existing.onEnter=action}else{existing.onExit=action}table.set(subject,existing)};for(const decl of results.hook_decl){if(is_group_ref(decl.subject)){merge_hook(group_hooks,decl.subject.name,decl.event,decl.action)}else{merge_hook(state_hooks,decl.subject,decl.event,decl.action)}}if(group_hooks.size>0){result_cfg.group_hooks=group_hooks}if(state_hooks.size>0){result_cfg.state_hooks=state_hooks}}const oneOnlyKeys=["graph_layout","graph_bg_color","machine_name","machine_version","machine_comment","fsl_version","machine_license","machine_definition","machine_language","flow","dot_preamble","allows_override","allow_islands","npm_name","default_size"];for(const oneOnlyKey of oneOnlyKeys){if(results[oneOnlyKey].length>1){throw new JssmError(void 0,`May only have one ${oneOnlyKey} statement maximum: ${JSON.stringify(results[oneOnlyKey])}`,{source_location:nth_matching_loc(tree,n=>n.key===oneOnlyKey,2)})}if(results[oneOnlyKey].length>0){result_cfg[oneOnlyKey]=results[oneOnlyKey][0]}}const multiKeys=["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration","machine_author","machine_contributor","machine_reference","theme","state_declaration","property_definition","default_state_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_terminal_state_config","default_active_state_config","default_transition_config"];for(const multiKey of multiKeys){if(results[multiKey].length>0){result_cfg[multiKey]=results[multiKey]}}result_cfg.default_graph_config=fold_graph_config({graph_layout:results.graph_layout,graph_bg_color:results.graph_bg_color,dot_preamble:results.dot_preamble,theme:results.theme,flow:results.flow},results.default_graph_config);if(result_cfg.default_graph_config.length===0){delete result_cfg.default_graph_config}if(results.editor_config.length>0){const ec={};for(const item of results.editor_config){if(item.key==="stochastic_run_count"){ec.stochastic_run_count=item.value}else{ec.panels=item.value}}result_cfg.editor_config=ec}const register_state_property=(sd,decl)=>{if(decl.key!=="state_property"){return}const label=name_bind_prop_and_state(decl.name,sd.state);if(result_cfg.state_property.some(c=>c.name===label)){throw new JssmError(void 0,`A state may only bind a property once (${sd.state} re-binds ${decl.name})`,{source_location:nth_matching_loc(tree,n=>n.key==="state_declaration"&&n.name===sd.state,1)})}result_cfg.state_property.push({name:label,default_value:decl.value,property:decl.name,state:sd.state})};for(const sd of results.state_declaration){for(const decl of sd.declarations){register_state_property(sd,decl)}}return result_cfg}function make(plan){return compile(wrap_parse(plan))}const base_state_style$5={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$5={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$5={shape:"component"};const base_terminal_state_style$5={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$4={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$5={backgroundColor:"yellow"};const base_active_start_state_style$4={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$4={backgroundColor:"yellowgreen"};const base_end_state_style$5={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$4={textColor:"white",backgroundColor:"darkgreen"};const default_theme={name:"default",state:base_state_style$5,start:base_start_state_style$5,end:base_end_state_style$5,terminal:base_terminal_state_style$5,hooked:base_hooked_state_style$5,active:base_active_state_style$5,active_start:base_active_start_state_style$4,active_end:base_active_end_state_style$4,active_terminal:base_active_terminal_state_style$4,active_hooked:base_active_hooked_state_style$4,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$4={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$4={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$4={shape:"component"};const base_terminal_state_style$4={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$3={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$4={backgroundColor:"yellow"};const base_active_start_state_style$3={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$3={backgroundColor:"yellowgreen"};const base_end_state_style$4={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$3={textColor:"white",backgroundColor:"darkgreen"};const modern_theme={name:"modern",state:base_state_style$4,start:base_start_state_style$4,end:base_end_state_style$4,terminal:base_terminal_state_style$4,hooked:base_hooked_state_style$4,active:base_active_state_style$4,active_start:base_active_start_state_style$3,active_end:base_active_end_state_style$3,active_terminal:base_active_terminal_state_style$3,active_hooked:base_active_hooked_state_style$3,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$3={backgroundColor:"cadetblue1"};const base_active_state_style$3={textColor:"white",backgroundColor:"deepskyblue"};const base_hooked_state_style$3={shape:"component",backgroundColor:"mediumaquamarine"};const base_terminal_state_style$3={textColor:"white",backgroundColor:"darkviolet"};const base_active_terminal_state_style$2={textColor:"white",backgroundColor:"deeppink"};const base_start_state_style$3={backgroundColor:"darkseagreen1"};const base_active_start_state_style$2={backgroundColor:"aquamarine"};const base_active_hooked_state_style$2={backgroundColor:"aquamarine"};const base_end_state_style$3={textColor:"white",backgroundColor:"chartreuse1"};const base_active_end_state_style$2={textColor:"white",backgroundColor:"darkgreen"};const ocean_theme={name:"ocean",state:base_state_style$3,start:base_start_state_style$3,end:base_end_state_style$3,terminal:base_terminal_state_style$3,hooked:base_hooked_state_style$3,active:base_active_state_style$3,active_start:base_active_start_state_style$2,active_end:base_active_end_state_style$2,active_terminal:base_active_terminal_state_style$2,active_hooked:base_active_hooked_state_style$2,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_hooked_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_terminal_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_start_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_end_state_style$2={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const plain_theme={name:"plain",state:base_state_style$2,start:base_start_state_style$2,end:base_end_state_style$2,terminal:base_terminal_state_style$2,hooked:base_hooked_state_style$2,active:base_active_state_style$2,active_start:base_active_start_state_style$1,active_end:base_active_end_state_style$1,active_terminal:base_active_terminal_state_style$1,active_hooked:base_active_hooked_state_style$1,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$1={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$1={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$1={shape:"component"};const base_terminal_state_style$1={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$1={backgroundColor:"yellow"};const base_active_start_state_style={backgroundColor:"yellowgreen"};const base_active_hooked_state_style={backgroundColor:"yellowgreen"};const base_end_state_style$1={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style={textColor:"white",backgroundColor:"darkgreen"};const bold_theme={name:"bold",state:base_state_style$1,start:base_start_state_style$1,end:base_end_state_style$1,terminal:base_terminal_state_style$1,hooked:base_hooked_state_style$1,active:base_active_state_style$1,active_start:base_active_start_state_style,active_end:base_active_end_state_style,active_terminal:base_active_terminal_state_style,active_hooked:base_active_hooked_state_style,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style={shape:"component"};const base_terminal_state_style={textColor:"white",backgroundColor:"crimson"};const base_start_state_style={backgroundColor:"yellow"};const base_end_state_style={textColor:"white",backgroundColor:"darkolivegreen"};const base_theme={state:base_state_style,start:base_start_state_style,end:base_end_state_style,terminal:base_terminal_state_style,hooked:base_hooked_state_style,active:base_active_state_style};const theme_mapping=new Map([["default",default_theme],["modern",modern_theme],["ocean",ocean_theme],["plain",plain_theme],["bold",bold_theme]]);class Interner{constructor(){this.ids=new Map;this.names=[]}intern(name){const existing=this.ids.get(name);if(existing!==void 0){return existing}const id=this.names.length;this.ids.set(name,id);this.names.push(name);return id}id_of(name){return this.ids.get(name)}name_of(id){return this.names[id]}get size(){return this.names.length}}function pair_key(a,b){return a>=b?a*a+a+b:b*b+a}function un_pair_key(z){const s=Math.floor(Math.sqrt(z));const l=z-s*s;return l<s?[l,s]:[s,l-s]}const state_name_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"+",to:"+"},{from:"_",to:"_"},{from:"^",to:"^"},{from:"(",to:"("},{from:")",to:")"},{from:"*",to:"*"},{from:"&",to:"&"},{from:"$",to:"$"},{from:"#",to:"#"},{from:"@",to:"@"},{from:"!",to:"!"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const state_name_first_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"_",to:"_"},{from:"!",to:"!"},{from:"$",to:"$"},{from:"^",to:"^"},{from:"*",to:"*"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const action_label_chars$1=Object.freeze([{from:" ",to:"&"},{from:"(",to:"["},{from:"]",to:"￿"}]);var constants=Object.freeze({__proto__:null,action_label_chars:action_label_chars$1,state_name_chars:state_name_chars$1,state_name_first_chars:state_name_first_chars$1});const version="5.162.21";var __typeError=msg=>{throw TypeError(msg)};var __accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj));var __privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value);var __privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),member.set(obj,value),value);var __privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var _states,_edges,_edge_map,_outbound_edge_ids,_named_transitions,_actions,_reverse_actions,_reverse_action_targets,_Machine_instances,unsubscribe_entry_fn,subscribe_fn,fire_one_fn,has_subscribers_fn,fire_fn,validate_hook_description_fn,fire_hook_rejection_fn,fire_boundary_actions_fn,resolved_themes_fn,individual_state_config_fn,groups_by_depth_fn,compose_state_config_fn;const{state_name_chars:state_name_chars,state_name_first_chars:state_name_first_chars,action_label_chars:action_label_chars}=constants;const empty_string_set=new Set;const hook_required_fields={hook:["from","to"],named:["from","to","action"],"global action":["action"],"any action":[],"standard transition":[],"main transition":[],"forced transition":[],"any transition":[],entry:["to"],exit:["from"],after:["from"],"after any":[],"post hook":["from","to"],"post named":["from","to","action"],"post global action":["action"],"post any action":[],"post standard transition":[],"post main transition":[],"post forced transition":[],"post any transition":[],"post entry":["to"],"post exit":["from"],"pre everything":[],everything:[],"pre post everything":[],"post everything":[]};const hook_spatial_fields=["from","to","action"];function transfer_state_properties(state_decl){state_decl.declarations.map(d=>{switch(d.key){case"shape":{state_decl.shape=d.value;break}case"color":{state_decl.color=d.value;break}case"corners":{state_decl.corners=d.value;break}case"line-style":{state_decl.lineStyle=d.value;break}case"text-color":{state_decl.textColor=d.value;break}case"background-color":{state_decl.backgroundColor=d.value;break}case"state-label":{state_decl.stateLabel=d.value;break}case"border-color":{state_decl.borderColor=d.value;break}case"image":{state_decl.image=d.value;break}case"url":{state_decl.url=d.value;break}case"state_property":{state_decl.property={name:d.name,value:d.value};break}default:{throw new JssmError(void 0,`Unknown state property: '${JSON.stringify(d)}'`)}}});return state_decl}function apply_state_style_key(state_style,key,machine){switch(key.key){case"shape":{if(state_style.shape!==void 0){throw new JssmError(machine,`cannot redefine 'shape' in state_style_condense, already defined`)}state_style.shape=key.value;return}case"color":{if(state_style.color!==void 0){throw new JssmError(machine,`cannot redefine 'color' in state_style_condense, already defined`)}state_style.color=key.value;return}case"text-color":{if(state_style.textColor!==void 0){throw new JssmError(machine,`cannot redefine 'text-color' in state_style_condense, already defined`)}state_style.textColor=key.value;return}case"corners":{if(state_style.corners!==void 0){throw new JssmError(machine,`cannot redefine 'corners' in state_style_condense, already defined`)}state_style.corners=key.value;return}case"line-style":{if(state_style.lineStyle!==void 0){throw new JssmError(machine,`cannot redefine 'line-style' in state_style_condense, already defined`)}state_style.lineStyle=key.value;return}case"background-color":{if(state_style.backgroundColor!==void 0){throw new JssmError(machine,`cannot redefine 'background-color' in state_style_condense, already defined`)}state_style.backgroundColor=key.value;return}case"state-label":{if(state_style.stateLabel!==void 0){throw new JssmError(machine,`cannot redefine 'state-label' in state_style_condense, already defined`)}state_style.stateLabel=key.value;return}case"border-color":{if(state_style.borderColor!==void 0){throw new JssmError(machine,`cannot redefine 'border-color' in state_style_condense, already defined`)}state_style.borderColor=key.value;return}case"url":{if(state_style.url!==void 0){throw new JssmError(machine,`cannot redefine 'url' in state_style_condense, already defined`)}state_style.url=key.value;return}default:{throw new JssmError(machine,`unknown state style key in condense: ${key.key}`)}}}function state_style_condense(jssk,machine){const state_style={};if(Array.isArray(jssk)){for(const[i,key]of jssk.entries()){if(typeof key!=="object"){throw new JssmError(machine,`invalid state item ${i} in state_style_condense list: ${JSON.stringify(key)}`)}apply_state_style_key(state_style,key,machine)}}else if(jssk===void 0);else{throw new JssmError(machine,"state_style_condense received a non-array")}return state_style}function merge_state_config(base,over){const merged={...base};for(const[key,value]of Object.entries(over)){if(value!==void 0){merged[key]=value}}return merged}function find_connected_components(states,edges){const adj=new Map;for(const name of states.keys()){adj.set(name,new Set)}for(const edge of edges){adj.get(edge.from).add(edge.to);adj.get(edge.to).add(edge.from)}const visited=new Set;const result=[];for(const start of states.keys()){if(visited.has(start)){continue}const component=[];const queue=[start];visited.add(start);const enqueue_unvisited=neighbor=>{if(visited.has(neighbor)){return}visited.add(neighbor);queue.push(neighbor)};let head=0;while(head<queue.length){const node=queue[head++];component.push(node);for(const neighbor of adj.get(node)){enqueue_unvisited(neighbor)}}result.push(component)}return result}const STOCHASTIC_DEFAULT_RUNS=1e3;const STOCHASTIC_DEFAULT_MAX_STEPS=1e3;const DEFAULT_TIME_SOURCE=()=>Date.now();const DEFAULT_TIMEOUT_SOURCE=(f,a)=>setTimeout(f,a);const DEFAULT_CLEAR_TIMEOUT_SOURCE=h=>clearTimeout(h);const _Machine=class _Machine{constructor({start_states:start_states,end_states:end_states=[],failed_outputs:failed_outputs=[],initial_state:initial_state,start_states_no_enforce:start_states_no_enforce,complete:complete=[],transitions:transitions,machine_author:machine_author,machine_comment:machine_comment,machine_contributor:machine_contributor,machine_definition:machine_definition,machine_language:machine_language,machine_license:machine_license,machine_name:machine_name,machine_version:machine_version,npm_name:npm_name,default_size:default_size,state_declaration:state_declaration,property_definition:property_definition,state_property:state_property,fsl_version:fsl_version,dot_preamble:dot_preamble,arrange_declaration:arrange_declaration=[],arrange_start_declaration:arrange_start_declaration=[],arrange_end_declaration:arrange_end_declaration=[],oarrange_declaration:oarrange_declaration=[],farrange_declaration:farrange_declaration=[],theme:theme=["default"],flow:flow="down",graph_layout:graph_layout="dot",instance_name:instance_name,history:history,boundary_depth_limit:boundary_depth_limit,data:data,default_state_config:default_state_config,default_active_state_config:default_active_state_config,default_hooked_state_config:default_hooked_state_config,default_terminal_state_config:default_terminal_state_config,default_start_state_config:default_start_state_config,default_end_state_config:default_end_state_config,default_transition_config:default_transition_config,default_graph_config:default_graph_config,group_registry:group_registry,group_metadata:group_metadata,group_hooks:group_hooks,state_hooks:state_hooks,allows_override:allows_override,config_allows_override:config_allows_override,allow_islands:allow_islands,editor_config:editor_config,rng_seed:rng_seed,time_source:time_source,timeout_source:timeout_source,clear_timeout_source:clear_timeout_source}){__privateAdd(this,_Machine_instances);__privateAdd(this,_states);__privateAdd(this,_edges);__privateAdd(this,_edge_map);__privateAdd(this,_outbound_edge_ids);__privateAdd(this,_named_transitions);__privateAdd(this,_actions);__privateAdd(this,_reverse_actions);__privateAdd(this,_reverse_action_targets);this._time_source=time_source??DEFAULT_TIME_SOURCE;this._create_started=this._time_source();this._instance_name=instance_name;__privateSet(this,_states,new Map);this._state_declarations=new Map;__privateSet(this,_edges,[]);__privateSet(this,_edge_map,new Map);__privateSet(this,_outbound_edge_ids,new Map);__privateSet(this,_named_transitions,new Map);__privateSet(this,_actions,new Map);__privateSet(this,_reverse_actions,new Map);__privateSet(this,_reverse_action_targets,new Map);this._state_interner=new Interner;this._action_interner=new Interner;this._state_id=NaN;this._edge_id_by_pair=new Map;this._edge_id_by_action_pair=new Map;this._edge_to_ids=[];this._start_states=new Set(start_states);this._end_states=new Set(end_states);this._failed_outputs=new Set(failed_outputs);this._machine_author=array_box_if_string(machine_author);this._machine_comment=machine_comment;this._machine_contributor=array_box_if_string(machine_contributor);this._machine_definition=machine_definition;this._machine_language=machine_language;this._machine_license=machine_license;this._machine_name=machine_name;this._machine_version=machine_version;this._npm_name=npm_name;this._default_size=default_size;this._raw_state_declaration=state_declaration||[];this._fsl_version=fsl_version;this._arrange_declaration=arrange_declaration;this._arrange_start_declaration=arrange_start_declaration;this._arrange_end_declaration=arrange_end_declaration;this._oarrange_declaration=oarrange_declaration;this._farrange_declaration=farrange_declaration;this._dot_preamble=dot_preamble;this._themes=theme;this._flow=flow;this._graph_layout=graph_layout;this._has_hooks=false;this._has_basic_hooks=false;this._has_named_hooks=false;this._has_entry_hooks=false;this._has_exit_hooks=false;this._has_after_hooks=false;this._has_global_action_hooks=false;this._has_transition_hooks=false;this._has_forced_transitions=false;this._hooks=new Map;this._named_hooks=new Map;this._entry_hooks=new Map;this._exit_hooks=new Map;this._after_hooks=new Map;this._after_any_hook=void 0;this._global_action_hooks=new Map;this._any_action_hook=void 0;this._standard_transition_hook=void 0;this._main_transition_hook=void 0;this._forced_transition_hook=void 0;this._any_transition_hook=void 0;this._has_post_hooks=false;this._has_post_basic_hooks=false;this._has_post_named_hooks=false;this._has_post_entry_hooks=false;this._has_post_exit_hooks=false;this._has_post_global_action_hooks=false;this._has_post_transition_hooks=false;this._code_allows_override=allows_override;this._config_allows_override=config_allows_override;this._allow_islands=allow_islands??true;this._editor_config=editor_config;if(allows_override===false&&config_allows_override===true){throw new JssmError(void 0,"Code specifies no override, but config tries to permit; config may not be less strict than code")}this._post_hooks=new Map;this._post_named_hooks=new Map;this._post_entry_hooks=new Map;this._post_exit_hooks=new Map;this._post_global_action_hooks=new Map;this._post_any_action_hook=void 0;this._post_standard_transition_hook=void 0;this._post_main_transition_hook=void 0;this._post_forced_transition_hook=void 0;this._post_any_transition_hook=void 0;this._pre_everything_hook=void 0;this._everything_hook=void 0;this._pre_post_everything_hook=void 0;this._post_everything_hook=void 0;this._data=data;this._property_keys=new Set;this._default_properties=new Map;this._state_properties=new Map;this._required_properties=new Set;this._state_property_first_state=new Map;this._state_style=state_style_condense(default_state_config,this);this._active_state_style=state_style_condense(default_active_state_config,this);this._hooked_state_style=state_style_condense(default_hooked_state_config,this);this._terminal_state_style=state_style_condense(default_terminal_state_config,this);this._start_state_style=state_style_condense(default_start_state_config,this);this._end_state_style=state_style_condense(default_end_state_config,this);this._default_transition_config=default_transition_config;this._default_graph_config=default_graph_config;this._group_registry=group_registry??new Map;this._group_hooks=group_hooks??new Map;this._state_hooks=state_hooks??new Map;this._group_metadata=new Map;if(group_metadata){group_metadata.forEach((raw,group_name)=>this._group_metadata.set(group_name,state_style_condense(raw.declarations,this)))}this._group_order=[...this._group_registry.keys()];this._state_to_groups=new Map;{const memo=new Map;for(const group_name of this._group_order){for(const member of transitive_members(this._group_registry,group_name,memo)){let bucket=this._state_to_groups.get(member);if(bucket===void 0){bucket=new Set;this._state_to_groups.set(member,bucket)}bucket.add(group_name)}}}this._static_state_config_cache=new Map;this._history_length=history||0;this._history=new circular_buffer(this._history_length);this._state_labels=new Map;this._rng_seed=rng_seed??Date.now();this._rng=gen_splitmix32(this._rng_seed);this._timeout_source=timeout_source??DEFAULT_TIMEOUT_SOURCE;this._clear_timeout_source=clear_timeout_source??DEFAULT_CLEAR_TIMEOUT_SOURCE;this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0;this._after_mapping=new Map;this._event_handlers=new Map;this._event_listener_count=0;this._firing_error=false;this._boundary_depth=0;this._boundary_depth_limit=boundary_depth_limit??100;if(state_declaration){for(const state_decl of state_declaration){if(this._state_declarations.has(state_decl.state)){throw new JssmError(this,`Added the same state declaration twice: ${JSON.stringify(state_decl.state)}`)}this._state_declarations.set(state_decl.state,transfer_state_properties(state_decl))}}for(const[key,decl]of this._state_declarations){const labelled=decl.declarations.filter(d=>d.key==="state-label");if(labelled.length>1){throw new JssmError(this,`state ${key} may only have one state-label; has ${labelled.length}`)}if(labelled.length===1){this._state_labels.set(key,labelled[0].value)}}const seen_edges=new Map;const complete_set=new Set(complete);for(const tr of transitions){if(tr.from===void 0){throw new JssmError(this,`transition must define 'from': ${JSON.stringify(tr)}`)}if(tr.to===void 0){throw new JssmError(this,`transition must define 'to': ${JSON.stringify(tr)}`)}let cursor_from=__privateGet(this,_states).get(tr.from);if(cursor_from===void 0){cursor_from={name:tr.from,from:[],to:[],complete:complete_set.has(tr.from)};this._new_state(cursor_from)}let cursor_to=__privateGet(this,_states).get(tr.to);if(cursor_to===void 0){cursor_to={name:tr.to,from:[],to:[],complete:complete_set.has(tr.to)};this._new_state(cursor_to)}let to_slots=seen_edges.get(tr.from);if(to_slots===void 0){to_slots=new Map;seen_edges.set(tr.from,to_slots)}let slots=to_slots.get(tr.to);if(slots===void 0){slots=new Set;to_slots.set(tr.to,slots);cursor_from.to.push(tr.to);cursor_to.from.push(tr.from)}const edge_exempt=!tr.action&&tr.probability!==void 0;if(!edge_exempt){const slot=tr.action||"";if(slots.has(slot)){throw new JssmError(this,`already has ${JSON.stringify(tr.from)} to ${JSON.stringify(tr.to)}`+(tr.action?` on action ${JSON.stringify(tr.action)}`:""))}slots.add(slot)}__privateGet(this,_edges).push(tr);const thisEdgeId=__privateGet(this,_edges).length-1;if(tr.forced_only){this._has_forced_transitions=true}if(tr.name){if(__privateGet(this,_named_transitions).has(tr.name)){throw new JssmError(this,`named transition "${JSON.stringify(tr.name)}" already created`)}__privateGet(this,_named_transitions).set(tr.name,thisEdgeId)}if(tr.after_time){this._after_mapping.set(tr.from,[tr.to,tr.after_time])}let from_mapping=__privateGet(this,_edge_map).get(tr.from);if(from_mapping===void 0){from_mapping=new Map;__privateGet(this,_edge_map).set(tr.from,from_mapping)}if(!from_mapping.has(tr.to)){from_mapping.set(tr.to,thisEdgeId)}const from_id=this._state_interner.intern(tr.from);const to_id=this._state_interner.intern(tr.to);const pair=pair_key(from_id,to_id);if(!this._edge_id_by_pair.has(pair)){this._edge_id_by_pair.set(pair,thisEdgeId)}this._edge_to_ids[thisEdgeId]=to_id;let outbound=__privateGet(this,_outbound_edge_ids).get(tr.from);if(!outbound){outbound=[];__privateGet(this,_outbound_edge_ids).set(tr.from,outbound)}outbound.push(thisEdgeId);if(tr.action){let actionMap=__privateGet(this,_actions).get(tr.action);if(!actionMap){actionMap=new Map;__privateGet(this,_actions).set(tr.action,actionMap)}if(actionMap.has(tr.from)){throw new JssmError(this,`action ${JSON.stringify(tr.action)} already attached to origin ${JSON.stringify(tr.from)}`)}actionMap.set(tr.from,thisEdgeId);let rActionMap=__privateGet(this,_reverse_actions).get(tr.from);if(!rActionMap){rActionMap=new Map;__privateGet(this,_reverse_actions).set(tr.from,rActionMap)}rActionMap.set(tr.action,thisEdgeId);const action_id=this._action_interner.intern(tr.action);this._edge_id_by_action_pair.set(pair_key(action_id,from_id),thisEdgeId);if(!__privateGet(this,_reverse_action_targets).has(tr.to)){__privateGet(this,_reverse_action_targets).set(tr.to,new Map)}}}if(Array.isArray(property_definition)){for(const pr of property_definition){this._property_keys.add(pr.name);if(Object.prototype.hasOwnProperty.call(pr,"default_value")){this._default_properties.set(pr.name,pr.default_value)}if(Object.prototype.hasOwnProperty.call(pr,"required")&&pr.required===true){this._required_properties.add(pr.name)}}}if(Array.isArray(state_property)){for(const sp of state_property){this._state_properties.set(sp.name,sp.default_value);let j_property=sp.property,j_state=sp.state;if(j_property===void 0||j_state===void 0){const inside=JSON.parse(sp.name);j_property=inside[0];j_state=inside[1]}if(!this._state_property_first_state.has(j_property)){this._state_property_first_state.set(j_property,j_state)}}}if(initial_state){if(!__privateGet(this,_states).has(initial_state)){throw new JssmError(this,`requested start state ${initial_state} does not exist`)}if(!start_states_no_enforce&&!start_states.includes(initial_state)){throw new JssmError(this,`requested start state ${initial_state} is not in start state list; add {start_states_no_enforce:true} to constructor options if desired`)}this._state=initial_state}else{this._state=start_states[0]}this._state_id=this._state_interner.intern(this._state);this._state_property_first_state.forEach((j_state,j_property)=>{if(!this.known_prop(j_property)){throw new JssmError(this,`State "${j_state}" has property "${j_property}" which is not globally declared`)}});const all_states_for_props=this.states();this._required_properties.forEach(dp_key=>{if(this._default_properties.has(dp_key)){throw new JssmError(this,`The property "${dp_key}" is required, but also has a default; these conflict`)}for(const s of all_states_for_props){const bound_name=name_bind_prop_and_state(dp_key,s);if(!this._state_properties.has(bound_name)){throw new JssmError(this,`State "${s}" is missing required property "${dp_key}"`)}}});if(!this.has_state(this.state())){throw new JssmError(this,`Current start state "${this.state()}" does not exist`)}for(const[ssi,ss]of start_states.entries()){if(!this.has_state(ss)){throw new JssmError(this,`Start state ${ssi} "${ss}" does not exist`)}}if(start_states.length!==this._start_states.size){throw new JssmError(this,`Start states cannot be repeated`)}if(this._allow_islands!==true){const components=find_connected_components(__privateGet(this,_states),__privateGet(this,_edges));if(this._allow_islands===false){if(components.length>1){throw new JssmError(this,`allow_islands is false but the state graph has ${components.length} disconnected components`)}}else{for(const component of components){const has_start=component.some(s=>this._start_states.has(s));if(!has_start){throw new JssmError(this,`allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(", ")}]`)}}}}this._created=this._time_source();this.auto_set_state_timeout();for(const declaration of[this._arrange_declaration,this._oarrange_declaration,this._farrange_declaration]){for(const arrange_pair of declaration){for(const possibleState of arrange_pair){if(!__privateGet(this,_states).has(possibleState)){throw new JssmError(this,`Cannot arrange state that does not exist "${possibleState}"`)}}}}}_new_state(state_config){if(__privateGet(this,_states).has(state_config.name)){throw new JssmError(this,`state ${JSON.stringify(state_config.name)} already exists`)}__privateGet(this,_states).set(state_config.name,state_config);this._state_interner.intern(state_config.name);return state_config.name}state(){return this._state}label_for(state){return this._state_labels.get(state)}display_text(state){return this._state_labels.get(state)??state}data(){return structuredClone(this._data)}set_data(newData){const oldData=this._data;this._data=newData;if(oldData!==newData){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:this._state,to:this._state,old_data:oldData,new_data:newData,cause:"set_data"})}return this}_data_ref(){return this._data}prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}return this._default_properties.has(name)?this._default_properties.get(name):void 0}strict_prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}if(this._default_properties.has(name)){return this._default_properties.get(name)}throw new JssmError(this,`Strictly requested a prop '${name}' which doesn't exist on current state '${this.state()}' and has no default`)}props(){const ret={};for(const p of this.known_props())ret[p]=this.prop(p);return ret}known_prop(prop_name){return this._property_keys.has(prop_name)}known_props(){return[...this._property_keys]}is_start_state(whichState){return this._start_states.has(whichState)}is_end_state(whichState){return this._end_states.has(whichState)}failed_outputs(){return[...this._failed_outputs]}is_failed_output(whichState){return this._failed_outputs.has(whichState)}is_failed(){return this._failed_outputs.has(this._state)}state_is_final(whichState){return this.state_is_terminal(whichState)||this.state_is_complete(whichState)}is_final(){return this.state_is_final(this.state())}serialize(comment){return{comment:comment,state:this._state,data:this._data,jssm_version:version,history:this._history.toArray(),history_capacity:this._history.capacity,timestamp:this._time_source()}}graph_layout(){return this._graph_layout}dot_preamble(){return this._dot_preamble}default_transition_config(){return this._default_transition_config}default_graph_config(){return this._default_graph_config}machine_author(){return this._machine_author}machine_comment(){return this._machine_comment}machine_contributor(){return this._machine_contributor}machine_definition(){return this._machine_definition}machine_language(){return this._machine_language}machine_license(){return this._machine_license}machine_name(){return this._machine_name}editor_config(){return this._editor_config}npm_name(){return this._npm_name}default_size(){return this._default_size}machine_version(){return this._machine_version}raw_state_declarations(){return this._raw_state_declaration}state_declaration(which){return this._state_declarations.get(which)}state_declarations(){return this._state_declarations}fsl_version(){return this._fsl_version}machine_state(){return{internal_state_impl_version:1,actions:__privateGet(this,_actions),edge_map:__privateGet(this,_edge_map),edges:__privateGet(this,_edges),named_transitions:__privateGet(this,_named_transitions),reverse_actions:__privateGet(this,_reverse_actions),state:this._state,states:__privateGet(this,_states)}}states(){return[...__privateGet(this,_states).keys()]}state_for(whichState){const state=__privateGet(this,_states).get(whichState);if(state){return state}throw new JssmError(this,"No such state",{requested_state:whichState})}has_state(whichState){return __privateGet(this,_states).has(whichState)}list_edges(){return __privateGet(this,_edges)}list_named_transitions(){return __privateGet(this,_named_transitions)}list_actions(){return[...__privateGet(this,_actions).keys()]}get uses_actions(){return __privateGet(this,_actions).size>0}get uses_forced_transitions(){return this._has_forced_transitions}get code_allows_override(){return this._code_allows_override}get config_allows_override(){return this._config_allows_override}get allows_override(){if(this._code_allows_override===false){if(this._config_allows_override===true){throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code; should be unreachable")}return false}if(this._code_allows_override===true){return this._config_allows_override!==false}return this._config_allows_override===true}get allow_islands(){return this._allow_islands}all_themes(){return[...theme_mapping.keys()]}all_state_name_chars(){return state_name_chars}all_state_name_first_chars(){return state_name_first_chars}all_action_label_chars(){return action_label_chars}get themes(){return this._themes}set themes(to){this._themes=typeof to==="string"?[to]:to;this._static_state_config_cache.clear()}flow(){return this._flow}get_transition_by_state_names(from2,to){const emg=__privateGet(this,_edge_map).get(from2);return emg?emg.get(to):void 0}lookup_transition_for(from2,to){const id=this.get_transition_by_state_names(from2,to);return id===void 0||id===null?void 0:__privateGet(this,_edges)[id]}list_transitions(whichState=this.state()){return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}list_entrances(whichState=this.state()){const guaranteed=__privateGet(this,_states).get(whichState)??{from:void 0};return guaranteed.from??[]}list_exits(whichState=this.state()){const guaranteed=__privateGet(this,_states).get(whichState)??{to:void 0};return guaranteed.to??[]}probable_exits_for(whichState){const wstate=__privateGet(this,_states).get(whichState);if(!wstate){throw new JssmError(this,`No such state ${JSON.stringify(whichState)} in probable_exits_for`)}const legal_exits=[],probability_bearing=[];const emg=__privateGet(this,_edge_map).get(whichState);for(const ws of wstate.to){const edge=__privateGet(this,_edges)[emg.get(ws)];if(!edge){continue}if(edge.forced_only){continue}legal_exits.push(edge);if(edge.probability!==void 0){probability_bearing.push(edge)}}return probability_bearing.length>0?probability_bearing:legal_exits}_assert_selectable_exit_pool(whichState,exits){if(exits.length===0){return}let total=0;for(const e of exits){total+=e.probability===void 0?1:e.probability}if(total>0){return}throw new JssmError(this,`Cannot randomly select an exit from state ${JSON.stringify(whichState)}: every candidate edge has probability 0%. Note that an explicit 0% edge excludes unweighted sibling edges from the candidate pool (StoneCypher/fsl#1248)`)}probabilistic_transition(){const exits=this.probable_exits_for(this.state());this._assert_selectable_exit_pool(this.state(),exits);const selected=weighted_rand_select(exits,void 0,this._rng);return this.transition(selected.to)}probabilistic_walk(n){return[...seq(n).map(()=>{const state_was=this.state();this.probabilistic_transition();return state_was}),this.state()]}probabilistic_histo_walk(n){return histograph(this.probabilistic_walk(n))}_stochastic_one_walk(start,max_steps,exit_memo){const states=[start];const edges=[];let cur=start;let exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);this._assert_selectable_exit_pool(cur,exits);exit_memo.set(cur,exits)}let terminated=exits.length===0;for(let step=0;step<max_steps&&!terminated;step++){const selected=weighted_rand_select(exits,void 0,this._rng);edges.push(`${cur}→${selected.to}`);cur=selected.to;states.push(cur);exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);this._assert_selectable_exit_pool(cur,exits);exit_memo.set(cur,exits)}terminated=exits.length===0}return{states:states,edges:edges,length:states.length-1,terminated:terminated}}*stochastic_runs(opts={}){if(opts.seed!==void 0){this.rng_seed=opts.seed}const mode=opts.mode??"montecarlo";const max_steps=opts.max_steps??STOCHASTIC_DEFAULT_MAX_STEPS;const runs=mode==="steady_state"?1:opts.runs??this.editor_config()?.stochastic_run_count??STOCHASTIC_DEFAULT_RUNS;const start=this.state();const exit_memo=new Map;for(let i=0;i<runs;i++){yield this._stochastic_one_walk(start,max_steps,exit_memo)}}stochastic_summary(opts={}){const mode=opts.mode??"montecarlo";const saved_seed=this._rng_seed;if(opts.seed!==void 0){this.rng_seed=opts.seed}const effective_seed=this._rng_seed;const state_visits=new Map;const edge_traversals=new Map;const path_lengths=[];let terminal_reached=0,capped=0,runs=0;try{const run_stream=this.stochastic_runs({...opts,mode:mode});for(const run of run_stream){runs+=1;for(const s of run.states){state_visits.set(s,(state_visits.get(s)??0)+1)}for(const e of run.edges){edge_traversals.set(e,(edge_traversals.get(e)??0)+1)}if(mode==="montecarlo"){if(run.terminated){terminal_reached+=1;path_lengths.push(run.length)}else{capped+=1}}}}finally{this.rng_seed=saved_seed}const total_visits=[...state_visits.values()].reduce((a,b)=>a+b,0);const state_visit_fraction=new Map;for(const[s,c]of state_visits){state_visit_fraction.set(s,c/total_visits)}const summary={mode:mode,runs:runs,seed:effective_seed,state_visits:state_visits,state_visit_fraction:state_visit_fraction,edge_traversals:edge_traversals};if(mode==="montecarlo"){summary.path_lengths=path_lengths;summary.terminal_reached=terminal_reached;summary.capped=capped}return summary}actions(whichState=this.state()){const wstate=__privateGet(this,_reverse_actions).get(whichState);if(wstate){return[...wstate.keys()]}if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}list_states_having_action(whichState){const wstate=__privateGet(this,_actions).get(whichState);if(wstate){return[...wstate.keys()]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}list_exit_actions(whichState=this.state()){const ra_base=__privateGet(this,_reverse_actions).get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}return[...ra_base.keys()]}probable_action_exits(whichState=this.state()){const ra_base=__privateGet(this,_reverse_actions).get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}const exits=[];ra_base.forEach((edgeId,action)=>{exits.push({action:action,probability:__privateGet(this,_edges)[edgeId].probability})});return exits}is_unenterable(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_entrances(whichState).length===0}has_unenterables(){return this.states().some(x=>this.is_unenterable(x))}is_terminal(){return this.state_is_terminal(this.state())}state_is_terminal(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_exits(whichState).length===0}has_terminals(){return this.states().some(x=>this.state_is_terminal(x))}isIn(groupName){return this.groupsOf(this.state()).has(groupName)}groupsOf(state){return new Set(this._state_to_groups.get(state))}groups(){return[...this._group_order]}statesIn(groupName){if(!this._group_registry.has(groupName)){throw new JssmError(this,`No such group ${JSON.stringify(groupName)}`)}return transitive_members(this._group_registry,groupName,new Map)}is_complete(){return this.state_is_complete(this.state())}state_is_complete(whichState){const wstate=__privateGet(this,_states).get(whichState);if(wstate){return wstate.complete}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}has_completes(){return this.states().some(x=>this.state_is_complete(x))}on(name,filterOrFn,maybeFn){return __privateMethod(this,_Machine_instances,subscribe_fn).call(this,name,filterOrFn,maybeFn,false)}once(name,filterOrFn,maybeFn){return __privateMethod(this,_Machine_instances,subscribe_fn).call(this,name,filterOrFn,maybeFn,true)}off(name,handler){const set=this._event_handlers.get(name);if(set===void 0){return false}for(const entry of set){if(entry.handler===handler){__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry);return true}}return false}set_hook(HookDesc){__privateMethod(this,_Machine_instances,validate_hook_description_fn).call(this,HookDesc);switch(HookDesc.kind){case"hook":{this._hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_hooks=true;this._has_basic_hooks=true;break}case"named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._named_hooks.get(pk);if(inner===void 0){inner=new Map;this._named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_named_hooks=true;break}case"global action":{this._global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_global_action_hooks=true;break}case"any action":{this._any_action_hook=HookDesc.handler;this._has_hooks=true;break}case"standard transition":{this._standard_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"main transition":{this._main_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"forced transition":{this._forced_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break}case"any transition":{this._any_transition_hook=HookDesc.handler;this._has_hooks=true;break}case"entry":{this._entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_hooks=true;this._has_entry_hooks=true;break}case"exit":{this._exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_hooks=true;this._has_exit_hooks=true;break}case"after":{this._after_hooks.set(HookDesc.from,HookDesc.handler);this._has_hooks=true;this._has_after_hooks=true;break}case"after any":{this._after_any_hook=HookDesc.handler;this._has_hooks=true;this._has_after_hooks=true;break}case"post hook":{this._post_hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_post_hooks=true;this._has_post_basic_hooks=true;break}case"post named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._post_named_hooks.get(pk);if(inner===void 0){inner=new Map;this._post_named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_named_hooks=true;break}case"post global action":{this._post_global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_global_action_hooks=true;break}case"post any action":{this._post_any_action_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post standard transition":{this._post_standard_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post main transition":{this._post_main_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post forced transition":{this._post_forced_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break}case"post any transition":{this._post_any_transition_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post entry":{this._post_entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_post_entry_hooks=true;this._has_post_hooks=true;break}case"post exit":{this._post_exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_post_exit_hooks=true;this._has_post_hooks=true;break}case"pre everything":{this._pre_everything_hook=HookDesc.handler;this._has_hooks=true;break}case"everything":{this._everything_hook=HookDesc.handler;this._has_hooks=true;break}case"pre post everything":{this._pre_post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}case"post everything":{this._post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}}this._static_state_config_cache.clear();__privateMethod(this,_Machine_instances,fire_fn).call(this,"hook-registration",{description:HookDesc})}remove_hook(HookDesc){let removed=false;switch(HookDesc.kind){case"hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._hooks.delete(pair_key(fid,tid));break}case"named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._global_action_hooks.delete(aid);break}case"any action":{if(this._any_action_hook!==void 0){this._any_action_hook=void 0;removed=true}break}case"standard transition":{if(this._standard_transition_hook!==void 0){this._standard_transition_hook=void 0;removed=true}break}case"main transition":{if(this._main_transition_hook!==void 0){this._main_transition_hook=void 0;removed=true}break}case"forced transition":{if(this._forced_transition_hook!==void 0){this._forced_transition_hook=void 0;removed=true}break}case"any transition":{if(this._any_transition_hook!==void 0){this._any_transition_hook=void 0;removed=true}break}case"entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._entry_hooks.delete(tid);break}case"exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._exit_hooks.delete(fid);break}case"after":{removed=this._after_hooks.delete(HookDesc.from);break}case"after any":{if(this._after_any_hook!==void 0){this._after_any_hook=void 0;removed=true}break}case"post hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._post_hooks.delete(pair_key(fid,tid));break}case"post named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._post_named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"post global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._post_global_action_hooks.delete(aid);break}case"post any action":{if(this._post_any_action_hook!==void 0){this._post_any_action_hook=void 0;removed=true}break}case"post standard transition":{if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook=void 0;removed=true}break}case"post main transition":{if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook=void 0;removed=true}break}case"post forced transition":{if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook=void 0;removed=true}break}case"post any transition":{if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook=void 0;removed=true}break}case"post entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._post_entry_hooks.delete(tid);break}case"post exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._post_exit_hooks.delete(fid);break}case"pre everything":{if(this._pre_everything_hook!==void 0){this._pre_everything_hook=void 0;removed=true}break}case"everything":{if(this._everything_hook!==void 0){this._everything_hook=void 0;removed=true}break}case"pre post everything":{if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook=void 0;removed=true}break}case"post everything":{if(this._post_everything_hook!==void 0){this._post_everything_hook=void 0;removed=true}break}default:{throw new JssmError(this,`Unknown hook type ${HookDesc.kind}, should be impossible`)}}if(removed){this._static_state_config_cache.clear();__privateMethod(this,_Machine_instances,fire_fn).call(this,"hook-removal",{description:HookDesc})}return removed}hook(from2,to,handler){this.set_hook({kind:"hook",from:from2,to:to,handler:handler});return this}hook_action(from2,to,action,handler){this.set_hook({kind:"named",from:from2,to:to,action:action,handler:handler});return this}hook_global_action(action,handler){this.set_hook({kind:"global action",action:action,handler:handler});return this}hook_any_action(handler){this.set_hook({kind:"any action",handler:handler});return this}hook_standard_transition(handler){this.set_hook({kind:"standard transition",handler:handler});return this}hook_main_transition(handler){this.set_hook({kind:"main transition",handler:handler});return this}hook_forced_transition(handler){this.set_hook({kind:"forced transition",handler:handler});return this}hook_any_transition(handler){this.set_hook({kind:"any transition",handler:handler});return this}hook_entry(to,handler){this.set_hook({kind:"entry",to:to,handler:handler});return this}hook_exit(from2,handler){this.set_hook({kind:"exit",from:from2,handler:handler});return this}hook_after(from2,handler){this.set_hook({kind:"after",from:from2,handler:handler});return this}hook_after_any(handler){this.set_hook({kind:"after any",handler:handler});return this}post_hook(from2,to,handler){this.set_hook({kind:"post hook",from:from2,to:to,handler:handler});return this}post_hook_action(from2,to,action,handler){this.set_hook({kind:"post named",from:from2,to:to,action:action,handler:handler});return this}post_hook_global_action(action,handler){this.set_hook({kind:"post global action",action:action,handler:handler});return this}post_hook_any_action(handler){this.set_hook({kind:"post any action",handler:handler});return this}post_hook_standard_transition(handler){this.set_hook({kind:"post standard transition",handler:handler});return this}post_hook_main_transition(handler){this.set_hook({kind:"post main transition",handler:handler});return this}post_hook_forced_transition(handler){this.set_hook({kind:"post forced transition",handler:handler});return this}post_hook_any_transition(handler){this.set_hook({kind:"post any transition",handler:handler});return this}post_hook_entry(to,handler){this.set_hook({kind:"post entry",to:to,handler:handler});return this}post_hook_exit(from2,handler){this.set_hook({kind:"post exit",from:from2,handler:handler});return this}hook_pre_everything(handler){this.set_hook({kind:"pre everything",handler:handler});return this}hook_everything(handler){this.set_hook({kind:"everything",handler:handler});return this}hook_post_everything(handler){this.set_hook({kind:"post everything",handler:handler});return this}hook_pre_post_everything(handler){this.set_hook({kind:"pre post everything",handler:handler});return this}get rng_seed(){return this._rng_seed}set rng_seed(to){this._rng_seed=to===void 0?Date.now():to;this._rng=gen_splitmix32(this._rng_seed)}edges_between(from2,to){const to_id=this._state_interner.id_of(to);if(to_id===void 0){return[]}const outbound=__privateGet(this,_outbound_edge_ids).get(from2)??[];const result=[];for(const edgeId of outbound){if(this._edge_to_ids[edgeId]===to_id){result.push(__privateGet(this,_edges)[edgeId])}}return result}override(newState,newData){const dataProvided=arguments.length>=2;if(this.allows_override){if(__privateGet(this,_states).has(newState)){const fromState=this._state;const oldData=this._data;this._state=newState;this._state_id=this._state_interner.intern(newState);if(dataProvided){this._data=newData}__privateMethod(this,_Machine_instances,fire_fn).call(this,"override",{from:fromState,to:newState,old_data:oldData,new_data:this._data});if(dataProvided&&oldData!==newData){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:fromState,to:newState,old_data:oldData,new_data:newData,cause:"override"})}__privateMethod(this,_Machine_instances,fire_boundary_actions_fn).call(this,fromState,newState)}else{throw new JssmError(this,`Cannot override state to "${newState}", a state that does not exist`)}}else{throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code")}}transition_impl(newStateOrAction,newData,wasForced,wasAction,dataProvided=newData!==void 0){let valid=false,trans_type,newState,newStateId=NaN,actionId=NaN,fromAction;if(wasForced){const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0){valid=true;trans_type="forced";newState=newStateOrAction;newStateId=to_id}}else if(wasAction){const aid=this._action_interner.id_of(newStateOrAction);const edgeId=aid===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(aid,this._state_id));if(edgeId!==void 0){const edge=__privateGet(this,_edges)[edgeId];valid=true;trans_type=edge.kind;newState=edge.to;newStateId=this._edge_to_ids[edgeId];fromAction=newStateOrAction;actionId=aid}}else{const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0&&!__privateGet(this,_edges)[edgeId].forced_only){if(this._has_transition_hooks||this._has_post_transition_hooks){trans_type=__privateGet(this,_edges)[edgeId].kind}valid=true;newState=newStateOrAction;newStateId=to_id}}const hook_args_obj=this._has_hooks||this._has_post_hooks?{data:this._data,action:fromAction,from:this._state,to:newState,next_data:newData,forced:wasForced,trans_type:trans_type}:void 0;const hook_args=hook_args_obj;if(wasAction&&this._event_listener_count!==0){__privateMethod(this,_Machine_instances,fire_fn).call(this,"action",{action:newStateOrAction,from:this._state,to:newState,data:this._data,next_data:newData})}const fromState=this._state;const fromStateId=this._state_id;const oldData=this._data;if(valid){if(this._has_hooks){let data_changed=false;if(this._pre_everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._pre_everything_hook,{...hook_args,hook_name:"pre everything"});if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"pre everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(wasAction){const outcome=abstract_hook_step(this._any_action_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"any action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}const outcome2=abstract_hook_step(this._global_action_hooks.get(actionId),hook_args);if(!outcome2.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"global action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome2)){data_changed=true}}if(this._any_transition_hook!==void 0){const outcome=abstract_hook_step(this._any_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"any transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_exit_hooks){const outcome=abstract_hook_step(this._exit_hooks.get(this._state_id),hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"exit",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}const pre_pair_id=pair_key(this._state_id,newStateId);if(this._has_named_hooks&&wasAction){const byPair=this._named_hooks.get(pre_pair_id);const nh=byPair===void 0?void 0:byPair.get(actionId);const outcome=abstract_hook_step(nh,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"named",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_basic_hooks){const h=this._hooks.get(pre_pair_id);const outcome=abstract_hook_step(h,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"hook",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}switch(trans_type){case"legal":{const outcome=abstract_hook_step(this._standard_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"standard transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}case"main":{const outcome=abstract_hook_step(this._main_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"main transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}case"forced":{const outcome=abstract_hook_step(this._forced_transition_hook,hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"forced transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}break}}if(this._has_entry_hooks){const outcome=abstract_hook_step(this._entry_hooks.get(newStateId),hook_args);if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"entry",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._everything_hook,{...hook_args,hook_name:"everything"});if(!outcome.pass){__privateMethod(this,_Machine_instances,fire_hook_rejection_fn).call(this,"everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(data_changed){this._data=hook_args.data}else if(dataProvided){this._data=newData}}else{if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(dataProvided){this._data=newData}}}else{if(this._event_listener_count!==0){__privateMethod(this,_Machine_instances,fire_fn).call(this,"rejection",{from:fromState,to:newStateOrAction,action:fromAction,data:oldData,next_data:newData,reason:"invalid",forced:wasForced})}return false}if(this._has_post_hooks){if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook({...hook_args,hook_name:"pre post everything"})}if(wasAction){if(this._post_any_action_hook!==void 0){this._post_any_action_hook(hook_args)}const pgah=this._post_global_action_hooks.get(actionId);if(pgah!==void 0){pgah(hook_args)}}if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook(hook_args)}if(this._has_post_exit_hooks){const peh=this._post_exit_hooks.get(fromStateId);if(peh!==void 0){peh(hook_args)}}const post_pair_id=pair_key(fromStateId,newStateId);if(this._has_post_named_hooks&&wasAction){const byPair=this._post_named_hooks.get(post_pair_id);const pnh=byPair===void 0?void 0:byPair.get(actionId);if(pnh!==void 0){pnh(hook_args)}}if(this._has_post_basic_hooks){const hook=this._post_hooks.get(post_pair_id);if(hook!==void 0){hook(hook_args)}}if(trans_type==="legal"&&this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook(hook_args)}if(trans_type==="main"&&this._post_main_transition_hook!==void 0){this._post_main_transition_hook(hook_args)}if(trans_type==="forced"&&this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook(hook_args)}if(this._has_post_entry_hooks){const hook=this._post_entry_hooks.get(newStateId);if(hook!==void 0){hook(hook_args)}}if(this._post_everything_hook!==void 0){this._post_everything_hook({...hook_args,hook_name:"post everything"})}}if(this._event_listener_count!==0){const newData_after=this._data;if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"exit")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"exit",{state:fromState,to:newState,action:fromAction,data:newData_after})}if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"transition")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"transition",{from:fromState,to:newState,action:fromAction,data:newData_after,next_data:newData,trans_type:trans_type,forced:wasForced})}if(__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"entry")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"entry",{state:newState,from:fromState,action:fromAction,data:newData_after})}if(oldData!==newData_after&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"data-change")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"data-change",{from:fromState,to:newState,action:fromAction,old_data:oldData,new_data:newData_after,cause:"transition"})}const new_state_rec=__privateGet(this,_states).get(newState);if(new_state_rec.to.length===0&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"terminal")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"terminal",{state:newState,data:newData_after})}if(new_state_rec.complete&&__privateMethod(this,_Machine_instances,has_subscribers_fn).call(this,"complete")){__privateMethod(this,_Machine_instances,fire_fn).call(this,"complete",{state:newState,data:newData_after})}}__privateMethod(this,_Machine_instances,fire_boundary_actions_fn).call(this,fromState,newState);this.clear_state_timeout();this.auto_set_state_timeout();return true}auto_set_state_timeout(){if(this._after_mapping.size===0){return}const after_res=this._after_mapping.get(this._state);if(after_res!==void 0){const[next_state,after_time]=after_res;this.set_state_timeout(next_state,after_time)}}get history(){return this._history.toArray()}get history_inclusive(){const ret=this._history.toArray();ret.push([this.state(),this.data()]);return ret}get history_length(){return this._history_length}set history_length(to){this._history_length=to;this._history.resize(to,true)}action(actionName,newData){return this.transition_impl(actionName,newData,false,true,arguments.length>=2)}get standard_state_style(){return this._state_style}get hooked_state_style(){return this._hooked_state_style}get start_state_style(){return this._start_state_style}get end_state_style(){return this._end_state_style}get terminal_state_style(){return this._terminal_state_style}get active_state_style(){return this._active_state_style}hook_registry(){const entries=[];const state_name=id=>this._state_interner.name_of(id);const action_name=id=>this._action_interner.name_of(id);const push_edges=(table,kind,phase)=>{table.forEach((_handler,pk)=>{const[fid,tid]=un_pair_key(pk);entries.push({kind:kind,phase:phase,target:{scope:"edge",from:state_name(fid),to:state_name(tid)}})})};const push_named=(table,kind,phase)=>{table.forEach((byAction,pk)=>{const[fid,tid]=un_pair_key(pk);const from2=state_name(fid),to=state_name(tid);byAction.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"edge",from:from2,to:to,action:action_name(aid)}})})})};const push_states=(table,kind,phase)=>{table.forEach((_handler,sid)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state_name(sid)}})})};const push_states_by_name=(table,kind,phase)=>{table.forEach((_handler,state)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state}})})};const push_actions=(table,kind,phase)=>{table.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"action",action:action_name(aid)}})})};const push_global=(handler,kind,phase)=>{if(handler!==void 0){entries.push({kind:kind,phase:phase,target:{scope:"global"}})}};const push_boundary=(table,enterKind,exitKind,target_of)=>{table.forEach((bh,subject)=>{if(bh.onEnter!==void 0){entries.push({kind:enterKind,phase:"post",target:target_of(subject)})}if(bh.onExit!==void 0){entries.push({kind:exitKind,phase:"post",target:target_of(subject)})}})};push_edges(this._hooks,"hook","pre");push_named(this._named_hooks,"named","pre");push_states(this._entry_hooks,"entry","pre");push_states(this._exit_hooks,"exit","pre");push_states_by_name(this._after_hooks,"after","pre");push_actions(this._global_action_hooks,"global action","pre");push_global(this._any_action_hook,"any action","pre");push_global(this._standard_transition_hook,"standard transition","pre");push_global(this._main_transition_hook,"main transition","pre");push_global(this._forced_transition_hook,"forced transition","pre");push_global(this._any_transition_hook,"any transition","pre");push_global(this._after_any_hook,"after any","pre");push_global(this._pre_everything_hook,"pre everything","pre");push_global(this._everything_hook,"everything","pre");push_edges(this._post_hooks,"post hook","post");push_named(this._post_named_hooks,"post named","post");push_states(this._post_entry_hooks,"post entry","post");push_states(this._post_exit_hooks,"post exit","post");push_actions(this._post_global_action_hooks,"post global action","post");push_global(this._post_any_action_hook,"post any action","post");push_global(this._post_standard_transition_hook,"post standard transition","post");push_global(this._post_main_transition_hook,"post main transition","post");push_global(this._post_forced_transition_hook,"post forced transition","post");push_global(this._post_any_transition_hook,"post any transition","post");push_global(this._pre_post_everything_hook,"pre post everything","post");push_global(this._post_everything_hook,"post everything","post");push_boundary(this._group_hooks,"group enter","group exit",group=>({scope:"group",group:group}));push_boundary(this._state_hooks,"state enter","state exit",state=>({scope:"state",state:state}));return entries}static _entry_touches_state(entry,state){const t=entry.target;if(t.scope==="state"){return t.state===state}if(t.scope==="edge"){return t.from===state||t.to===state}return false}static _entry_matches_edge(entry,from2,to,action){const t=entry.target;if(t.scope!=="edge"){return false}if(t.from!==from2||t.to!==to){return false}if(action!==void 0){return t.action===action}return true}static _entry_matches_action(entry,action){const t=entry.target;if(t.scope==="action"){return t.action===action}if(t.scope==="edge"){return t.action===action}return false}static _entry_matches_group(entry,group){const t=entry.target;if(t.scope==="group"){return t.group===group}return false}hooks_on(query){const registry=this.hook_registry();if(typeof query==="string"){return registry.filter(e=>_Machine._entry_touches_state(e,query))}if("from"in query){return registry.filter(e=>_Machine._entry_matches_edge(e,query.from,query.to,query.action))}if("group"in query){return registry.filter(e=>_Machine._entry_matches_group(e,query.group))}return registry.filter(e=>_Machine._entry_matches_action(e,query.action))}has_hook(query,phase){const matches=this.hooks_on(query);if(phase===void 0){return matches.length>0}return matches.some(e=>e.phase===phase)}state_has_hooks(state){if(!this._has_hooks&&!this._has_post_hooks&&this._state_hooks.size===0&&this._group_hooks.size===0){return false}return this.hook_registry().some(e=>_Machine._entry_touches_state(e,state))}resolve_state_config(state){if(this.state()===state){const acc=__privateMethod(this,_Machine_instances,compose_state_config_fn).call(this,state,true);return merge_state_config(acc,this._active_state_style)}const cached=this._static_state_config_cache.get(state);if(cached!==void 0){return cached}const resolved=__privateMethod(this,_Machine_instances,compose_state_config_fn).call(this,state,false);this._static_state_config_cache.set(state,resolved);return resolved}style_for(state){return this.resolve_state_config(state)}do(actionName,newData){return this.transition_impl(actionName,newData,false,true,arguments.length>=2)}transition(newState,newData){return this.transition_impl(newState,newData,false,false,arguments.length>=2)}go(newState,newData){return this.transition_impl(newState,newData,false,false,arguments.length>=2)}force_transition(newState,newData){return this.transition_impl(newState,newData,true,false,arguments.length>=2)}current_action_for(action){const action_id=this._action_interner.id_of(action);return action_id===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(action_id,this._state_id))}current_action_edge_for(action){const idx=this.current_action_for(action);if(idx===void 0||idx===null){throw new JssmError(this,`No such action ${JSON.stringify(action)}`)}return __privateGet(this,_edges)[idx]}valid_action(action,_newData){return this.current_action_for(action)!==void 0}valid_transition(newState,_newData){const transition_for=this.lookup_transition_for(this.state(),newState);if(!transition_for){return false}if(transition_for.forced_only){return false}return true}valid_force_transition(newState,_newData){return this.lookup_transition_for(this.state(),newState)!==void 0}instance_name(){return this._instance_name}get creation_date(){return new Date(Math.floor(this.creation_timestamp))}get creation_timestamp(){return this._created}get create_start_time(){return this._create_started}set_state_timeout(next_state,after_time){if(this._timeout_handle!==void 0){throw new JssmError(this,`Asked to set a state timeout to ${next_state}:${after_time}, but already timing out to ${this._timeout_target}:${this._timeout_target_time}`)}this._timeout_handle=this._timeout_source(()=>{const from_state=this.state();this.clear_state_timeout();if(this._has_after_hooks){const ah=this._after_hooks.get(from_state);if(ah!==void 0){ah({data:this._data,next_data:this._data})}if(this._after_any_hook!==void 0){this._after_any_hook({data:this._data,next_data:this._data})}}__privateMethod(this,_Machine_instances,fire_fn).call(this,"timeout",{from:from_state,to:next_state,after_time:after_time});this.go(next_state)},after_time);this._timeout_target=next_state;this._timeout_target_time=after_time}clear_state_timeout(){if(this._timeout_handle===void 0){return}this._clear_timeout_source(this._timeout_handle);this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0}state_timeout_for(which_state){return this._after_mapping.get(which_state)}current_state_timeout(){return this._timeout_target===void 0?void 0:[this._timeout_target,this._timeout_target_time]}sm(template_strings,...remainder){return sm(template_strings,...remainder)}};_states=new WeakMap;_edges=new WeakMap;_edge_map=new WeakMap;_outbound_edge_ids=new WeakMap;_named_transitions=new WeakMap;_actions=new WeakMap;_reverse_actions=new WeakMap;_reverse_action_targets=new WeakMap;_Machine_instances=new WeakSet;unsubscribe_entry_fn=function(set,entry){if(set.delete(entry)){this._event_listener_count--}};subscribe_fn=function(name,filterOrFn,maybeFn,once){let filter;let handler;if(typeof filterOrFn==="function"){filter=void 0;handler=filterOrFn}else{filter=filterOrFn;handler=maybeFn}if(typeof handler!=="function"){throw new JssmError(this,`event handler for "${name}" must be a function`)}let set=this._event_handlers.get(name);if(set===void 0){set=new Set;this._event_handlers.set(name,set)}const entry={handler:handler,filter:filter,once:once};set.add(entry);this._event_listener_count++;return()=>{__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry)}};fire_one_fn=function(entry,set,name,detail){if(entry.filter!==void 0){for(const[k,v]of Object.entries(entry.filter)){if(v!==detail[k]){return}}}if(entry.once){__privateMethod(this,_Machine_instances,unsubscribe_entry_fn).call(this,set,entry)}try{entry.handler(detail)}catch(error){if(name==="error"||this._firing_error){console.error(error)}else{this._firing_error=true;try{__privateMethod(this,_Machine_instances,fire_fn).call(this,"error",{error:error,source_event:name,source_detail:detail,handler:entry.handler})}finally{this._firing_error=false}}}};has_subscribers_fn=function(name){const set=this._event_handlers.get(name);return set!==void 0&&set.size>0};fire_fn=function(name,detail){const set=this._event_handlers.get(name);if(set===void 0||set.size===0){return}if(set.size===1){const only=set.values().next().value;__privateMethod(this,_Machine_instances,fire_one_fn).call(this,only,set,name,detail);return}const entries=[...set];for(const entry of entries){__privateMethod(this,_Machine_instances,fire_one_fn).call(this,entry,set,name,detail)}};validate_hook_description_fn=function(HookDesc){const required=hook_required_fields[HookDesc.kind];if(required===void 0){throw new JssmError(this,`unknown hook kind ${JSON.stringify(HookDesc.kind)}`)}if(typeof HookDesc.handler!=="function"){throw new JssmError(this,`${HookDesc.kind} hook requires a handler function`)}for(const field of hook_spatial_fields){const needed=required.includes(field);const value=HookDesc[field];if(needed&&(typeof value!=="string"||value==="")){throw new JssmError(this,`${HookDesc.kind} hook requires '${field}' to be a non-empty string`)}if(!needed&&value!==void 0){throw new JssmError(this,`${HookDesc.kind} hook does not take '${field}'`)}}};fire_hook_rejection_fn=function(hook_name,fromState,newState,fromAction,oldData,newData,wasForced){__privateMethod(this,_Machine_instances,fire_fn).call(this,"rejection",{from:fromState,to:newState,action:fromAction,data:oldData,next_data:newData,reason:"hook",hook_name:hook_name,forced:wasForced})};fire_boundary_actions_fn=function(prev_state,next_state){if(prev_state===next_state){return}if(this._group_hooks.size===0&&this._state_hooks.size===0){return}if(this._boundary_depth>=this._boundary_depth_limit){throw new JssmError(this,`boundary-hook action cascade exceeded depth limit (${this._boundary_depth_limit}) crossing from ${JSON.stringify(prev_state)} to ${JSON.stringify(next_state)} (possible infinite loop)`)}const prev_groups=this._state_to_groups.get(prev_state)??empty_string_set;const next_groups=this._state_to_groups.get(next_state)??empty_string_set;const labels=[];for(const group of prev_groups){if(next_groups.has(group)){continue}const label=this._group_hooks.get(group)?.onExit;if(label!==void 0){labels.push(label)}}const prev_state_exit=this._state_hooks.get(prev_state)?.onExit;if(prev_state_exit!==void 0){labels.push(prev_state_exit)}for(const group of next_groups){if(prev_groups.has(group)){continue}const label=this._group_hooks.get(group)?.onEnter;if(label!==void 0){labels.push(label)}}const next_state_enter=this._state_hooks.get(next_state)?.onEnter;if(next_state_enter!==void 0){labels.push(next_state_enter)}if(labels.length===0){return}this._boundary_depth+=1;try{for(const label of labels){this.action(label)}}finally{this._boundary_depth-=1}};resolved_themes_fn=function(){const themes=[];for(const th of this._themes){const theme_impl=theme_mapping.get(th);if(theme_impl!==void 0){themes.push(theme_impl)}}return themes.reverse()};individual_state_config_fn=function(state){const decl=this._state_declarations.get(state);return{color:decl?.color,textColor:decl?.textColor,borderColor:decl?.borderColor,backgroundColor:decl?.backgroundColor,lineStyle:decl?.lineStyle,corners:decl?.corners,shape:decl?.shape,image:decl?.image,url:decl?.url}};groups_by_depth_fn=function(state){const containing=[...this.groupsOf(state)];if(containing.length<2){return containing}return containing.sort((ga,gb)=>{const da=membership_distance(this._group_registry,state,ga),db=membership_distance(this._group_registry,state,gb);if(da!==db){return db-da}return this._group_order.indexOf(ga)-this._group_order.indexOf(gb)})};compose_state_config_fn=function(state,active){const themes=__privateMethod(this,_Machine_instances,resolved_themes_fn).call(this);let acc={};acc=merge_state_config(acc,base_theme.state);for(const theme of themes){if(theme.state){acc=merge_state_config(acc,theme.state)}}acc=merge_state_config(acc,this._state_style);if(this.state_has_hooks(state)){acc=merge_state_config(acc,base_theme.hooked);for(const theme of themes){if(theme.hooked){acc=merge_state_config(acc,theme.hooked)}}acc=merge_state_config(acc,this._hooked_state_style)}if(this.state_is_terminal(state)){acc=merge_state_config(acc,base_theme.terminal);for(const theme of themes){if(theme.terminal){acc=merge_state_config(acc,theme.terminal)}}acc=merge_state_config(acc,this._terminal_state_style)}if(this.is_start_state(state)){acc=merge_state_config(acc,base_theme.start);for(const theme of themes){if(theme.start){acc=merge_state_config(acc,theme.start)}}acc=merge_state_config(acc,this._start_state_style)}if(this.is_end_state(state)){acc=merge_state_config(acc,base_theme.end);for(const theme of themes){if(theme.end){acc=merge_state_config(acc,theme.end)}}acc=merge_state_config(acc,this._end_state_style)}if(active){acc=merge_state_config(acc,base_theme.active);for(const theme of themes){if(theme.active){acc=merge_state_config(acc,theme.active)}}}for(const group_name of __privateMethod(this,_Machine_instances,groups_by_depth_fn).call(this,state)){const group_cfg=this._group_metadata.get(group_name);if(group_cfg!==void 0){acc=merge_state_config(acc,group_cfg)}}acc=merge_state_config(acc,__privateMethod(this,_Machine_instances,individual_state_config_fn).call(this,state));return acc};let Machine=_Machine;function sm(template_strings,...remainder){return new Machine(make(template_strings.reduce((acc,val,idx)=>`${acc}${remainder[idx-1]}${val}`)))}function is_hook_complex_result(hr){return hr!==null&&typeof hr==="object"&&typeof hr.pass==="boolean"}function _update_hook_fields(hook_args,res){if(res===HOOK_PASSED){return false}if(Object.prototype.hasOwnProperty.call(res,"data")){hook_args.data=res.data;hook_args.next_data=res.next_data;return true}return false}const HOOK_PASSED=Object.freeze({pass:true});const HOOK_REJECTED=Object.freeze({pass:false});function abstract_hook_step(maybe_hook,hook_args){if(maybe_hook===void 0){return HOOK_PASSED}const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${String(result)}`)}function abstract_everything_hook_step(maybe_hook,hook_args){if(maybe_hook===void 0){return HOOK_PASSED}const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${String(result)}`)}const default_viz_colors={graph_bg_color:"#eeeeee",fill_final:"#ddddff",fill_terminal:"#ffdddd",fill_complete:"#ddffdd",legal_1:"#888888",legal_2:"#777777",legal_solo:"#777777",legal_final_1:"#7777aa",legal_final_2:"#666699",legal_final_solo:"#666699",legal_terminal_1:"#aa7777",legal_terminal_2:"#996666",legal_terminal_solo:"#996666",legal_complete_1:"#77aa77",legal_complete_2:"#669966",legal_complete_solo:"#669966",main_1:"#444444",main_2:"#333333",main_solo:"#333333",main_final_1:"#333366",main_final_2:"#222255",main_final_solo:"#222255",main_terminal_1:"#663333",main_terminal_2:"#552222",main_terminal_solo:"#552222",main_complete_1:"#336633",main_complete_2:"#225522",main_complete_solo:"#225522",forced_1:"#cccccc",forced_2:"#bbbbbb",forced_solo:"#bbbbbb",forced_final_1:"#bbbbee",forced_final_2:"#aaaadd",forced_final_solo:"#aaaadd",forced_terminal_1:"#eebbbb",forced_terminal_2:"#ddaaaa",forced_terminal_solo:"#ddaaaa",forced_complete_1:"#bbeebb",forced_complete_2:"#aaddaa",forced_complete_solo:"#aaddaa",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"};let viz_instance=null;async function get_viz(){if(viz_instance===null){const mod=await import("@viz-js/viz");viz_instance=await mod.instance()}return viz_instance}function vc(col){return default_viz_colors[col]??""}function doublequote(txt){return txt.replace(/"/g,String.raw`\"`)}const SAFE_URL_SCHEMES=new Set(["http","https","mailto","ftp","ftps","tel"]);function render_safe_url(raw){if(!raw){return""}const stripped=raw.replace(/[\u{0}-\u{20}]+/gu,"");const scheme_match=/^([a-z][a-z0-9+.-]*):/i.exec(stripped);if(scheme_match){const scheme=scheme_match[1].toLowerCase();if(!SAFE_URL_SCHEMES.has(scheme)){console.warn(`jssm-viz: dropping state url with unsafe scheme "${scheme}:"`);return""}}return raw}function undoublequote(txt){return txt.replace(/\\"/g,'"')}function slug_for(state){return state.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function slug_states(states){const used=new Set;const out=new Map;for(const[i,s]of states.entries()){const base=slug_for(s)||`node-${i+1}`;let candidate=base;let n=2;while(used.has(candidate)){candidate=`${base}-${n}`;n+=1}used.add(candidate);out.set(s,candidate)}return out}function node_of(state,state_index){if(Array.isArray(state_index)){return`n${state_index.indexOf(state)}`}const v=state_index.get(state);if(typeof v==="string"){return`"${v}"`}return`n${v}`}function compose_style_string(style){if(style.corners===void 0&&style.lineStyle===void 0){return""}const corners_map={rounded:"rounded",lined:"diagonals",regular:"regular"};const lines_map={dashed:"dashed",dotted:"dotted",solid:"solid"};const corners=corners_map[style.corners??"regular"];const lines=lines_map[style.lineStyle??"solid"];return`${corners},${lines},filled`}function flow_direction_to_rankdir(flow_direction){switch(flow_direction){case"up":{return"rankdir=BT;"}case"right":{return"rankdir=LR;"}case"down":{return"rankdir=TB;"}case"left":{return"rankdir=RL;"}default:{throw new JssmError(void 0,`unknown flow direction '${flow_direction}'`)}}}function edge_attr_for(key,value){switch(key){case"color":case"graph_default_edge_color":{return`color="${doublequote(value)}"`}case"text-color":{return`fontcolor="${doublequote(value)}"`}case"line-style":{return`style="${doublequote(value)}"`}default:{return void 0}}}function edge_defaults_body(config){if(!config){return""}return config.map(item=>edge_attr_for(item.key,item.value)).filter(a=>a!==void 0).join(" ")}function graph_attr_for(key,value){switch(key){case"color":{return`color="${doublequote(value)}"`}case"text-color":{return`fontcolor="${doublequote(value)}"`}default:{return void 0}}}function graph_bg_color_from_config(config,fallback){if(!config){return fallback}const item=config.find(i=>i.key==="background-color");return item?item.value:fallback}function graph_attrs_body(config){if(!config){return""}return config.map(item=>graph_attr_for(item.key,item.value)).filter(a=>a!==void 0).map(a=>`${a};`).join("\n")}function dot_template(rank_dir,graph_bg_color,nodes,edges,arranges,preamble="",footer="",edge_defaults="",extra_graph_attrs=""){return`digraph G {\n${preamble}\n\n${rank_dir}\nfontname="Open Sans";\nstyle=filled;\nbgcolor="${graph_bg_color}";\n${extra_graph_attrs}\nnode [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="Times New Roman"];\nedge [fontsize=6; fontname="Open Sans"; fontcolor="#0066bb"];\n${edge_defaults?`edge [ ${edge_defaults} ];\n`:""}\n${nodes}\n\n${edges}\n\n${arranges}\n\n${footer}\n}`}function classify_states(u_jssm,l_states){const kinds=new Map;for(const s of l_states){const is_complete=u_jssm.state_is_complete(s);const is_terminal=u_jssm.state_is_terminal(s);if(is_complete&&is_terminal){kinds.set(s,"final")}else if(is_complete){kinds.set(s,"complete")}else if(is_terminal){kinds.set(s,"terminal")}else{kinds.set(s,"base")}}return kinds}function default_fillcolor_for(kind){switch(kind){case"final":{return vc("fill_final")}case"complete":{return vc("fill_complete")}case"terminal":{return vc("fill_terminal")}default:{return""}}}function state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips){const style=u_jssm.style_for(s);const fillcolor=style.backgroundColor||default_fillcolor_for(state_kinds.get(s)??"base");const label=hide_state_labels?"":label_with_chips(doublequote(u_jssm.display_text(s)),chips);const features=[["label",label],["shape",doublequote(style.shape||"")],["color",doublequote(style.borderColor||"")],["style",doublequote(compose_style_string(style))],["fontcolor",doublequote(style.textColor||"")],["image",doublequote(style.image||"")],["URL",doublequote(render_safe_url(style.url||""))],["fillcolor",doublequote(fillcolor)]].filter(r=>r[1]).map(r=>`${r[0]}="${r[1]}"`).join(" ");return`${node_of(s,state_index)} [${features}];`}function states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels=false,chips=new Map){return l_states.map(s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[])).join(" ")}function transition_label(tr){if(!tr){return void 0}const parts=[tr.action||"",tr.probability||""].filter(x=>x!=="");return parts.length>0?parts.join("\n"):void 0}function arrow_for(tr){if(!tr){return""}if(tr.forced_only){return"ediamond"}if(tr.main_path){return"normal;weight=5"}return"empty"}function line_color(kind,lkind,suffix){switch(kind){case"final":{return vc(`${lkind}_final${suffix}`)}case"complete":{return vc(`${lkind}_complete${suffix}`)}case"terminal":{return vc(`${lkind}_terminal${suffix}`)}default:{return vc(`${lkind}${suffix}`)}}}function text_color(kind,suffix){switch(kind){case"final":{return vc(`text_final${suffix}`)}case"complete":{return vc(`text_complete${suffix}`)}case"terminal":{return vc(`text_terminal${suffix}`)}default:{return""}}}function colored_label(tr,which,color){if(!tr){return""}const text=[tr.name,tr.probability,tr.action].filter(Boolean).join("<br/>");if(!text){return""}const body=color?`<<font color="${color}">${text}</font>>`:`"${text}"`;return`${which}=${body};`}function states_to_edges_string(u_jssm,l_states,state_index,state_kinds){const strike=new Set;const kind_of=s=>state_kinds.get(s)??"base";const farrange_members=new Set((u_jssm._farrange_declaration||[]).flat().map(String));const cf=(s,ex)=>farrange_members.has(s)||farrange_members.has(ex)?"constraint=false;":"";const solo_edge=(s,ex,tr)=>{const ex_kind=kind_of(ex);const tailColor=text_color(ex_kind,"_solo");const labelInline=colored_label(tr,"taillabel",tailColor);const label=transition_label(tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const arrowHead=arrow_for(tr);const edgeInline=`${maybeLabel}arrowhead=${arrowHead};color="${line_color(ex_kind,tr.kind,"_solo")}"`;return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`};return l_states.map(s=>u_jssm.list_exits(s).map(ex=>{if(strike.has(`${s}|${ex}`)){return""}const forward=u_jssm.edges_between(s,ex);if(forward.length===0){return""}const reverse=s===ex?[]:u_jssm.edges_between(ex,s);if(forward.length===1&&reverse.length===1){const edge_tr=forward[0];const pair_tr=reverse[0];const s_kind=kind_of(s);const ex_kind=kind_of(ex);const headColor=text_color(s_kind,"_1");const tailColor=text_color(ex_kind,"_2");const labelInline=colored_label(pair_tr,"headlabel",headColor)+colored_label(edge_tr,"taillabel",tailColor);const label=transition_label(edge_tr);const rlabel=transition_label(pair_tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const maybeRLabel=rlabel?`headlabel="${doublequote(rlabel)}";`:"";const arrowHead=arrow_for(edge_tr);const arrowTail=arrow_for(pair_tr);const edgeInline=`${maybeLabel}${maybeRLabel}arrowhead=${arrowHead};arrowtail=${arrowTail};dir=both;color="${line_color(ex_kind,edge_tr.kind,"_1")}:${line_color(s_kind,pair_tr.kind,"_2")}"`;strike.add(`${ex}|${s}`);return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`}return forward.map(tr=>solo_edge(s,ex,tr)).join(" ")}).join(" ")).join(" ")}function arranges_for(u_jssm,state_index){const group=(decls,rank)=>decls?decls.map(d=>`{rank=${rank}; ${d.map(di=>node_of(di,state_index)).join("; ")};};`).join("\n"):"";const order_chain=decls=>decls?decls.map(d=>d.slice(1).map((di,i)=>`${node_of(d[i],state_index)}->${node_of(di,state_index)} [style=invis];`).join(" ")).join("\n"):"";return group(u_jssm._arrange_declaration,"same")+group(u_jssm._arrange_start_declaration,"min")+group(u_jssm._arrange_end_declaration,"max")+group(u_jssm._oarrange_declaration,"same")+order_chain(u_jssm._oarrange_declaration)+group(u_jssm._farrange_declaration,"same")+order_chain(u_jssm._farrange_declaration)}function cluster_id_for(group,index){const body=group.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return body?`cluster_${body}_${index}`:`cluster_g${index}`}function label_with_chips(label,chips){if(chips.length===0){return label}return`${label} ${chips.map(c=>`[${doublequote(c)}]`).join(" ")}`}function group_parent_map(registry,order){const parent=new Map;for(const parent_name of order){const members=registry.get(parent_name)??[];for(const member of members){if(member.kind==="group"&&!parent.has(member.name)){parent.set(member.name,parent_name)}}}return parent}function group_ancestry(group,parents){const chain=new Set;let cursor=group;while(cursor!==void 0&&!chain.has(cursor)){chain.add(cursor);cursor=parents.get(cursor)}return chain}function primary_group_for(u_jssm,state,order){const containing=[...u_jssm.groupsOf(state)];if(containing.length===0){return void 0}return containing.reduce((best,g)=>{const d_best=membership_distance(u_jssm._group_registry,state,best);const d_g=membership_distance(u_jssm._group_registry,state,g);if(d_g!==d_best){return d_g<d_best?g:best}return order.indexOf(g)>order.indexOf(best)?g:best})}function plan_cluster_groups(u_jssm,l_states,order,parents){const placement=new Map;const chips=new Map;for(const s of l_states){const primary=primary_group_for(u_jssm,s,order);if(primary===void 0){continue}placement.set(s,primary);const represented=group_ancestry(primary,parents);const overflow=order.filter(g=>u_jssm.groupsOf(s).has(g)&&!represented.has(g));if(overflow.length>0){chips.set(s,overflow)}}return{placement:placement,chips:chips}}function groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels){const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);const{placement:placement,chips:chips}=plan_cluster_groups(u_jssm,l_states,order,parents);const spread_children_of=new Map;const is_spread_child=new Set;const note_spread_child=(p,member)=>{if(!(member.kind==="group"&&member.mode==="spread"&&parents.get(member.name)===p)){return}const bucket=spread_children_of.get(p)??[];bucket.push(member.name);spread_children_of.set(p,bucket);is_spread_child.add(member.name)};for(const p of order){const p_members=u_jssm._group_registry.get(p)??[];for(const member of p_members){note_spread_child(p,member)}}const children=new Map;for(const g of order){const p=parents.get(g);if(p!==void 0&&!is_spread_child.has(g)){const bucket=children.get(p)??[];bucket.push(g);children.set(p,bucket)}}const members=new Map;for(const s of l_states){const g=placement.get(s);if(g!==void 0){const bucket=members.get(g)??[];bucket.push(s);members.set(g,bucket)}}const node_line=s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[]);const render_cluster=(g,index)=>{const direct_nodes=(members.get(g)??[]).map(node_line).join(" ");const spread_nodes=(spread_children_of.get(g)??[]).flatMap(c=>members.get(c)??[]).map(node_line).join(" ");const inner_nodes=[direct_nodes,spread_nodes].filter(Boolean).join(" ");const sub=(children.get(g)??[]).map(c=>render_cluster(c,order.indexOf(c))).join(" ");const body=[inner_nodes,sub].filter(Boolean).join(" ");if(!body){return""}return`subgraph ${cluster_id_for(g,index)} { label="${doublequote(g)}"; ${body} };`};const roots=order.filter(g=>!parents.has(g)&&!is_spread_child.has(g));const clusters=roots.map(g=>render_cluster(g,order.indexOf(g))).filter(Boolean).join(" ");const ungrouped_nodes=l_states.filter(s=>!placement.has(s)).map(node_line).join(" ");return{clusters:clusters,ungrouped_nodes:ungrouped_nodes}}function chips_for_all_groups(u_jssm,l_states){const order=u_jssm.groups();const chips=new Map;for(const s of l_states){const groups=u_jssm.groupsOf(s);const mine=order.filter(g=>groups.has(g));if(mine.length>0){chips.set(s,mine)}}return chips}function node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode){if(mode==="off"||u_jssm.groups().length===0){return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels)}if(mode==="chips"){const chips=chips_for_all_groups(u_jssm,l_states);return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels,chips)}const{clusters:clusters,ungrouped_nodes:ungrouped_nodes}=groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_labels);return`${clusters}${clusters&&ungrouped_nodes?" ":""}${ungrouped_nodes}`}function chips_for_render_mode(u_jssm,l_states,mode){if(mode==="off"||u_jssm.groups().length===0){return new Map}if(mode==="chips"){return chips_for_all_groups(u_jssm,l_states)}const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);return plan_cluster_groups(u_jssm,l_states,order,parents).chips}function state_svg_label_texts(u_jssm,opts={}){const l_states=u_jssm.states();const mode=opts.render_groups??"cluster";const chips=chips_for_render_mode(u_jssm,l_states,mode);const out=new Map;for(const s of l_states){const dot_label=label_with_chips(doublequote(u_jssm.display_text(s)),chips.get(s)??[]);out.set(s,undoublequote(dot_label))}return out}function machine_to_dot(u_jssm,opts={}){const l_states=u_jssm.states();const state_index=slug_states(l_states);const state_kinds=classify_states(u_jssm,l_states);const hide_labels=opts.hide_state_labels;const mode=opts.render_groups??"cluster";const nodes=node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode);const edges=states_to_edges_string(u_jssm,l_states,state_index,state_kinds);const arranges=arranges_for(u_jssm,state_index);const rank_dir=flow_direction_to_rankdir(u_jssm.flow()||"down");const preamble=u_jssm.dot_preamble()||"";const footer=opts?.footer??"";const transition_config=u_jssm.default_transition_config();const graph_config=u_jssm.default_graph_config();const edge_defaults=edge_defaults_body(transition_config);const extra_graph_attrs=graph_attrs_body(graph_config);const bg_color=graph_bg_color_from_config(graph_config,vc("graph_bg_color"));return dot_template(rank_dir,bg_color,nodes,edges,arranges,preamble,footer,edge_defaults,extra_graph_attrs)}function fsl_to_dot(fsl,opts={}){return machine_to_dot(sm`${fsl}`,opts)}async function dot_to_svg(dot2,options){const viz=await get_viz();return viz.renderString(dot2,{format:"svg",...options})}async function fsl_to_svg_string(fsl,opts={}){return dot_to_svg(fsl_to_dot(fsl,opts),opts)}async function svgTarget(fsl){try{return await fsl_to_svg_string(fsl)}catch(error){throw new RenderError(`SVG render failed: ${error.message}`)}}function dotTarget(fsl){try{return Promise.resolve(fsl_to_dot(fsl))}catch(error){return Promise.reject(new RenderError(`DOT render failed: ${error.message}`))}}const escapeHtml=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");async function htmlTarget(fsl,opts={}){const title=escapeHtml(opts.title??"FSL Machine");let svg;try{svg=await svgTarget(fsl)}catch(error){throw error instanceof RenderError?error:new RenderError(`HTML render failed: ${String(error)}`)}return`<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>${title}</title>\n<style>\nbody { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin: 2rem auto; max-width: 80rem; padding: 0 1rem; color: #222; }\nh1 { font-size: 1.4rem; margin-bottom: 1.5rem; }\n.diagram { display: flex; justify-content: center; }\n.diagram svg { max-width: 100%; height: auto; }\n</style>\n</head>\n<body>\n<h1>${title}</h1>\n<div class="diagram">\n${svg}\n</div>\n</body>\n</html>\n`}const BUNDLED_FONT_BASE64=["AAEAAAASAQAABAAgR0RFRhgSGFIAAANEAAAApkdQT1NEdEx1AAABPAAAAB5HU1VC9vYgIQAAFNQAAAn2T1MvMnMmA9oAAAJYAAAAYFNUQVRe/0M5AAAB","+AAAAF5jbWFwbPZpegAAArgAAACMY3Z0ID0/LMgAAAPsAAAA/GZwZ23iGZ5aAAAezAAAD5RnYXNwABUAIwAAASwAAAAQZ2x5ZhGmxv4AAC5gAACA/Ghl","YWQfoeqVAAABwAAAADZoaGVhDcgGWwAAAZwAAAAkaG10eJDssVgAAA10AAAHYGxvY2HUKbTuAAAJwAAAA7JtYXhwBV8QpQAAAVwAAAAgbmFtZTCeW1EA","AAToAAACOHBvc3T/nwAyAAABfAAAACBwcmVwhf176QAAByAAAAKfAAEAAwAIAAoADQAH//8ADwABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAA","AAEAAAHYAJEAFgBfAAUAAgAQAC8AmgAAAr4PgwADAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAIjf2oAAAJpvuc/TQJnAABAAAA","AAAAAAAAAAAAAAAB2AABAAAAAwDFtwl03l8PPPUACwgAAAAAANnMwvcAAAAA4Xvbqfuc/dMJnAhiAAAABgACAAAAAAAAAAEAAQAIAAMAAAAUAAMAAAAs","AAJ3ZHRoAQEAAHdnaHQBAAABaXRhbAEcAAIAJgAWAAYAAwACAAIBHQAAAAAAAQAAAAMAAQACAQQBkAAAArwAAAABAAAAAgEaAGQAAAAAAAQEkAGQAAUA","AAUzBM0AAACaBTMEzQAAAs0AMgKSAAAAAAAAAAAAAAAAgAAABwAAAAIAAAAAAAAAAEdPT0cBwAAgIKwIjf2oAAAI/gKLAAABnwAAAAAESAW2AAAAIAAE","AAAAAgAAAAMAAAAUAAMAAQAAABQABAB4AAAAGgAQAAMACgB+ATABMQFhAWMBfyAUIBkgHSAiICYgrP//AAAAIACgATEBMgFiAWQgEyAYIBwgIiAmIKz/","///h/8AAS/+///n/v+E34TThMuEu4SvgqAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAwAAAAAAAAAAgAZACIAOwABAEIAWwABAGoAagAB","AHoAegABAIAAiwABAJAAlgABAJgAtgABALgA3AABAN4A3gABAOAA4AABAOIA4gABAOQA5wABAOkA6QABAOsA6wABAO0A7QABAO8A7wABAPIBQAABAVsB","XAABAWABYgABAWMBZwACAWoBawABAW0BegABAXwBfgABAYEBiAABAdcB1wABAAAGFAALBbYAFgW2ABYESAAUAAD/6gAA/+wAAP/q/hb//gW2ABUAAP/r","AAAAqACqAJYAlgCmAIIAggCrAJYAcQCfAI8AqQCmAMgAbQCKAJoAawCOAJsAegCkAI0BOgCEAJoAogCKAO4AhQB4AUgAhQB6AJoAngCqALMAlgBxAIUA","kACZAJ8ApACpALAAmwCmAKwAyABtAHoAggCKAJoAawCCAIoAkgCbAKAApgB6AKMAqwCvAIMAjACYAToAcQCAAIcAjwCbAKUAfQCGAIsAlQCbAKUArgDu","AHgAfgCIAJMBSAB5AIAAhgCLAJQAmgCnBsIDegUKABT/OAKeA6cAAAANAKIAAwABBAkAAACsAOoAAwABBAkAAQASANgAAwABBAkAAgAOAMoAAwABBAkA","AwA2AJQAAwABBAkABAAiAHIAAwABBAkABQAaAFgAAwABBAkABgAgADgAAwABBAkBAAAMACwAAwABBAkBAQAKACIAAwABBAkBBAAOAMoAAwABBAkBGgAM","ABYAAwABBAkBHAAMAAoAAwABBAkBHQAKAAAAUgBvAG0AYQBuAEkAdABhAGwAaQBjAE4AbwByAG0AYQBsAFcAaQBkAHQAaABXAGUAaQBnAGgAdABPAHAA","ZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwADMATwBwAGUAbgAgAFMAYQBuAHMAIABSAGUAZwB1AGwAYQBy","ADMALgAwADAAMwA7AEcATwBPAEcAOwBPAHAAZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATwBwAGUAbgAgAFMAYQBuAHMA","QwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAwACAAVABoAGUAIABPAHAAZQBuACAAUwBhAG4AcwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBz","ACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGcAbwBvAGcAbABlAGYAbwBuAHQAcwAvAG8AcABlAG4AcwBhAG4AcwApQP96","PHlVeVl2OE8fdTj/H3Q4qx9zNs0fcjb/H3E2qx9wN/8fbzX/H24zXh9tM/8fbDSrH2s0/x9qMv8faTBnH2gw/x9nMHIfZjBFH2Ux/x9kMc0fYzFPH2Iv","Xh9hL/8fYC5PH18uqx9eLv8fXS42H1wt/x9bLF4fWiz/H1ksZx9YK14fVyuTH1Yr/x9VKv8fVCleH1Mpqx9SKf8fUSiAH1Ao/x9PKIAfTif/H00m/x9M","Jf8fSyWAH0olQB9JJP8fSCP/H0ciqx9GIv8fRSJeH0Qhkx9DIf8fQh/NH0Ef/x9AH6sfPyD/Hz4gZx89Hv8fPB3/Hzscch86HP8fORxPHzdAwjZeHzQz","Tx8xMCsfKShPHygVGxlcJxstHyYlQB8lDhoZXCQaMR8jGR8fIhn/HyEfZx8gH0AfHxwYFlweGBwfHRf/HxwW/x8bMhkfWxg4FjdbGjIZH1sXOBY3WxUZ","Phb/WhMxElURMRBVElkQWQ0yDFUFMgRVDFkEWQ8EfwTvBAMP/w5VCzIKVQcyBlUBXwBVDlkKWQZZzwbvBgIAWW8AfwCvAO8ABBAAAQkyCFUDMgJVCFkC","WQ8CfwLvAgMQAANAQAUBuAGQsFQrS7gH/1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQAdQkuwkFNYsgMAAB1CWbECAkNRWLEEA45Z","QnMAKwArKytzcwArcwArACsAKysrKytzACsAKysrACsAKysrASsBKwErASsBKwErACsrASsrKwErKwArACsrKwErKwErACsrASsrKwArKysrKysrKysB","KysrKwArKysrKysrKysrKysBKysrKwArKysrKysrKysrASsrKysrKysrACsrKysrKysrKysrKwArKxgAAAAAAAAAACkARwCfAQUBZQHYAewCEwI9Am4C","jQKqArsC1gLrAysDUQONA+AEGQRgBLgE1AU8BZUFwgXyBhAGKgZIBpUHIQdWB6EH3QgOCDMIUwiYCLwIzgjzCR8JNQltCZsJ3QoQCl8KmgrvCwoLNQtf","C7ML3gwBDCQMPwxUDG4MigycDL4NDw1bDZIN3Q4dDlMO1Q8NDzMPag+gD7IQARAyEG0QvhELETwRiRG/EfMSGxJuEpsS2hL9E0UTVhOdE9YT1hP9FD4U","hxT8FTsVVBXGFfQWZRayFuoXARcJF3sXjRfBF+wYIRhrGI0YzBj2GP8ZLRlTGYMZtxoVGnIa9BtAG1IbZBt2G4gbmxunG+Mb7xwBHBMcJRw4HEocXBxu","HIEcxBzWHOgc+h0MHR4dMR1kHdQd5h34HgoeHR4vHmgexx7ZHuse/R8OHyAfNB+3H8Mf1R/nH/kgCyAcIC0gPyBSILUgxyDZIOsg/SEPISEhWCHAIdIh","5CH2IggiGiJrIn0ijyKhIrMixSLRIt0i7yMBIxMjJSM3I0kjWyNtI38jkiOaI/AkAiQUJCYkOCRKJFwkaCTOJOAk8iUEJRYlKCU7JU0lYCVsJX0ljyWi","JdomHyYyJkQmVyZoJnsmjCaXJqImtSbBJs0m3ybxJv0nCCc7J00nXydqJ3YniSebJ6cnsyfdKAIoFCgmKDIoPihQKGIobiixKPkpCykdKS8pQSlUKWcp","wCowKkIqVCpgKmwqfiqPKqEqsyrFKtYq4iruKwArESscKycrOStFK3MrtCvGK9gr6iv8LA4sICw0LEgsWyxuLL8syyzdLO8tAS0SLSUtNy1JLVstbS1/","LZAtti3BLcwt+S4oLjsuYi5+Lqsu1S8ML0UvVi9nL4UvpC/WMAkwKTA5ME4wfTDhMQExIDFTMZMxrjIHMhMyHzJMMpsy6TMxMzkzhTORM50zqTO5M8kz","3DPvM/s0BzQZNCU0UTR3NIk0mzStNMA00jTkNPY1AjUNNR81KzU9NU81dDWFNZc1qzYiNi42OTaQNu43ADcSNyQ3VjeGN5c34zgSOFk4ozjXOOA46Tjy","OPs5BDkNORY5HzkoOTE5cTmYOdM6JDpbOqE6+DsSO3k70DvZO+I76zv0O/08BjwPPBg8ITwqPF88hDy/PRA9Rz2NPec+Aj5rPsE/Dz8XPx8/Jz8vPzc/","Pz9HP08/Vz9fP2g/cT96P4M/jD+VP54/pz+wP7k/2T/iQANADEAqQENATEBVQHNAfgAABM0AwQIUAAACHQCWAzAAhwUrADQEkwB/Bp0AZgXUAG8BwQCH","AlwAUgJcAD4EaABZBJMAZwISAFMCkwBSAhoAlgLvABUEkwBnBJMAuQSTAGUEkwBcBJMALASTAIQEkwB0BJMAXQSTAGcEkwBnAhoAlgIaAEEEkwBnBJMA","cwSTAGcDdAAfBywAdgUPAAAFKwDIBQoAfQXOAMgEcgDIBCEAyAXRAH0F5gDIAjwAyAIm/1wE5gDIBC0AyAcyAMgGBgDIBjkAfQTQAMgGOQB9BPAAyARj","AGkEaAASBdUAuQTFAAAHYwAeBJ8ABgR5AAAElABOAp4ApgLvABUCngAzBJMAUAOB//wCOABSBHIAXgTlAK8D1QByBOUAcgR+AHICsQAeBFgAHwToAK8C","BQCgAgX/kAQ0AK8CBQCvB2gArwToAK8E0AByBOUArwTlAHEDRQCvA9AAZwLaACAE6ACjA/8AAAYzABgEMAAnBAIAAgPAAFADAAA5BGUB7AMAAEMEkwBn","AhQAAAIdAJYEkwC5BJMARASTAHkEkwAfBGUB7AQcAHoEowE2BqgAZALTAEQD9wBPBJMAZwKTAFIGqABkBAD/+gNtAHUEkwBnAsgAMgLIACUCOABSBPIA","rwU9AHoCGgCWAcYAHALIAEwC/QBDA/cATQXsAEIGJQAsBjoAIQN0ADUFDwAABQ8AAAUPAAAFDwAABQ8AAAUPAAAG8v/+BQoAfQRyAMgEcgDIBHIAyARy","AMgCPP/0AjwAtAI8/84CPAAGBc4AOgYGAMgGOQB9BjkAfQY5AH0GOQB9BjkAfQSTAIUGOQB9BdUAuQXVALkF1QC5BdUAuQR5AAAE0ADIBPsArwRyAF4E","cgBeBHIAXgRyAF4EcgBeBHIAXgbmAF4D1QByBH4AcgR+AHIEfgByBH4AcgIF//gCBQCPAgX/tQIF/+cEzABxBOgArwTQAHIE0AByBNAAcgTQAHIE0ABy","BJMAZwTQAHIE6ACjBOgAowToAKME6ACjBAIAAgTlAK8EAgACBQ8AAARyAF4FDwAABHIAXgUPAAAEcgBeBQoAfQPVAHIFCgB9A9UAcgUKAH0D1QByBQoA","fQPVAHIFzgDIBOUAcgXOADoE6AByBHIAyAR+AHIEcgDIBH4AcgRyAMgEfgByBHIAyAR+AHIEcgDIBH4AcgXRAH0EWAAfBdEAfQRYAB8F0QB9BFgAHwXR","AH0EWAAfBeYAyATo/7cF5gAABOgAFAI8/60CBf+JAjz/8wIF/9YCPP/nAgX/0wI8AFgCBQAxAjwAvQRiAMgECgCgAib/XAIF/5AE5gDIBDQArwQ0AK8E","LQCnAgUAjwQtAMgCBQCDBC0AyAIFAK8ELQDIAhcArwQtABoCBf/yBgYAyAToAK8GBgDIBOgArwYGAMgE6ACvBWkAAgYGAMgE6ACvBjkAfQTQAHIGOQB9","BNAAcgY5AH0E0AByB2YAfQeWAHAE8ADIA0UArwTwAMgDRQB9BPAAyANFAJUEYwBpA9AAZwRjAGkD0ABnBGMAaQPQAGcEYwBpA9AAZwRoABIC2gAgBGgA","EgLaACAEaAASAtoAIAXVALkE6ACjBdUAuQToAKMF1QC5BOgAowXVALkE6ACjBdUAuQToAKMF1QC5BOgAowdjAB4GMwAYBHkAAAQCAAIEeQAABJQATgPA","AFAElABOA8AAUASUAE4DwABQApUArwRjAGkD0ABnA0UAUgNFAFIC+wBSAxIAUgFsAFICYgBSAe8AUgOKAFIDdgBSBAAAUggAAFIBWwAbAVsAGgLKABsC","ygAaAwIAqwY5AJYBBv6EAzAAcgSTADQEAAGJBAABgQLIABUCyAA+AsgAOgLIADQEaAASAtoAIALIACkCyAApAsgAIwW8AMcGBgDIBakAugViAB4EtgAe","BLYAHgdmAB4HZgAeBC0AyAYGAMgFDwAABHIAyAI8AFgF1QC5AqoAVwNHADgCqgBMAqoAVwKqAAkCqgA6Aqr/3AKqACkCqgAmAqoAVwKqAFcCqgBXBM8A","VwNHADgCBQCvAgX/kATlAHICBQBBBOgArwRyAF4EfgByAgUAMQToAKME5QByBOUAcgTlAHIE5QByAzAAcgK7AHIBUQByBNEAcgMwAHIDLgByAnoAQwHb","ABUCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjBKoAcwN2ADMEagBPBIgAVwSaADAEiAB+BJAAcwQSABEEtAB6BJAAZgLIACkC","yABMAsgAMgLIACUCyAAVAsgAPgLIACkCyAA6AsgANALIACMErABwAyQAKgRQAFUEQwA7BIsALgR7AHkEmQB2BDgAIQSTAGcEmQBiBJMAZwRcAEgEXACX","BFwAXwRcAEsEXAAHBFwAYARcAFQEXABCBFwATARcAEYCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjAcsAUAHLAFABywA9AcsA","PQKtAEgCrQBIAq0ASAKtAEgEAAF0AgUAMwABAAAACgFKAlYABURGTFQBFGN5cmwBFGdyZWsBFGhlYnIBFGxhdG4AIAD4AAVDQVQgAMpNQUggAKBNT0wg","AHZOQVYgAExST00gACIAAP//ABIAAAABAAIAAwAEAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAgACgALAAwADQAOAA8A","EAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAcACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAYACgALAAwADQAOAA8AEAAR","ABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAUACgALAAwADQAOAA8AEAARABIAEwAUABUABAAAAAD//wARAAAAAQACAAMABAAKAAsADAANAA4ADwAQABEA","EgATABQAFQAWYWFsdAEEZG5vbQD+ZnJhYwD0bGlnYQDubG51bQDobG9jbADibG9jbADcbG9jbADWbG9jbADQbG9jbADKbnVtcgDEb251bQC+b3JkbgC4","cG51bQCyc2FsdACqc3MwMQCqc3MwMgCkc3MwMwCec3VicwCYc3VwcwCSdG51bQCMemVybwCGAAAAAQAZAAAAAQAWAAAAAQAKAAAAAQAJAAAAAQAbAAAA","AQAaAAAAAgAaABsAAAABABUAAAABABIAAAABABcAAAABAAsAAAABAAQAAAABAAIAAAABAAMAAAABAAUAAAABAAYAAAABABQAAAABABgAAAADAA0ADgAP","AAAAAQAMAAAAAgAAAAEAHAauBIwEWgQ4BDgEFgPUA7QDlAMqAtwCxAK2AqICxAJaAkwCTAIOAewB1AGOAUgBAgC+AKoAhAA6AAEAAAABAAgAAgAiAA4B","bgFvAXABcQFyAXMBdAF1AXYBdwF5AXoBewF4AAEADgAqACsAjACNAI4AjwDoAOoA7ADuAPAA8QDzAWwAAQAAAAEACAACABAABQGFAYYBhwGIAX4AAQAF","AEgA3QDfAOEA4wABAAAAAQAIAAEABgGoAAEAAQARAAQAAAABAAgAAQA2AAEACAAFACYAHgAYABIADAFlAAIATQFkAAIASgFjAAIARwFnAAMARwBNAWYA","AwBHAEoAAQABAEcAAQAAAAEACAACAC4AFAG6AbsBvAG9Ab4BvwHAAcEBwgHDAa8BsAGxAbIBswG0AbUBtgG3AbgAAgACABEAGgAAAZsBpAAKAAEAAAAB","AAgAAgAuABQAEQASABMAFAAVABYAFwAYABkAGgG6AbsBvAG9Ab4BvwHAAcEBwgHDAAIAAgGbAaQAAAGvAbgACgABAAAAAQAIAAIALgAUAZsBnAGdAZ4B","nwGgAaEBogGjAaQBrwGwAbEBsgGzAbQBtQG2AbcBuAACAAIAEQAaAAABugHDAAoAAQAAAAEACAABAAb/7AACAAEBrwG4AAAAAQAAAAEACAACAA4ABABq","AHoAagB6AAEABAAiADAAQgBQAAYAAAACACQACgADAAEAugABABIAAAABAAAAEwABAAIAMABQAAMAAQCgAAEAEgAAAAEAAAATAAEAAgAiAEIAAQAAAAEA","CAABAD7/7AAGAAAAAgAmAAoAAwABABIAAQAuAAAAAQAAABEAAgABAZEBmgAAAAMAAQAcAAEAEgAAAAEAAAAQAAIAAQGlAa4AAAABAAEBUgABAAAAAQAI","AAEABgFCAAEAAQAQAAEAAAABAAgAAQAUAYAAAQAAAAEACAABAAYBlAACAAEAEQAaAAAAAQAAAAEACAACACQADwHOAdAB0gFdAHkAcgBzAVcBWAFeAVkB","WgFfAdMBUwABAA8ACQAKAAwAEQASABMAFAAVABYAFwAYABkAGgAeAE8AAQAAAAEACAACADIAFgHPAdEB1AHEAcUBxgHHAcgByQHKAcsBzAHNAdUBiQGK","AYsBjAGNAY4BjwGQAAEAFgAJAAoADAARABIAEwAUABUAFgAXABgAGQAaAB4ASQBMAE0ATgBPAFEAVABVAAQAAAABAAgAAQASAAEACAABAAQA/gACAHcA","AQABAC0ABAAAAAEACAABABIAAQAIAAEABAD/AAIAdwABAAEATQAGAAAAAQAIAAEACgACACYAEgABAAIALQBNAAEABAAAAAIAdwABAE0AAQAAAAcAAQAE","AAAAAgB3AAEALQABAAAACAABAAAAAQAIAAIADgAEAWgBfwFpAYAAAQAEAPoA+wEEAQUAAQAAAAEACAACAA4ABAE/AUABIQEiAAEABAEdAR4BWwFcAAEA","AAABAAgAAgAWAAgBagGBAWsBggFsAYMBbQGEAAEACADEAMUA2ADZAO4A7wExATIAAwAAAAEACAABAGYAMAIUAg4CCAH4AeoB3AHOAcABsgGkAZYBiAF6","AXQBbgFoAWIBWgFUAU4BSAFCATwBNgEwASoBJAEeARgBEgEMAQYBAAD6APQA7gDoAOIA3ADWANAAygDEAL4AuACyAKwApgACAAoACQAKAAAADAAMAAIA","EQAaAAMAHgAeAA0ATwBPAA4A7gDvAA8BCQEJABEBmwGkABIBrwG4ABwBugHDACYAAgGkAbgAAgGjAbcAAgGiAbYAAgGhAbUAAgGgAbQAAgGfAbMAAgGe","AbIAAgGdAbEAAgGcAbAAAgGbAa8AAgGkAcMAAgGjAcIAAgGiAcEAAgGhAcAAAgGgAb8AAgGfAb4AAgGeAb0AAgGdAbwAAgGcAbsAAgGbAboAAgAaAbgA","AgAZAbcAAgAYAbYAAgAXAbUAAgAWAbQAAgAVAbMAAgAUAbIAAgATAbEAAgASAbAAAgARAa8AAwFgAWEBYgACAYMB1wACAWwBdwACAVMBjQACAdMB1QAG","AV8BmgGkAa4BwwHNAAYBWgGZAaMBrQHCAcwABgFZAZgBogGsAcEBywAGAV4BlwGhAasBwAHKAAYBWAGWAaABqgG/AckABgFXAZUBnwGpAb4ByAAGAHMB","lAGeAagBvQHHAAYAcgGTAZ0BpwG8AcYABgB5AZIBnAGmAbsBxQAHAV0BkQGbAaUBuQG6AcQAAgHSAdQAAgHQAdEAAgHOAc8AAQAAAAEACAACAHYAOAFS","AGoBbgFvAHoAagGFAYkBfAF9AYoBiwGMAHoBjgGPAZABcAFxAXIBcwFqAYEBawGCAYYBhwGIAX4BdAF1AXYBeQF6AXsBaAF/AWkBgAE/AUABbQGEASEB","IgF4AZEBkgGTAZQBlQGWAZcBmAGZAZoAAQA4ABAAIgAqACsAMABCAEgASQBKAEsATABNAE4AUABRAFQAVQCMAI0AjgCPAMQAxQDYANkA3QDfAOEA4wDo","AOoA7ADwAPEA8wD6APsBBAEFAR0BHgExATIBWwFcAWwBpQGmAacBqAGpAaoBqwGsAa0BrgAAQEqZmJeWh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25t","bGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNRUE9OTUxLSklIR0YoHxAKCSwBsQsKQyNDZQotLACxCgtDI0MLLSwBsAZDsAdDZQotLLBPKyCwQFFYIUtS","WEVEGyEhWRsjIbBAsAQlRbAEJUVhZIpjUlhFRBshIVlZLSwAsAdDsAZDCy0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBsh","IVktLEtUWDgbISFZLSywAkNUWLBGKxshISEhWS0ssAJDVFiwRysbISEhWS0ssAJDVFiwSCsbISEhIVktLLACQ1RYsEkrGyEhIVktLCMgsABQiopksQAD","JVRYsEAbsQEDJVRYsAVDi1mwTytZI7BiKyMhI1hlWS0ssQgADCFUYEMtLLEMAAwhVGBDLSwBIEewAkMguBAAYrgQAGNXI7gBAGK4EABjV1pYsCBgZllI","LSyxAAIlsAIlsAIlU7gANSN4sAIlsAIlYLAgYyAgsAYlI2JQWIohsAFgIxsgILAGJSNiUlgjIbABYRuKISMhIFlZuP/BHGCwIGMjIS0ssQIAQrEjAYhR","sUABiFNaWLgQALAgiFRYsgIBAkNgQlmxJAGIUVi4IACwQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuEAAsICIVFiyAgQCQ2BC","WbhAALCAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZ","sSgBiFFYuUAACABjuBAAiFRYuQACAQCwAkNgQllZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAI","uAGAsQlAG7gBALACQ1JYsgVACLoBgAAJAUAbuAGAsAJDUliyBUAIuAIAsQlAG7IFQAi6AQAACQEAWVlZuEAAsICIVblAAAIAY7gEAIhVWlizDAANARuz","DAANAVlZWUJCQkJCLSxFsQJOKyOwTysgsEBRWCFLUViwAiVFsQFOK2BZGyNLUViwAyVFIGSKY7BAU1ixAk4rYBshWRshWVlELSwgsABQIFgjZRsjWbEU","FIpwRbEQEENLikNRWliwQBuwTytZI7FhBiZgK4pYsAVDi1kjWGVZIxA6LSywAyVJYyNGYLBPKyOwBCWwBCVJsAMlY1YgYLBiYCuwAyUgEEaKRmCwIGNh","Oi0ssAAWsQIDJbEBBCUBPgA+sQECBgywCiNlQrALI0KxAgMlsQEEJQE/AD+xAQIGDLAGI2VCsAcjQrABFrEAAkNUWEUjRSAYaYpjI2IgILBAUFhnG2ZZ","YbAgY7BAI2GwBCNCG7EEAEIhIVkYAS0sIEWxAE4rRC0sS1GxQE8rUFtYIEWxAU4rIIqKRCCxQAQmYWNhsQFOK0QhGyMhikWxAU4rIIojRERZLSxLUbFA","TytQW1hFIIqwQGFjYBsjIUVZsQFOK0QtLCNFIIpFI2EgZLBAUbAEJSCwAFMjsEBRWlqxQE8rVFpYigxkI2QjU1ixQECKYSBjYRsgY1kbilljsQJOK2BE","LSwBLSwALSwFsQsKQyNDZQotLLEKC0MjQwsCLSywAiVjZrACJbggAGJgI2ItLLACJWOwIGBmsAIluCAAYmAjYi0ssAIlY2ewAiW4IABiYCNiLSywAiVj","ZrAgYLACJbggAGJgI2ItLCNKsQJOKy0sI0qxAU4rLSwjikojRWSwAiVksAIlYWSwA0NSWCEgZFmxAk4rI7AAUFhlWS0sI4pKI0VksAIlZLACJWFksAND","UlghIGRZsQFOKyOwAFBYZVktLCCwAyVKsQJOK4oQOy0sILADJUqxAU4rihA7LSywAyWwAyWKsGcrihA7LSywAyWwAyWKsGgrihA7LSywAyVGsAMlRmCw","BCUusAQlsAQlsAQmILAAUFghsGobsGxZK7ADJUawAyVGYGGwgGIgiiAQIzojIBAjOi0ssAMlR7ADJUdgsAUlR7CAY2GwAiWwBiVJYyOwBSVKsIBjIFhi","GyFZsAQmRmCKRopGYLAgY2EtLLAEJrAEJbAEJbAEJrBuKyCKIBAjOiMgECM6LSwjILABVFghsAIlsQJOK7CAUCBgWSBgYCCwAVFYISEbILAFUVghIGZh","sEAjYbEAAyVQsAMlsAMlUFpYILADJWGKU1ghsABZGyFZG7AHVFggZmFlIyEbISGwAFlZWbECTistLLACJbAEJUqwAFNYsAAbioojirABWbAEJUYgZmEg","sAUmsAYmSbAFJrAFJrBwKyNhZbAgYCBmYbAgYWUtLLACJUYgiiCwAFBYIbECTisbRSMhWWFlsAIlEDstLLAEJiC4AgBiILgCAGOKI2EgsF1gK7AFJRGK","EoogOYpYuQBdEACwBCZjVmArIyEgECBGILECTisjYRsjISCKIBBJsQJOK1k7LSy5AF0QALAJJWNWYCuwBSWwBSWwBSawbSuxXQclYCuwBSWwBSWwBSWw","BSWwbyu5AF0QALAIJmNWYCsgsABSWLBQK7AFJbAFJbAHJbAHJbAFJbBxK7ACFziwAFKwAiWwAVJaWLAEJbAGJUmwAyWwBSVJYCCwQFJYIRuwAFJYILAC","VFiwBCWwBCWwByWwByVJsAIXOBuwBCWwBCWwBCWwBiVJsAIXOFlZWVlZISEhISEtLLkAXRAAsAslY1ZgK7AHJbAHJbAGJbAGJbAMJbAMJbAJJbAIJbBu","K7AEFziwByWwByWwByawbSuwBCWwBCWwBCawbSuwUCuwBiWwBiWwAyWwcSuwBSWwBSWwAyWwAhc4ILAGJbAGJbAFJbBxK2CwBiWwBiWwBCVlsAIXOLAC","JbACJWAgsEBTWCGwQGEjsEBhIxu4/8BQWLBAYCOwQGAjWVmwCCWwCCWwBCawAhc4sAUlsAUlirACFzggsABSWLAGJbAIJUmwAyWwBSVJYCCwQFJYIRuw","AFJYsAYlsAYlsAYlsAYlsAslsAslSbAEFziwBiWwBiWwBiWwBiWwCiWwCiWwByWwcSuwBBc4sAQlsAQlsAUlsAclsAUlsHErsAIXOBuwBCWwBCW4/8Cw","Ahc4WVlZISEhISEhISEtLLAEJbADJYewAyWwAyWKILAAUFghsGUbsGhZK2SwBCWwBCUGsAQlsAQlSSAgY7ADJSBjUbEAAyVUW1ghISMhBxsgY7ACJSBj","YSCwUyuKY7AFJbAFJYewBCWwBCZKsABQWGVZsAQmIAFGIwBGsAUmIAFGIwBGsAAWALAAI0gBsAAjSAAgsAEjSLACI0gBILABI0iwAiNII7ICAAEIIziy","AgABCSM4sQIBB7ABFlktLCMQDQyKYyOKY2BkuUAABABjUFiwADgbPFktLLAGJbAJJbAJJbAHJrB2KyOwAFRYBRsEWbAEJbAGJrB3K7AFJbAFJrAFJbAF","JrB2K7AAVFgFGwRZsHcrLSywByWwCiWwCiWwCCawdiuKsABUWAUbBFmwBSWwByawdyuwBiWwBiawBiWwBiawdisIsHcrLSywByWwCiWwCiWwCCawdiuK","igiwBCWwBiawdyuwBSWwBSawBSWwBSawdiuwAFRYBRsEWbB3Ky0ssAglsAslsAslsAkmsHYrsAQmsAQmCLAFJbAHJrB3K7AGJbAGJrAGJbAGJrB2Kwiw","dystLAOwAyWwAyVKsAQlsAMlSgKwBSWwBSZKsAUmsAUmSrAEJmOKimNhLSyxXQ4lYCuwDCYRsAUmErAKJTmwByU5sAolsAolsAklsHwrsABQsAslsAgl","sAolsHwrsABQVFiwByWwCyWHsAQlsAQlC7AKJRCwCSXBsAIlsAIlC7AHJRCwBiXBG7AHJbALJbALJbj//7B2K7AEJbAEJQuwByWwCiWwdyuwCiWwCCWw","CCW4//+wdiuwAiWwAiULsAolsAclsHcrWbAKJUawCiVGYLAIJUawCCVGYLAGJbAGJQuwDCWwDCWwDCYgsABQWCGwahuwbFkrsAQlsAQlC7AJJbAJJbAJ","JiCwAFBYIbBqG7BsWSsjsAolRrAKJUZgYbAgYyOwCCVGsAglRmBhsCBjsQEMJVRYBBsFWbAKJiAQsAMlOrAGJrAGJguwByYgEIo6sQEHJlRYBBsFWbAF","JiAQsAIlOoqKCyMgECM6LSwjsAFUWLkAAEAAG7hAALAAWYqwAVRYuQAAQAAbuEAAsABZsH0rLSyKiggNirABVFi5AABAABu4QACwAFmwfSstLAiwAVRY","uQAAQAAbuEAAsABZDbB9Ky0ssAQmsAQmCA2wBCawBCYIDbB9Ky0sIAFGIwBGsApDsAtDimMjYmEtLLAJK7AGJS6wBSV9xbAGJbAFJbAEJSCwAFBYIbBq","G7BsWSuwBSWwBCWwAyUgsABQWCGwahuwbFkrGLAIJbAHJbAGJbAKJbBvK7AGJbAFJbAEJiCwAFBYIbBmG7BoWSuwBSWwBCWwBCYgsABQWCGwZhuwaFkr","VFh9sAQlELADJcWwAiUQsAElxbAFJiGwBSYhG7AGJrAEJbADJbAIJrBvK1mxAAJDVFh9sAIlsIIrsAUlsIIrICBpYbAEQwEjYbBgYCBpYbAgYSCwCCaw","CCaKsAIXOIqKYSBpYWGwAhc4GyEhISFZGC0sS1KxAQJDU1pYIxAgATwAPBshIVktLCOwAiWwAiVTWCCwBCVYPBs5WbABYLj/6RxZISEhLSywAiVHsAIl","R1SKICAQEbABYIogErABYbCFKy0ssAQlR7ACJUdUIyASsAFhIyCwBiYgIBARsAFgsAYmsIUrioqwhSstLLACQ1RYDAKKS1OwBCZLUVpYCjgbCiEhWRsh","ISEhWS0ssJgrWAwCiktTsAQmS1FaWAo4GwohIVkbISEhIVktLCCwAkNUsAEjuABoI3ghsQACQ7gAXiN5IbACQyOwICBcWCEhIbAAuABNHFmKiiCKIIoj","uBAAY1ZYuBAAY1ZYISEhsAG4ADAcWRshWbCAYiBcWCEhIbAAuAAdHFkjsIBiIFxYISEhsAC4AAwcWYqwAWG4/6scIyEtLCCwAkNUsAEjuACBI3ghsQAC","Q7gAdyN5IbEAAkOKsCAgXFghISG4AGccWYqKIIogiiO4EABjVli4EABjVliwBCawAVuwBCawBCawBCYbISEhIbgAOLAAIxxZGyFZsAQmI7CAYiBcWIpc","ilojISMhuAAeHFmKsIBiIFxYISEjIbgADhxZsAQmsAFhuP+THCMhLQACAJb/5AGEBbYAAwAPABZACgEBBwcNC3ICAnIAKysyETN8LzAxQSMDMwM0NjMy","FhUUBiMiJgFFbS7J3UQzMkVFMjNEAZYEIPqyRjs7RkU/PwAAAgCHA6YCqQW2AAMABwAQtgUBgAQDAnIAKzIazTIwMUEDIwMhAyMDATsmaSUCIiVpJQW2","/fACEP3wAhAAAgA0AAAE9gW2ABsAHwA5QBsBHBwOAB8fGRUVEhIPBAgICwsODgoXEwIGCggAPzM/MxI5LzMRMxEzzjIRMxEzMhEzETMRMzAxQQMhFSED","IxMhAyMTITUhEyE1IRMzAyETMwMhFQEhEyED1EEBG/7MVYdV/s9ShU/++gEfQ/7qAS1TiVMBM1OEUwEJ/OQBMUL+zwOD/qx//lABsP5QAbB/AVR9Abb+","SgG2/kp9/qwBVAADAH//iQQXBhIAJAAsADUAKEAUGy4uKCwJHC0NBgEUEhElCAgjAAEAL80zMxEzL80zEhc5MxEzMDFFNSYmJzUWFhcRLgI1NDY2NzUz","FRYWFwcmJicRHgIVFAYHFRE2NjU0JiYnJxEOAhUUFhYCBnPRQkXYaYStVmGwdnprsEs0RJ5QhrVc1sF7eS9qW3pLZjMtZXfSAiQdoiAwAgG4JV+KYmaR","UgatqwMpIIsbJgf+SydYgmeSsxPaAW4MX044SDUY0AGHBS5KMztPNwAFAGb/7AY3BcsACwAXABsAJwAzACJAESgcLiINchoMEgYAGxsMAAVyACsyMi8Q","zDI/KzLMMjAxQTIWFRQGIyImNTQ2FyIGFRQWMzI2NTQmJQEjARMyFhUUBiMiJjU0NhciBhUUFjMyNjU0JgGPlpuWm5CZkpdRTExRVFJRA0n81ZIDK2uV","nJabkZiRmFFMTFFUUlEFy+/a2vPz2trvd6mpqaysqaiqYvpKBbb9y+/a2fPz2drveKipqaupq6ipAAADAG//7AXJBc0AJQAwADwAK0AZBx43AwASMA8I","JgULCwAtFgtyEApyMQADcgArMisrMhE5Lxc5Ehc5MDFBMhYWFRQGBwE2NjczBgYHASMnDgIjIiYmNTQ2NjcuAjU0NjYTDgIVFBYzMjY3ASIGFRQWFzY2","NTQmAm9snVWpggGWN0YYqCBlTAEl4bVAk7NzjM5xTpBkL1Q0W6cZTm87noSIv0P+oFtxUkx9cWkFzUuMY4K0Sv52QKljhN5U/uGxO1kxXLKBaph2ODRr","e0pkjkz89S1Ybk51jVpABCtfVUyATkWBV09iAAEAhwOmATsFtgADAAqzAQMCcgArzTAxQQMjAwE7JmklBbb98AIQAAABAFL+vAIeBbYAEAAKsw0EAnIA","Ky8wMVM0EhI3MwYCFRQSEhcjJgICUkGGZp+RkkGBX51mhkECMakBQAEier7+MPWg/sn+4IB4ARsBPAABAD7+vAIKBbYAEQAKsw0CcgUALyswMUEUAgIH","IzYSEjU0AgInMxYSEgIKQYVnnWCBQUKBYZ9nhUECM6f+w/7kd38BIgE3oKMBPAEkf3v+3/7BAAABAFkChgQKBhQADgAbQBAFCQcECgsDDQECDAsGCIAA","AC8azTIXOTAxQQMlFwUTBwMDJxMlNwUDAosmAYsa/ob0orWmqPL+iBwBhScGFP5zc68n/rtZAWT+nFkBRSevcwGNAAEAZwDmBCgEwAALAA60CgkJBQYA","LzMzETMwMUEhFSERIxEhNSERMwKMAZz+ZIn+ZAGciQMWiP5YAaiIAaoAAQBT/vgBegDuAAoADLMFgAEAAC8yGs0wMWUXDgIHIz4CNwFtDRI3QSF8FSgh","Cu4XSaanSVCxrUgAAAEAUgHcAkICcAADAAixAQAALzIwMVM1IRVSAfAB3JSUAAABAJb/5AGEAOkACwAKswMJC3IAKzIwMXc0NjMyFhUUBiMiJpZEMTNG","RjMxRGhGOztGRT8/AAABABUAAALZBbYAAwALtAMCcgEIAD8rMDFBASMBAtn94KQCIQW2+koFtgACAGf/7AQrBc0AEAAgABC3HQ0FchUFDXIAKzIrMjAx","QRQCBgYjIiYCNTQSNjMyFhIFFBIWMzI2EjU0AiYjIgYCBCs2dLiBo9VpX9SupdZo/OM+i3Fxiz8+inNzij0C3bL+6MJlsgFR7uoBUbWz/q/szP7wh4YB","EM3JAQ+Jif7xAAEAuQAAAs8FtgANABVACgsKCgYMBHIADHIAKysyMi8zMDFhIxE0NjY3BgYHBycBMwLPogEDAx82KKdXAYyKBAw7VUclIC0hhnEBMQAB","AGUAAAQjBcsAHQAXQAsKEgVyGwIcHAEMcgArMhEzMysyMDFhITUBPgI1NCYjIgYHJz4CMzIWFhUUBgYHARUhBCP8QgGHbZVOk3hpolVZOomdWYfEa1ym","b/7CAuuLAY1urKdkfINIQnAxTCxernh0x8Nt/sMHAAABAFz/7AQaBcsALgAfQA8FBBwcGxsMJCwFchMMDXIAKzIrMhE5LzMSOTkwMUEUBgYHFRYWFRQG","BiMiJic1FhYzMjY1NCYmIyM1MzI2NjU0JiMiBgYHJzY2MzIWA+1MiFyur3f1v3TFWlvWZMiyY7mCkpN3pleUf06AcDhUUOaS4OAEYWKQWxIIFrSSf8Rv","JSucLTOfil91N45Gf1dveSA4JXI+WswAAgAsAAAEbAW+AAoAFgAfQA8GFgkJBQEBAhIHBHICDHIAKysyETkvMzMRMzMwMUEjESMRITUBMxEzIRE0PgI3","IwYGBwEEbNui/T0CuK3b/oMCBAMBCBMxGf49AVP+rQFTjAPf/CsB3jdZTUYiKFkj/YEAAQCE/+wEHQW2ACEAI0ARGhkZFhYfAAAIHhsEcg8IDXIAKzIr","MhE5LzMzETMRMzAxQTIWFhUUBgYjIiYnNRYWMzI2NjU0JiMiBgcnEyEVIQM2NgIzldx5gvSqcsRDSdBib6dds8E+lDBUOALX/bclJngDfmXAiZbZdSgo","niw0R5Fukp8UDDcCrpj+RwgRAAIAdP/sBDAFywAiADEAH0APEhEpKRYWBiMeDXINBgVyACsyKzISOS8zETMzMDFTND4DMzIWFxUmJiMiBgIHMz4CMzIW","FhUUBgYjIi4CATI2NTQmIyIGBhUUHgJ0JViY458taCIlXzC61V4HCx9giVuAv2lwz49rtIVKAeyIpJKTZJRSJ1B6AnGE/NmkXQkKjw0Mov7rrTJRMGjG","jZfcd1Ki8f6nrrCQqFN+QUKIdEYAAQBdAAAELAW2AAYAE0AJBQICAwRyAAxyACsrMhEzMDFhASE1IRUBASICWPzjA8/9rAUemID6ygADAGf/7AQpBcsA","HwAuADwAGkAOKxgINgQAIxANci8ABXIAKzIrMhEXOTAxQTIWFhUUBgYHHgIVFAYGIyImJjU0NjY3LgI1NDY2AxQWMzI2NTQmJicnDgIBIgYVFBYWFz4C","NTQmAkh/xG9Ngk9el1h31pCb2XFWjlRJeUdxxcKeoJimTIxfJFyBRAE8dpZJfk5MdkSVBctQm3FZhWMnK2ySZHuzYF2ve2WVbCUoZolbb5tR+6dwkZF2","SW9YJA0mXXYDg3FqTGlLICBNakpqcAAAAgBn/+sEJQXLACIAMQAfQA8REikpFhYGIx4Fcg0GDXIAKzIrMhE5LzMRMzMwMUEUDgMjIiYnNRYWMzI2Ejcj","DgIjIiYmNTQ2NjMyHgIBIgYVFBYzMjY2NTQuAgQlJVmY5Z8rbiMlZDC71l4GDB5hilx/vWlz0I1stIVJ/hKFpY6UZpVRJ1B6A0eF/NqkXQsKkA0PoQEV","rTBRMWjGjJfdeFKj8AFYrq+RqFJ+QkKIc0cAAAIAlv/kAYQEYgALABcAELcVDwdyAwkLcgArMisyMDF3NDYzMhYVFAYjIiYRNDYzMhYVFAYjIiaWRDEz","RkYzMUREMTNGRjMxRGhGOztGRT8/A7xIOztIRD4+AAIAQf74AYAEYgAKABYAErcUDgdyAQWACgAvGs05KzIwMWUXDgIHIz4CNwM0NjMyFhUUBiMiJgFc","DhI4QSB+FSgjChlEMTVERDUxRO4XSKenSU+xrkgC8Ug7O0hEPj4AAAEAZwDzBCkE2AAGABK3AgUBAwQDBgAALzLOMhc5MDFlATUBFQEBBCn8PgPC/PID","DvMBql8B3JT+j/6zAAIAcwHBBB0D4QADAAcADLMBAAQFAC8zzjIwMVM1IRUBNSEVcwOq/FYDqgNah4f+Z4eHAAABAGcA8wQpBNgABgAStwUBBAMCAwAG","AC8zzjIXOTAxUwEBNQEVAWcDD/zxA8L8PgGGAUsBc5T+JF/+VgACAB//5AM8BcsAHwArABdACx8fIyMpC3IMEwNyACsyKzIRMy8wMUE1NDY2Nz4CNTQm","IyIGByc2NjMyFhUUBgYHDgIVFQM0NjMyFhUUBiMiJgEgHktDTlsohnpjmkc6UsB2wdQ8bktCRhqxQjQxRUUxNEIBljRQc2Q4QVtcQWhvMiOGKza/p12D","bT04VVk+If7SRjs7RkU/PwAAAgB2/0cGtwW0AEEATwApQBNJTEwWEyU+A3IJRUUdBQUMgC41AC8zGswyLzMyETMrMswyMhEzMDFBFA4CIyImJyMGBiMi","JjU0NjYzMhYXAwYGFRQWMzI2NjU0AiQjIgQGAhUUEgQzMjY3FQYGIyIkAjU0EjYkMzIEEgEUFjMyNjcTJiYjIgYGBrcrWINZXW4LCSaTa5ypa8OFWagy","FAECTTdDWzCa/vGwr/7xu2CRARnKeuJZWNqD8f6qtnfhAUHJ1wFLvfvual50bQgMHVMtZ386AtpftZFWbEpPZ8+shs93HhL+bSUnC2xLabFsvwEOjm7J","/uynzP7ilTYigiUvtQFU7sEBRO6Dsf65/pqFfK6PAQUJDWKcAAIAAAAABQ0FvAAHABIAG0ANDQMSAgIDBQJyBwMIcgArMisROS8zETkwMWEDIQMjATMB","AQMuAicOAgcDBF20/bazrAI8mQI4/mmrBhscCQoXFgiuAdD+MAW8+kQCZwHNElJYGylRRRj+MwADAMgAAAS8BbYAEgAbACUAH0APCQgTExwcAB0SCHIb","AAJyACsyKzISOS8zEjk5MDFTISAEFRQGBgcVHgIVFAYGIyETITI2NTQmIyMRESEyNjU0JiYjyAGeARIBFEF8W2CUVH3knP4JqgEYv5Ovv/wBMMOiSaOI","BbakxVWHWBEKD1CQb4e6XwNDfnl9bv2P/d2ZglN2PwABAH3/7ATLBcsAHwAQtwAZA3IJEAlyACsyKzIwMUEiDgIVFBIWMzI2NxUGBiMiJAI1NBI2JDMy","FhcHJiYDOXnBh0hz5axirVJQsHnf/tWVXbMBBalvzlNERqcFNVOd3ou4/vGUIRmUHh25AVLmpgETyG0sKZAgLwACAMgAAAVRBbYACgAUABC3EAYCchEF","CHIAKzIrMjAxQRQCBCMhESEyBBIHNAImIyMRMyAABVG0/qvz/nMBud8BQq+zg/239c8BLgEvAun3/rWnBbaj/sHxxQEAffttASoAAAEAyAAAA/YFtgAL","ABlADAYJCQEFAgJyCgEIcgArMisyETkvMzAxYSERIRUhESEVIREhA/b80gMu/XwCX/2hAoQFtpb+J5T94wAAAQDIAAAD9gW2AAkAF0ALBgkJAQUCAnIB","CHIAKysyETkvMzAxYSMRIRUhESEVIQFyqgMu/XwCXf2jBbaW/eiVAAEAff/sBTgFywAhABlADCEAAAUUDQNyHAUJcgArMisyETkvMzAxQSERBgYjIiQC","NTQSJDMyFhcHJiYjIgYCFRQSFjMyNjcRIQM5Af9z85bk/seiswFT7nrbXkFRw2iz/4d2+sVjjjr+qwL+/TsnJrYBUejjAVK7LSmUIzKU/vK5t/7xlhcQ","AcAAAAEAyAAABRwFtgALABlADAgDAwULBgJyAQUIcgArMisyETkvMzAxYSMRIREjETMRIREzBRyq/QCqqgMAqgKx/U8Ftv2RAm8AAAEAyAAAAXIFtgAD","AAy1AQJyAAhyACsrMDFzETMRyKoFtvpKAAH/XP5/AWoFtgARAAy0DQJyBwAALzIrMDFDIiYnNRYWMzI2NjURMxEUBgYLMkwbIEorOF44q1un/n8ODJEK","CyxqXQWu+l+JtFkAAQDIAAAE5gW2AA4AGkAOAwIIDgQFDQYCcgEFCHIAKzIrMhIXOTAxYSMBBxEjETMRNjY3ATMBBObJ/fGcqqo5eDsBq8f9ugLHjP3F","Bbb9J0GBQgHV/YYAAAEAyAAAA/sFtgAFAA62AQJyAwAIcgArMiswMXMRMxEhFciqAokFtvrimAAAAQDIAAAGagW2ABcAHEAPCwwVAQQIDgoCchcQCAhy","ACsyMisyEhc5MDFhASMeAhURIxEzATMBMxEjETQ2NjcjAQNL/hUIBAYEnvwBzwcB1vqoBAYDCP4PBQ4pdotI/GQFtvtABMD6SgOoQYN1K/r0AAEAyAAA","BT8FtgATABdACwIMCRMLAnIBCQhyACsyKzISOTkwMWEjASMeAhURIxEzATMuAjURMwU/xPzjCAMIBZ7DAxoHAgYFoATMMX2NSfy4Bbb7OCOBlUADTwAA","AgB9/+wFvAXNABEAIAAQtx0OA3IWBQlyACsyKzIwMUEUAgYGIyImJgI1NBIkMzIEEgUUEhYzMjYSNRACIyIGAgW8Vqn6par9p1OUAS3j2QEpmft0atup","qtlo7fuq3GsC3an+68dsbMgBFqngAVK8uv6v5br+8JSUARC6ARsBP5L+8wAAAgDIAAAEZgW2AAwAFgAXQAsPCQkLDgwCcgsIcgArKzIROS8zMDFBIAQV","FA4CIyMRIxEFIxEzMjY2NTQmAkYBGwEFPYjdoLKqAW7En4y7XroFtt3OXad/Sf3BBbaR/aw8h3CSjwAAAgB9/qQFvAXNABYAJQAZQAwiEwNyBAcbGwUK","CXIAK8wzEjk5KzIwMUEUAgYHASMBIgYjIiYmAjU0EiQzMgQSBRQSFjMyNhI1EAIjIgYCBbxiwZABWPP+5Q0bDar9p1OUAS3j2QEpmft0atupqtlo7fuq","3GsC3bT+3Mou/pcBSgJsyAEWqeABUry6/q/luv7wlJQBELoBGwE/kv7zAAACAMgAAATOBbYADwAYAB1ADggSEgwMDhEPAnIKDghyACsyKzIROS8zEjkw","MUEyFhYVFAYGBwEjASERIxEFIxEzMjY1NCYCU7TrdFSITQGRxv6a/tCqAYHX6LOpswW2WbaNdJtgGv1vAmL9ngW2k/3Pko6VfAAAAQBp/+wEAQXLAC8A","HEAQEAAULCgZBgQkHQNyDAQJcgArMisyEhc5MDFBFAYGIyImJic1FhYzMjY2NTQmJicuAzU0NjYzMhYXByYmIyIGBhUUFhYXHgIEAYHonVOUfC9L2HZu","mE9CmYRdjmAxd9OJdcdTNU+xXl6BREGPdoG0XgGFgrdgEB4Wox81O29OS2VTLyFPZIRVdadZLCWSISw3ZEVNZk8rL2mXAAABABIAAARTBbYABwATQAkH","AwMEAnIBCHIAKysyETMwMWEjESE1IRUhAomr/jQEQf42BSCWlgABALn/7AUaBbYAEwAQtxMJAnIOBQlyACsyKzIwMUERFAYGIyAANREzERQWMzI2NjUR","BRp9/L7+8f7lq8XEhqtTBbb8TpvyiwEm9gOu/E26ymGvcwO0AAEAAAAABMUFtgAOABNACQkCDgMCcgIIcgArKzISOTAxQQEjATMBHgIXPgI3AQTF/fOr","/fOyAVYVIRoKChoiFQFUBbb6SgW2/D06amIuLmNrOwPAAAEAHgAAB0UFtgApABtADggXJAMPKR4QAnICDwhyACsyKzIyERc5MDFBASMBLgMnDgMHASMB","MxMeAxc+AzcBMwEeAxc+AjcTB0X+eav+3g0XFA0DAgsRFw3+5qv+fLHrDBURDgYFEBMXDQEHrwESDhgTDwYHFBsQ6wW2+koD2CpVTTsPDzpMViz8KQW2","/GsuWVRQJidVWFotA4v8bi9cV08jMWx2PwOUAAEABgAABJgFtgALABpADgIFCwgEAQoGAnIBBAhyACsyKzISFzkwMWEjAQEjAQEzAQEzAQSYwf51/m+1","Aef+O70BbQFvtP48AoT9fAL6Arz9uQJH/UcAAQAAAAAEeQW2AAgAF0AMBgMAAwQCBwJyBAhyACsrMhIXOTAxQQEzAREjEQEzAj0Bhbf+Gar+GLoC2QLd","/IH9yQIvA4cAAAEATgAABEUFtgAJABlADAcEBAUCcgIICAEIcgArMhEzKzIRMzAxYSE1ASE1IRUBIQRF/AkDE/0IA8f87AMpgASemID7YgABAKb+vAJr","BbYABwAOtQUCAnIGAQAvMysyMDFBIREhFSERIQJr/jsBxf7dASP+vAb6iPoYAAABABUAAALbBbYAAwAMtQMCcgEIcgArKzAxUwEjAbkCIqX93wW2+koF","tgABADP+vAH5BbYABwAOtQAHAwQCcgArMi8zMDFXIREhNSERITMBI/7dAcb+OroF6Ij5BgAAAQBQAiUERAXBAAYADrUFBAABEXIAK80yOTAxUwEzASMB","AVABt2AB3ZX+iv6sAiUDnPxkAur9FgAB//z+zQOF/0gAAwAIsQECAC8zMDFBITUhA4X8dwOJ/s17AAABAFIE2QHnBiEADAAStwsEAIAPBgEGAC9dGs05","OTAxQR4CFxUjLgMnNQEYGEdPIXEkVVREEwYhLnFrJhgdUFlRHRQAAAIAXv/sA8sEWgAdACgAI0ASByUlCx4TEwALC3IECnIXAAdyACsyKysSOS8zETMR","MzAxQTIWFREjJyMOAiMiJiY1NCQlNzU0JiMiBgcnNjYBBwYGFRQWMzI2NQJJxL55IAguZINfZJtZAQQBCr16b1acRjNKwAFIp82ocl6SugRasMH9F6I8","USlGjm2ksAgIQ45yMiJ+Jjb9wgcIdmxeWqKiAAIAr//sBHMGFAAWACQAJUAUFgByFQpyEhMfHw8LcgUEFxcIB3IAKzIRMzMrMhEzMysrMDFBERQGBzM2","NjMyEhEUBgYjIiYnIwcjEQEiBgYVFRQWMzI2NTQmAVUHAgktqoTO9XDMi4KnLQ0ieAHmd4w9iraZmZcGFP57Q34jSmb+4/7nuf6CYUaTBhT9vF27jwnP","2+DQ1NYAAQBy/+wDkgRcAB0AELcPCAdyFwALcgArMisyMDFFIiYmNTQ2NjMyFhcHJiYjIgYGFRQWFjMyNjcVBgYCZpTifoXqlVKZMTIygzlyl0tJkW1X","jDk3hxR6+r7H/XohGYsUIGK+i4W8YyUZlBweAAACAHL/7AQ1BhQAFwAkACVAFBEKchAAcgsKHx8GB3ITFBgYAAtyACsyETMzKzIRMzMrKzAxRSICERAS","MzIWFhczJiY1ETMRIycjDgInMjY1NTQmIyIGFRQWAjXQ8/jOV4JeIAwECKaGGQcfX4M/sJKLt5mYlxQBHAEYARsBIS5NMR9sIgG3+eycMVAvisjFHtHg","68vK3AACAHL/7AQTBFwAFwAfABlADBsGBgAJEAtyGAAHcgArMisyEjkvMzAxQTIWFhUVIRYWMzI2NxUGBiMiJiY1NBI2FyIGByEuAgJVjMhq/QsDuqlo","oFZTo2+e64J32ZGFng8CRAE7eARcfN+VZ8HKJiWSJSKB+rWxAQOMiK6cYpVTAAEAHgAAAw4GHwAYABtADgYFAQEXBnITDAFyAwpyACsrMisyETM5MDFB","IREjESM1NzU0NjYzMhYXByYmIyIGFRUhApf+76bCwlKccD9pKCsiVSxfWwERA8b8OgPGUDdJiq1SFg6DCxN7g1AAAAMAH/4UBC8EXgAvAD8ASwAtQBYi","DEBAIAY5OSkpABoXF0YTB3IwAA9yACsyKzIyETMROS8zEjnGMhE5OTAxQSImNTQ2NyYmNTQ2NyYmNTQ2NjMyFhYXIRUHFhYVFAYjIicGBhUUFhYzMzIW","FRQEJTI2NjU0JiYjIyIGBhUUFhMyNjU0JiMiBhUUFgHh2OqDdCs9Q0VWa2K6hB07NhQBeMoeKN7CLjAxMydKNMGzv/7Y/u2Is1k8dFS+Sm47lrZ3eHp3","cnt8/hShkWeSGBRQNDxbKiOnb3anWAUJBmsZJ25DpMEIG0IrICYRlpC2woI3Z0dCQxcuWkNZXQNseHN7e396cHgAAQCvAAAEQQYUABoAG0AOGgByDxkK","cgQFExMJB3IAKzIRMzMrMiswMUERFAYHMz4CMzIWFhURIxE0JiMiBgYVESMRAVUEBQsiaYZLhLFZpH2BepE/pgYU/i8oUSI6TylUsIz9NgK/iYhdtIL9","wwYUAAIAoAAAAWgF4gADAA8AELcECgMGcgIKcgArK84yMDFBESMREzIWFRQGIyImNTQ2AVWmVSk7OykrOTkESPu4BEgBmjU4NzY2Nzg1AAAC/5D+FAFo","BeIAEAAcABNACRQaCwZyBwAPcgArMivOMjAxUyImJzUWFjMyNjURMxEUBgYTNDYzMhYVFAYjIiYrM0wcH0AoRFSmQIQPOSspOzspKzn+FA8KhwoLTGQE","+fsLZI9MB2E4NTU4NzY2AAEArwAABCQGFAASACBAExIAcg8OBAULCAYKDQ0RCnIKBnIAKysyERIXOSswMUERFAYHMzY2NwEzAQEjAQcRIxEBVAYCBxVR","HAFsw/5HAdnI/n2FpQYU/NgocywaZh8BhP4s/YwCB3r+cwYUAAEArwAAAVYGFAADAAy1AgByAQpyACsrMDFhIxEzAVanpwYUAAEArwAABsIEXAAnAChA","FxwdJCUEExMhCQAHciEHchoGcg4FGQpyACsyMisrKzIRMxEXMzAxQTIWFREjETQmIyIGFREjETQmJiMiBgYVESMRMxczPgIzMhYXMzY2BVW1uKRzcZ+Q","pTNlTW2EO6aGGQkhZHxGfakmCTa8BFy90f0yAsaFhbiz/ZsCxll2O1qxgf28BEibOU4oXV9fXQAAAQCvAAAEQQRcABUAG0AODwZyBQ4KchIRCQkAB3IA","KzIRMzMrMiswMUEyFhURIxE0JiMiBhURIxEzFzM+AgK2w8ikfYG2lKaGGQkjbIYEXL/T/TYCv4mIzsT9wgRInjpPKQACAHL/7ARgBFwAEQAgABC3Hg4H","chYFC3IAKzIrMjAxQRQOAiMiLgI1NDY2MzIWFgUUFhYzMjY2NTQmJiMiBgRgRoS7dm63hUl6452W4X38vkaSc3KTRkaSdKufAiaH1JJNTZLUh7T9hYb9","s4TCamrChIO/aOIAAgCv/hYEcwRcABgAKAAlQBQSBnIRDnILDCIiBwtyFRQZGQAHcgArMhEzMysyETMzKyswMUEyEhEUBgYjIiYmJyMWFhURIxEzFzM+","AhciBgYHFRQWFjMyNjY1NCYCss30cMuKV4ReHwwDCaeJFgggXIU+cotAAj2Nd2aIQ5cEXP7m/uW7/oIuTi4nbin+PgYyojJTMYxYr4Qgi8BkbsWAwuUA","AgBx/hYENARcABYAJAAlQBQWDnIVBnITEh8fDwdyBAUXFwgLcgArMhEzMysyETMzKyswMUERNDY3IwYGIyICETQ2NjMyFhczNzMRATI2Njc1NCYjIgYV","FBYDjgQFCy6qhsn0cM2Jg6YvCBmE/hl0jEECkLOalpb+FgHWJ2YlTGYBHAEauf6DZ0qd+c4CYFewgyPU2+vJyd8AAAEArwAAAyYEXAAVABlADQ8Gcg4K","chIRBwcAB3IAKzIRMzMrKzAxQTIWFwcmJiMiDgIVESMRMxczPgICoSFIHBUbQh1CdVgyp4oSByJgfwRcBwaaBwg1Y4tV/bQESMo9ZTwAAQBn/+wDdARc","ACoAGkAODhInFgQEIBkHcgsEC3IAKzIrMhIXOTAxQRQGBiMiJic1FhYzMjY1NCYmJy4CNTQ2MzIWFwcmJiMiBhUUFhYXHgIDdGnDh3OoP0O6YY6AM3hq","aZlT4bdjrUs4RJpQc3s5fmdnllEBLGmPSCQhmSE2XE8tRUEnKE9yW4uVJyGFHShMQjNCOicmUXMAAAEAIP/sAqsFRgAYAB1ADg4SDRUVEA8SBnIABwty","ACsyKzLNMxEzEjkwMWUyNjcVBgYjIiYmNREjNTc3MxUhFSERFBYCESlWGx1nMVeOVZydQmQBQf6/X3QOCoENEj2SgQKKUUHu/oL9e2dmAAEAo//sBDgE","SAAXABtADhcNBnIDBBISCAtyAQpyACsrMhEzMysyMDFBESMnIw4CIyImJjURMxEUFjMyNjY1EQQ4iBgJImyHTIKwWah8f3qRQARI+7iaOU4nVLCKAs79","PomHXLOCAkEAAQAAAAAD/wRIAA0AFUAKBwYADAEGcgAKcgArKzISOTkwMWEBMxMWFhczNjY3EzMBAaD+YLLxGTQKBww4F/Gy/l8ESP1pRKQyMqVDApf7","uAABABgAAgYbBEoAKgAbQA4VIgYDDikdDwZyKg4KcgArMisyMhIXOTAxZQMuAycjDgMHAyMBMxMeAhczPgM3EzMTHgIXMz4CNxMzAQQrww0XEw8FBwQO","ExYOzLv+0qyeEB0VBQgGDxMWC8qzww8dGAUIBBYdEKCp/tECAn4pT0k/Fxc/SlEp/YUESP2jPHVnJhlGT08jAnv9hjBoYSYiZHg+Al37uAAAAQAnAAAE","CQRIAAsAHEAPCQYAAwQBCAgLCnIFAQZyACsyKzIREhc5MDFBATMBATMBASMBASMBtP6FvgEhASC8/oUBkL7+zf7LvAIxAhf+WgGm/en9zwG//kEAAQAC","/hMEAgRIAB0AGkAOBh0cDQQAGBEPcgwABnIAKzIrMhIXOTAxUzMTHgIXMzY2NxMzAQ4CIyImJzUWFjMyNjY3NwKy8hUkHAgHDjQe5bP+IyZlkGYvSBoW","PyI+W0IYPARI/YQ4Z14sMqNVAnv7F2WWUQsHhQUIL1o+mgAAAQBQAAADbwRIAAkAGUAMBwQEBQZyAggIAQpyACsyETMrMhEzMDFhITUBITUhFQEhA2/8","4QJZ/c0C7P2vAl5uA1iCe/y0AAEAOf68Ar4FtgAlAB1ADRwdCgoJCQAUEwJyJQAALzIrMhI5LzMSOTkwMUEuAjURNCYmIzU+AjURNDY2MxUOAhURFAYH","FRYWFREUFhYXAr58s184blFRbjhks3dKaTdqbnBoNmlL/rwBR45rATJHVyiKASdWRwE0a41GiAIqVkT+02h+FAwTfmn+zURVKAEAAAEB7P4QAncGFQAD","AAixAAIALy8wMUEzESMB7IuLBhX3+wABAEP+vALIBbYAJQAdQA0KCRwcHR0AEhMCcgEAAC8yKzISOS8zEjk5MDFTNT4CNRE0Njc1JiY1ETQmJic1HgIV","ERQWFjMVIgYGFREUBgZDSmg3a21vaTZoS3yyXzhvUVFvOGSy/ryKAilVRAEvaX4TDBR+aAEwRVYpAYgBRo1s/tBIVyiKKFZG/spqjkcAAQBnAlEEKQNT","ABkAHUAMFBMTAwoXgAcGBhAXAC8zMy8zGhDNMjIvMzAxQSYmIyIGBzU2NjMyFhcWFjMyNjcVBgYjIiYCKkdiLzl/MzJ7ST51WElgLTt+MjB6Sjx2ApIg","GUQ0lTU2GyYfGkQ0kzQ5GgAAAgCW/ooBhARcAAMADwATtwAABwcNB3ICAC8rMhEzfS8wMVMzEyMTFAYjIiY1NDYzMhbUby7L3kUyMkVFMjJFAqn74QVP","Rjs7RkQ/PwAAAQC5/+wD3QXLACMAFLcaGBAXIggAAQAvzTMzLzPNMzAxQRUWFhcHJiYjIgYGFRQWFjMyNjcVBgYHFSM1LgI1NDY2NzUC0E2NMzA3hThz","mEtKk25YiD43d1CAfbZiZLZ7BculAyAXixUfYL+PjrlbIhqRGyACx8wSfeq0t++BEq0AAAEARAAABEQFyQAjACVAEhcTExYeCwsdDg4AFgxyBwAFcgAr","MisSOS8zMxEzETMRMzAxQTIWFwcmJiMiBhURIRUhFRQGBgchFSE1PgI1NSM1MxE0NjYCrm+wRjw9lVN5fgGg/mAoQSYDGPwAPV41x8dluAXJLyKGHS+A","jv7hf95Ub0MWmI0ORHhb4H8BMXyuXQAAAgB5AQYEFwShACMAMwBKQCMhHh4oFRgYKCgbFhcXIB8bDwwMMAMGBjAwCQ4NDQQFCQkbDAA/My/OMjIRMxEz","ETMRMxEzETMQzjIyETMRMxEzETMRMxEzMDFTNDY3JzcXNjYzMhYXNxcHFhYVFAYHFwcnBgYjIiYnByc3JiY3FBYWMzI2NjU0JiYjIgYGtykiiVyKMXhC","QHQyi1yHISsnJYVaizB2QEJ6L4pbiCIpgEl9TE5+Skp+TU19SQLTP3cxjVqGIycnI4ZajDB3QUB5MYpZhiInJySHWYsxd0BNfUlKfUxOfktLfgAAAQAf","AAAEcAW2ABYALEAVABQUEQoHBw0QAwYGEREMARUEcgwMAD8rMhI5LzMRM84yMhEzETMRMzAxQQEzASEVIRUhFSERIxEhNSE1ITUhATMCSAF5r/5cAQj+","xQE7/sWi/sQBPP7EAQT+YLEC5QLR/P17rnv+8QEPe657AwMAAgHs/hACdwYVAAMABwAMswQGAwAALzIvMzAxQTMRIxEzESMB7IuLi4sGFfz3/g789gAC","AHr/9wOPBh4ANgBFABpADy8hMx48QwMXCCwkEAkBcgArMi8zFzkwMVM0NjcmJjU0NjMyFhcHJiYjIgYVFBYWFx4CFRQGBxYWFRQGIyImJzUeAjMyNjU0","JiYnLgI3FBYWFxc2NjU0JiYnBgaMZkNMVs/AcZ5LM0WNYH1sNHllaJZRXz5JUefRcalALXSAQJt3LHVtaZhSjzqBajY0VTuOfT5gAyllfh8nb1V6jice","gBwnRD4pPjolJVd0VGiGIyVtUIubJB+QFScYXD4qPj0oJ1R3bDVQRSgTHV9GNlRKJhBgAAACATYFEANrBdIACwAXAA60DxUVAwkALzMzETMwMUE0NjMy","FhUUBiMiJiU0NjMyFhUUBiMiJgE2NCYnNTUnJjQBgDQlJjY2JiU0BXIyLi4yMTExMTIuLjIxMTEAAAMAZP/sBkQFywATAC4AQgAbQA0iGzkKA3IoFIAv","AAlyACsyGswyKzLMMjAxRSIkJgI1NBI2JDMyBBYSFRQCBgQDIiY1NDY2MzIWFwcmJiMiBhUUFjMyNjcVBgYHMj4CNTQuAiMiDgIVFB4CA1Sj/u3Lb3DL","AROinQERznRwy/7tgsrMYbmEQoI5ODJiL3+Mf4kyczQxaGeF6bBkX6zrjIzrrV9eresUcMoBE6KjARPKcHHL/u6iov7tynABJvnQhc11IB10GhuxmqCs","GhV6FhzAYK/tjYbqtGVgr+2NhuuzZQACAEQDEwJuBccAHAAnAB9ADgYkJBIdAAUFCcAWAANyACsyGswyLxE5OTIRMzAxQTIWFREjJwYGIyImJjU0NjY3","NzU0JiMiBgcnNjYTBwYGFRQWMzI2NQFogoRbFydyTUBfM0aQbXBVPjdnLis0gtRifFo+NWhdBcdud/4+Vys5LFpDRFwyBAQvRTgdGF8aIf6XBARAOjUx","Y1MAAgBPAHoDqwPFAAYADQAkQBILDAwFCQgIBg0DCgAHBgIBBAUALzPMMhc5MhEzETMRMzAxUwEXAQEHASUBFwEBBwFPAVR3/uEBH3f+rAGOAVl1/uIB","HnX+pwIsAZlE/p/+n0UBlxsBmUT+n/6fRQGXAAEAZwEHBCQDFgAFAA60AQEEBAUALzMRMy8wMUERIxEhNQQkhvzJAxb98QGHiP//AFIB3AJCAnAGBgAO","AAAABABk/+wGRAXLAA0AFgAqAD4AI0ASDAgOAwAWATUhA3IKAIArFwlyACsyGswyKzLMMhEXOTAxQREhMhYVFAYHEyMDIxERMzI2NTQmIyMTIiQmAjU0","EjYkMzIEFhIVFAIGBCcyPgI1NC4CIyIOAhUUHgICPwEFo5xjQO2kz4pvU19YXG2Eo/7ty29wywETop0BEc50cMv+7aKF6bBkX6zrjIzrrV9eresBHAN9","g4RhcRn+dQFk/pwB2lJGTUT7zXDKAROiowETynBxy/7uoqL+7cpwZmCv7Y2G6rRlYK/tjYbrs2UAAf/6BhQEBgaTAAMACLECAQAvMzAxQSE1IQQG+/QE","DAYUfwAAAgB1A1sC+AXLAA8AGwAQthAAwBYIA3IAKzIazDIwMUEiJiY1NDY2MzIWFhUUBgYnMjY1NCYjIgYVFBYBtmCQUU+QYl+RUlKRXWJiZV9lYmED","W06NXF2NT0+NXVyNTnJtWFxtbVxYbQACAGcAAAQqBMUAAwAPABtACw4EDQ0JBwoKAQEAAC8yETMvMzMzETMzMDFzNSEVASEVIREjESE1IREzZwPD/mIB","nP5kif5kAZyJh4cDG4j+WAGoiAGqAAEAMgNUAnMG0wAaABK3AhkZAHgKEXcAPzPkMhEzMDFBITU3PgI1NCYjIgYHJzY2MzIWFRQGBgcHIQJz/b/tUlgh","TkI9ZzVDPIxWgpQ3a02qAZoDVGjoUGZSL0JHLylZMjyBcERydEmkAAABACUDRQKNBtMAKQAbQAwGBx0dGhoUDXgjAHcAPzLkMjkvMxI5OTAxQTIWFRQG","BxUWFhUUBiMiJic1FhYzMjY1NCYjIzUzMjY1NCYjIgYHJzY2AVOPklk+UV+rskuDPUSKPmxnd2x3d2hhVUBAbzdEPowG035iVGoTBhBpU3eUGh55ICRX","S0xFalJDQUArI1ktNgAAAQBSBNkB5wYhAAwAErcBCAyADwYBBgAvXRrNOTkwMUEVDgMHIzU+AjcB5xRFVFUkbyBMSBgGIRQdUVlQHRgma3EuAAABAK/+","FARDBEgAHQAhQBERDAsEAxgYCAtyAQpyFAAGcgArMisrMhEzMzMzLzAxQREjJyMOAiMiJicjHgIVESMRMxEUFjMyNjY1EQRDhxoJIl59UVZ5KAgDBAKm","poCBfI49BEj7uJg2TSk2LhhHWTX+sQY0/TyFiV2zgQJBAAABAHr+/ARdBhQAEgAStgYJCQMRBQAALzIvMzkvMzAxQSMRIxEjEQYGIyImJjU0NjYzIQRd","b9hwH04lfbhlbsaFAir+/Aat+VMDRQkJYdm0vdxeAP//AJYCRgGEA0sGBwAPAAACYgABABz+FAGrAAAAFgAQtRMQCgPAEgAvGswyOTkwMUEUBiMiJic1","FhYzMjY1NCYnNzMHHgIBq5aRHzgREzweS1BrU1lvNjJRMP7iYW0HBGkEBiw0NzIJsHAKKkYAAAEATANUAeEGwQANABJACQsKDAcEAngNdwA/5Bc5MDFB","ESMRNDY2NwYGBwcnJQHhhwIDAhU0HW1CAQsGwfyTAjYkPz0dEyoTTV65AAACAEMDEwK9BcgADAAYABC2EAMDFgkDcgArMjIvMzAxQRQGIyImNTQ2MzIW","FgUUFjMyNjU0JiMiBgK9rZOLr6qUYY1O/f9cZmZdXGZlXgRvpLizqaazUZpueX19eXh6eAACAE0AegOpA8UABgANABpADwIJCg0HAAYEAwsKBQwBCAAv","M8wyFzkwMUEBJwEBNwEFAScBATcBA6n+p3QBHv7idAFZ/m/+qnUBHv7idQFWAhL+aEUBYgFgRP5oG/5oRQFiAWBE/mgAAAQAQgAABdkFtgADABEAHAAl","ADZAHBUeHhgYEyIbGxYSAwMSDHINDA4JBAQPAQEPBHIAKzIvEMwXOSsyLxDMOS85MzMRMxEzMDFhATMBAxE0NjY3BgYHByclMxEBNSE1ATMRMxUjFQEh","NTQ2NwYGBwEHA26Q/JFGAgMCFTQdbUIBC4kC9f5uAZWLgID+ZwELAgMLPRcFtvpKAkoCNiQ/PR0TKhRMXrj8lP22zWICRP3Mcs0BP88sbjEZXiIAAwAs","AAAF0AW2AAMAEgAtACZAFBQrKxwjEwxyDg0PCgQEEAEBEARyACsyLxDMFzkrzDIzETMwMXMBMwEDETQ+AjcGBgcHJyUzEQE1Nz4CNTQmIyIGByc2NjMy","FhUUBgYHByEV0ANvj/yRJgEDAwEWMx1tQgELigHO7VJYIlBBPmY1QjuNVYKUOGpNqgGaBbb6SgJKAjYbMS4tFhMqFExeuPyU/bZo6FBmUi9CRy8pWTI8","gXBEcnRJpHcABAAhAAAGKAXJAAMALQA4AEEAP0AfMTo6NDQvPjc3Mi4DAy4McicoFBQREQsEIRoBASEFcgArMi8yEMwyOS8zEjk5KzIvEMw5LzkzMxEz","ETMwMWEBMwEDIiYnNRYWMzI2NTQmIyM1MzI2NTQmIyIGByc2NjMyFhUUBgcVFhYVFAYBNSE1ATMRMxUjFQEhNTQ2NwYGBwFkA2+P/JLISoQ9RIs+bGd4","bHd3aGFVQEBuOEQ+jV6Oklg+UGCsAzz+bgGVi4CA/mgBCgMDDTwXBbb6SgI6Gx55ISNWTExFalJDQUArI1guNn9iU2oTBxBoU3eV/cbNYgJE/cxyzQE/","zyxuMRleIgACADX+dwNSBF4AHwArABZACQAAIyMpB3IMEwAvMysyETN9LzAxQRUUBgYHDgIVFBYzMjY3FwYGIyImNTQ2Njc+AjU1ExQGIyImNTQ2MzIW","AlEeS0NOXCeHeWOaRzpSv3fB1DxvSkNFGrFBNTFFRTE1QQKsNE90ZDhBW1xBaG8zIoYrNr+nXYNtPThVWT4hAS5GOztGRT8///8AAAAABQ0HkAYmACIA","AAEHAEEBKQFvAAqzGQUCcgArzjAx//8AAAAABQ0HkAYmACIAAAEHAHQBwAFvAAqzGQUCcgArzjAx//8AAAAABQ0HjwYmACIAAAEHAUEA5wFvAAqzHwUC","cgArzjAx//8AAAAABQ0HTAYmACIAAAEHAUgAuwFvAAqzJAUCcgArzjAx//8AAAAABQ0HQQYmACIAAAEHAGgANAFvAAy0KBwFAnIAK87OMDH//wAAAAAF","DQcKBiYAIgAAAAcBRgFUAIIAAv/+AAAGgQW2AA8AEwArQBUTCQkQAwoNAw0DDQUGAnIOAQEFCHIAKzIRMysROTkvLxEzETMyETMwMWEhESEDIwEhFSER","IRUhESEBIREjBoH9BP4H3rACrwPU/a4CK/3VAlL7TQG3cwHQ/jAFtpb+J5T94wHRArf//wB9/hQEywXLBiYAJAAAAAcAeAIWAAD//wDIAAAD9geQBiYA","JgAAAQcAQQEVAW8ACrMSAgJyACvOMDH//wDIAAAD9geQBiYAJgAAAQcAdAGtAW8ACrMSAgJyACvOMDH//wDIAAAD9gePBiYAJgAAAQcBQQDTAW8ACrMS","AgJyACvOMDH//wDIAAAD9gdBBiYAJgAAAQcAaAAhAW8ADLQhFQICcgArzs4wMf////QAAAGJB5AGJgAqAAABBwBB/6IBbwAKswoBAnIAK84wMf//ALQA","AAJJB5AGJgAqAAABBwB0AGIBbwAKswoBAnIAK84wMf///84AAAJvB48GJgAqAAABBwFB/3wBbwAKswoBAnIAK84wMf//AAYAAAI7B0EGJgAqAAABBwBo","/tABbwAMtA0ZAQJyACvOzjAxAAIAOgAABVEFtgAOABwAH0APDBERCxQUCRAOAnIVCQhyACsyKzIROS8zMxEzMDFBMgQSFRQCBCMhESM1MxEFIxEhFSER","MyAAETQCJgKB3gFDr7T+qvT+gpubAZLpAXT+jMMBLwEuhP0FtqP+wev3/rWnAomVApiR/fmV/gkBKgEnxQEAfQD//wDIAAAFPwdMBiYALwAAAQcBSAE8","AW8ACrMUCgJyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAQQHCAW8ACrMnDgNyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAdAJYAW8ACrMoDgNyACvOMDH/","/wB9/+wFvAePBiYAMAAAAQcBQQF/AW8ACrMtDgNyACvOMDH//wB9/+wFvAdMBiYAMAAAAQcBSAFSAW8ACrMyDgNyACvOMDH//wB9/+wFvAdBBiYAMAAA","AQcAaADMAW8ADLQ2Kg4DcgArzs4wMQABAIUBEAQKBJYACwAkQBMHCQEDCAsCBQgKBgAACgoGBAQGAC8zLxEzLzMvERIXOTAxQRcBAQcBAScBATcBA6xe","/p4BYV/+nP6jYwFh/p5jAWAElmH+nv6eYQFg/qBhAWIBYGP+nAADAH3/wgW8BfcAGgAlADAAOUAcKh4eGBgVFS0tFxYSA3IfKSkLCwgIIiIKCQUJcgAr","zjIzETMRMxEzETMrzjIzETMRMxEzETMwMUEUAgYGIyImJwcnNyYCNTQSJDMyFhc3FwcWEgc0JicBFhYzMjYSJRQWFwEmJiMiBgIFvFap+qV2wEpmdG5b","WpQBLeNruktic2pdY7M4N/1fOJJbqtlo/Cc0NAKeNopVqtxrAt2p/uvHbDMzkEycZAEfsuABUrwzLotPlGL+4baG2Uz8TCgtlAEQuoLTTQOuJiiS/vMA","//8Auf/sBRoHkAYmADYAAAEHAEEBjwFvAAqzGgkCcgArzjAx//8Auf/sBRoHkAYmADYAAAEHAHQCJgFvAAqzGwkCcgArzjAx//8Auf/sBRoHjwYmADYA","AAEHAUEBTQFvAAqzIQkCcgArzjAx//8Auf/sBRoHQQYmADYAAAEHAGgAmwFvAAy0KR0JAnIAK87OMDH//wAAAAAEeQeQBiYAOgAAAQcAdAF4AW8ACrMQ","BwJyACvOMDEAAgDIAAAEZwW2AA4AGAAfQA8PBhgLBgsGCwgJAnIICHIAKysROTkvLxEzETMwMUEUDgIjIxEjETMRMyAEATMyNjY1NCYjIwRnPIffo7Cq","qtEBIgEC/QuekLtct8vDAw5ep39J/r8Ftv8A3f35PYdvk40AAQCv/+wEnQYfADwAFUALLjkBcjQKchoSC3IAKzIrKzIwMUEUDgMVFBYWFx4CFRQGBiMi","Jic1HgIzMjY1NCYmJy4CNTQ+AzU0JiMiBgYVESMRNDY2MzIWFgQaOlVVOh1PSkhqOV6pcWGQNiVdajZ0ZyVVR1NiKjhUUziRc02ATKZ0yoGBwGsE9Edm","TkJBKB8wPTEwYndTcJJHIyCXFSYYY1Q1TksuNlhZOEFZREBPOFhSK2db+1kEp4mlSkOF//8AXv/sA8sGIQYmAEIAAAEHAEEA3AAAAAqzLwAHcgArzjAx","//8AXv/sA8sGIQYmAEIAAAEHAHQBdAAAAAqzLwAHcgArzjAx//8AXv/sA8sGIAYmAEIAAAEHAUEAmgAAAAqzNQAHcgArzjAx//8AXv/sA8sF3QYmAEIA","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"].join("");const decoded_cache={bytes:null};function bundledFontBytes(){if(decoded_cache.bytes===null){decoded_cache.bytes=new Uint8Array(Buffer.from(BUNDLED_FONT_BASE64,"base64"))}return decoded_cache.bytes}const mimeOf=target=>target==="jpeg"?"image/jpeg":"image/png";const DEFAULT_SCALE_ZOOM=3;function zoomFor(opts){return(opts.scale??100)/100*DEFAULT_SCALE_ZOOM}function resvgFitTo(opts){if(opts.width!==void 0)return{mode:"width",value:opts.width};if(opts.height!==void 0)return{mode:"height",value:opts.height};return{mode:"zoom",value:zoomFor(opts)}}async function rasterize(svg,target,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rasterizeViaCanvas(svg,target,opts)}return rasterizeViaResvgWasm(svg,target,opts)}async function loadAndSizeCanvas(svg,opts){const encoded=typeof btoa==="undefined"?Buffer.from(svg,"utf8").toString("base64"):btoa(unescape(encodeURIComponent(svg)));const url=`data:image/svg+xml;base64,${encoded}`;const ImageCtor=globalThis.Image;if(ImageCtor===void 0){throw new RasterizationUnsupportedError("OffscreenCanvas present but Image constructor is not")}const img=new ImageCtor;img.src=url;if(typeof img.decode==="function"){await img.decode()}else{await new Promise((resolve,reject)=>{img.addEventListener("load",()=>resolve());img.addEventListener("error",()=>reject(new Error("image load failed")))})}const natW=img.width??800;const natH=img.height??600;let width;let height;if(opts.width!==void 0){width=opts.width;height=Math.round(width*natH/natW)}else if(opts.height===void 0){const zoom=zoomFor(opts);width=Math.round(natW*zoom);height=Math.round(natH*zoom)}else{height=opts.height;width=Math.round(height*natW/natH)}const canvas=new OffscreenCanvas(width,height);const ctx=canvas.getContext("2d");if(!ctx)throw new RenderError("failed to acquire 2d canvas context");ctx.drawImage(img,0,0,width,height);return{canvas:canvas,ctx:ctx,width:width,height:height}}async function rasterizeViaCanvas(svg,target,opts){const{canvas:canvas}=await loadAndSizeCanvas(svg,opts);const blob=await canvas.convertToBlob({type:mimeOf(target),quality:target==="jpeg"?(opts.quality??85)/100:void 0});const ab=await blob.arrayBuffer();return new Uint8Array(ab)}const wasm_state={inited:false};async function resvgModule(){let mod;try{mod=await import("@resvg/resvg-wasm")}catch{throw new RasterizationUnsupportedError(`PNG/JPEG in this runtime requires @resvg/resvg-wasm; install with: npm install @resvg/resvg-wasm`)}if(typeof mod.initWasm==="function"&&!wasm_state.inited){try{const{readFileSync:readFileSync}=await import("node:fs");const{resolve:resolve}=await import("node:path");const{createRequire:createRequire}=await import("node:module");const req=createRequire(typeof document==="undefined"?require("u"+"rl").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("lib.cjs",document.baseURI).href);const wasmPath=resolve(req.resolve("@resvg/resvg-wasm"),"../index_bg.wasm");const wasmBuffer=readFileSync(wasmPath);await mod.initWasm(wasmBuffer);wasm_state.inited=true}catch{wasm_state.inited=true}}return mod}async function rasterizeViaResvgWasm(svg,target,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const pngData=rendered.asPng();if(target==="png")return new Uint8Array(pngData);throw new RasterizationUnsupportedError("JPEG output in a non-Canvas runtime is not supported in v1; use --target=png instead")}finally{rendered?.free();resvg.free()}}async function rasterizeRgba(svg,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rgbaViaCanvas(svg,opts)}return rgbaViaResvgWasm(svg,opts)}async function rgbaViaCanvas(svg,opts){const{ctx:ctx,width:width,height:height}=await loadAndSizeCanvas(svg,opts);const data=ctx.getImageData(0,0,width,height);const rgba=new Uint8Array(data.data.buffer.slice(data.data.byteOffset,data.data.byteOffset+data.data.byteLength));return{rgba:rgba,width:width,height:height}}async function rgbaViaResvgWasm(svg,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const rgba=new Uint8Array(rendered.pixels);for(let i=0;i<rgba.length;i+=4){const a=rgba[i+3];if(a!==0&&a!==255){rgba[i]=Math.min(255,Math.round(rgba[i]*255/a));rgba[i+1]=Math.min(255,Math.round(rgba[i+1]*255/a));rgba[i+2]=Math.min(255,Math.round(rgba[i+2]*255/a))}}return{rgba:rgba,width:rendered.width,height:rendered.height}}finally{rendered?.free();resvg.free()}}async function pngTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"png",{width:opts.width,height:opts.height,scale:opts.scale})}async function jpegTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"jpeg",{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}function xml_unescape(s){return s.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}const NODE_GROUP_RE=/<g[^>]+\bclass="node"[^>]*>([\s\S]*?)<\/g>/g;const TEXT_RE_G=/<text[^>]*>([\s\S]*?)<\/text>/g;const SHAPE_FILL_RE=/(<(?:ellipse|polygon|path)\b[^>]+\bfill=")([^"]*)(")/;function node_label_text(body){const lines=[...body.matchAll(TEXT_RE_G)].map(m=>xml_unescape(m[1]));return lines.length===0?null:lines.join("\n")}function patch_state_fill(svg,state,fill){let done=false;const out=svg.replace(NODE_GROUP_RE,(whole,body)=>{if(done){return whole}const label=node_label_text(body);if(label===null){return whole}if(label!==state){return whole}const patched_body=body.replace(SHAPE_FILL_RE,(_m,pre,_old,post)=>`${pre}${fill}${post}`);if(patched_body===body){return whole}done=true;return whole.replace(body,()=>patched_body)});return out}const DefaultBufferLength=1024;let nextPropID=0;let Range$1=class Range{constructor(from,to){this.from=from;this.to=to}};class NodeProp{constructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")});this.combine=config.combine||null}add(match){if(this.perNode)throw new RangeError("Can't add per-node props to node types");if(typeof match!="function")match=NodeType.match(match);return type=>{let result=match(type);return result===undefined?null:[this,result]}}}NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.group=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.isolate=new NodeProp({deserialize:value=>{if(value&&value!="rtl"&&value!="ltr"&&value!="auto")throw new RangeError("Invalid value for isolate: "+value);return value||"auto"}});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});class MountedTree{constructor(tree,overlay,parser,bracketed=false){this.tree=tree;this.overlay=overlay;this.parser=parser;this.bracketed=bracketed}static get(tree){return tree&&tree.props&&tree.props[NodeProp.mounted.id]}}const noProps=Object.create(null);class NodeType{constructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags}static define(spec){let props=spec.props&&spec.props.length?Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new NodeType(spec.name||"",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");props[src[0].id]=src[1]}}return type}prop(prop){return this.props[prop.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(name){if(typeof name=="string"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false}return this.id==name}static match(map){let direct=Object.create(null);for(let prop in map)for(let name of prop.split(" "))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);let value=add[1],prop=add[0];if(prop.combine&&prop.id in newProps)value=prop.combine(newProps[prop.id],value);newProps[prop.id]=value}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type)}return new NodeSet(newTypes)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;var IterMode;(function(IterMode){IterMode[IterMode["ExcludeBuffers"]=1]="ExcludeBuffers";IterMode[IterMode["IncludeAnonymous"]=2]="IncludeAnonymous";IterMode[IterMode["IgnoreMounts"]=4]="IgnoreMounts";IterMode[IterMode["IgnoreOverlays"]=8]="IgnoreOverlays";IterMode[IterMode["EnterBracketed"]=16]="EnterBracketed"})(IterMode||(IterMode={}));class Tree{constructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=Object.create(null);for(let[prop,value]of props)this.props[typeof prop=="number"?prop:prop.id]=value}}toString(){let mounted=MountedTree.get(this);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children="";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=",";children+=str}}return!this.type.name?children:(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?"("+children+")":"")}cursor(mode=0){return new TreeCursor(this.topNode,mode)}cursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor}get topNode(){return new TreeNode(this,0,0,null)}resolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node}resolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node}resolveStack(pos,side=0){return stackIterator(this,pos,side)}iterate(spec){let{enter:enter,leave:leave,from:from=0,to:to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true}}}prop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:undefined}get propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result}balance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new Tree(NodeType.none,children,positions,length)))}static build(data){return buildTree(data)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(buffer,index){this.buffer=buffer;this.index=index}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set}get type(){return NodeType.none}toString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3]}return result.join(",")}childString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3]}return result+"("+children.join(",")+")"}findChild(startIndex,endIndex,dir,pos,side){let{buffer:buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break}}return pick}slice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to)}return new TreeBuffer(copy,len,this.set)}}function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true}}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent=scan.parent;parent;scan=parent,parent=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner}}class BaseNode{cursor(mode=0){return new TreeCursor(this,mode)}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null}getChildren(type,before=null,after=null){return getChildren(this,type,before,after)}resolve(pos,side=0){return resolveNode(this,pos,side,false)}resolveInner(pos,side=0){return resolveNode(this,pos,side,true)}matchContext(context){return matchNodeContext(this.parent,context)}enterUnfinishedNodesBefore(pos){let scan=this.childBefore(pos),node=this;while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling}else{scan=last}}return node}get node(){return this}get next(){return this.parent}}class TreeNode extends BaseNode{constructor(_tree,from,index,_parent){super();this._tree=_tree;this.from=from;this.index=index;this._parent=_parent}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children:children,positions:positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from,mounted;if(!(mode&IterMode.EnterBracketed&&next instanceof Tree&&(mounted=MountedTree.get(next))&&!mounted.overlay&&mounted.bracketed&&pos>=start&&pos<=start+next.length)&&!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index)}else if(mode&IterMode.IncludeAnonymous||(!next.type.isAnonymous||hasChild(next))){let mounted;if(!(mode&IterMode.IgnoreMounts)&&(mounted=MountedTree.get(next))&&!mounted.overlay)return new TreeNode(mounted.tree,start,i,parent);let inner=new TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side,mode)}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)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(pos){return this.nextChild(0,1,pos,2)}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2)}prop(prop){return this._tree.prop(prop)}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=MountedTree.get(this._tree))&&mounted.overlay){let rPos=pos-this.from,enterBracketed=mode&IterMode.EnterBracketed&&mounted.bracketed;for(let{from:from,to:to}of mounted.overlay){if((side>0||enterBracketed?from<=rPos:from<rPos)&&(side<0||enterBracketed?to>=rPos:to>rPos))return new TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this)}}return this.nextChild(0,1,pos,side,mode)}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val}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 getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null)for(let found=false;!found;){found=cur.type.is(before);if(!cur.nextSibling())return result}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[]}}function matchNodeContext(node,context,i=context.length-1){for(let p=node;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--}}return true}class BufferContext{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start}}class BufferNode extends BaseNode{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(context,_parent,index){super();this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]]}child(dir,pos,side){let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(pos){return this.child(1,pos,2)}childBefore(pos){return this.child(-1,pos,-2)}prop(prop){return this.type.prop(prop)}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4)}get nextSibling(){let{buffer:buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new BufferNode(this.context,this._parent,after);return this.externalSibling(1)}get prevSibling(){let{buffer:buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4))}get tree(){return null}toTree(){let children=[],positions=[];let{buffer:buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0)}return new Tree(this.type,children,positions,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iterStack(heads){if(!heads.length)return null;let pick=0,picked=heads[0];for(let i=1;i<heads.length;i++){let node=heads[i];if(node.from>picked.from||node.to<picked.to){picked=node;pick=i}}let next=picked instanceof TreeNode&&picked.index<0?null:picked.parent;let newHeads=heads.slice();if(next)newHeads[pick]=next;else newHeads.splice(pick,1);return new StackIterator(newHeads,picked)}class StackIterator{constructor(heads,node){this.heads=heads;this.node=node}get next(){return iterStack(this.heads)}}function stackIterator(tree,pos,side){let inner=tree.resolveInner(pos,side),layers=null;for(let scan=inner instanceof TreeNode?inner:inner.context.parent;scan;scan=scan.parent){if(scan.index<0){let parent=scan.parent;(layers||(layers=[inner])).push(parent.resolve(pos,side));scan=parent}else{let mount=MountedTree.get(scan.tree);if(mount&&mount.overlay&&mount.overlay[0].from<=pos&&mount.overlay[mount.overlay.length-1].to>=pos){let root=new TreeNode(mount.tree,mount.overlay[0].from+scan.from,-1,scan);(layers||(layers=[inner])).push(resolveNode(root,pos,side,false))}}}return layers?iterStack(layers):inner}class TreeCursor{get name(){return this.type.name}constructor(node,mode=0){this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;this.mode=mode&~IterMode.EnterBracketed;if(node instanceof TreeNode){this.yieldNode(node)}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index)}}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true}yieldBuf(index,type){this.index=index;let{start:start,buffer:buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true}yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node)}this.buffer=node.context;return this.yieldBuf(node.index,node.type)}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer:buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index)}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(pos){return this.enterChild(1,pos,2)}childBefore(pos){return this.enterChild(-1,pos,-2)}enter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side)}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent)}sibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer:buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4))}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after)}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(dir){let index,parent,{buffer:buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false}({index:index,parent:parent}=buffer)}else{({index:index,_parent:parent}=this._tree)}for(;parent;({index:index,_parent:parent}=parent)){if(index>-1)for(let i=index+dir,e=dir<0?-1:parent._tree.children.length;i!=e;i+=dir){let child=parent._tree.children[i];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false}}return true}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false}}next(enter=true){return this.move(1,enter)}prev(enter=true){return this.move(-1,enter)}moveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this}get node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan}index=this.stack[--d]}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue}if(!this.type.isAnonymous)mustLeave=true}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(!depth)return;if(this.nextSibling())break;this.parent();depth--;mustLeave=true}}}matchContext(context){if(!this.buffer)return matchNodeContext(this.node.parent,context);let{buffer:buffer}=this.buffer,{types:types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this._tree,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--}}return true}}function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch))}function buildTree(data){var _a;let{buffer:buffer,nodeSet:nodeSet,maxBufferLength:maxBufferLength=DefaultBufferLength,reused:reused=[],minRepeatType:minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children,positions,inRepeat,depth){let{id:id,start:start,end:end,size:size}=cursor;let lookAheadAtStart=lookAhead,contextAtStart=contextHash;if(size<0){cursor.next();if(size==-1){let node=reused[id];children.push(node);positions.push(start-parentStart);return}else if(size==-3){contextHash=id;return}else if(size==-4){lookAhead=id;return}else{throw new RangeError(`Unrecognized record size: ${size}`)}}let type=types[id],node,buffer;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer=findBufferSize(cursor.pos-minPos,inRepeat))){let data=new Uint16Array(buffer.size-buffer.skip);let endPos=cursor.pos-buffer.size,index=data.length;while(cursor.pos>endPos)index=copyToBuffer(buffer.start,data,index);node=new TreeBuffer(data,end-buffer.start,nodeSet);startPos=buffer.start-parentStart}else{let endPos=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);lastGroup=localChildren.length;lastEnd=cursor.end}cursor.next()}else if(depth>2500){takeFlatNode(start,endPos,localChildren,localPositions)}else{takeNode(start,endPos,localChildren,localPositions,localInRepeat,depth+1)}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type,contextAtStart);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make)}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end,contextAtStart)}}children.push(node);positions.push(startPos)}function takeFlatNode(parentStart,minPos,children,positions){let nodes=[];let nodeCount=0,stopAt=-1;while(cursor.pos>minPos){let{id:id,start:start,end:end,size:size}=cursor;if(size>4){cursor.next()}else if(stopAt>-1&&start<stopAt){break}else{if(stopAt<0)stopAt=end-maxBufferLength;nodes.push(id,start,end);nodeCount++;cursor.next()}}if(nodeCount){let buffer=new Uint16Array(nodeCount*4);let start=nodes[nodes.length-2];for(let i=nodes.length-3,j=0;i>=0;i-=3){buffer[j++]=nodes[i];buffer[j++]=nodes[i+1]-start;buffer[j++]=nodes[i+2]-start;buffer[j++]=j}children.push(new TreeBuffer(buffer,nodes[2]-start,nodeSet));positions.push(start-parentStart)}}function makeBalanced(type,contextHash){return(children,positions,length)=>{let lookAhead=0,lastI=children.length-1,last,lookAheadProp;if(lastI>=0&&(last=children[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead=positions[lastI]+last.length+lookAheadProp}return makeTree(type,children,positions,length,lookAhead,contextHash)}}function makeRepeatLeaf(children,positions,base,i,from,to,type,lookAhead,contextHash){let localChildren=[],localPositions=[];while(children.length>i){localChildren.push(children.pop());localPositions.push(positions.pop()+base-from)}children.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead-to,contextHash));positions.push(from-base)}function makeTree(type,children,positions,length,lookAhead,contextHash,props){if(contextHash){let pair=[NodeProp.contextHash,contextHash];props=props?[pair].concat(props):[pair]}if(lookAhead>25){let pair=[NodeProp.lookAhead,lookAhead];props=props?[pair].concat(props):[pair]}return new Tree(type,children,positions,length,props)}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize=fork.size;if(fork.id==inRepeat&&nodeSize>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue}let startPos=fork.pos-nodeSize;if(nodeSize<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3||fork.size==-4)localSkipped+=4;else break scan}else if(fork.id>=minRepeatType){localSkipped+=4}fork.next()}start=nodeStart;size+=nodeSize;skip+=localSkipped}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip}return result.size>4?result:undefined}function copyToBuffer(bufferStart,buffer,index){let{id:id,start:start,end:end,size:size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer,index)}buffer[--index]=startIndex;buffer[--index]=end-bufferStart;buffer[--index]=start-bufferStart;buffer[--index]=id}else if(size==-3){contextHash=id}else if(size==-4){lookAhead=id}return index}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1,0);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length)}const nodeSizeCache=new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break}size+=nodeSize(balanceType,child)}nodeSizeCache.set(node,size)}return size}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children,positions,from,to,offset){for(let i=from;i<to;){let groupFrom=i,groupStart=positions[i],groupSize=nodeSize(balanceType,children[i]);i++;for(;i<to;i++){let nextSize=nodeSize(balanceType,children[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize}if(i==groupFrom+1){if(groupSize>maxChild){let only=children[groupFrom];divide(only.children,only.positions,0,only.children.length,positions[groupFrom]+offset);continue}localChildren.push(children[groupFrom])}else{let length=positions[i-1]+children[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children,positions,groupFrom,i,groupStart,length,null,mkTree))}localPositions.push(groupStart+offset-start)}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length)}class TreeFragment{constructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(tree,fragments=[],partial=false){let result=[new TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result}static applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC)}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB}return result}}class Parser{startParse(input,fragments,ranges){if(typeof input=="string")input=new StringInput(input);ranges=!ranges?[new Range$1(0,input.length)]:ranges.length?ranges.map(r=>new Range$1(r.from,r.to)):[new Range$1(0,0)];return this.createParse(input,fragments||[],ranges)}parse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done}}}class StringInput{constructor(string){this.string=string}get length(){return this.string.length}chunk(from){return this.string.slice(from)}get lineChunks(){return false}read(from,to){return this.string.slice(from,to)}}new NodeProp({perNode:true});let nextTagID=0;class Tag{constructor(name,set,base,modified){this.name=name;this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++}toString(){let{name:name}=this;for(let mod of this.modified)if(mod.name)name=`${mod.name}(${name})`;return name}static define(nameOrParent,parent){let name=typeof nameOrParent=="string"?nameOrParent:"?";if(nameOrParent instanceof Tag)parent=nameOrParent;if(parent===null||parent===void 0?void 0:parent.base)throw new Error("Can not derive from a modified tag");let tag=new Tag(name,[],null,[]);tag.set.push(tag);if(parent)for(let t of parent.set)tag.set.push(t);return tag}static defineModifier(name){let mod=new Modifier(name);return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id))}}}let nextModifierID=0;class Modifier{constructor(name){this.name=name;this.instances=[];this.id=nextModifierID++}static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t=>t.base==base&&sameArray$1(mods,t.modified));if(exists)return exists;let set=[],tag=new Tag(base.name,set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(Modifier.get(parent,config));return tag}}function sameArray$1(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i])}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]))}}return sets.sort((a,b)=>b.length-a.length)}function styleTags(spec){let byName=Object.create(null);for(let prop in spec){let tags=spec[prop];if(!Array.isArray(tags))tags=[tags];for(let part of prop.split(" "))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest=="..."&&pos>0&&pos+3==part.length){mode=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(rest);if(!m)throw new RangeError("Invalid path: "+part);pieces.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next=="!"){mode=0;break}if(next!="/")throw new RangeError("Invalid path: "+part);rest=part.slice(pos)}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError("Invalid path: "+part);let rule=new Rule(tags,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner])}}return ruleNodeProp.add(byName)}const ruleNodeProp=new NodeProp({combine(a,b){let cur,root,take;while(a||b){if(!a||b&&a.depth>=b.depth){take=b;b=b.next}else{take=a;a=a.next}if(cur&&cur.mode==take.mode&&!take.context&&!cur.context)continue;let copy=new Rule(take.tags,take.mode,take.context);if(cur)cur.next=copy;else root=copy;cur=copy}return root}});class Rule{constructor(tags,mode,context,next){this.tags=tags;this.mode=mode;this.context=context;this.next=next}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(other){if(!other||other.depth<this.depth){this.next=other;return this}other.next=this.sort(other.next);return other}get depth(){return this.context?this.context.length:0}}Rule.empty=new Rule([],2,null);function tagHighlighter(tags,options){let map=Object.create(null);for(let style of tags){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class}let{scope:scope,all:all=null}=options||{};return{style:tags=>{let cls=all;for(let tag of tags){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+" "+tagClass:tagClass;break}}}return cls},scope:scope}}const t=Tag.define;const comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t();const tags={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string,docString:t(string),character:t(string),attributeValue:t(string),number:number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator:operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation:punctuation,separator:t(punctuation),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier("definition"),constant:Tag.defineModifier("constant"),function:Tag.defineModifier("function"),standard:Tag.defineModifier("standard"),local:Tag.defineModifier("local"),special:Tag.defineModifier("special")};for(let name in tags){let val=tags[name];if(val instanceof Tag)val.name=name}tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);let rangeFrom=[],rangeTo=[];(()=>{let numbers="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(s=>s?parseInt(s,36):1);for(let i=0,n=0;i<numbers.length;i++)(i%2?rangeTo:rangeFrom).push(n=n+numbers[i])})();function isExtendingChar(code){if(code<768)return false;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code<rangeFrom[mid])to=mid;else if(code>=rangeTo[mid])from=mid+1;else return true;if(from==to)return false}}function isRegionalIndicator(code){return code>=127462&&code<=127487}const ZWJ=8205;function findClusterBreak$1(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending)}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2}if(countBefore%2==0)break;else pos+=2}else{break}}return pos}function prevClusterBreak(str,pos,includeExtending){while(pos>1){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--}return 0}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536}function surrogateLow(ch){return ch>=56320&&ch<57344}function surrogateHigh(ch){return ch>=55296&&ch<56320}function codePointSize(code){return code<65536?1:2}class Text{lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0)}line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0)}replace(from,to,text){[from,to]=clip(this,from,to);let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length)}append(other){return this.replace(this.length,this.length,other)}slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from)}eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true}}iter(dir=1){return new RawTextCursor(this,dir)}iterRange(from,to=this.length){return new PartialTextCursor(this,from,to)}iterLines(from,to){let inner;if(from==null){inner=this.iter()}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to))}return new LineCursor(inner)}toString(){return this.sliceString(0)}toJSON(){let lines=[];this.flatten(lines);return lines}constructor(){}static of(text){if(text.length==0)throw new RangeError("A document must have at least one line");if(text.length==1&&!text[0])return Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]))}}class TextLeaf extends Text{constructor(text,length=textLength(text)){super();this.text=text;this.length=length}get lines(){return this.text.length}get children(){return null}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new TextLeaf(joined,prev.length+text.length))}else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)))}}else{target.push(text)}}replace(from,to,text){if(!(text instanceof TextLeaf))return super.replace(from,to,text);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new TextLeaf(lines,newLen);return TextNode.from(TextLeaf.split(lines,[]),newLen)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1}return result}flatten(target){for(let line of this.text)target.push(line)}scanIdentical(){return 0}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new TextLeaf(part,len));part=[];len=-1}}if(len>-1)target.push(new TextLeaf(part,len));return target}}class TextNode extends Text{constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines}lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen)}pos=end+1}}replace(from,to,text){[from,to]=clip(this,from,to);if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new TextNode(copy,this.length-(to-from)+text.length)}return super.replace(pos,end,updated)}pos=end+1}return super.replace(from,to,text)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1}return result}flatten(target){for(let child of this.children)child.flatten(target)}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length)}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof TextNode){for(let node of child.children)add(node)}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child)}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length)}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child)}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new TextNode(chunked,length)}}Text.empty=new TextLeaf([""],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false}else target.push(line)}pos=end+1}return target}function sliceText(text,from,to){return appendText(text,[""],from,to)}class RawTextCursor{constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value="";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1]}nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value="";return this}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop()}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value="\n";return this}skip--}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this}skip-=next.length}else{let next=top.children[offset+(dir<0?-1:0)];if(skip>next.length){skip-=next.length;this.offsets[last]+=dir}else{if(dir<0)this.offsets[last]--;this.nodes.push(next);this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1)}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length}return this.nextInner(skip,this.dir)}}class PartialTextCursor{constructor(text,start,end){this.value="";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end)}nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value="";this.done=true;return this}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value:value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(inner){this.inner=inner;this.afterBreak=true;this.value="";this.done=false}next(skip=0){let{done:done,lineBreak:lineBreak,value:value}=this.inner.next(skip);if(done&&this.afterBreak){this.value="";this.afterBreak=false}else if(done){this.done=true;this.value=""}else if(lineBreak){if(this.afterBreak){this.value=""}else{this.afterBreak=true;this.next()}}else{this.value=value;this.afterBreak=false}return this}get lineBreak(){return false}}if(typeof Symbol!="undefined"){Text.prototype[Symbol.iterator]=function(){return this.iter()};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this}}class Line{constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text}get length(){return this.to-this.from}}function clip(text,from,to){from=Math.max(0,Math.min(text.length,from));return[from,Math.max(from,Math.min(text.length,to))]}function findClusterBreak(str,pos,forward=true,includeExtending=true){return findClusterBreak$1(str,pos,forward,includeExtending)}const DefaultSplit=/\r\n?|\n/;var MapMode=function(MapMode){MapMode[MapMode["Simple"]=0]="Simple";MapMode[MapMode["TrackDel"]=1]="TrackDel";MapMode[MapMode["TrackBefore"]=2]="TrackBefore";MapMode[MapMode["TrackAfter"]=3]="TrackAfter";return MapMode}(MapMode||(MapMode={}));class ChangeDesc{constructor(sections){this.sections=sections}get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result}get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins}return result}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len}else{posB+=ins}posA+=len}}iterChangedRanges(f,individual=false){iterChanges(this,f,individual)}get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len)}return new ChangeDesc(sections)}composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other)}mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before)}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins}posA=endA}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB}touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?"cover":true;pos=end}return false}toString(){let result="";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?" ":"")+len+(ins>=0?":"+ins:"")}return result}toJSON(){return this.sections}static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(json)}static create(sections){return new ChangeDesc(sections)}}class ChangeSet extends ChangeDesc{constructor(sections,inserted){super(sections);this.inserted=inserted}apply(doc){if(this.length!=doc.length)throw new RangeError("Applying change set to a document with the wrong length");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc}mapDesc(other,before=false){return mapSet(this,other,before,true)}invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty)}pos+=len}return new ChangeSet(sections,inserted)}compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true)}map(other,before=false){return other.empty?this:mapSet(this,other,before,true)}iterChanges(f,individual=false){iterChanges(this,f,individual)}get desc(){return ChangeDesc.create(this.sections)}filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1);addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len);pos+=len}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)}}toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()))}return parts}static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub)}else if(spec instanceof ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec}else{let{from:from,to:to=from,insert:insert}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert?Text.empty:typeof insert=="string"?Text.of(insert.split(lineSep||DefaultSplit)):insert;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to}}process(changes);flush(!total);return total}static empty(length){return new ChangeSet(length?[length,-1]:[],[])}static fromJSON(json){if(!Array.isArray(json))throw new RangeError("Invalid JSON representation of ChangeSet");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part=="number"){sections.push(part,-1)}else if(!Array.isArray(part)||typeof part[0]!="number"||part.some((e,i)=>i&&typeof e!="string")){throw new RangeError("Invalid JSON representation of ChangeSet")}else if(part.length==1){sections.push(part[0],0)}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length)}}return new ChangeSet(sections,inserted)}static createSet(sections,inserted){return new ChangeSet(sections,inserted)}}function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(last>=0&&len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins}else sections.push(len,ins)}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value)}else{while(values.length<index)values.push(Text.empty);values.push(value)}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++]}f(posA,endA,posB,endB,text);posA=endA;posB=endB}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.done&&b.len||b.done&&a.len){throw new Error("Mismatched change set lengths")}else if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len)}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len=b.len;addSection(sections,b.ins,-1);while(len){let piece=Math.min(a.len,len);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert)addInsert(insert,sections,a.text);inserted=a.i}a.forward(piece);len-=piece}b.next()}else if(a.ins>=0){let len=0,left=a.len;while(left){if(b.ins==-1){let piece=Math.min(left,b.len);len+=piece;left-=piece;b.forward(piece)}else if(b.ins==0&&b.len<left){left-=b.len;b.next()}else{break}}addSection(sections,len,inserted<a.i?a.ins:0);if(insert&&inserted<a.i)addInsert(insert,sections,a.text);inserted=a.i;a.forward(a.len-left)}else if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else{throw new Error("Mismatched change set lengths")}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else if(a.ins==0){addSection(sections,a.len,0,open);a.next()}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert)addInsert(insert,sections,b.text);b.next()}else if(a.done||b.done){throw new Error("Mismatched change set lengths")}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert&&insB)addInsert(insert,sections,b.text)}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert)addInsert(insert,sections,a.textBit(len))}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert&&!b.off)addInsert(insert,sections,b.text)}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len)}}}class SectionIter{constructor(set){this.set=set;this.i=0;this.next()}next(){let{sections:sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++]}else{this.len=0;this.ins=-2}this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index]}textBit(len){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?undefined:this.off+len)}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len}}}class SelectionRange{constructor(from,to,flags,goalColumn){this.from=from;this.to=to;this.flags=flags;this.goalColumn=goalColumn}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let level=this.flags&7;return level==7?null:level}map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc)}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1)}return from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags,this.goalColumn)}extend(from,to=from,assoc=0){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to,undefined,undefined,assoc);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head,undefined,undefined,assoc)}eq(other,includeAssoc=false){return this.anchor==other.anchor&&this.head==other.head&&this.goalColumn==other.goalColumn&&(!includeAssoc||!this.empty||this.assoc==other.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(json){if(!json||typeof json.anchor!="number"||typeof json.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(json.anchor,json.head)}static create(from,to,flags,goalColumn){return new SelectionRange(from,to,flags,goalColumn)}}class EditorSelection{constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex}map(change,assoc=-1){if(change.empty)return this;return EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex)}eq(other,includeAssoc=false){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i],includeAssoc))return false;return true}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(range,main=true){return EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1)}replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return EditorSelection.create(ranges,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex}}static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!="number"||json.main>=json.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main)}static single(anchor,head=anchor){return new EditorSelection([EditorSelection.range(anchor,head)],0)}static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError("A selection needs at least one range");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to}return new EditorSelection(ranges,mainIndex)}static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?8:16)|(bidiLevel==null?7:Math.min(6,bidiLevel)),goalColumn)}static range(anchor,head,goalColumn,bidiLevel,assoc){let flags=bidiLevel==null?7:Math.min(6,bidiLevel);if(!assoc&&anchor!=head)assoc=head<anchor?1:-1;if(assoc)flags|=assoc<0?8:16;return head<anchor?SelectionRange.create(head,anchor,flags|32,goalColumn):SelectionRange.create(anchor,head,flags,goalColumn)}static undirectionalRange(from,to){return SelectionRange.create(from,to,64,undefined)}static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?EditorSelection.range(to,from):EditorSelection.range(from,to))}}return new EditorSelection(ranges,mainIndex)}}function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(combine,compareInput,compare,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables=="function"?enables(this):enables}get reader(){return this}static define(config={}){return new Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables)}of(value){return new FacetProvider([],this,0,value)}compute(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,1,get)}computeN(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,2,get)}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)))}}function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i])}class FacetProvider{constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++}dynamicSlot(addresses){var _a;let getter=this.value;let compare=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep=="doc")depDoc=true;else if(dep=="selection")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id])}return{create(state){state.values[idx]=getter(state);return 1},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare):!compare(newVal,state.values[idx])){state.values[idx]=newVal;return 1}}return 0},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true)||(multi?compareArray(newVal=getter(state),oldVal,compare):compare(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0}}else{newVal=getter(state)}state.values[idx]=newVal;return 1}}}get extension(){return this}}function compareArray(a,b,compare){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare(a[i],b[i]))return false;return true}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value)}return facet.combine(values)}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0}state.values[idx]=value;return 1}}}const initField=Facet.define({static:true});class StateField{constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=undefined}static define(config){let field=new StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state)}slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1},reconfigure:(state,oldState)=>{let init=state.facet(initField),oldInit=oldState.facet(initField),reInit;if((reInit=init.find(i=>i.field==this))&&reInit!=oldInit.find(i=>i.field==this)){state.values[idx]=reInit.create(state);return 1}if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0}state.values[idx]=this.create(state);return 1}}}init(create){return[this,initField.of({field:this,create:create})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(inner,prec){this.inner=inner;this.prec=prec}get extension(){return this}}class Compartment{of(ext){return new CompartmentInstance(this,ext)}reconfigure(content){return Compartment.reconfigure.of({compartment:this,extension:content})}get(state){return state.config.compartments.get(this)}}class CompartmentInstance{constructor(compartment,inner){this.compartment=compartment;this.inner=inner}get extension(){return this}}class Configuration{constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0)}staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1]}static resolve(base,compartments,oldState){let fields=[];let facets=Object.create(null);let newCompartments=new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext)}let address=Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a))}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet))}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value)}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value)}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a))}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers))}}let dynamic=dynamicSlots.map(f=>f(address));return new Configuration(base,newCompartments,dynamic,address,staticValues,facets)}}function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=new Map;function inner(ext,prec){let known=seen.get(ext);if(known!=null){if(known<=prec)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment)}seen.set(ext,prec);if(Array.isArray(ext)){for(let e of ext)inner(e,prec)}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec)}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec)}else if(ext instanceof StateField){result[prec].push(ext);if(ext.provides)inner(ext.provides,prec)}else if(ext instanceof FacetProvider){result[prec].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default)}else{let content=ext.extension;if(!content)throw new Error(`Unrecognized extension value in extension set (${ext}).`);if(content==ext)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content,prec)}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b))}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error("Cyclic dependency between fields and/or facets");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1]}const languageData=Facet.define();const allowMultipleSelections=Facet.define({combine:values=>values.some(v=>v),static:true});const lineSeparator=Facet.define({combine:values=>values.length?values[0]:undefined,static:true});const changeFilter=Facet.define();const transactionFilter=Facet.define();const transactionExtender=Facet.define();const readOnly=Facet.define({combine:values=>values.length?values[0]:false});class Annotation{constructor(type,value){this.type=type;this.value=value}static define(){return new AnnotationType}}class AnnotationType{of(value){return new Annotation(this,value)}}class StateEffectType{constructor(map){this.map=map}of(value){return new StateEffect(this,value)}}class StateEffect{constructor(type,value){this.type=type;this.value=value}map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===undefined?undefined:mapped==this.value?this:new StateEffect(this.type,mapped)}is(type){return this.type==type}static define(spec={}){return new StateEffectType(spec.map||(v=>v))}static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped)}return result}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==Transaction.time))this.annotations=annotations.concat(Transaction.time.of(Date.now()))}static create(startState,changes,selection,effects,annotations,scrollIntoView){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView)}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(){if(!this._state)this.startState.applyTransaction(this);return this._state}annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return undefined}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++]}else if(iB<b.length){from=b[iB++];to=b[iB++]}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes)}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA)}return{changes:changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView}}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations:annotations,scrollIntoView:!!spec.scrollIntoView}}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq)}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr)}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break}if(Array.isArray(value))result=result===true?value:joinRanges(result,value)}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length)}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView)}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered=filters[i](tr);if(filtered instanceof Transaction)tr=filtered;else if(Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction)tr=filtered[0];else tr=resolveTransaction(state,asArray(filtered),false)}return tr}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true)}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView)}const none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value]}var CharCategory=function(CharCategory){CharCategory[CharCategory["Word"]=0]="Word";CharCategory[CharCategory["Space"]=1]="Space";CharCategory[CharCategory["Other"]=2]="Other";return CharCategory}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\w/.test(ch)||ch>"€"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true}return false}function makeCategorizer(wordChars){return char=>{if(!/\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null}field(field,require=true){let addr=this.config.address[field.id];if(addr==null){if(require)throw new RangeError("Field is not present in this state");return undefined}ensureAddr(this,addr);return getAddr(this,addr)}update(...specs){return resolveTransaction(this,specs,true)}applyTransaction(tr){let conf=this.config,{base:base,compartments:compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null}compartments.set(effect.value.compartment,effect.value.extension)}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value)}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values}else{startValues=tr.startState.values.slice()}let selection=tr.startState.facet(allowMultipleSelections)?tr.newSelection:tr.newSelection.asSingle();new EditorState(conf,tr.newDoc,selection,startValues,(state,slot)=>slot.update(state,tr),tr)}replaceSelection(text){if(typeof text=="string")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}))}changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy))}return{changes:changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects:effects}}changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator))}toText(string){return Text.of(string.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak)}facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr)}toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this)}return result}static fromJSON(json,config={},fields){if(!json||typeof json.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)))}}return EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit})}static create(config={}){let configuration=Configuration.resolve(config.extensions||[],new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||"").split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}get readOnly(){return this.facet(readOnly)}phrase(phrase,...insert){for(let map of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break}if(insert.length)phrase=phrase.replace(/\$(\$|\d*)/g,(m,i)=>{if(i=="$")return"$";let n=+(i||1);return!n||n>insert.length?m:insert[n-1]});return phrase}languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name])}}return values}charCategorizer(at){let chars=this.languageDataAt("wordChars",at);return makeCategorizer(chars.length?chars[0]:"")}wordAt(pos){let{text:text,from:from,length:length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev}while(end<length){let next=findClusterBreak(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next}return start==end?null:EditorSelection.range(start+from,end+from)}}EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();class RangeValue{eq(other){return this==other}range(from,to=from){return Range.create(from,to,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;function cmpVal(a,b){return a==b||a.constructor==b.constructor&&a.eq(b)}class Range{constructor(from,to,value){this.from=from;this.to=to;this.value=value}static create(from,to,value){return new Range(from,to,value)}}function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide}class Chunk{constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint}get length(){return this.to[this.to.length-1]}findIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos)}return{mapped:value.length?new Chunk(from,to,value,maxPoint):null,pos:newPos}}}class RangeSet{constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint}static create(chunkPos,chunk,nextLayer,maxPoint){return new RangeSet(chunkPos,chunk,nextLayer,maxPoint)}get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size}chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length}update(updateSpec){let{add:add=[],sort:sort=false,filterFrom:filterFrom=0,filterTo:filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range)}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk()}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value))}cur.next()}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?RangeSet.empty:this.nextLayer.update({add:spill,filter:filter,filterFrom:filterFrom,filterTo:filterTo}))}map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start))}else if(touch===true){let{mapped:mapped,pos:pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos)}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new RangeSet(chunkPos,chunks,next||RangeSet.empty,maxPoint)}between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return}this.nextLayer.between(from,to,f)}iter(from=0){return HeapCursor.from([this]).goto(from)}get isEmpty(){return this.nextLayer==this}static iter(sets,from=0){return HeapCursor.from(sets).goto(from)}static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator)}static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!cmpVal(sideA.point,sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next()}}static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:cursor.point.startSide<0?active.length:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length)}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo)}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next()}}static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish()}static join(sets){if(!sets.length)return RangeSet.empty;let result=sets[sets.length-1];for(let i=sets.length-2;i>=0;i--){for(let layer=sets[i];layer!=RangeSet.empty;layer=layer.nextLayer)result=new RangeSet(layer.chunkPos,layer.chunk,result,Math.max(layer.maxPoint,result.maxPoint))}return result}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur}return ranges}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{finishChunk(newArrays){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(newArrays){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(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(from,to,value)}addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true}addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true}finish(){return this.finishInner(RangeSet.empty)}finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result}}function findSharedChunks(a,b,textDiff){let inA=new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=new Set;for(let set of b)for(let i=0;i<set.chunk.length;i++){let known=inA.get(set.chunk[i]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set.chunkPos[i]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set.chunk[i].length)))shared.add(set.chunk[i])}return shared}class LayerCursor{constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex)}this.next()}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++}this.rangeIndex=0}else{this.rangeIndex=index}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next()}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide}}class HeapCursor{constructor(heap){this.heap=heap}static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i))}}return heap.length==1?heap[0]:new HeapCursor(heap)}get startSide(){return this.value?this.value.startSide:0}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next()}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0)}}}function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex}}class SpanCursor{constructor(sets,skip,minPoint){this.minPoint=minPoint;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=HeapCursor.from(sets,skip,minPoint)}goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side)}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo)}addActive(trackOpen){let i=0,{value:value,to:to,rank:rank}=this.cursor;while(i<this.activeRank.length&&(rank-this.activeRank[i]||to-this.activeTo[i])>0)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo)}next(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break}this.removeActive(a);if(trackOpen)remove(trackOpen,a)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next()}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next()}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i])}return active.reverse()}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open}}function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;let bounds=!!comparator.boundChange;for(let boundChange=false;;){let dEnd=a.to+dPos-b.to,diff=dEnd||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);let point=a.point||b.point;if(point){if(!(a.point&&b.point&&cmpVal(a.point,b.point)&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);boundChange=false}else{if(boundChange)comparator.boundChange(pos);if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);if(bounds&&clipEnd<endB&&(dEnd||a.openEnd(end)!=b.openEnd(end)))boundChange=true}if(end>endB)break;pos=end;if(diff<=0)a.next();if(diff>=0)b.next()}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!cmpVal(a[i],b[i]))return false;return true}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop()}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i]}return found}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak(string,i)}return string.length}const C="ͼ";const COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C);const SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet");const top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(spec,options){this.rules=[];let{finish:finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\s*/)}function render(selectors,spec,target,isKeyframes){let local=[],isAt=/^@(\w+)\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]=="keyframes";if(isAt&&spec==null)return target.push(selectors[0]+";");for(let prop in spec){let value=spec[prop];if(/&/.test(prop)){render(prop.split(/,\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target)}else if(value&&typeof value=="object"){if(!isAt)throw new RangeError("The value of a property ("+prop+") should be a primitive value.");render(splitSelector(prop),value,local,keyframes)}else if(value!=null){local.push(prop.replace(/_.*/,"").replace(/[A-Z]/g,l=>"-"+l.toLowerCase())+": "+value+";")}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(", ")+" {"+local.join(" ")+"}")}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36)}static mount(root,modules,options){let set=root[SET],nonce=options&&options.nonce;if(!set)set=new StyleSet(root,nonce);else if(nonce)set.setNonce(nonce);set.mount(Array.isArray(modules)?modules:[modules],root)}}let adoptedSet=new Map;class StyleSet{constructor(root,nonce){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet;adoptedSet.set(doc,this)}else{this.styleTag=doc.createElement("style");if(nonce)this.styleTag.setAttribute("nonce",nonce)}this.modules=[];root[SET]=this}mount(modules,root){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++)}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++}}if(sheet){if(root.adoptedStyleSheets.indexOf(this.sheet)<0)root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets]}else{let text="";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+"\n";this.styleTag.textContent=text;let target=root.head||root;if(this.styleTag.parentNode!=target)target.insertBefore(this.styleTag,target.firstChild)}}setNonce(nonce){if(this.styleTag&&this.styleTag.getAttribute("nonce")!=nonce)this.styleTag.setAttribute("nonce",nonce)}}var base={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:"'"};var shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'};for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i)}for(var code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];let nav=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""};let doc=typeof document!="undefined"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent);const ie_upto10=/MSIE \d/.test(nav.userAgent);const ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent);const ie=!!(ie_upto10||ie_11up||ie_edge);const gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent);const chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent);const webkit="webkitFontSmoothing"in doc.documentElement.style;const safari=!ie&&/Apple Computer/.test(nav.vendor);const ios=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/Mac/.test(nav.platform),ie:ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko:gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios:ios,android:/Android\b/.test(nav.userAgent),webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,safari:safari,safari_version:safari?+(/\bVersion\/(\d+(\.\d+)?)/.exec(nav.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function combineAttrs(source,target){for(let name in source){if(name=="class"&&target.class)target.class+=" "+source.class;else if(name=="style"&&target.style)target.style+=";"+source.style;else target[name]=source[name]}return target}const noAttrs=Object.create(null);function attrsEq(a,b,ignore){if(a==b)return true;if(!a)a=noAttrs;if(!b)b=noAttrs;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length-0!=keysB.length-0)return false;for(let key of keysA){if(key!=ignore&&(keysB.indexOf(key)==-1||a[key]!==b[key]))return false}return true}function setAttrs(dom,attrs){for(let i=dom.attributes.length-1;i>=0;i--){let name=dom.attributes[i].name;if(attrs[name]==null)dom.removeAttribute(name)}for(let name in attrs){let value=attrs[name];if(name=="style")dom.style.cssText=value;else if(dom.getAttribute(name)!=value)dom.setAttribute(name,value)}}function updateAttrs(dom,prev,attrs){let changed=false;if(prev)for(let name in prev)if(!(attrs&&name in attrs)){changed=true;if(name=="style")dom.style.cssText="";else dom.removeAttribute(name)}if(attrs)for(let name in attrs)if(!(prev&&prev[name]==attrs[name])){changed=true;if(name=="style")dom.style.cssText=attrs[name];else dom.setAttribute(name,attrs[name])}return changed}function getAttrs(dom){let attrs=Object.create(null);for(let i=0;i<dom.attributes.length;i++){let attr=dom.attributes[i];attrs[attr.name]=attr.value}return attrs}class WidgetType{eq(widget){return false}updateDOM(dom,view,from){return false}compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(event){return true}coordsAt(dom,pos,side){return null}get isHidden(){return false}get editable(){return false}destroy(dom){}}var BlockType=function(BlockType){BlockType[BlockType["Text"]=0]="Text";BlockType[BlockType["WidgetBefore"]=1]="WidgetBefore";BlockType[BlockType["WidgetAfter"]=2]="WidgetAfter";BlockType[BlockType["WidgetRange"]=3]="WidgetRange";return BlockType}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec}get heightRelevant(){return false}static mark(spec){return new MarkDecoration(spec)}static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block&&!spec.inlineOrder?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false)}static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8}else{let{start:start,end:end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true)}static line(spec){return new LineDecoration(spec)}static set(of,sort=false){return RangeSet.of(of,sort)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(spec){let{start:start,end:end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||"span";this.attrs=spec.class&&spec.attributes?combineAttrs(spec.attributes,{class:spec.class}):spec.class?{class:spec.class}:spec.attributes||noAttrs}eq(other){return this==other||other instanceof MarkDecoration&&this.tagName==other.tagName&&attrsEq(this.attrs,other.attrs)}range(from,to=from){if(from>=to)throw new RangeError("Mark decorations may not be empty");return super.range(from,to)}}MarkDecoration.prototype.point=false;class LineDecoration extends Decoration{constructor(spec){super(-2e8,-2e8,null,spec)}eq(other){return other instanceof LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes)}range(from,to=from){if(to!=from)throw new RangeError("Line decoration ranges must be zero-length");return super.range(from,to)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;class PointDecoration extends Decoration{constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter}get type(){return this.startSide!=this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(other){return other instanceof PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&to!=from)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(from,to)}}PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block}}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b))}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to)}class BlockWrapper extends RangeValue{constructor(tagName,attributes,rank){super();this.tagName=tagName;this.attributes=attributes;this.rank=rank}eq(other){return other==this||other instanceof BlockWrapper&&this.tagName==other.tagName&&attrsEq(this.attributes,other.attributes)}static create(spec){return new BlockWrapper(spec.tagName,spec.attributes||noAttrs,spec.rank==null?50:Math.max(0,Math.min(spec.rank,100)))}static set(of,sort=false){return RangeSet.of(of,sort)}}BlockWrapper.prototype.startSide=BlockWrapper.prototype.endSide=-1;function getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument}else{target=root}return target.getSelection()}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode)}catch(_){return false}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[]}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index}}function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(node.nodeName)}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName=="DIV")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable=="false")return false;off=dir<0?maxOffset(node):0}else{return false}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom}}function windowRect(win){let vp=win.visualViewport;if(vp)return{left:0,right:vp.width,top:0,bottom:vp.height};return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight}}function getScale(elt,rect){let scaleX=rect.width/elt.offsetWidth;let scaleY=rect.height/elt.offsetHeight;if(scaleX>.995&&scaleX<1.005||!isFinite(scaleX)||Math.abs(rect.width-elt.offsetWidth)<1)scaleX=1;if(scaleY>.995&&scaleY<1.005||!isFinite(scaleY)||Math.abs(rect.height-elt.offsetHeight)<1)scaleY=1;return{scaleX:scaleX,scaleY:scaleY}}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc=dom.ownerDocument,win=doc.defaultView||window;for(let cur=dom,stop=false;cur&&!stop;){if(cur.nodeType==1){let bounding,top=cur==doc.body;let scaleX=1,scaleY=1;if(top){bounding=windowRect(win)}else{if(/^(fixed|sticky)$/.test(getComputedStyle(cur).position))stop=true;if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue}let rect=cur.getBoundingClientRect();({scaleX:scaleX,scaleY:scaleY}=getScale(cur,rect));bounding={left:rect.left,right:rect.left+cur.clientWidth*scaleX,top:rect.top,bottom:rect.top+cur.clientHeight*scaleY}}let moveX=0,moveY=0;if(y=="nearest"){if(rect.top<bounding.top+yMargin){moveY=rect.top-(bounding.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+yMargin}else if(rect.bottom>bounding.bottom-yMargin){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=rect.top-(bounding.top+yMargin)}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y=="center"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y=="start"||y=="center"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top}if(x=="nearest"){if(rect.left<bounding.left+xMargin){moveX=rect.left-(bounding.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+xMargin}else if(rect.right>bounding.right-xMargin){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=rect.left-(bounding.left+xMargin)}}else{let targetLeft=x=="center"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x=="start"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left}if(moveX||moveY){if(top){win.scrollBy(moveX,moveY)}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY/scaleY;movedY=(cur.scrollTop-start)*scaleY}if(moveX){let start=cur.scrollLeft;cur.scrollLeft+=moveX/scaleX;movedX=(cur.scrollLeft-start)*scaleX}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x="nearest";if(movedY&&Math.abs(movedY-moveY)<1)y="nearest"}}if(top)break;if(rect.top<bounding.top||rect.bottom>bounding.bottom||rect.left<bounding.left||rect.right>bounding.right)rect={left:Math.max(rect.left,bounding.left),right:Math.min(rect.right,bounding.right),top:Math.max(rect.top,bounding.top),bottom:Math.min(rect.bottom,bounding.bottom)};cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}}function scrollableParents(dom,getX=true){let doc=dom.ownerDocument,x=null,y=null;for(let cur=dom.parentNode;cur;){if(cur==doc.body||(!getX||x)&&y){break}else if(cur.nodeType==1){if(!y&&cur.scrollHeight>cur.clientHeight)y=cur;if(getX&&!x&&cur.scrollWidth>cur.clientWidth)x=cur;cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}return{x:x,y:y}}class DOMSelectionState{constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0}eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset}setRange(range){let{anchorNode:anchorNode,focusNode:focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0))}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset}}let preventScrollSupported=null;if(browser.safari&&browser.safari_version>=26)preventScrollSupported=false;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true}}:undefined);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top=stack[i++],left=stack[i++];if(elt.scrollTop!=top)elt.scrollTop=top;if(elt.scrollLeft!=left)elt.scrollLeft=left}}}let scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range}function dispatchKey(elt,name,code,mods){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};if(mods)({altKey:options.altKey,ctrlKey:options.ctrlKey,shiftKey:options.shiftKey,metaKey:options.metaKey}=mods);let down=new KeyboardEvent("keydown",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent("keyup",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode}return null}function atElementStart(doc,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable=="false")offset--;else{node=prev;offset=maxOffset(node)}}else if(node==doc){return true}else{offset=domIndex(node);node=node.parentNode}}}function isScrolledToBottom(elt){if(elt instanceof Window)return elt.pageYOffset>Math.max(0,elt.document.documentElement.scrollHeight-elt.innerHeight-4);return elt.scrollTop>Math.max(1,elt.scrollHeight-elt.clientHeight-4)}function textNodeBefore(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset>0){return{node:node,offset:offset}}else if(node.nodeType==1&&offset>0){if(node.contentEditable=="false")return null;node=node.childNodes[offset-1];offset=maxOffset(node)}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node);node=node.parentNode}else{return null}}}function textNodeAfter(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset<node.nodeValue.length){return{node:node,offset:offset}}else if(node.nodeType==1&&offset<node.childNodes.length){if(node.contentEditable=="false")return null;node=node.childNodes[offset];offset=0}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node)+1;node=node.parentNode}else{return null}}}class DOMPos{constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise}static before(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom),precise)}static after(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom)+1,precise)}}var Direction=function(Direction){Direction[Direction["LTR"]=0]="LTR";Direction[Direction["RTL"]=1]="RTL";return Direction}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result}const LowTypes=dec("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008");const ArabicTypes=dec("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333");const Brackets=Object.create(null),BracketStack=[];for(let p of["()","[]","{}"]){let l=p.charCodeAt(0),r=p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8204?256:64336<=ch&&ch<=65023?4:1}const BidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class BidiSpan{get dir(){return this.level%2?RTL:LTR}constructor(from,to,level){this.from=from;this.to=to;this.level=level}side(end,dir){return this.dir==dir==end?this.to:this.from}forward(forward,dir){return forward==(this.dir==dir)}static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i}}if(maybe<0)throw new RangeError("Index out of range");return maybe}}function isolatesEq(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let iA=a[i],iB=b[i];if(iA.from!=iB.from||iA.to!=iB.to||iA.direction!=iB.direction||!isolatesEq(iA.inner,iB.inner))return false}return true}const types=[];function computeCharTypes(line,rFrom,rTo,isolates,outerType){for(let iI=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;let prevType=iI?256:outerType;for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type}for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=types[i];if(type==128){if(i<to-1&&prev==types[i+1]&&prev&24)type=types[i]=prev;else types[i]=256}else if(type==64){let end=i+1;while(end<to&&types[end]==64)end++;let replace=i&&prev==8||end<rTo&&types[end]==8?prevStrong==1?1:8:256;for(let j=i;j<end;j++)types[j]=replace;i=end-1}else if(type==8&&prevStrong==1){types[i]=1}prev=type;if(type&7)prevStrong=type}}}function processBracketPairs(line,rFrom,rTo,isolates,outerType){let oppositeType=outerType==1?2:1;for(let iI=0,sI=0,context=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from,ch,br,type;i<to;i++){if(br=Brackets[ch=line.charCodeAt(i)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type)types[i]=types[BracketStack[sJ]]=type;sI=sJ;break}}}else if(BracketStack.length==189){break}else{BracketStack[sI++]=i;BracketStack[sI++]=ch;BracketStack[sI++]=context}}else if((type=types[i])==2||type==1){let embed=type==outerType;context=embed?0:1;for(let sJ=sI-3;sJ>=0;sJ-=3){let cur=BracketStack[sJ+2];if(cur&2)break;if(embed){BracketStack[sJ+2]|=2}else{if(cur&4)break;BracketStack[sJ+2]|=4}}}}}}function processNeutrals(rFrom,rTo,isolates,outerType){for(let iI=0,prev=outerType;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from;i<to;){let type=types[i];if(type==256){let end=i+1;for(;;){if(end==to){if(iI==isolates.length)break;end=isolates[iI++].to;to=iI<isolates.length?isolates[iI].from:rTo}else if(types[end]==256){end++}else{break}}let beforeL=prev==1;let afterL=(end<rTo?types[end]:outerType)==1;let replace=beforeL==afterL?beforeL?1:2:outerType;for(let j=end,jI=iI,fromJ=jI?isolates[jI-1].to:rFrom;j>i;){if(j==fromJ){j=isolates[--jI].from;fromJ=jI?isolates[jI-1].to:rFrom}types[--j]=replace}i=end}else{prev=type;i++}}}}function emitSpans(line,from,to,level,baseLevel,isolates,order){let ourType=level%2?2:1;if(level%2==baseLevel%2){for(let iCh=from,iI=0;iCh<to;){let sameDir=true,isNum=false;if(iI==isolates.length||iCh<isolates[iI].from){let next=types[iCh];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI<isolates.length&&iScan==isolates[iI].from){if(isNum)break run;let iso=isolates[iI];if(!sameDir)for(let upto=iso.to,jI=iI+1;;){if(upto==to)break run;if(jI<isolates.length&&isolates[jI].from==upto)upto=isolates[jI++].to;else if(types[upto]==ourType)break run;else break}iI++;if(recurse){recurse.push(iso)}else{if(iso.from>iCh)order.push(new BidiSpan(iCh,iso.from,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.to}iScan=iso.to}else if(iScan==to||(sameDir?types[iScan]!=ourType:types[iScan]==ourType)){break}else{iScan++}}if(recurse)emitSpans(line,iCh,iScan,level+1,baseLevel,recurse,order);else if(iCh<iScan)order.push(new BidiSpan(iCh,iScan,localLevel));iCh=iScan}}else{for(let iCh=to,iI=isolates.length;iCh>from;){let sameDir=true,isNum=false;if(!iI||iCh>isolates[iI-1].to){let next=types[iCh-1];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI&&iScan==isolates[iI-1].to){if(isNum)break run;let iso=isolates[--iI];if(!sameDir)for(let upto=iso.from,jI=iI;;){if(upto==from)break run;if(jI&&isolates[jI-1].to==upto)upto=isolates[--jI].from;else if(types[upto-1]==ourType)break run;else break}if(recurse){recurse.push(iso)}else{if(iso.to<iCh)order.push(new BidiSpan(iso.to,iCh,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.from}iScan=iso.from}else if(iScan==from||(sameDir?types[iScan-1]!=ourType:types[iScan-1]==ourType)){break}else{iScan--}}if(recurse)emitSpans(line,iScan,iCh,level+1,baseLevel,recurse,order);else if(iScan<iCh)order.push(new BidiSpan(iScan,iCh,localLevel));iCh=iScan}}}function computeSectionOrder(line,level,baseLevel,isolates,from,to,order){let outerType=level%2?2:1;computeCharTypes(line,from,to,isolates,outerType);processBracketPairs(line,from,to,isolates,outerType);processNeutrals(from,to,isolates,outerType);emitSpans(line,from,to,level,baseLevel,isolates,order)}function computeOrder(line,direction,isolates){if(!line)return[new BidiSpan(0,0,direction==RTL?1:0)];if(direction==LTR&&!isolates.length&&!BidiRE.test(line))return trivialOrder(line.length);if(isolates.length)while(line.length>types.length)types[types.length]=256;let order=[],level=direction==LTR?0:1;computeSectionOrder(line,level,level,isolates,0,line.length,order);return order}function trivialOrder(length){return[new BidiSpan(0,length,0)]}let movedOver="";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from;let spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI],spanEnd=span.side(forward,dir);if(startIndex==spanEnd){let nextI=spanI+=forward?1:-1;if(nextI<0||nextI>=order.length)return null;span=order[spanI=nextI];startIndex=span.side(!forward,dir);spanEnd=span.side(forward,dir)}let nextIndex=findClusterBreak(line.text,startIndex,span.forward(forward,dir));if(nextIndex<span.from||nextIndex>span.to)nextIndex=spanEnd;movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(nextSpan&&nextIndex==spanEnd&&nextSpan.level+(forward?0:1)<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,nextSpan.forward(forward,dir)?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,span.forward(forward,dir)?-1:1,span.level)}function autoDirection(text,from,to){for(let i=from;i<to;i++){let type=charType(text.charCodeAt(i));if(type==1)return LTR;if(type==2||type==4)return RTL}return LTR}const clickAddsSelectionRange=Facet.define();const dragMovesSelection$1=Facet.define();const mouseSelectionStyle=Facet.define();const exceptionSink=Facet.define();const updateListener=Facet.define();const inputHandler=Facet.define();const focusChangeEffect=Facet.define();const clipboardInputFilter=Facet.define();const clipboardOutputFilter=Facet.define();const perLineTextDirection=Facet.define({combine:values=>values.some(x=>x)});const nativeSelectionHidden=Facet.define({combine:values=>values.some(x=>x)});const scrollHandler=Facet.define();class ScrollTarget{constructor(range,y,x,yMargin,xMargin,isSnapshot=false){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;this.isSnapshot=isSnapshot}map(changes){return changes.empty?this:new ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(state){return this.range.to<=state.doc.length?this:new ScrollTarget(EditorSelection.cursor(state.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const scrollIntoView=StateEffect.define({map:(t,ch)=>t.map(ch)});const setEditContextFormatting=StateEffect.define();function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror&&window.onerror(String(exception),context,undefined,undefined,exception));else if(context)console.error(context+":",exception);else console.error(exception)}const editable=Facet.define({combine:values=>values.length?values[0]:true});let nextPluginID=0;const viewPlugin=Facet.define({combine(plugins){return plugins.filter((p,i)=>{for(let j=0;j<i;j++)if(plugins[j].plugin==p.plugin)return false;return true})}});class ViewPlugin{constructor(id,create,domEventHandlers,domEventObservers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.domEventObservers=domEventObservers;this.baseExtensions=buildExtensions(this);this.extension=this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:undefined}))}of(arg){return this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:arg}))}static define(create,spec){const{eventHandlers:eventHandlers,eventObservers:eventObservers,provide:provide,decorations:deco}=spec||{};return new ViewPlugin(nextPluginID++,create,eventHandlers,eventObservers,plugin=>{let ext=[];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin);return pluginInst?deco(pluginInst):Decoration.none}));if(provide)ext.push(provide(plugin));return ext})}static fromClass(cls,spec){return ViewPlugin.define((view,arg)=>new cls(view,arg),spec)}}class PluginInstance{constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(view){if(!this.value){if(this.spec){try{this.value=this.spec.plugin.create(view,this.spec.arg)}catch(e){logException(view.state,e,"CodeMirror plugin crashed");this.deactivate()}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update)}catch(e){logException(update.state,e,"CodeMirror plugin crashed");if(this.value.destroy)try{this.value.destroy()}catch(_){}this.deactivate()}}}return this}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy()}catch(e){logException(view.state,e,"CodeMirror plugin crashed")}}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define();const contentAttributes=Facet.define();const decorations=Facet.define();const blockWrappers=Facet.define();const outerDecorations=Facet.define();const atomicRanges=Facet.define();const bidiIsolatedRanges=Facet.define();function getIsolatedRanges(view,line){let isolates=view.state.facet(bidiIsolatedRanges);if(!isolates.length)return isolates;let sets=isolates.map(i=>i instanceof Function?i(view):i);let result=[];RangeSet.spans(sets,line.from,line.to,{point(){},span(fromDoc,toDoc,active,open){let from=fromDoc-line.from,to=toDoc-line.from;let level=result;for(let i=active.length-1;i>=0;i--,open--){let direction=active[i].spec.bidiIsolate,update;if(direction==null)direction=autoDirection(line.text,from,to);if(open>0&&level.length&&(update=level[level.length-1]).to==from&&update.direction==direction){update.to=to;level=update.inner}else{let add={from:from,to:to,direction:direction,inner:[]};level.push(add);level=add.inner}}}});return result}const scrollMargins=Facet.define();function getScrollMargins(view){let left=0,right=0,top=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top=Math.max(top,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom)}}return{left:left,right:right,top:top,bottom:bottom}}const styleModule=Facet.define();class ChangedRange{constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB}join(other){return new ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB))}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1)}set.splice(i,0,me);return set}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,off=0;;){let nextD=dI<diff.length?diff[dI].fromB:1e9;let nextR=rI<ranges.length?ranges[rI]:1e9;let fromB=Math.min(nextD,nextR);if(fromB==1e9)break;let fromA=fromB+off,toB=fromB,toA=fromA;for(;;){if(rI<ranges.length&&ranges[rI]<=toB){let end=ranges[rI+1];rI+=2;toB=Math.max(toB,end);for(let i=dI;i<diff.length&&diff[i].fromB<=toB;i++)off=diff[i].toA-diff[i].toB;toA=Math.max(toA,end+off)}else if(dI<diff.length&&diff[dI].fromB<=toB){let next=diff[dI++];toB=Math.max(toB,next.toB);toA=Math.max(toA,next.toA);off=next.toA-next.toB}else{break}}result.push(new ChangedRange(fromA,toA,fromB,toB))}return result}}class ViewUpdate{constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges}static create(view,state,transactions){return new ViewUpdate(view,state,transactions)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(16|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(tr=>tr.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const noChildren=[];class Tile{constructor(dom,length,flags=0){this.dom=dom;this.length=length;this.flags=flags;this.parent=null;dom.cmTile=this}get breakAfter(){return this.flags&1}get children(){return noChildren}isWidget(){return false}get isHidden(){return false}isComposite(){return false}isLine(){return false}isText(){return false}isBlock(){return false}get domAttrs(){return null}sync(track){this.flags|=2;if(this.flags&4){this.flags&=-5;let attrs=this.domAttrs;if(attrs)setAttrs(this.dom,attrs)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(dom){this.dom=dom;dom.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(tile,start=this.posAtStart){let pos=start;for(let child of this.children){if(child==tile)return pos;pos+=child.length+child.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(tile){return this.posBefore(tile)+tile.length}covers(side){return true}coordsIn(pos,side){return null}domPosFor(off,side){let index=domIndex(this.dom);let after=this.length?off>0:side>0;return new DOMPos(this.parent.dom,index+(after?1:0),off==0||off==this.length)}markDirty(attrs){this.flags&=-3;if(attrs)this.flags|=4;if(this.parent&&this.parent.flags&2)this.parent.markDirty(false)}get overrideDOMText(){return null}get root(){for(let t=this;t;t=t.parent)if(t instanceof DocTile)return t;return null}static get(dom){return dom.cmTile}}class CompositeTile extends Tile{constructor(dom){super(dom,0);this._children=[]}isComposite(){return true}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(child){this.children.push(child);child.parent=this}sync(track){if(this.flags&2)return;super.sync(track);let parent=this.dom,prev=null,next;let tracking=(track===null||track===void 0?void 0:track.node)==parent?track:null;let length=0;for(let child of this.children){child.sync(track);length+=child.length+child.breakAfter;next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next!=child.dom)tracking.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next)}else{parent.insertBefore(child.dom,next)}prev=child.dom}next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next)tracking.written=true;while(next)next=rm$1(next);this.length=length}}function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next}class DocTile extends CompositeTile{constructor(view,dom){super(dom);this.view=view}owns(tile){for(;tile;tile=tile.parent)if(tile==this)return true;return false}isBlock(){return true}nearest(dom){for(;;){if(!dom)return null;let tile=Tile.get(dom);if(tile&&this.owns(tile))return tile;dom=dom.parentNode}}blockTiles(f){for(let stack=[],cur=this,i=0,pos=0;;){if(i==cur.children.length){if(!stack.length)return;cur=cur.parent;if(cur.breakAfter)pos++;i=stack.pop()}else{let next=cur.children[i++];if(next instanceof BlockWrapperTile){stack.push(i);cur=next;i=0}else{let end=pos+next.length;let result=f(next,pos);if(result!==undefined)return result;pos=end+next.breakAfter}}}}resolveBlock(pos,side){let before,beforeOff=-1,after,afterOff=-1;this.blockTiles((tile,off)=>{let end=off+tile.length;if(pos>=off&&pos<=end){if(tile.isWidget()&&side>=-1&&side<=1){if(tile.flags&32)return true;if(tile.flags&16)before=undefined}if((off<pos||pos==end&&(side<-1?tile.length:tile.covers(1)))&&(!before||!tile.isWidget()&&before.isWidget())){before=tile;beforeOff=pos-off}if((end>pos||pos==off&&(side>1?tile.length:tile.covers(-1)))&&(!after||!tile.isWidget()&&after.isWidget())){after=tile;afterOff=pos-off}}});if(!before&&!after)throw new Error("No tile at position "+pos);return before&&side<0||!after?{tile:before,offset:beforeOff}:{tile:after,offset:afterOff}}}class BlockWrapperTile extends CompositeTile{constructor(dom,wrapper){super(dom);this.wrapper=wrapper}isBlock(){return true}covers(side){if(!this.children.length)return false;return side<0?this.children[0].covers(-1):this.lastChild.covers(1)}get domAttrs(){return this.wrapper.attributes}static of(wrapper,dom){let tile=new BlockWrapperTile(dom||document.createElement(wrapper.tagName),wrapper);if(!dom)tile.flags|=4;return tile}}class LineTile extends CompositeTile{constructor(dom,attrs){super(dom);this.attrs=attrs}isLine(){return true}static start(attrs,dom,keepAttrs){let line=new LineTile(dom||document.createElement("div"),attrs);if(!dom||!keepAttrs)line.flags|=4;return line}get domAttrs(){return this.attrs}resolveInline(pos,side,forCoords){let before=null,beforeOff=-1,after=null,afterOff=-1;function scan(tile,pos){for(let i=0,off=0;i<tile.children.length&&off<=pos;i++){let child=tile.children[i],end=off+child.length;if(end>=pos){if(child.isComposite()){scan(child,pos-off)}else if((!after||after.isHidden&&(side>0||forCoords&&onSameLine(after,child)))&&(end>pos||child.flags&32)){after=child;afterOff=pos-off}else if(off<pos||child.flags&16&&!child.isHidden){before=child;beforeOff=pos-off}}off=end}}scan(this,pos);let target=(side<0?before:after)||before||after;return target?{tile:target,offset:target==before?beforeOff:afterOff}:null}coordsIn(pos,side){let found=this.resolveInline(pos,side,true);if(!found)return fallbackRect(this);return found.tile.coordsIn(Math.max(0,found.offset),side)}domIn(pos,side){let found=this.resolveInline(pos,side);if(found){let{tile:tile,offset:offset}=found;if(this.dom.contains(tile.dom)){if(tile.isText())return new DOMPos(tile.dom,Math.min(tile.dom.nodeValue.length,offset));return tile.domPosFor(offset,tile.flags&16?1:tile.flags&32?-1:side)}let parent=found.tile.parent,saw=false;for(let ch of parent.children){if(saw)return new DOMPos(ch.dom,0);if(ch==found.tile){saw=true}}}return new DOMPos(this.dom,0)}}function fallbackRect(tile){let last=tile.dom.lastChild;if(!last)return tile.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null}function onSameLine(a,b){let posA=a.coordsIn(0,1),posB=b.coordsIn(0,1);return posA&&posB&&posB.top<posA.bottom}class MarkTile extends CompositeTile{constructor(dom,mark){super(dom);this.mark=mark}get domAttrs(){return this.mark.attrs}static of(mark,dom){let tile=new MarkTile(dom||document.createElement(mark.tagName),mark);if(!dom)tile.flags|=4;return tile}}class TextTile extends Tile{constructor(dom,text){super(dom,text.length);this.text=text}sync(track){if(this.flags&2)return;super.sync(track);if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text}}isText(){return true}toString(){return JSON.stringify(this.text)}coordsIn(pos,side){let length=this.dom.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1}else if(to<length){to++;flatten=-1}}}else{if(side<0)from--;else if(to<length)to++}let rects=textRange(this.dom,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null}static of(text,dom){let tile=new TextTile(dom||document.createTextNode(text),text);if(!dom)tile.flags|=2;return tile}}class WidgetTile extends Tile{constructor(dom,length,widget,flags){super(dom,length,flags);this.widget=widget}isWidget(){return true}get isHidden(){return this.widget.isHidden}covers(side){if(this.flags&48)return false;return(this.flags&(side<0?64:128))>0}coordsIn(pos,side){return this.coordsInWidget(pos,side,false)}coordsInWidget(pos,side,block){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;if(block){return flattenRect(this.dom.getBoundingClientRect(),this.length?pos==0:side<=0)}else{let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.flags&16?true:this.flags&32?false:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break}return flattenRect(rect,!fromBack)}}get overrideDOMText(){if(!this.length)return Text.empty;let{root:root}=this;if(!root)return Text.empty;let start=this.posAtStart;return root.view.state.doc.slice(start,start+this.length)}destroy(){super.destroy();this.widget.destroy(this.dom)}static of(widget,view,length,flags,dom){if(!dom){dom=widget.toDOM(view);if(!widget.editable)dom.contentEditable="false"}return new WidgetTile(dom,length,widget,flags)}}class WidgetBufferTile extends Tile{constructor(flags){let img=document.createElement("img");img.className="cm-widgetBuffer";img.setAttribute("aria-hidden","true");super(img,0,flags)}get isHidden(){return true}get overrideDOMText(){return Text.empty}coordsIn(pos){return this.dom.getBoundingClientRect()}}class TilePointer{constructor(top){this.index=0;this.beforeBreak=false;this.parents=[];this.tile=top}advance(dist,side,walker){let{tile:tile,index:index,beforeBreak:beforeBreak,parents:parents}=this;while(dist||side>0){if(!tile.isComposite()){if(index==tile.length){beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else if(!dist){break}else{let take=Math.min(dist,tile.length-index);if(walker)walker.skip(tile,index,index+take);dist-=take;index+=take}}else if(beforeBreak){if(!dist)break;if(walker)walker.break();dist--;beforeBreak=false}else if(index==tile.children.length){if(!dist&&!parents.length)break;if(walker)walker.leave(tile);beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else{let next=tile.children[index],brk=next.breakAfter;if((side>0?next.length<=dist:next.length<dist)&&(!walker||walker.skip(next,0,next.length)!==false||!next.isComposite)){beforeBreak=!!brk;index++;dist-=next.length}else{parents.push({tile:tile,index:index});tile=next;index=0;if(walker&&next.isComposite())walker.enter(next)}}}this.tile=tile;this.index=index;this.beforeBreak=beforeBreak;return this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class OpenWrapper{constructor(from,to,wrapper,rank){this.from=from;this.to=to;this.wrapper=wrapper;this.rank=rank}}class TileBuilder{constructor(cache,root,blockWrappers){this.cache=cache;this.root=root;this.blockWrappers=blockWrappers;this.curLine=null;this.lastBlock=null;this.afterWidget=null;this.pos=0;this.wrappers=[];this.wrapperPos=0}addText(text,marks,openStart,tile){var _a;this.flushBuffer();let parent=this.ensureMarks(marks,openStart);let prev=parent.lastChild;if(prev&&prev.isText()&&!(prev.flags&8)&&prev.length+text.length<512){this.cache.reused.set(prev,2);let tile=parent.children[parent.children.length-1]=new TextTile(prev.dom,prev.text+text);tile.parent=parent}else{parent.append(tile||TextTile.of(text,(_a=this.cache.find(TextTile))===null||_a===void 0?void 0:_a.dom))}this.pos+=text.length;this.afterWidget=null}addComposition(composition,context){let line=this.curLine;if(line.dom!=context.line.dom){line.setDOM(this.cache.reused.has(context.line)?freeNode(context.line.dom):context.line.dom);this.cache.reused.set(context.line,2)}let head=line;for(let i=context.marks.length-1;i>=0;i--){let mark=context.marks[i];let last=head.lastChild;if(last instanceof MarkTile&&last.mark.eq(mark.mark)){if(last.dom!=mark.dom)last.setDOM(freeNode(mark.dom));head=last}else{if(this.cache.reused.get(mark)){let tile=Tile.get(mark.dom);if(tile)tile.setDOM(freeNode(mark.dom))}let nw=MarkTile.of(mark.mark,mark.dom);head.append(nw);head=nw}this.cache.reused.set(mark,2)}let oldTile=Tile.get(composition.text);if(oldTile)this.cache.reused.set(oldTile,2);let text=new TextTile(composition.text,composition.text.nodeValue);text.flags|=8;this.pos=composition.range.toB;head.append(text)}addInlineWidget(widget,marks,openStart){let noSpace=this.afterWidget&&widget.flags&48&&(this.afterWidget.flags&48)==(widget.flags&48);if(!noSpace)this.flushBuffer();let parent=this.ensureMarks(marks,openStart);if(!noSpace&&!(widget.flags&16))parent.append(this.getBuffer(1));parent.append(widget);this.pos+=widget.length;this.afterWidget=widget}addMark(tile,marks,openStart){this.flushBuffer();let parent=this.ensureMarks(marks,openStart);parent.append(tile);this.pos+=tile.length;this.afterWidget=null}addBlockWidget(widget){this.getBlockPos().append(widget);this.pos+=widget.length;this.lastBlock=widget;this.endLine()}continueWidget(length){let widget=this.afterWidget||this.lastBlock;widget.length+=length;this.pos+=length}addLineStart(attrs,dom){var _a;if(!attrs)attrs=lineBaseAttrs;let tile=LineTile.start(attrs,dom||((_a=this.cache.find(LineTile))===null||_a===void 0?void 0:_a.dom),!!dom);this.getBlockPos().append(this.lastBlock=this.curLine=tile)}addLine(tile){this.getBlockPos().append(tile);this.pos+=tile.length;this.lastBlock=tile;this.endLine()}addBreak(){this.lastBlock.flags|=1;this.endLine();this.pos++}addLineStartIfNotCovered(attrs){if(!this.blockPosCovered())this.addLineStart(attrs)}ensureLine(attrs){if(!this.curLine)this.addLineStart(attrs)}ensureMarks(marks,openStart){var _a;let parent=this.curLine;for(let i=marks.length-1;i>=0;i--){let mark=marks[i],last;if(openStart>0&&(last=parent.lastChild)&&last instanceof MarkTile&&last.mark.eq(mark)){parent=last;openStart--}else{let tile=MarkTile.of(mark,(_a=this.cache.find(MarkTile,m=>m.mark.eq(mark)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile;openStart=0}}return parent}endLine(){if(this.curLine){this.flushBuffer();let last=this.curLine.lastChild;if(!last||!hasContent(this.curLine,false)||last.dom.nodeName!="BR"&&last.isWidget()&&!(browser.ios&&hasContent(this.curLine,true)))this.curLine.append(this.cache.findWidget(BreakWidget,0,32)||new WidgetTile(BreakWidget.toDOM(),0,BreakWidget,32));this.curLine=this.afterWidget=null}}updateBlockWrappers(){if(this.wrapperPos>this.pos+1e4){this.blockWrappers.goto(this.pos);this.wrappers.length=0}for(let i=this.wrappers.length-1;i>=0;i--)if(this.wrappers[i].to<this.pos)this.wrappers.splice(i,1);for(let cur=this.blockWrappers;cur.value&&cur.from<=this.pos;cur.next())if(cur.to>=this.pos){let rank=cur.rank*102+cur.value.rank;let wrap=new OpenWrapper(cur.from,cur.to,cur.value,rank),i=this.wrappers.length;while(i>0&&(this.wrappers[i-1].rank-wrap.rank||this.wrappers[i-1].to-wrap.to)<0)i--;this.wrappers.splice(i,0,wrap)}this.wrapperPos=this.pos}getBlockPos(){var _a;this.updateBlockWrappers();let parent=this.root;for(let wrap of this.wrappers){let last=parent.lastChild;if(wrap.from<this.pos&&last instanceof BlockWrapperTile&&last.wrapper.eq(wrap.wrapper)){parent=last}else{let tile=BlockWrapperTile.of(wrap.wrapper,(_a=this.cache.find(BlockWrapperTile,t=>t.wrapper.eq(wrap.wrapper)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile}}return parent}blockPosCovered(){let last=this.lastBlock;return last!=null&&!last.breakAfter&&(!last.isWidget()||(last.flags&(32|128))>0)}getBuffer(side){let flags=2|(side<0?16:32);let found=this.cache.find(WidgetBufferTile,undefined,1);if(found)found.flags=flags;return found||new WidgetBufferTile(flags)}flushBuffer(){if(this.afterWidget&&!(this.afterWidget.flags&32)){this.afterWidget.parent.append(this.getBuffer(-1));this.afterWidget=null}}}class TextStream{constructor(doc){this.skipCount=0;this.text="";this.textOff=0;this.cursor=doc.iter()}skip(len){if(this.textOff+len<=this.text.length){this.textOff+=len}else{this.skipCount+=len-(this.text.length-this.textOff);this.text="";this.textOff=0}}next(maxLen){if(this.textOff==this.text.length){let{value:value,lineBreak:lineBreak,done:done}=this.cursor.next(this.skipCount);this.skipCount=0;if(done)throw new Error("Ran out of text content when drawing inline views");this.text=value;let len=this.textOff=Math.min(maxLen,value.length);return lineBreak?null:value.slice(0,len)}let end=Math.min(this.text.length,this.textOff+maxLen);let chars=this.text.slice(this.textOff,end);this.textOff=end;return chars}}const buckets=[WidgetTile,LineTile,TextTile,MarkTile,WidgetBufferTile,BlockWrapperTile,DocTile];for(let i=0;i<buckets.length;i++)buckets[i].bucket=i;class TileCache{constructor(view){this.view=view;this.buckets=buckets.map(()=>[]);this.index=buckets.map(()=>0);this.reused=new Map}add(tile){let i=tile.constructor.bucket,bucket=this.buckets[i];if(bucket.length<6)bucket.push(tile);else bucket[this.index[i]=(this.index[i]+1)%6]=tile}find(cls,test,type=2){let i=cls.bucket;let bucket=this.buckets[i],off=this.index[i];for(let j=bucket.length-1;j>=0;j--){let index=(j+off)%bucket.length,tile=bucket[index];if((!test||test(tile))&&!this.reused.has(tile)){bucket.splice(index,1);if(index<off)this.index[i]--;this.reused.set(tile,type);return tile}}return null}findWidget(widget,length,flags){let widgets=this.buckets[0];if(widgets.length)for(let i=0,pass=0;;i++){if(i==widgets.length){if(pass)return null;pass=1;i=0}let tile=widgets[i];if(!this.reused.has(tile)&&(pass==0?tile.widget.compare(widget):tile.widget.constructor==widget.constructor&&widget.updateDOM(tile.dom,this.view,tile.widget))){widgets.splice(i,1);if(i<this.index[0])this.index[0]--;if(tile.widget==widget&&tile.length==length&&(tile.flags&(496|1))==flags){this.reused.set(tile,1);return tile}else{this.reused.set(tile,2);return new WidgetTile(tile.dom,length,widget,tile.flags&-498|flags)}}}}reuse(tile){this.reused.set(tile,1);return tile}maybeReuse(tile,type=2){if(this.reused.has(tile))return undefined;this.reused.set(tile,type);return tile.dom}clear(){for(let i=0;i<this.buckets.length;i++)this.buckets[i].length=this.index[i]=0}}class TileUpdate{constructor(view,old,blockWrappers,decorations,disallowBlockEffectsFor){this.view=view;this.decorations=decorations;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.openWidget=false;this.openMarks=0;this.cache=new TileCache(view);this.text=new TextStream(view.state.doc);this.builder=new TileBuilder(this.cache,new DocTile(view,view.contentDOM),RangeSet.iter(blockWrappers));this.cache.reused.set(old,2);this.old=new TilePointer(old);this.reuseWalker={skip:(tile,from,to)=>{this.cache.add(tile);if(tile.isComposite())return false},enter:tile=>this.cache.add(tile),leave:()=>{},break:()=>{}}}run(changes,composition){let compositionContext=composition&&this.getCompositionContext(composition.text);for(let posA=0,posB=0,i=0;;){let next=i<changes.length?changes[i++]:null;let skipA=next?next.fromA:this.old.root.length;if(skipA>posA){let len=skipA-posA;this.preserve(len,!i,!next);posA=skipA;posB+=len}if(!next)break;if(composition&&next.fromA<=composition.range.fromA&&next.toA>=composition.range.toA){this.forward(next.fromA,composition.range.fromA,composition.range.fromA<composition.range.toA?1:-1);this.emit(posB,composition.range.fromB);this.builder.flushBuffer();this.cache.clear();this.builder.addComposition(composition,compositionContext);this.text.skip(composition.range.toB-composition.range.fromB);this.forward(composition.range.fromA,next.toA);this.emit(composition.range.toB,next.toB)}else{this.forward(next.fromA,next.toA);this.emit(posB,next.toB)}posB=next.toB;posA=next.toA}if(this.builder.curLine)this.builder.endLine();return this.builder.root}preserve(length,incStart,incEnd){let activeMarks=getMarks(this.old),openMarks=this.openMarks;this.old.advance(length,incEnd?1:-1,{skip:(tile,from,to)=>{if(tile.isWidget()){if(this.openWidget){this.builder.continueWidget(to-from)}else{let widget=to>0||from<tile.length?WidgetTile.of(tile.widget,this.view,to-from,tile.flags&496,this.cache.maybeReuse(tile)):this.cache.reuse(tile);if(widget.flags&256){widget.flags&=-2;this.builder.addBlockWidget(widget)}else{this.builder.ensureLine(null);this.builder.addInlineWidget(widget,activeMarks,openMarks);openMarks=activeMarks.length}}}else if(tile.isText()){this.builder.ensureLine(null);if(!from&&to==tile.length&&!this.cache.reused.has(tile)){this.builder.addText(tile.text,activeMarks,openMarks,this.cache.reuse(tile))}else{this.cache.add(tile);this.builder.addText(tile.text.slice(from,to),activeMarks,openMarks)}openMarks=activeMarks.length}else if(tile.isLine()){tile.flags&=-2;this.cache.reused.set(tile,1);this.builder.addLine(tile)}else if(tile instanceof WidgetBufferTile){this.cache.add(tile)}else if(tile instanceof MarkTile){this.builder.ensureLine(null);this.builder.addMark(tile,activeMarks,openMarks);this.cache.reused.set(tile,1);openMarks=activeMarks.length}else{return false}this.openWidget=false},enter:tile=>{if(tile.isLine()){this.builder.addLineStart(tile.attrs,this.cache.maybeReuse(tile))}else{this.cache.add(tile);if(tile instanceof MarkTile)activeMarks.unshift(tile.mark)}this.openWidget=false},leave:tile=>{if(tile.isLine()){if(activeMarks.length)activeMarks.length=openMarks=0}else if(tile instanceof MarkTile){activeMarks.shift();openMarks=Math.min(openMarks,activeMarks.length)}},break:()=>{this.builder.addBreak();this.openWidget=false}});this.text.skip(length)}emit(from,to){let pendingLineAttrs=null;let b=this.builder,markCount=0;let openEnd=RangeSet.spans(this.decorations,from,to,{point:(from,to,deco,active,openStart,index)=>{if(deco instanceof PointDecoration){if(this.disallowBlockEffectsFor[index]){if(deco.block)throw new RangeError("Block decorations may not be specified via plugins");if(to>this.view.state.doc.lineAt(from).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}markCount=active.length;if(openStart>active.length){b.continueWidget(to-from)}else{let widget=deco.widget||(deco.block?NullWidget.block:NullWidget.inline);let flags=widgetFlags(deco);let tile=this.cache.findWidget(widget,to-from,flags)||WidgetTile.of(widget,this.view,to-from,flags);if(deco.block){if(deco.startSide>0)b.addLineStartIfNotCovered(pendingLineAttrs);b.addBlockWidget(tile)}else{b.ensureLine(pendingLineAttrs);b.addInlineWidget(tile,active,openStart)}}pendingLineAttrs=null}else{pendingLineAttrs=addLineDeco(pendingLineAttrs,deco)}if(to>from)this.text.skip(to-from)},span:(from,to,active,openStart)=>{for(let pos=from;pos<to;){let chars=this.text.next(Math.min(512,to-pos));if(chars==null){b.addLineStartIfNotCovered(pendingLineAttrs);b.addBreak();pos++}else{b.ensureLine(pendingLineAttrs);b.addText(chars,active,pos==from?openStart:active.length);pos+=chars.length}pendingLineAttrs=null}}});b.addLineStartIfNotCovered(pendingLineAttrs);this.openWidget=openEnd>markCount;this.openMarks=openEnd}forward(from,to,side=1){if(to-from<=10){this.old.advance(to-from,side,this.reuseWalker)}else{this.old.advance(5,-1,this.reuseWalker);this.old.advance(to-from-10,-1);this.old.advance(5,side,this.reuseWalker)}}getCompositionContext(text){let marks=[],line=null;for(let parent=text.parentNode;;parent=parent.parentNode){let tile=Tile.get(parent);if(parent==this.view.contentDOM)break;if(tile instanceof MarkTile)marks.push(tile);else if(tile===null||tile===void 0?void 0:tile.isLine())line=tile;else if(tile instanceof BlockWrapperTile);else if(parent.nodeName=="DIV"&&!line&&parent!=this.view.contentDOM)line=new LineTile(parent,lineBaseAttrs);else if(!line)marks.push(MarkTile.of(new MarkDecoration({tagName:parent.nodeName.toLowerCase(),attributes:getAttrs(parent)}),parent))}return{line:line,marks:marks}}}function hasContent(tile,requireText){let scan=tile=>{for(let ch of tile.children)if((requireText?ch.isText():ch.length)||scan(ch))return true;return false};return scan(tile)}function widgetFlags(deco){let flags=deco.isReplace?(deco.startSide<0?64:0)|(deco.endSide>0?128:0):deco.startSide>0?32:16;if(deco.block)flags|=256;return flags}const lineBaseAttrs={class:"cm-line"};function addLineDeco(value,deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(!attrs&&!cls)return value;if(!value)value={class:"cm-line"};if(attrs)combineAttrs(attrs,value);if(cls)value.class+=" "+cls;return value}function getMarks(ptr){let found=[];for(let i=ptr.parents.length;i>1;i--){let tile=i==ptr.parents.length?ptr.tile:ptr.parents[i].tile;if(tile instanceof MarkTile)found.push(tile.mark)}return found}function freeNode(node){let tile=Tile.get(node);if(tile)tile.setDOM(node.cloneNode());return node}class NullWidget extends WidgetType{constructor(tag){super();this.tag=tag}eq(other){return other.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag}get isHidden(){return true}}NullWidget.inline=new NullWidget("span");NullWidget.block=new NullWidget("div");const BreakWidget=new class extends WidgetType{toDOM(){return document.createElement("br")}get isHidden(){return true}get editable(){return true}};class DocView{constructor(view){this.view=view;this.decorations=[];this.blockWrappers=[];this.dynamicDecorationMap=[false];this.domChanged=null;this.hasComposition=null;this.editContextFormatting=Decoration.none;this.lastCompositionAfterCursor=false;this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.updateDeco();this.tile=new DocTile(view,view.contentDOM);this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],null)}update(update){var _a;let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA:fromA,toA:toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1)}}this.updateEditContextFormatting(update);let readCompositionAt=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((_a=this.domChanged)===null||_a===void 0?void 0:_a.newSel)readCompositionAt=this.domChanged.newSel.head;else if(!touchesComposition(update.changes,this.hasComposition)&&!update.selectionSet)readCompositionAt=update.state.selection.main.head}let composition=readCompositionAt>-1?findCompositionRange(this.view,update.changes,readCompositionAt):null;this.domChanged=null;if(this.hasComposition){let{from:from,to:to}=this.hasComposition;changedRanges=new ChangedRange(from,to,update.changes.mapPos(from,-1),update.changes.mapPos(to,1)).addToSet(changedRanges.slice())}this.hasComposition=composition?{from:composition.range.fromB,to:composition.range.toB}:null;if((browser.ie||browser.chrome)&&!composition&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,prevWrappers=this.blockWrappers;this.updateDeco();let decoDiff=findChangedDeco(prevDeco,this.decorations,update.changes);if(decoDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);let blockDiff=findChangedWrappers(prevWrappers,this.blockWrappers,update.changes);if(blockDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,blockDiff);if(composition&&!changedRanges.some(r=>r.fromA<=composition.range.fromA&&r.toA>=composition.range.toA))changedRanges=composition.range.addToSet(changedRanges.slice());if(this.tile.flags&2&&changedRanges.length==0){return false}else{this.updateInner(changedRanges,composition);if(update.transactions.length)this.lastUpdate=Date.now();return true}}updateInner(changes,composition){this.view.viewState.mustMeasureContent=true;let{observer:observer}=this.view;observer.ignore(()=>{if(composition||changes.length){let oldTile=this.tile;let builder=new TileUpdate(this.view,oldTile,this.blockWrappers,this.decorations,this.dynamicDecorationMap);if(composition&&Tile.get(composition.text))builder.cache.reused.set(Tile.get(composition.text),2);this.tile=builder.run(changes,composition);destroyDropped(oldTile,builder.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px";this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:undefined;this.tile.sync(track);if(track&&(track.written||observer.selectionRange.focusNode!=track.node||!this.tile.dom.contains(track.node)))this.forceSelection=true;this.tile.dom.style.height=""});let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let child of this.tile.children)if(child.isWidget()&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);observer.updateGaps(gaps)}updateEditContextFormatting(update){this.editContextFormatting=this.editContextFormatting.map(update.changes);for(let tr of update.transactions)for(let effect of tr.effects)if(effect.is(setEditContextFormatting)){this.editContextFormatting=effect.value}}updateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let{dom:dom}=this.tile;let activeElt=this.view.root.activeElement,focused=activeElt==dom;let selectionNotFocus=!focused&&!(this.view.state.facet(editable)||dom.tabIndex>-1)&&hasSelection(dom,this.view.observer.selectionRange)&&!(activeElt&&dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main,anchor,head;if(main.empty){head=anchor=this.inlineDOMNearPos(main.anchor,main.assoc||1)}else{head=this.inlineDOMNearPos(main.head,main.head==main.from?1:-1);anchor=this.inlineDOMNearPos(main.anchor,main.anchor==main.from?1:-1)}if(browser.gecko&&main.empty&&!this.hasComposition&&betweenUneditable(anchor)){let dummy=document.createTextNode("");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||(!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset))&&!this.suppressWidgetCursorChange(domSel,main)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,dom)){dom.blur();dom.focus({preventScroll:true})}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=(nextTo==1?textNodeBefore:textNodeAfter)(anchor.node,anchor.offset);if(text)anchor=new DOMPos(text.node,text.offset)}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&rawSel.caretBidiLevel!==undefined)rawSel.caretBidiLevel=main.bidiLevel}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset)}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range)}if(selectionNotFocus&&this.view.root.activeElement==dom){dom.blur();if(activeElt)activeElt.focus()}});this.view.observer.setSelectionRange(anchor,head)}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset)}suppressWidgetCursorChange(sel,cursor){return this.hasComposition&&cursor.empty&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset)&&this.posFromDOM(sel.focusNode,sel.focusOffset)==cursor.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode:anchorNode,anchorOffset:anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=this.lineAt(cursor.head,cursor.assoc);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc,cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify("move",cursor.assoc<0?"forward":"backward","lineboundary");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset)}posFromDOM(node,offset){let tile=this.tile.nearest(node);if(!tile)return this.tile.dom.compareDocumentPosition(node)&2?0:this.view.state.doc.length;let start=tile.posAtStart;if(tile.isComposite()){let after;if(node==tile.dom){after=tile.dom.childNodes[offset]}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==tile.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1}node=parent}if(bias<0)after=node;else after=node.nextSibling}if(after==tile.dom.firstChild)return start;while(after&&!Tile.get(after))after=after.nextSibling;if(!after)return start+tile.length;for(let i=0,pos=start;;i++){let child=tile.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter}}else if(tile.isText()){return node==tile.dom?start+offset:start+(offset?tile.length:0)}else{return start}}domAtPos(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget())return tile.domPosFor(pos,side);return tile.domIn(offset,side)}inlineDOMNearPos(pos,side){let before,beforeOff=-1,beforeBad=false;let after,afterOff=-1,afterBad=false;this.tile.blockTiles((tile,off)=>{if(tile.isWidget()){if(tile.flags&32&&off>=pos)return true;if(tile.flags&16)beforeBad=true}else{let end=off+tile.length;if(off<=pos){before=tile;beforeOff=pos-off;beforeBad=end<pos}if(end>=pos&&!after){after=tile;afterOff=pos-off;afterBad=off>pos}if(off>pos&&after)return true}});if(!before&&!after)return this.domAtPos(pos,side);if(beforeBad&&after)before=null;else if(afterBad&&before)after=null;return before&&side<0||!after?before.domIn(beforeOff,side):after.domIn(afterOff,side)}coordsAt(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget()){if(tile.widget instanceof BlockGapWidget)return null;return tile.coordsInWidget(offset,side,true)}return tile.coordsIn(offset,side)}lineAt(pos,side){let{tile:tile}=this.tile.resolveBlock(pos,side);return tile.isLine()?tile:null}coordsForChar(pos){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,1);if(!tile.isLine())return null;function scan(tile,offset){if(tile.isComposite()){for(let ch of tile.children){if(ch.length>=offset){let found=scan(ch,offset);if(found)return found}offset-=ch.length;if(offset<0)break}}else if(tile.isText()&&offset<tile.length){let end=findClusterBreak(tile.text,offset);if(end==offset)return null;let rects=textRange(tile.dom,offset,end).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(i==rects.length-1||rect.top<rect.bottom&&rect.left<rect.right)return rect}}return null}return scan(tile,offset)}measureVisibleLineHeights(viewport){let result=[],{from:from,to:to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;let spaceAbove=0;let scan=(tile,pos,measureBounds)=>{for(let i=0;i<tile.children.length;i++){if(pos>to)break;let child=tile.children[i],end=pos+child.length;let childRect=child.dom.getBoundingClientRect(),{height:height}=childRect;if(measureBounds&&!i)spaceAbove+=childRect.top-measureBounds.top;if(child instanceof BlockWrapperTile){if(end>from)scan(child,pos,childRect)}else if(pos>=from){if(spaceAbove>0)result.push(-spaceAbove);result.push(height+spaceAbove);spaceAbove=0;if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end}}}}if(measureBounds&&i==tile.children.length-1)spaceAbove+=measureBounds.bottom-childRect.bottom;pos=end+child.breakAfter}};scan(this.tile,0,null);return result}textDirectionAt(pos){let{tile:tile}=this.tile.resolveBlock(pos,1);return getComputedStyle(tile.dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){let lineMeasure=this.tile.blockTiles(tile=>{if(tile.isLine()&&tile.children.length&&tile.length<=20){let totalWidth=0,textHeight;for(let child of tile.children){if(!child.isText()||/[^ -~]/.test(child.text))return undefined;let rects=clientRectsFor(child.dom);if(rects.length!=1)return undefined;totalWidth+=rects[0].width;textHeight=rects[0].height}if(totalWidth)return{lineHeight:tile.dom.getBoundingClientRect().height,charWidth:totalWidth/tile.length,textHeight:textHeight}}});if(lineMeasure)return lineMeasure;let dummy=document.createElement("div"),lineHeight,charWidth,textHeight;dummy.className="cm-line";dummy.style.width="99999px";dummy.style.position="absolute";dummy.textContent="abc def ghi jkl mno pqr stu";this.view.observer.ignore(()=>{this.tile.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect&&rect.width?rect.width/27:7;textHeight=rect&&rect.height?rect.height:lineHeight;dummy.remove()});return{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.view.state.doc.length;if(end>pos){let height=(vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top)/this.view.scaleY;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end))}if(!next)break;pos=next.to+1}return Decoration.set(deco)}updateDeco(){let i=1;let allDeco=this.view.state.facet(decorations).map(d=>{let dynamic=this.dynamicDecorationMap[i++]=typeof d=="function";return dynamic?d(this.view):d});let dynamicOuter=false,outerDeco=this.view.state.facet(outerDecorations).map((d,i)=>{let dynamic=typeof d=="function";if(dynamic)dynamicOuter=true;return dynamic?d(this.view):d});if(outerDeco.length){this.dynamicDecorationMap[i++]=dynamicOuter;allDeco.push(RangeSet.join(outerDeco))}this.decorations=[this.editContextFormatting,...allDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(i<this.decorations.length)this.dynamicDecorationMap[i++]=false;this.blockWrappers=this.view.state.facet(blockWrappers).map(v=>typeof v=="function"?v(this.view):v)}scrollIntoView(target){var _a;if(target.isSnapshot){let ref=this.view.viewState.lineBlockAt(target.range.head);this.view.scrollDOM.scrollTop=ref.top-target.yMargin;this.view.scrollDOM.scrollLeft=target.xMargin;return}for(let handler of this.view.state.facet(scrollHandler)){try{if(handler(this.view,target.range,target))return true}catch(e){logException(this.view.state,e,"scroll handler")}}let{range:range}=target;let rect=this.coordsAt(range.head,(_a=range.assoc)!==null&&_a!==void 0?_a:range.empty?0:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};let{offsetWidth:offsetWidth,offsetHeight:offsetHeight}=this.view.scrollDOM;scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,Math.max(Math.min(target.xMargin,offsetWidth),-offsetWidth),Math.max(Math.min(target.yMargin,offsetHeight),-offsetHeight),this.view.textDirection==Direction.LTR);if(window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(rect.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||rect.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let line=this.view.docView.lineAt(range.head,1);if(line)line.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(pos){let scan=child=>child.isWidget()||child.children.some(scan);return scan(this.tile.resolveBlock(pos,1).tile)}destroy(){destroyDropped(this.tile)}}function destroyDropped(tile,reused){let r=reused===null||reused===void 0?void 0:reused.get(tile);if(r!=1){if(r==null)tile.destroy();for(let ch of tile.children)destroyDropped(ch,reused)}}function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable=="false")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable=="false")}function findCompositionNode(view,headPos){let sel=view.observer.selectionRange;if(!sel.focusNode)return null;let textBefore=textNodeBefore(sel.focusNode,sel.focusOffset);let textAfter=textNodeAfter(sel.focusNode,sel.focusOffset);let textNode=textBefore||textAfter;if(textAfter&&textBefore&&textAfter.node!=textBefore.node){let tileAfter=Tile.get(textAfter.node);if(!tileAfter||tileAfter.isText()&&tileAfter.text!=textAfter.node.nodeValue){textNode=textAfter}else if(view.docView.lastCompositionAfterCursor){let tileBefore=Tile.get(textBefore.node);if(!(!tileBefore||tileBefore.isText()&&tileBefore.text!=textBefore.node.nodeValue))textNode=textAfter}}view.docView.lastCompositionAfterCursor=textNode!=textBefore;if(!textNode)return null;let from=headPos-textNode.offset;return{from:from,to:from+textNode.node.nodeValue.length,node:textNode.node}}function findCompositionRange(view,changes,headPos){let found=findCompositionNode(view,headPos);if(!found)return null;let{node:textNode,from:from,to:to}=found,text=textNode.nodeValue;if(/[\n\r]/.test(text))return null;if(view.state.doc.sliceString(found.from,found.to)!=text)return null;let inv=changes.invertedDesc;return{range:new ChangedRange(inv.mapPos(from),inv.mapPos(to),from,to),text:textNode}}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable=="false"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable=="false"?2:0)}let DecorationComparator$1=class DecorationComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(from,to){addRange(from,to,this.changes)}boundChange(pos){addRange(pos,pos,this.changes)}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes}class WrapperComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(){}boundChange(pos){addRange(pos,pos,this.changes)}}function findChangedWrappers(a,b,diff){let comp=new WrapperComparator;RangeSet.compare(a,b,diff,comp);return comp.changes}function inUneditable(node,inside){for(let cur=node;cur&&cur!=inside;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable=="false"){return true}}return false}function touchesComposition(changes,composition){let touched=false;if(composition)changes.iterChangedRanges((from,to)=>{if(from<composition.to&&to>composition.from)touched=true});return touched}class BlockGapWidget extends WidgetType{constructor(height){super();this.height=height}toDOM(){let elt=document.createElement("div");elt.className="cm-gap";this.updateDOM(elt);return elt}eq(other){return other.height==this.height}updateDOM(elt){elt.style.height=this.height+"px";return true}get editable(){return true}get estimatedHeight(){return this.height}ignoreEvent(){return false}}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next}return EditorSelection.undirectionalRange(from+line.from,to+line.from)}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let textHeight=view.viewState.heightOracle.textHeight;let line=Math.floor((y-block.top-(view.defaultLineHeight-textHeight)*.5)/textHeight);into+=line*view.viewState.heightOracle.lineLength}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize)}function blockAt(view,pos,side){let line=view.lineBlockAt(pos);if(Array.isArray(line.type)){let best;for(let l of line.type){if(l.from>pos)break;if(l.to<pos)continue;if(l.from<pos&&l.to>pos)return l;if(!best||l.type==BlockType.Text&&(best.type!=l.type||(side<0?l.from<pos:l.to>pos)))best=l}return best||line}return line}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head,start.assoc||-1);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1)}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1)}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char="\n";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=view.visualLineSide(line,!forward)}if(!check){if(!by)return next;check=by(char)}else if(!check(char)){return cur}cur=next}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat}}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos,start.assoc||((start.empty?forward:start.head==start.from)?1:-1));let docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop}let resolvedGoal=rect.left+goal;let halfText=view.viewState.heightOracle.textHeight>>1,dist=distance!==null&&distance!==void 0?distance:halfText;for(let scan=0;;scan+=halfText){let y=startY+(dist+scan)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:y},false,dir);if(forward?y>rect.bottom:y<rect.top)return EditorSelection.cursor(pos.pos,pos.assoc);let posCoords=view.coordsAtPos(pos.pos,pos.assoc),mid=posCoords?(posCoords.top+posCoords.bottom)/2:0;if(!posCoords||(forward?mid>startY:mid<startY))return EditorSelection.cursor(pos.pos,pos.assoc,undefined,goal)}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side}})}if(!moved)return pos}}function skipAtomsForSelection(atoms,sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1)}else{let from=skipAtomicRanges(atoms,range.from,-1);let to=skipAtomicRanges(atoms,range.to,1);if(from!=range.from||to!=range.to){if(range.undirectional)updated=EditorSelection.undirectionalRange(range.from,range.to);else updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to)}}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1)}class PosAssoc{constructor(pos,assoc){this.pos=pos;this.assoc=assoc}}function posAtCoords(view,coords,precise,scanY){let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let{x:x,y:y}=coords,yOffset=y-docTop,block;for(;;){if(yOffset<0)return new PosAssoc(0,1);if(yOffset>view.viewState.docHeight)return new PosAssoc(view.state.doc.length,-1);block=view.elementAtHeight(yOffset);if(scanY==null)break;if(block.type==BlockType.Text){if(scanY<0?block.to<view.viewport.from:block.from>view.viewport.to)break;let rect=view.docView.coordsAt(scanY<0?block.from:block.to,scanY>0?-1:1);if(rect&&(scanY<0?rect.top<=yOffset+docTop:rect.bottom>=yOffset+docTop))break}let halfLine=view.viewState.heightOracle.textHeight/2;yOffset=scanY>0?block.bottom+halfLine:block.top-halfLine}if(view.viewport.from>=block.to||view.viewport.to<=block.from){if(precise)return null;if(block.type==BlockType.Text){let pos=posAtCoordsImprecise(view,content,block,x,y);return new PosAssoc(pos,pos==block.from?1:-1)}}if(block.type!=BlockType.Text)return yOffset<(block.top+block.bottom)/2?new PosAssoc(block.from,1):new PosAssoc(block.to,-1);let line=view.docView.lineAt(block.from,2);if(!line||line.length!=block.length)line=view.docView.lineAt(block.from,-2);return new InlineCoordsScan(view,x,y,view.textDirectionAt(block.from)).scanTile(line,block.from)}class InlineCoordsScan{constructor(view,x,y,baseDir){this.view=view;this.x=x;this.y=y;this.baseDir=baseDir;this.line=null;this.spans=null}bidiSpansAt(pos){if(!this.line||this.line.from>pos||this.line.to<pos){this.line=this.view.state.doc.lineAt(pos);this.spans=this.view.bidiSpans(this.line)}return this}baseDirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);let level=spans[BidiSpan.find(spans,pos-line.from,-1,side)].level;return level==this.baseDir}dirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);return spans[BidiSpan.find(spans,pos-line.from,-1,side)].dir}bidiIn(from,to){let{spans:spans,line:line}=this.bidiSpansAt(from);return spans.length>1||spans.length&&(spans[0].level!=this.baseDir||spans[0].to+line.from<to)}scan(positions,getRects,recursed=false){let lo=0,hi=positions.length-1,seen=new Set;let bidi=this.bidiIn(positions[0],positions[hi]);let above,below;let closestI=-1,closestDx=1e9,closestRect;search:while(lo<hi){let dist=hi-lo,mid=lo+hi>>1;adjust:if(seen.has(mid)){let scan=lo+Math.floor(Math.random()*dist);for(let i=0;i<dist;i++){if(!seen.has(scan)){mid=scan;break adjust}scan++;if(scan==hi)scan=lo}break search}seen.add(mid);let rects=getRects(mid);if(rects)for(let i=0;i<rects.length;i++){let rect=rects[i],side=0;if(rect.width==0&&rects.length>1)continue;if(rect.bottom<this.y){if(!above||above.bottom<rect.bottom)above=rect;side=1}else if(rect.top>this.y){if(!below||below.top>rect.top)below=rect;side=-1}else{let off=rect.left>this.x?this.x-rect.left:rect.right<this.x?this.x-rect.right:0;let dx=Math.abs(off);if(dx<closestDx){closestI=mid;closestDx=dx;closestRect=rect}if(off)side=off<0==(this.baseDir==Direction.LTR)?-1:1}if(side==-1&&(!bidi||this.baseDirAt(positions[mid],1)))hi=mid;else if(side==1&&(!bidi||this.baseDirAt(positions[mid+1],-1)))lo=mid+1}}if(!closestRect){if(!below&&!above)return{i:positions[0],after:false};let side=above&&(!below||this.y-above.bottom<below.top-this.y)?above:below;this.y=(side.top+side.bottom)/2;return this.scan(positions,getRects,true)}if(closestDx&&!recursed){let{top:top,bottom:bottom}=closestRect;if(above&&above.bottom>(top+top+bottom)/3){this.y=above.bottom-1;return this.scan(positions,getRects,true)}if(below&&below.top<(top+bottom+bottom)/3){this.y=below.top+1;return this.scan(positions,getRects,true)}}let ltr=(bidi?this.dirAt(positions[closestI],1):this.baseDir)==Direction.LTR;return{i:closestI,after:this.x>(closestRect.left+closestRect.right)/2==ltr}}scanText(tile,offset){let positions=[];for(let i=0;i<tile.length;i=findClusterBreak(tile.text,i))positions.push(offset+i);positions.push(offset+tile.length);let scan=this.scan(positions,i=>{let off=positions[i]-offset,end=positions[i+1]-offset;return textRange(tile.dom,off,end).getClientRects()});return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(positions[scan.i],1)}scanTile(tile,offset){if(!tile.length)return new PosAssoc(offset,1);if(tile.children.length==1){let child=tile.children[0];if(child.isText())return this.scanText(child,offset);else if(child.isComposite())return this.scanTile(child,offset)}let positions=[offset];for(let i=0,pos=offset;i<tile.children.length;i++)positions.push(pos+=tile.children[i].length);let scan=this.scan(positions,i=>{let child=tile.children[i];if(child.flags&48)return null;return(child.dom.nodeType==1?child.dom:textRange(child.dom,0,child.length)).getClientRects()});let child=tile.children[scan.i],pos=positions[scan.i];if(child.isText())return this.scanText(child,pos);if(child.isComposite())return this.scanTile(child,pos);return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(pos,1)}}const LineBreakPlaceholder="￿";class DOMReader{constructor(points,view){this.points=points;this.view=view;this.text="";this.lineSeparator=view.state.facet(EditorState.lineSeparator)}append(text){this.text+=text}lineBreak(){this.text+=LineBreakPlaceholder}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let tile=Tile.get(cur),next=cur.nextSibling;if(next==end){if((tile===null||tile===void 0?void 0:tile.breakAfter)&&!next&&parent!=this.view.contentDOM)this.lineBreak();break}let nextTile=Tile.get(next);if((tile&&nextTile?tile.breakAfter:(tile?tile.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!="BR"||(tile===null||tile===void 0?void 0:tile.isWidget()))&&this.text.length>oldLen)&&!isEmptyToEnd(next,end))this.lineBreak();cur=next}this.findPointBefore(parent,end);return this}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\r\n?|\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1)for(let point of this.points)if(point.node==node&&point.pos>this.text.length)point.pos-=breakSize-1;off=nextBreak+breakSize}}readNode(node){let tile=Tile.get(node);let fromView=tile&&tile.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value)}}else if(node.nodeType==3){this.readTextNode(node)}else if(node.nodeName=="BR"){if(node.nextSibling)this.lineBreak()}else if(node.nodeType==1){this.readRange(node.firstChild,null)}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length}findPointInside(node,length){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+(isAtEnd(node,point.node,point.offset)?length:0)}}function isAtEnd(parent,node,offset){for(;;){if(!node||offset<maxOffset(node))return false;if(node==parent)return true;offset=domIndex(node)+1;node=node.parentNode}}function isEmptyToEnd(node,end){let widgets;for(;;node=node.nextSibling){if(node==end||!node)break;let view=Tile.get(node);if(!(view===null||view===void 0?void 0:view.isWidget()))return false;if(view)(widgets||(widgets=[])).push(view)}if(widgets)for(let w of widgets){let override=w.overrideDOMText;if(override===null||override===void 0?void 0:override.length)return false}return true}class DOMPoint{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1}}class DOMChange{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text="";this.domChanged=start>-1;let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView,curSel=view.state.selection;if(view.state.readOnly&&start>-1){this.newSel=null}else if(start>-1&&(this.bounds=domBoundsAround(view.docView.tile,start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from)}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?curSel.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?curSel.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);let vp=view.viewport;if((browser.ios||browser.chrome)&&head!=anchor&&Math.min(head,anchor)<=curSel.main.from&&Math.max(head,anchor)>=curSel.main.to&&(vp.from>0||vp.to<view.state.doc.length)){let from=Math.min(head,anchor),to=Math.max(head,anchor);let offFrom=vp.from-from,offTo=vp.to-to;if((offFrom==0||offFrom==1||from==0)&&(offTo==0||offTo==-1||to==view.state.doc.length)){head=0;anchor=view.state.doc.length}}if(view.inputState.composing>-1&&curSel.ranges.length>1){this.newSel=curSel.replaceRange(EditorSelection.range(anchor,head))}else if(view.lineWrapping&&anchor==head&&!(curSel.main.empty&&curSel.main.head==head)&&view.inputState.lastTouchTime>Date.now()-100){let before=view.coordsAtPos(head,-1),assoc=0;if(before)assoc=view.inputState.lastTouchY<=before.bottom?-1:1;this.newSel=EditorSelection.create([EditorSelection.cursor(head,assoc)])}else{this.newSel=EditorSelection.single(anchor,head)}}}}function domBoundsAround(tile,from,to,offset){if(tile.isComposite()){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<tile.children.length;i++){let child=tile.children[i],end=pos+child.length;if(pos<from&&end>to)return domBoundsAround(child,from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos}if(pos>to&&child.dom.parentNode==tile.dom){toI=i;toEnd=prevEnd;break}prevEnd=end;pos=end+child.breakAfter}return{from:fromStart,to:toEnd<0?offset+tile.length:toEnd,startDOM:(fromI?tile.children[fromI-1].dom.nextSibling:null)||tile.dom.firstChild,endDOM:toI<tile.children.length&&toI>=0?tile.children[toI].dom:null}}else if(tile.isText()){return{from:offset,to:offset+tile.length,startDOM:tile.dom,endDOM:tile.dom.nextSibling}}else{return null}}function applyDOMChange(view,domChange){let change;let{newSel:newSel}=domChange,{state:state}=view,sel=state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from:from,to:to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide="end"}let cmp=state.doc.sliceString(from,to,LineBreakPlaceholder),selEnd,diff;if(!sel.empty&&sel.from>=from&&sel.to<=to&&(domChange.typeOver||cmp!=domChange.text)&&cmp.slice(0,sel.from-from)==domChange.text.slice(0,sel.from-from)&&cmp.slice(sel.to-from)==domChange.text.slice(selEnd=domChange.text.length-(cmp.length-(sel.to-from)))){change={from:sel.from,to:sel.to,insert:Text.of(domChange.text.slice(sel.from-from,selEnd).split(LineBreakPlaceholder))}}else if(diff=findDiff(cmp,domChange.text,preferredPos-from,preferredSide)){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))}}}else if(newSel&&(!view.hasFocus&&state.facet(editable)||sameSelPos(newSel,sel))){newSel=null}if(!change&&!newSel)return false;if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute("autocorrect")=="off"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:change.from,to:change.to,insert:Text.of([change.insert.toString().replace("."," ")])}}else if(state.doc.lineAt(sel.from).to<sel.to&&view.docView.lineHasWidget(sel.to)&&view.inputState.insertingTextAt>Date.now()-50){change={from:sel.from,to:sel.to,insert:state.toText(view.inputState.insertingText)}}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()=="\n "&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([" "])}}if(change){return applyDOMChangeInner(view,change,newSel,lastKey)}else if(newSel&&!sameSelPos(newSel,sel)){let scrollIntoView=false,userEvent="select";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin=="select")scrollIntoView=true;userEvent=view.inputState.lastSelectionOrigin;if(userEvent=="select.pointer")newSel=skipAtomsForSelection(state.facet(atomicRanges).map(f=>f(view)),newSel)}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView,userEvent:userEvent});return true}else{return false}}function applyDOMChangeInner(view,change,newSel,lastKey=-1){if(browser.ios&&view.inputState.flushIOSKey(change))return true;let sel=view.state.selection.main;if(browser.android&&(change.to==sel.to&&(change.from==sel.from||change.from==sel.from-1&&view.state.sliceDoc(change.from,sel.from)==" ")&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,"Enter",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from&&change.to>sel.head)&&dispatchKey(view.contentDOM,"Backspace",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,"Delete",46)))return true;let text=change.insert.toString();if(view.inputState.composing>=0)view.inputState.composing++;let defaultTr;let defaultInsert=()=>defaultTr||(defaultTr=applyDefaultInsert(view,change,newSel));if(!view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text,defaultInsert)))view.dispatch(defaultInsert());return true}function applyDefaultInsert(view,change,newSel){let tr,startState=view.state,sel=startState.selection.main,inAtomic=-1;if(change.from==change.to&&change.from<sel.from||change.from>sel.to){let side=change.from<sel.from?-1:1,pos=side<0?sel.from:sel.to;let moved=skipAtomicRanges(startState.facet(atomicRanges).map(f=>f(view)),pos,side);if(change.from==moved)inAtomic=moved}if(inAtomic>-1){tr={changes:change,selection:EditorSelection.cursor(change.from+change.insert.length,-1)}}else if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):"";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):"";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,undefined,view.state.lineBreak)+after))}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:undefined;if(startState.selection.ranges.length>1&&(view.inputState.composing>=0||view.inputState.compositionPendingChange)&&change.to<=sel.to+10&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange,composition=newSel&&findCompositionNode(view,newSel.main.head);if(composition){let dLen=change.insert.length-(change.to-change.from);compositionRange={from:composition.from,to:composition.to-dLen}}else{compositionRange=view.state.doc.lineAt(sel.head)}let offset=sel.to-change.to;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes:changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(view.state.sliceDoc(from,to)!=replaced||to>=compositionRange.from&&from<=compositionRange.to)return{range:range};let rangeChanges=startState.changes({from:from,to:to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))}})}else{tr={changes:changes,selection:mainSel&&startState.selection.replaceRange(mainSel)}}}let userEvent="input.type";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=".compose";if(view.inputState.compositionFirstChange){userEvent+=".start";view.inputState.compositionFirstChange=false}}return startState.update(tr,{userEvent:userEvent,scrollIntoView:true})}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--}if(preferredSide=="end"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from}else if(toB<from){let move=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move;toA=from+(toA-toB);toB=from}return{from:from,toA:toA,toB:toB}}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset))}return result}function selectionFromPoints(points,base){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base,head+base):null}function sameSelPos(selection,range){return range.head==selection.main.head&&range.anchor==selection.main.anchor}class InputState{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now()}constructor(view){this.view=view;this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastTouchX=0;this.lastTouchY=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.lastWheelEvent=0;this.pendingIOSKey=undefined;this.tabFocusMode=-1;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastContextMenu=0;this.scrollHandlers=[];this.handlers=Object.create(null);this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.insertingText="";this.insertingTextAt=0;this.mouseSelection=null;this.draggedContent=null;this.handleEvent=this.handleEvent.bind(this);this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener("input",()=>null);if(browser.gecko)firefoxCopyCutHack(view.contentDOM.ownerDocument)}handleEvent(event){if(!eventBelongsToEditor(this.view,event)||this.ignoreDuringComposition(event))return;if(event.type=="keydown"&&this.keydown(event))return;if(this.view.updateState!=0)Promise.resolve().then(()=>this.runHandlers(event.type,event));else this.runHandlers(event.type,event)}runHandlers(type,event){let handlers=this.handlers[type];if(handlers){for(let observer of handlers.observers)observer(this.view,event);for(let handler of handlers.handlers){if(event.defaultPrevented)break;if(handler(this.view,event)){event.preventDefault();break}}}}ensureHandlers(plugins){let handlers=computeHandlers(plugins),prev=this.handlers,dom=this.view.contentDOM;for(let type in handlers)if(type!="scroll"){let passive=!handlers[type].handlers.length;let exists=prev[type];if(exists&&passive!=!exists.handlers.length){dom.removeEventListener(type,this.handleEvent);exists=null}if(!exists)dom.addEventListener(type,this.handleEvent,{passive:passive})}for(let type in prev)if(type!="scroll"&&!handlers[type])dom.removeEventListener(type,this.handleEvent);this.handlers=handlers}keydown(event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return true;if(this.tabFocusMode>0&&event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)this.tabFocusMode=-1;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){this.view.observer.delayAndroidKey(event.key,event.keyCode);return true}if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&(PendingKeys.some(key=>key.keyCode==event.keyCode)&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey)){let mods={ctrlKey:event.ctrlKey,altKey:event.altKey,metaKey:event.metaKey,shiftKey:event.shiftKey};if(mods.shiftKey&&browser.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&iosVirtualKeyboardOpen(this.view.win))mods.shiftKey=false;this.pendingIOSKey={key:event.key,keyCode:event.keyCode,mods:mods};setTimeout(()=>this.flushIOSKey(),250);return true}if(event.keyCode!=229)this.view.observer.forceFlush();return false}flushIOSKey(change){let key=this.pendingIOSKey;if(!key)return false;if(key.key=="Enter"&&change&&change.from<change.to&&/^\S+$/.test(change.insert.toString()))return false;this.pendingIOSKey=undefined;return dispatchKey(this.view.contentDOM,key.key,key.keyCode,key.mods)}ignoreDuringComposition(event){if(!/^key/.test(event.type)||event.synthetic)return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true}return false}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection}update(update){this.view.observer.update(update);if(this.mouseSelection)this.mouseSelection.update(update);if(this.draggedContent&&update.docChanged)this.draggedContent=this.draggedContent.map(update.changes);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0}destroy(){if(this.mouseSelection)this.mouseSelection.destroy()}}function iosVirtualKeyboardOpen(win){if(!win.visualViewport)return false;return win.visualViewport.height*win.visualViewport.scale/win.document.documentElement.clientHeight<.85}function bindHandler(plugin,handler){return(view,event)=>{try{return handler.call(plugin,event,view)}catch(e){logException(view.state,e)}}}function computeHandlers(plugins){let result=Object.create(null);function record(type){return result[type]||(result[type]={observers:[],handlers:[]})}for(let plugin of plugins){let spec=plugin.spec,handlers=spec&&spec.plugin.domEventHandlers,observers=spec&&spec.plugin.domEventObservers;if(handlers)for(let type in handlers){let f=handlers[type];if(f)record(type).handlers.push(bindHandler(plugin.value,f))}if(observers)for(let type in observers){let f=observers[type];if(f)record(type).observers.push(bindHandler(plugin.value,f))}}for(let type in handlers)record(type).handlers.push(handlers[type]);for(let type in observers)record(type).observers.push(observers[type]);return result}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}];const EmacsyPendingKeys="dthko";const modifierCodes=[16,17,18,20,91,92,224,225];const dragScrollMargin=6;function dragScrollSpeed(dist){return Math.max(0,dist)*.7+8}function dist(a,b){return Math.max(Math.abs(a.clientX-b.clientX),Math.abs(a.clientY-b.clientY))}class MouseSelection{constructor(view,startEvent,style,mustSelect){this.view=view;this.startEvent=startEvent;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParents=scrollableParents(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc=view.contentDOM.ownerDocument;doc.addEventListener("mousemove",this.move=this.move.bind(this));doc.addEventListener("mouseup",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false}start(event){if(this.dragging===false)this.select(event)}move(event){if(event.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,event)<10)return;this.select(this.lastEvent=event);let sx=0,sy=0;let left=0,top=0,right=this.view.win.innerWidth,bottom=this.view.win.innerHeight;if(this.scrollParents.x)({left:left,right:right}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:top,bottom:bottom}=this.scrollParents.y.getBoundingClientRect());let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=left+dragScrollMargin)sx=-dragScrollSpeed(left-event.clientX);else if(event.clientX+margins.right>=right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-right);if(event.clientY-margins.top<=top+dragScrollMargin)sy=-dragScrollSpeed(top-event.clientY);else if(event.clientY+margins.bottom>=bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-bottom);this.setScrollSpeed(sx,sy)}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy()}destroy(){this.setScrollSpeed(0,0);let doc=this.view.contentDOM.ownerDocument;doc.removeEventListener("mousemove",this.move);doc.removeEventListener("mouseup",this.up);this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50)}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1}}scroll(){let{x:x,y:y}=this.scrollSpeed;if(x&&this.scrollParents.x){this.scrollParents.x.scrollLeft+=x;x=0}if(y&&this.scrollParents.y){this.scrollParents.y.scrollTop+=y;y=0}if(x||y)this.view.win.scrollBy(x,y);if(this.dragging===false)this.select(this.lastEvent)}select(event){let{view:view}=this,selection=skipAtomsForSelection(this.atoms,this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection,this.dragging===false))this.view.dispatch({selection:selection,userEvent:"select.pointer"});this.mustSelect=false}update(update){if(update.transactions.some(tr=>tr.isUserEvent("input.type")))this.destroy();else if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey}function isInPrimarySelection(view,event){let{main:main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true}return false}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,tile;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(tile=Tile.get(node))&&tile.isWidget()&&!tile.isHidden&&tile.widget.ignoreEvent(event))return false;return true}const handlers=Object.create(null);const observers=Object.create(null);const brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value)},50)}function textFilter(state,facet,text){for(let filter of state.facet(facet))text=filter(text,state);return text}function doPaste(view,input){input=textFilter(view.state,clipboardInputFilter,input);let{state:state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range:range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert:insert},range:EditorSelection.cursor(range.from+insert.length)}})}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)}})}else{changes=state.replaceSelection(text)}view.dispatch(changes,{userEvent:"input.paste",scrollIntoView:true})}observers.scroll=view=>{view.inputState.lastScrollTop=view.scrollDOM.scrollTop;view.inputState.lastScrollLeft=view.scrollDOM.scrollLeft};observers.wheel=observers.mousewheel=view=>{view.inputState.lastWheelEvent=Date.now()};handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin("select");if(event.keyCode==27&&view.inputState.tabFocusMode!=0)view.inputState.tabFocusMode=Date.now()+2e3;return false};observers.touchstart=(view,e)=>{let iState=view.inputState,touch=e.targetTouches[0];iState.lastTouchTime=Date.now();if(touch){iState.lastTouchX=touch.clientX;iState.lastTouchY=touch.clientY}iState.setSelectionOrigin("select.pointer")};observers.touchmove=view=>{view.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return false;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=!view.hasFocus;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>{focusPreventScroll(view.contentDOM);let active=view.root.activeElement;if(active&&!active.contains(view.contentDOM))active.blur()});let mouseSel=view.inputState.mouseSelection;if(mouseSel){mouseSel.start(event);return mouseSel.dragging===false}}else{view.inputState.setSelectionOrigin("select.pointer")}return false};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias)}else if(type==2){return groupAt(view.state,pos,bias)}else{let visual=view.docView.lineAt(pos,bias),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.undirectionalRange(from,to)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(view,event){let start=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes)}},get(event,extend,multiple){let cur=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),removed;let range=rangeForClick(view,cur.pos,cur.assoc,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.assoc,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to,range.assoc):EditorSelection.range(to,from,range.assoc)}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to,range.assoc));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range])}}}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from:from,to:to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0))}return null}handlers.dragstart=(view,event)=>{let{selection:{main:range}}=view.state;if(event.target.draggable){let tile=view.docView.tile.nearest(event.target);if(tile&&tile.isWidget()){let from=tile.posAtStart,to=from+tile.length;if(from>=range.to||to<=range.from)range=EditorSelection.undirectionalRange(from,to)}}let{inputState:inputState}=view;if(inputState.mouseSelection)inputState.mouseSelection.dragging=true;inputState.draggedContent=range;if(event.dataTransfer){event.dataTransfer.setData("Text",textFilter(view.state,clipboardOutputFilter,view.state.sliceDoc(range.from,range.to)));event.dataTransfer.effectAllowed="copyMove"}return false};handlers.dragend=view=>{view.inputState.draggedContent=null;return false};function dropText(view,event,text,direct){text=textFilter(view.state,clipboardInputFilter,text);if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);let{draggedContent:draggedContent}=view.inputState;let del=direct&&draggedContent&&dragMovesSelection(view,event)?{from:draggedContent.from,to:draggedContent.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes:changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?"move.drop":"input.drop"});view.inputState.draggedContent=null}handlers.drop=(view,event)=>{if(!event.dataTransfer)return false;if(view.state.readOnly)return true;let files=event.dataTransfer.files;if(files&&files.length){let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false)};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\x00-\x08\x0e-\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile()};reader.readAsText(files[i])}return true}else{let text=event.dataTransfer.getData("Text");if(text){dropText(view,event,text,true);return true}}return false};handlers.paste=(view,event)=>{if(view.state.readOnly)return true;view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData("text/plain")||data.getData("text/uri-list"));return true}else{capturePaste(view);return false}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus()},50)}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range)}if(!content.length){let upto=-1;for(let{from:from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)})}upto=line.number}linewise=true}return{text:textFilter(state,clipboardOutputFilter,content.join(state.lineBreak)),ranges:ranges,linewise:linewise}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{if(!hasSelection(view.contentDOM,view.observer.selectionRange))return false;let{text:text,ranges:ranges,linewise:linewise}=copiedRange(view.state);if(!text&&!linewise)return false;lastLinewiseCopy=linewise?text:null;if(event.type=="cut"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:"delete.cut"});let data=brokenClipboardAPI?null:event.clipboardData;if(data){data.clearData();data.setData("text/plain",text);return true}else{captureCopy(view,text);return false}};const isFocusChange=Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect)}return effects.length?state.update({effects:effects,annotations:isFocusChange.of(true)}):null}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([])}},10)}observers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft}updateForFocusChange(view)};observers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view)};observers.compositionstart=observers.compositionupdate=view=>{if(view.observer.editContext)return;if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0}};observers.compositionend=view=>{if(view.observer.editContext)return;view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon()}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush())}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.hasComposition)view.update([])},50)}};observers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(view,event)=>{var _a,_b;if(event.inputType=="insertText"||event.inputType=="insertCompositionText"){view.inputState.insertingText=event.data;view.inputState.insertingTextAt=Date.now()}if(event.inputType=="insertReplacementText"&&view.observer.editContext){let text=(_a=event.dataTransfer)===null||_a===void 0?void 0:_a.getData("text/plain"),ranges=event.getTargetRanges();if(text&&ranges.length){let r=ranges[0];let from=view.posAtDOM(r.startContainer,r.startOffset),to=view.posAtDOM(r.endContainer,r.endOffset);applyDOMChangeInner(view,{from:from,to:to,insert:view.state.toText(text)},null);return true}}let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key=="Backspace"||pending.key=="Delete"){let startViewHeight=((_b=window.visualViewport)===null||_b===void 0?void 0:_b.height)||0;setTimeout(()=>{var _a;if((((_a=window.visualViewport)===null||_a===void 0?void 0:_a.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus()}},100)}}if(browser.ios&&event.inputType=="deleteContentForward"){view.observer.flushSoon()}if(browser.safari&&event.inputType=="insertText"&&view.inputState.composing>=0){setTimeout(()=>observers.compositionend(view,event),20)}return false};const appliedFirefoxHack=new Set;function firefoxCopyCutHack(doc){if(!appliedFirefoxHack.has(doc)){appliedFirefoxHack.add(doc);doc.addEventListener("copy",()=>{});doc.addEventListener("cut",()=>{})}}const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];let heightChangeFlag=false;function clearHeightChangeFlag(){heightChangeFlag=false}class HeightOracle{constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30}heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/Math.max(1,this.lineLength-5)));return lines*this.lineHeight}setDoc(doc){this.doc=doc;return this}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true}}return newHeight}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.abs(lineHeight-this.lineHeight)>.3||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true}}return changed}}class MeasuredHeights{constructor(from,heights){this.from=from;this.heights=heights;this.index=0}get more(){return this.index<this.heights.length}}class BlockInfo{constructor(from,length,top,height,_content){this.from=from;this.length=length;this.top=top;this.height=height;this._content=_content}get type(){return typeof this._content=="number"?BlockType.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 PointDecoration?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content)}}var QueryType=function(QueryType){QueryType[QueryType["ByPos"]=0]="ByPos";QueryType[QueryType["ByHeight"]=1]="ByHeight";QueryType[QueryType["ByPosNoHeight"]=2]="ByPosNoHeight";return QueryType}(QueryType||(QueryType={}));const Epsilon=.001;class HeightMap{constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags}get outdated(){return(this.flags&2)>0}set outdated(value){this.flags=(value?2:0)|this.flags&-3}setHeight(height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)heightChangeFlag=true;this.height=height}}replace(_from,_to,nodes){return HeightMap.of(nodes)}decomposeLeft(_to,result){result.push(this)}decomposeRight(_from,result){result.push(this)}applyChanges(decorations,oldDoc,oracle,changes){let me=this,doc=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA:fromA,toA:toA,fromB:fromB,toB:toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0)}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc),decorations,fromB,toB);me=replace(me,me.replace(fromA,toA,nodes))}return me.updateHeight(oracle,0)}static empty(){return new HeightMapText(0,0,0)}static of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size}else if(after>before*2){let split=nodes[j];if(split.break)nodes.splice(j,1,split.left,null,split.right);else nodes.splice(j,1,split.left,split.right);j+=2+split.break;after-=split.size}else{break}}else if(before<after){let next=nodes[i++];if(next)before+=next.size}else{let next=nodes[--j];if(next)after+=next.size}}let brk=0;if(nodes[i-1]==null){brk=1;i--}else if(nodes[i]==null){brk=1;j++}return new HeightMapBranch(HeightMap.of(nodes.slice(0,i)),brk,HeightMap.of(nodes.slice(j)))}}function replace(old,val){if(old==val)return old;if(old.constructor!=val.constructor)heightChangeFlag=true;return val}HeightMap.prototype.size=1;const SpaceDeco=Decoration.replace({});class HeightMapBlock extends HeightMap{constructor(length,height,deco){super(length,height);this.deco=deco;this.spaceAbove=0}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(height,_oracle,top,offset){return this.spaceAbove&&height<top+this.spaceAbove?new BlockInfo(offset,0,top,this.spaceAbove,SpaceDeco):this.mainBlock(top,offset)}lineAt(_value,_type,oracle,top,offset){let main=this.mainBlock(top,offset);return this.spaceAbove?this.blockAt(0,oracle,top,offset).join(main):main}forEachLine(from,to,oracle,top,offset,f){if(from<=offset+this.length&&to>=offset)f(this.lineAt(0,QueryType.ByPos,oracle,top,offset))}setMeasuredHeight(measured){let next=measured.heights[measured.index++];if(next<0){this.spaceAbove=-next;next=measured.heights[measured.index++]}else{this.spaceAbove=0}this.setHeight(next)}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setMeasuredHeight(measured);this.outdated=false;return this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(length,height,above){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;this.spaceAbove=above}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new HeightMapText(node.length,this.height,this.spaceAbove);else node.height=this.height;if(!this.outdated)node.outdated=false;return node}else{return HeightMap.of(nodes)}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more){this.setMeasuredHeight(measured)}else if(force||this.outdated){this.spaceAbove=0;this.setHeight(Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight)}this.outdated=false;return this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(length){super(length,0)}heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1)}else{perLine=this.height/lines}return{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}}blockAt(height,oracle,top,offset){let{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+(height<oracle.lineHeight?0:Math.round(Math.max(0,Math.min(1,(height-top)/this.height))*this.length));let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0)}else{let line=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top)/perLine)));let{from:from,length:length}=oracle.doc.line(firstLine+line);return new BlockInfo(from,length,top+perLine*line,perLine,0)}}lineAt(value,type,oracle,top,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top,offset);if(type==QueryType.ByPosNoHeight){let{from:from,to:to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0)}let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top,Math.min(lineTop,top+this.height-lineHeight)),lineHeight,0)}forEachLine(from,to,oracle,top,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove)}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof HeightMapGap)nodes[nodes.length-1]=new HeightMapGap(last.length+after);else nodes.push(null,new HeightMapGap(after-1))}if(from>0){let first=nodes[0];if(first instanceof HeightMapGap)nodes[0]=new HeightMapGap(from+first.length);else nodes.unshift(new HeightMapGap(from-1),null)}return HeightMap.of(nodes)}decomposeLeft(to,result){result.push(new HeightMapGap(to-1),null)}decomposeRight(from,result){result.push(null,new HeightMapGap(this.length-from-1))}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++],above=0;if(height<0){above=-height;height=measured.heights[measured.index++]}if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height,above);line.outdated=false;nodes.push(line);pos+=len+1}if(pos<=end)nodes.push(null,new HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)heightChangeFlag=true;return replace(this,result)}else if(force||this.outdated){this.setHeight(oracle.heightForGap(offset,offset+this.length));this.outdated=false}return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size}get break(){return this.flags&1}blockAt(height,oracle,top,offset){let mid=top+this.left.height;return height<mid?this.left.blockAt(height,oracle,top,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break)}lineAt(value,type,oracle,top,offset){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base=left?this.left.lineAt(value,type,oracle,top,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base.to<rightOffset:base.from>rightOffset))return base;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top,offset).join(base)}forEachLine(from,to,oracle,top,offset,f){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f)}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f)}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right)}return HeightMap.of(result)}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null)}if(to>left)this.right.decomposeLeft(to-left,result)}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right)}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=replace(this.left,left);this.right=replace(this.right,right);this.setHeight(left.height+right.height);this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this}updateHeight(oracle,offset=0,force=false,measured){let{left:left,right:right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1,0));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1}}this.pos=to}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco))}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len)}}else if(to>from){this.span(from,to)}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to}enterLine(){if(this.lineStart>-1)return;let{from:from,to:to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null)}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1,0));this.writtenTo=this.pos}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1,0);this.nodes.push(line);return line}addBlock(block){this.enterLine();let deco=block.deco;if(deco&&deco.startSide>0&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(deco&&deco.endSide>0)this.covering=block}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1,0));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1}return this.nodes}static build(oracle,decorations,from,to){let builder=new NodeBuilder(from,oracle);RangeSet.spans(decorations,from,to,builder,0);return builder.finish(from)}}function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator;RangeSet.compare(a,b,diff,comp,0);return comp.changes}class DecorationComparator{constructor(){this.changes=[]}compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5)}}function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc=dom.ownerDocument,win=doc.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!="visible"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top=Math.max(top,parentRect.top);bottom=Math.min(parent==dom.parentNode?win.innerHeight:bottom,parentRect.bottom)}parent=style.position=="absolute"||style.position=="fixed"?elt.offsetParent:elt.parentNode}else if(parent.nodeType==11){parent=parent.host}else{break}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top-(rect.top+paddingTop),bottom:Math.max(top,bottom)-(rect.top+paddingTop)}}function inWindow(elt){let rect=elt.getBoundingClientRect(),win=elt.ownerDocument.defaultView||window;return rect.left<win.innerWidth&&rect.right>0&&rect.top<win.innerHeight&&rect.bottom>0}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)}}class LineGap{constructor(from,to,size,displaySize){this.from=from;this.to=to;this.size=size;this.displaySize=displaySize}static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false}return true}draw(viewState,wrapping){return Decoration.replace({widget:new LineGapWidget(this.displaySize*(wrapping?viewState.scaleY:viewState.scaleX),wrapping)}).range(this.from,this.to)}}class LineGapWidget extends WidgetType{constructor(size,vertical){super();this.size=size;this.vertical=vertical}eq(other){return other.size==this.size&&other.vertical==this.vertical}toDOM(){let elt=document.createElement("div");if(this.vertical){elt.style.height=this.size+"px"}else{elt.style.width=this.size+"px";elt.style.height="2px";elt.style.display="inline-block"}return elt}get estimatedHeight(){return this.vertical?this.size:-1}}class ViewState{constructor(view,state){this.view=view;this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scaleX=1;this.scaleY=1;this.scrollOffset=0;this.scrolledToBottom=false;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!="function"&&v.class=="cm-lineWrapping");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=staticDeco(state);this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);for(let i=0;i<2;i++){this.viewport=this.getViewport(0,null);if(!this.updateForViewport())break}this.updateViewportLines();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(this,false)));this.scrollParent=view.scrollDOM;this.computeVisibleRanges()}updateForViewport(){let viewports=[this.viewport],{main:main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from:from,to:to})=>pos>=from&&pos<=to)){let{from:from,to:to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to))}}this.viewports=viewports.sort((a,b)=>a.from-b.from);return this.updateScaler()}updateScaler(){let scaler=this.scaler;this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);return scaler.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(scaleBlock(block,this.scaler))})}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=staticDeco(this.state);let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);clearHeightChangeFlag();this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight||heightChangeFlag)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=prevHeight}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let viewportChange=viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;update.flags|=this.updateForViewport();if(viewportChange||!update.changes.empty||update.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges(update.changes);if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&(update.selectionSet||update.focusChanged)&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true}measure(){let{view:view}=this,dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction=="rtl"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace)||this.mustMeasureContent==="refresh";let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;if(domRect.width&&domRect.height){let{scaleX:scaleX,scaleY:scaleY}=getScale(dom,domRect);if(scaleX>.005&&Math.abs(this.scaleX-scaleX)>.005||scaleY>.005&&Math.abs(this.scaleY-scaleY)>.005){this.scaleX=scaleX;this.scaleY=scaleY;result|=16;refresh=measureContent=true}}let paddingTop=(parseInt(style.paddingTop)||0)*this.scaleY;let paddingBottom=(parseInt(style.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=16|2}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=16}let scrollParent=scrollableParents(this.view.contentDOM,false).y;if(scrollParent!=this.scrollParent){this.scrollParent=scrollParent;this.scrollAnchorHeight=-1;this.scrollOffset=0}let scrollOffset=this.getScrollOffset();if(this.scrollOffset!=scrollOffset){this.scrollAnchorHeight=-1;this.scrollOffset=scrollOffset}this.scrolledToBottom=isScrolledToBottom(this.scrollParent||view.win);let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true}if(!this.inView&&!this.scrollTarget&&!inWindow(view.dom))return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=16}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,Math.max(5,contentWidth/charWidth),lineHeights);if(refresh){view.docView.minWidth=0;result|=16}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);clearHeightChangeFlag();for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights))}if(heightChangeFlag)result|=2}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange){if(result&2)result|=this.updateScaler();this.viewport=this.getViewport(bias,this.scrollTarget);result|=this.updateForViewport()}if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc()}return result}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head:head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y=="center")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y=="start"||scrollTarget.y=="nearest"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to)}}return viewport}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:from,to:to},bias=0){if(!this.inView)return true;let{top:top}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom:bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;return(from==0||top<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&(top>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3)}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size,gap.displaySize));return mapped}ensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return}}let gap=find(current,gap=>gap.from>=line.from&&gap.to<=line.to&&Math.abs(gap.from-from)<halfMargin&&Math.abs(gap.to-to)<halfMargin&&!avoid.some(pos=>gap.from<pos&&gap.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart}let size=this.gapSize(line,from,to,structure);let displaySize=wrapping||size<2e6?size:2e6;gap=new LineGap(from,to,size,displaySize)}gaps.push(gap)};let checkLine=line=>{if(line.length<doubleMargin||line.type!=BlockType.Text)return;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)return;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top=targetFrac-spaceFrac;bot=targetFrac+spaceFrac}else{top=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height}viewFrom=findPosition(structure,top);viewTo=findPosition(structure,bot)}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let horizOffset=0;if(totalWidth>2e6)for(let old of current){if(old.from>=line.from&&old.from<line.to&&old.size!=old.displaySize&&old.from*this.heightOracle.charWidth+horizOffset<this.pixelViewport.left)horizOffset=old.size-old.displaySize}let pxLeft=this.pixelViewport.left+horizOffset,pxRight=this.pixelViewport.right+horizOffset;let left,right;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((pxRight-pxLeft)/2+marginWidth)/totalWidth;left=targetFrac-spaceFrac;right=targetFrac+spaceFrac}else{left=(pxLeft-marginWidth)/totalWidth;right=(pxRight+marginWidth)/totalWidth}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right)}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure)};for(let line of this.viewportLines){if(Array.isArray(line.type))line.type.forEach(checkLine);else checkLine(line)}return gaps}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction}else{return structure.total*this.heightOracle.charWidth*fraction}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this,this.heightOracle.lineWrapping)))}}computeVisibleRanges(changes){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from:from,to:to})},point(){}},20);let changed=0;if(ranges.length!=this.visibleRanges.length){changed=8|4}else{for(let i=0;i<ranges.length&&!(changed&8);i++){let old=this.visibleRanges[i],nw=ranges[i];if(old.from!=nw.from||old.to!=nw.to){changed|=4;if(!(changes&&changes.mapPos(old.from,-1)==nw.from&&changes.mapPos(old.to,1)==nw.to))changed|=8}}}this.visibleRanges=ranges;return changed}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(height){return height>=this.viewportLines[0].top&&height<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(l=>l.top<=height&&l.bottom>=height)||scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){let base=this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top;return base*this.scaleY}scrollAnchorAt(scrollOffset){let block=this.lineBlockAtHeight(scrollOffset+8);return block.from>=this.viewport.from||this.viewportLines[0].top-scrollOffset>200?block:this.viewportLines[0]}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(from,to){this.from=from;this.to=to}}function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from,to){if(from>pos){ranges.push({from:pos,to:from});total+=from-pos}pos=to}},20);if(pos<to){ranges.push({from:pos,to:to});total+=to-pos}return{total:total,ranges:ranges}}function findPosition({total:total,ranges:ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist=Math.floor(total*ratio);for(let i=0;;i++){let{from:from,to:to}=ranges[i],size=to-from;if(dist<=size)return from+dist;dist-=size}}function findFraction(structure,pos){let counted=0;for(let{from:from,to:to}of structure.ranges){if(pos<=to){counted+=pos-from;break}counted+=to-from}return counted/structure.total}function find(array,f){for(let val of array)if(f(val))return val;return undefined}const IdScaler={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(other){return other==this}};function staticDeco(state){let deco=state.facet(decorations).filter(d=>typeof d!="function");let outer=state.facet(outerDecorations).filter(d=>typeof d!="function");if(outer.length)deco.push(RangeSet.join(outer));return deco}class BigScaler{constructor(oracle,heightMap,viewports){let vpHeight=0,base=0,domBase=0;this.viewports=viewports.map(({from:from,to:to})=>{let top=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top;return{from:from,to:to,top:top,bottom:bottom,domTop:0,domBottom:0}});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base=obj.bottom}}toDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base=vp.bottom;domBase=vp.domBottom}}fromDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base=vp.bottom;domBase=vp.domBottom}}eq(other){if(!(other instanceof BigScaler))return false;return this.scale==other.scale&&this.viewports.length==other.viewports.length&&this.viewports.every((vp,i)=>vp.from==other.viewports[i].from&&vp.to==other.viewports[i].to)}}function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content)}const theme=Facet.define({combine:strs=>strs.join(" ")});const darkTheme=Facet.define({combine:values=>values.indexOf(true)>-1});const baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName();const lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\w*/,m=>{if(m=="&")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m]}):main+" "+sel}})}const baseTheme$1=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<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"}},lightDarkIDs);const observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};const useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(view){this.view=view;this.active=false;this.editContext=null;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;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=false;this.gapIntersection=null;this.gaps=[];this.printQuery=null;this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type=="childList"&&m.removedNodes.length||m.type=="characterData"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush()});if(window.EditContext&&browser.android&&view.constructor.EDIT_CONTEXT!==false&&!(browser.chrome&&browser.chrome_version<126)){this.editContext=new EditContextManager(view);if(view.state.facet(editable))view.contentDOM.editContext=this.editContext.editContext}if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:"characterData",oldValue:event.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);if(window.matchMedia)this.printQuery=window.matchMedia("print");if(typeof ResizeObserver=="function"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize()});this.resizeScroll.observe(view.scrollDOM)}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver=="function"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent("Event"))}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent("Event"))},{})}this.listenForScroll();this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e);if(this.intersecting)this.view.measure()}onScroll(e){if(this.intersecting)this.flush(false);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(e)}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure()},50)}onPrint(event){if((event.type=="change"||!event.type)&&!event.matches)return;this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure()},500)}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(this.dom,sel))return;let context=sel.anchorNode&&view.docView.tile.nearest(sel.anchorNode);if(context&&context.isWidget()&&context.widget.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&sel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false)}readSelectionRange(){let{view:view}=this;let selection=getSelection(view.root);if(!selection)return false;let range=browser.safari&&view.root.nodeType==11&&view.root.activeElement==this.dom&&safariSelectionRangeHack(this.view,selection)||selection;if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode}else if(dom.nodeType==11){dom=dom.host}else{break}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);for(let dom of this.scrollTargets=changed)dom.addEventListener("scroll",this.onScroll)}}ignore(f){if(!this.active)return f();try{this.stop();return f()}finally{this.start();this.clear()}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener("DOMCharacterDataModified",this.onCharData);this.active=true}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData)}clear(){this.processRecords();this.queue.length=0;this.selectionChanged=false}delayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key=this.delayedAndroidKey;if(key){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key.force)dispatchKey(this.dom,key.key,key.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush)}if(!this.delayedAndroidKey||key=="Enter")this.delayedAndroidKey={key:key,keyCode:keyCode,force:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)}}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush()})}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1}this.flush()}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from:from,to:to}=range)}else{from=Math.min(range.from,from);to=Math.max(range.to,to)}}return{from:from,to:to,typeOver:typeOver}}readChange(){let{from:from,to:to,typeOver:typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;let change=new DOMChange(this.view,from,to,typeOver);this.view.docView.domChanged={newSel:change.newSel?change.newSel.main:null};return change}flush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange){this.view.requestMeasure();return false}let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState&&(domChange.domChanged||domChange.newSel&&!sameSelPos(this.view.state.selection,domChange.newSel.main)))this.view.update([]);return handled}readMutation(rec){let tile=this.view.docView.tile.nearest(rec.target);if(!tile||tile.isWidget())return null;tile.markDirty(rec.type=="attributes");if(rec.type=="childList"){let childBefore=findChild(tile,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(tile,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?tile.posAfter(childBefore):tile.posAtStart,to:childAfter?tile.posBefore(childAfter):tile.posAtEnd,typeOver:false}}else if(rec.type=="characterData"){return{from:tile.posAtStart,to:tile.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue}}else{return null}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win)}}addWindowListeners(win){win.addEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.addEventListener)this.printQuery.addEventListener("change",this.onPrint);else this.printQuery.addListener(this.onPrint)}else win.addEventListener("beforeprint",this.onPrint);win.addEventListener("scroll",this.onScroll);win.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(win){win.removeEventListener("scroll",this.onScroll);win.removeEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.removeEventListener)this.printQuery.removeEventListener("change",this.onPrint);else this.printQuery.removeListener(this.onPrint)}else win.removeEventListener("beforeprint",this.onPrint);win.document.removeEventListener("selectionchange",this.onSelectionChange)}update(update){if(this.editContext){this.editContext.update(update);if(update.startState.facet(editable)!=update.state.facet(editable))update.view.contentDOM.editContext=update.state.facet(editable)?this.editContext.editContext:null}}destroy(){var _a,_b,_c;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);if(this.editContext){this.view.contentDOM.editContext=null;this.editContext.destroy()}}}function findChild(tile,dom,dir){while(dom){let curTile=Tile.get(dom);if(curTile&&curTile.parent==tile)return curTile;let parent=dom.parentNode;dom=parent!=tile.dom?parent:dir>0?dom.nextSibling:dom.previousSibling}return null}function buildSelectionRangeFromRange(view,range){let anchorNode=range.startContainer,anchorOffset=range.startOffset;let focusNode=range.endContainer,focusOffset=range.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor,1);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset];return{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}}function safariSelectionRangeHack(view,selection){if(selection.getComposedRanges){let range=selection.getComposedRanges(view.root)[0];if(range)return buildSelectionRangeFromRange(view,range)}let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0]}view.contentDOM.addEventListener("beforeinput",read,true);view.dom.ownerDocument.execCommand("indent");view.contentDOM.removeEventListener("beforeinput",read,true);return found?buildSelectionRangeFromRange(view,found):null}class EditContextManager{constructor(view){this.from=0;this.to=0;this.pendingContextChange=null;this.handlers=Object.create(null);this.composing=null;this.resetRange(view.state);let context=this.editContext=new window.EditContext({text:view.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,view.state.selection.main.anchor))),selectionEnd:this.toContextPos(view.state.selection.main.head)});this.handlers.textupdate=e=>{let main=view.state.selection.main,{anchor:anchor,head:head}=main;let from=this.toEditorPos(e.updateRangeStart),to=this.toEditorPos(e.updateRangeEnd);if(view.inputState.composing>=0&&!this.composing)this.composing={contextBase:e.updateRangeStart,editorBase:from,drifted:false};let deletes=to-from>e.text.length;if(from==this.from&&anchor<this.from)from=anchor;else if(to==this.to&&anchor>this.to)to=anchor;let diff=findDiff(view.state.sliceDoc(from,to),e.text,(deletes?main.from:main.to)-from,deletes?"end":null);if(!diff){let newSel=EditorSelection.single(this.toEditorPos(e.selectionStart),this.toEditorPos(e.selectionEnd));if(!sameSelPos(newSel,main))view.dispatch({selection:newSel,userEvent:"select"});return}let change={from:diff.from+from,to:diff.toA+from,insert:Text.of(e.text.slice(diff.from,diff.toB).split("\n"))};if((browser.mac||browser.android)&&change.from==head-1&&/^\. ?$/.test(e.text)&&view.contentDOM.getAttribute("autocorrect")=="off")change={from:from,to:to,insert:Text.of([e.text.replace("."," ")])};this.pendingContextChange=change;if(!view.state.readOnly){let newLen=this.to-this.from+(change.to-change.from+change.insert.length);applyDOMChangeInner(view,change,EditorSelection.single(this.toEditorPos(e.selectionStart,newLen),this.toEditorPos(e.selectionEnd,newLen)))}if(this.pendingContextChange){this.revertPending(view.state);this.setSelection(view.state)}if(change.from<change.to&&!change.insert.length&&view.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(context.text.slice(Math.max(0,e.updateRangeStart-1),Math.min(context.text.length,e.updateRangeStart+1))))this.handlers.compositionend(e)};this.handlers.characterboundsupdate=e=>{let rects=[],prev=null;for(let i=this.toEditorPos(e.rangeStart),end=this.toEditorPos(e.rangeEnd);i<end;i++){let rect=view.coordsForChar(i);prev=rect&&new DOMRect(rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top)||prev||new DOMRect;rects.push(prev)}context.updateCharacterBounds(e.rangeStart,rects)};this.handlers.textformatupdate=e=>{let deco=[];for(let format of e.getTextFormats()){let lineStyle=format.underlineStyle,thickness=format.underlineThickness;if(!/none/i.test(lineStyle)&&!/none/i.test(thickness)){let from=this.toEditorPos(format.rangeStart),to=this.toEditorPos(format.rangeEnd);if(from<to){let style=`text-decoration: underline ${/^[a-z]/.test(lineStyle)?lineStyle+" ":lineStyle=="Dashed"?"dashed ":lineStyle=="Squiggle"?"wavy ":""}${/thin/i.test(thickness)?1:2}px`;deco.push(Decoration.mark({attributes:{style:style}}).range(from,to))}}}view.dispatch({effects:setEditContextFormatting.of(Decoration.set(deco))})};this.handlers.compositionstart=()=>{if(view.inputState.composing<0){view.inputState.composing=0;view.inputState.compositionFirstChange=true}};this.handlers.compositionend=()=>{view.inputState.composing=-1;view.inputState.compositionFirstChange=null;if(this.composing){let{drifted:drifted}=this.composing;this.composing=null;if(drifted)this.reset(view.state)}};for(let event in this.handlers)context.addEventListener(event,this.handlers[event]);this.measureReq={read:view=>{let sel=getSelection(view.root);if(sel&&sel.rangeCount)this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect())}}}applyEdits(update){let off=0,abort=false,pending=this.pendingContextChange;update.changes.iterChanges((fromA,toA,_fromB,_toB,insert)=>{if(abort)return;let dLen=insert.length-(toA-fromA);if(pending&&toA>=pending.to){if(pending.from==fromA&&pending.to==toA&&pending.insert.eq(insert)){pending=this.pendingContextChange=null;off+=dLen;this.to+=dLen;return}else{pending=null;this.revertPending(update.state)}}fromA+=off;toA+=off;if(toA<=this.from){this.from+=dLen;this.to+=dLen}else if(fromA<this.to){if(fromA<this.from||toA>this.to||this.to-this.from+insert.length>3e4){abort=true;return}this.editContext.updateText(this.toContextPos(fromA),this.toContextPos(toA),insert.toString());this.to+=dLen}off+=dLen});if(pending&&!abort)this.revertPending(update.state);return!abort}update(update){let reverted=this.pendingContextChange,startSel=update.startState.selection.main;if(this.composing&&(this.composing.drifted||!update.changes.touchesRange(startSel.from,startSel.to)&&update.transactions.some(tr=>!tr.isUserEvent("input.type")&&tr.changes.touchesRange(this.from,this.to)))){this.composing.drifted=true;this.composing.editorBase=update.changes.mapPos(this.composing.editorBase)}else if(!this.applyEdits(update)||!this.rangeIsValid(update.state)){this.pendingContextChange=null;this.reset(update.state)}else if(update.docChanged||update.selectionSet||reverted){this.setSelection(update.state)}if(update.geometryChanged||update.docChanged||update.selectionSet)update.view.requestMeasure(this.measureReq)}resetRange(state){let{head:head}=state.selection.main;this.from=Math.max(0,head-1e4);this.to=Math.min(state.doc.length,head+1e4)}reset(state){this.resetRange(state);this.editContext.updateText(0,this.editContext.text.length,state.doc.sliceString(this.from,this.to));this.setSelection(state)}revertPending(state){let pending=this.pendingContextChange;this.pendingContextChange=null;this.editContext.updateText(this.toContextPos(pending.from),this.toContextPos(pending.from+pending.insert.length),state.doc.sliceString(pending.from,pending.to))}setSelection(state){let{main:main}=state.selection;let start=this.toContextPos(Math.max(this.from,Math.min(this.to,main.anchor)));let end=this.toContextPos(main.head);if(this.editContext.selectionStart!=start||this.editContext.selectionEnd!=end)this.editContext.updateSelection(start,end)}rangeIsValid(state){let{head:head}=state.selection.main;return!(this.from>0&&head-this.from<500||this.to<state.doc.length&&this.to-head<500||this.to-this.from>1e4*3)}toEditorPos(contextPos,clipLen=this.to-this.from){contextPos=Math.min(contextPos,clipLen);let c=this.composing;return c&&c.drifted?c.editorBase+(contextPos-c.contextBase):contextPos+this.from}toContextPos(editorPos){let c=this.composing;return c&&c.drifted?c.contextBase+(editorPos-c.editorBase):editorPos-this.from}destroy(){for(let event in this.handlers)this.editContext.removeEventListener(event,this.handlers[event])}}class EditorView{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(config={}){var _a;this.plugins=[];this.pluginMap=new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;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);if(config.parent)config.parent.appendChild(this.dom);let{dispatch:dispatch}=config;this.dispatchTransactions=config.dispatchTransactions||dispatch&&(trs=>trs.forEach(tr=>dispatch(tr,this)))||(trs=>this.update(trs));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(this,config.state||EditorState.create(config));if(config.scrollTo&&config.scrollTo.is(scrollIntoView))this.viewState.scrollTarget=config.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin of this.plugins)plugin.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if((_a=document.fonts)===null||_a===void 0?void 0:_a.ready)document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh";this.requestMeasure()})}dispatch(...input){let trs=input.length==1&&input[0]instanceof Transaction?input:input.length==1&&Array.isArray(input[0])?input[0]:[this.state.update(...input)];this.dispatchTransactions(trs,this)}update(transactions){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");state=tr.state}if(this.destroyed){this.viewState.state=state;return}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null}else{this.observer.clear()}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr.changes);if(tr.scrollIntoView){let{main:main}=tr.state.selection;let{x:x,y:y}=this.state.facet(EditorView.cursorScrollMargin);scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1),"nearest","nearest",y,x)}for(let e of tr.effects)if(e.is(scrollIntoView))scrollTarget=e.value.clip(this.state)}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update)}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent("select.pointer")))}finally{this.updateState=0}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(redrawn)this.docViewUpdate();if(!update.empty)for(let listener of this.state.facet(updateListener)){try{listener(update)}catch(e){logException(this.state,e,"update listener")}}if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode)}})}setState(newState){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=newState;return}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin of this.plugins)plugin.destroy(this);this.viewState=new ViewState(this,newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin of this.plugins)plugin.update(this);this.docView.destroy();this.docView=new DocView(this);this.inputState.ensureHandlers(this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[]}finally{this.updateState=0}if(hadFocus)this.focus();this.requestMeasure()}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec))}else{let plugin=this.plugins[found];plugin.mustUpdate=update;newPlugins.push(plugin)}}for(let plugin of this.plugins)if(plugin.mustUpdate!=update)plugin.destroy(this);this.plugins=newPlugins;this.pluginMap.clear()}else{for(let p of this.plugins)p.mustUpdate=update}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);if(prevSpecs!=specs)this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let plugin of this.plugins){let val=plugin.value;if(val&&val.docViewUpdate){try{val.docViewUpdate(this)}catch(e){logException(this.state,e,"doc view update listener")}}}}measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1;this.requestMeasure();return}this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let scroll=this.viewState.scrollParent,scrollOffset=this.viewState.getScrollOffset();let{scrollAnchorPos:scrollAnchorPos,scrollAnchorHeight:scrollAnchorHeight}=this.viewState;if(Math.abs(scrollOffset-this.viewState.scrollOffset)>1)scrollAnchorHeight=-1;this.viewState.scrollAnchorHeight=-1;try{for(let i=0;;i++){if(scrollAnchorHeight<0){if(isScrolledToBottom(scroll||this.win)){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height}else{let block=this.viewState.scrollAnchorAt(scrollOffset);scrollAnchorPos=block.from;scrollAnchorHeight=block.top}}this.updateState=1;let changed=this.viewState.measure();if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests];let measured=measuring.map(m=>{try{return m.read(this)}catch(e){logException(this.state,e);return BadMeasure}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);if(redrawn)this.docViewUpdate()}for(let i=0;i<measuring.length;i++)if(measured[i]!=BadMeasure){try{let m=measuring[i];if(m.write)m.write(measured[i],this)}catch(e){logException(this.state,e)}}if(redrawn)this.docView.updateSelection(true);if(!update.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrollAnchorHeight=-1;continue}else{let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=(newAnchorHeight-scrollAnchorHeight)/this.scaleY;if((diff>1||diff<-1)&&(scroll==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){scrollOffset=scrollOffset+diff;if(scroll)scroll.scrollTop+=diff;else this.win.scrollBy(0,diff);scrollAnchorHeight=-1;continue}}}break}}}finally{this.updateState=0;this.measureScheduled=-1}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses});let contentAttrs={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:!this.state.facet(editable)?"false":"true",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};if(this.state.readOnly)contentAttrs["aria-readonly"]="true";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(EditorView.announce)){if(first)this.announceDOM.textContent="";first=false;let div=this.announceDOM.appendChild(document.createElement("div"));div.textContent=effect.value}}mountStyles(){this.styleModules=this.state.facet(styleModule);let nonce=this.state.facet(EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse(),nonce?{nonce:nonce}:undefined)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false)}requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return}}this.measureRequests.push(request)}}plugin(plugin){let known=this.pluginMap.get(plugin);if(known===undefined||known&&known.plugin!=plugin)this.pluginMap.set(plugin,known=this.plugins.find(p=>p.plugin==plugin)||null);return known&&known.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(height){this.readMeasured();return this.viewState.elementAtHeight(height)}lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(pos){return this.viewState.lineBlockAt(pos)}get contentHeight(){return this.viewState.contentHeight}moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by))}moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)))}visualLineSide(line,end){let order=this.bidiSpans(line),dir=this.textDirectionAt(line.from);let span=order[end?order.length-1:0];return EditorSelection.cursor(span.side(end,dir)+line.from,span.forward(!end,dir)?1:-1)}moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap)}moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance))}domAtPos(pos,side=1){return this.docView.domAtPos(pos,side)}posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset)}posAtCoords(coords,precise=true){this.readMeasured();let found=posAtCoords(this,coords,precise);return found&&found.pos}posAndSideAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise)}coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0)}coordsForChar(pos){this.readMeasured();return this.docView.coordsForChar(pos)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos)}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from),isolates;for(let entry of this.bidiCache){if(entry.from==line.from&&entry.dir==dir&&(entry.fresh||isolatesEq(entry.isolates,isolates=getIsolatedRanges(this,line))))return entry.order}if(!isolates)isolates=getIsolatedRanges(this,line);let order=computeOrder(line.text,dir,isolates);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,isolates,true,order));return order}get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection()})}setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles()}}destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let plugin of this.plugins)plugin.destroy(this);this.plugins=[];this.inputState.destroy();this.docView.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true}static scrollIntoView(pos,options={}){var _a,_b,_c,_d;return scrollIntoView.of(new ScrollTarget(typeof pos=="number"?EditorSelection.cursor(pos):pos,(_a=options.y)!==null&&_a!==void 0?_a:"nearest",(_b=options.x)!==null&&_b!==void 0?_b:"nearest",(_c=options.yMargin)!==null&&_c!==void 0?_c:5,(_d=options.xMargin)!==null&&_d!==void 0?_d:5))}scrollSnapshot(){let{scrollTop:scrollTop,scrollLeft:scrollLeft}=this.scrollDOM;let ref=this.viewState.scrollAnchorAt(scrollTop);return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from),"start","start",ref.top-scrollTop,scrollLeft,true))}setTabFocusMode(to){if(to==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof to=="boolean")this.inputState.tabFocusMode=to?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+to}static domEventHandlers(handlers){return ViewPlugin.define(()=>({}),{eventHandlers:handlers})}static domEventObservers(observers){return ViewPlugin.define(()=>({}),{eventObservers:observers})}static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec))];if(options&&options.dark)result.push(darkTheme.of(true));return result}static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,spec,lightDarkIDs)))}static findFromDOM(dom){var _a;let content=dom.querySelector(".cm-content");let tile=content&&Tile.get(content)||Tile.get(dom);return((_a=tile===null||tile===void 0?void 0:tile.root)===null||_a===void 0?void 0:_a.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.blockWrappers=blockWrappers;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.cursorScrollMargin=Facet.define({combine:inputs=>{let x=5,y=5;for(let i of inputs){if(typeof i=="number")x=y=i;else({x:x,y:y}=i)}return{x:x,y:y}}});EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=Facet.define({combine:values=>values.length?values[0]:""});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096;const BadMeasure={};class CachedOrder{constructor(from,to,dir,isolates,fresh,order){this.from=from;this.to=to;this.dir=dir;this.isolates=isolates;this.fresh=fresh;this.order=order}static update(cache,changes){if(changes.empty&&!cache.some(c=>c.fresh))return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.isolates,false,entry.order))}return result}}function attrsFromFacet(view,facet,base){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source=="function"?source(view):source;if(value)combineAttrs(value,base)}return base}class GutterMarker extends RangeValue{compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}eq(other){return false}destroy(dom){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=undefined;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):undefined})}const sublanguageProp=new NodeProp;class Language{constructor(data,parser,extraExtensions=[],name=""){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty("tree"))Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top=topNodeAt(state,pos,side),data=top.type.prop(languageDataProp);if(!data)return[];let base=state.facet(data),sub=top.type.prop(sublanguageProp);if(sub){let innerNode=top.resolve(pos-top.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data=state.facet(sublang.facet);return sublang.type=="replace"?data:data.concat(base)}}return base})].concat(extraExtensions)}isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data}findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from:from,to:from+tree.length});return}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from:from,to:from+tree.length});return}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from)}};explore(syntaxTree(state),0);return result}get allowsNesting(){return true}}Language.setState=StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers|IterMode.EnterBracketed))if(node.type.isTop)tree=node}return tree}function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty}class DocInput{constructor(doc){this.doc=doc;this.cursorPos=0;this.string="";this.cursor=doc.iter()}get length(){return this.doc.length}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length}chunk(pos){this.syncTo(pos);return this.string}get lineChunks(){return true}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart)}}let currentContext=null;class ParseContext{constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[]}static create(parser,state,viewport){return new ParseContext(parser,state,[],Tree.empty,0,viewport,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=undefined;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true}return this.withContext(()=>{var _a;if(typeof until=="number"){let endTime=Date.now()+until;until=()=>Date.now()>endTime}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a=this.parse.stoppedAt)!==null&&_a!==void 0?_a:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true}if(until())return false}})}takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null}}withContext(f){let prev=currentContext;currentContext=this;try{return f()}finally{currentContext=prev}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments}changes(changes,newState){let{fragments:fragments,tree:tree,treeLen:treeLen,viewport:viewport,skipped:skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA:fromA,toA:toA,fromB:fromB,toB:toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from:from,to:to})}}}return new ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn)}updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:from,to:to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1)}}if(this.skipped.length>=startLen)return false;this.reset();return true}reset(){if(this.parse){this.takeTree();this.parse=null}}skipUntilInView(from,to){this.skipped.push({from:from,to:to})}static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from)},stoppedAt:null,stopAt(){}};return parser}}}isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto}static get(){return currentContext}}function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to}])}class LanguageState{constructor(context){this.context=context;this.tree=context.tree}apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?undefined:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new LanguageState(newCx)}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new LanguageState(parseState)}}Language.state=StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr)}});let requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout)};if(typeof requestIdleCallback!="undefined")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100})},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle)};const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;const parseWorker=ViewPlugin.fromClass(class ParseWorker{constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork()}update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged||update.selectionSet){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork()}this.checkAsyncSchedule(cx)}scheduleWork(){if(this.working)return;let{state:state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work)}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3}if(this.chunkBudget<=0)return;let{state:state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>isInputPending&&isInputPending()||Date.now()>endTime,vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))})}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context)}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null}}destroy(){if(this.working)this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}});const language=Facet.define({combine(languages){return languages.length?languages[0]:null},enables:language=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language],state=>{let lang=state.facet(language);return lang&&lang.name?{"data-language":lang.name}:{}})]});const indentUnit=Facet.define({combine:values=>{if(!values.length)return" ";let unit=values[0];if(!unit||/\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error("Invalid indent unit: "+JSON.stringify(values[0]));return unit}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length}const indentNodeProp=new NodeProp;class HighlightStyle{constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=Object.create(null)))["."+cls]=spec;return cls}const all=typeof options.all=="string"?options.all:options.all?def(options.all):undefined;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:undefined;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all:all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType}static define(specs,options){return new HighlightStyle(specs,options||{})}}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\s\u00a0]/);if(end==-1)end=string.length}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++}return n}class StringStream{constructor(string,tabSize,indentUnit,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||undefined}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match=="string")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch}}eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start}eatSpace(){let start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start}skipToEnd(){this.pos=this.string.length}skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true}}backUp(n){this.pos-=n}column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start}return this.lastColumnValue}indentation(){var _a;return(_a=this.overrideIndent)!==null&&_a!==void 0?_a:countCol(this.string,null,this.tabSize)}match(pattern,consume,caseInsensitive){if(typeof pattern=="string"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true}else return null}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match}}current(){return this.string.slice(this.start,this.pos)}}function fullParser(spec){return{name:spec.name||"",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens,mergeTokens:spec.mergeTokens!==false}}function defaultCopyState(state){if(typeof state!="object")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val}return newState}const IndentedFrom=new WeakMap;class StreamLanguage extends Language{constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges)}};super(data,impl,[],parser.name);this.topNode=docID(data,this);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable}static define(spec){return new StreamLanguage(spec)}getIndent(cx){let from=undefined;let{overrideIndentation:overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<cx.pos-1e4)from=undefined}let start=findState(this,cx.node.tree,cx.node.from,cx.node.from,from!==null&&from!==void 0?from:cx.pos),statePos,state;if(start){state=start.state;statePos=start.pos+1}else{state=this.streamParser.startState(cx.unit);statePos=cx.node.from}if(cx.pos-statePos>1e4)return null;while(statePos<cx.pos){let line=cx.state.doc.lineAt(statePos),end=Math.min(cx.pos,line.to);if(line.length){let indentation=overrideIndentation?overrideIndentation(line.from):-1;let stream=new StringStream(line.text,cx.state.tabSize,cx.unit,indentation<0?undefined:indentation);while(stream.pos<end-line.from)readToken(this.streamParser.token,stream,state)}else{this.streamParser.blankLine(state,cx.unit)}if(end==cx.pos)break;statePos=line.to+1}let line=cx.lineAt(cx.pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\s*(.*)/.exec(line.text)[1],cx)}get allowsNesting(){return false}}function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found}return null}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&from==0&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length)}}return null}function findStartInFragments(lang,fragments,startPos,endPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&found.pos<=endPos&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree:tree}}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty}}class Parse{constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=undefined;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state:state,tree:tree}=findStartInFragments(lang,fragments,from,this.to,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i])}if(context&&this.parsedPos<context.viewport.from-1e5&&ranges.some(r=>r.from<=context.viewport.from&&r.to>=context.viewport.from)){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from}this.moveRangeIndex()}advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+512);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish()}return null}stopAt(pos){this.stoppedAt=pos}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf("\n");if(eol>-1)chunk=chunk.slice(0,eol)}else if(chunk=="\n"){chunk=""}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos)}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length}return{line:line,end:end}}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end}return offset}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++}emitToken(id,from,to,offset){let size=4;if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0}let last=this.chunk.length-4;if(this.lang.streamParser.mergeTokens&&size==4&&last>=0&&this.chunk[last]==id&&this.chunk[last+2]==from)this.chunk[last+2]=to;else this.chunk.push(id,from,to,size);return offset}parseLine(context){let{line:line,end:end}=this.nextLine(),offset=0,{streamParser:streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit)}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,offset);if(stream.start>1e4)break}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:nodeSet,topID:0,maxBufferLength:512,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=undefined;this.chunkStart=this.parsedPos}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result}throw new Error("Stream parser failed to advance stream.")}const noTokens=Object.create(null);const typeArray=[NodeType.none];const nodeSet=new NodeSet(typeArray);const warned=[];const byTag=Object.create(null);const defaultTable=Object.create(null);for(let[legacyName,name]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[legacyName]=createTokenType(noTokens,name);class TokenTable{constructor(extra){this.extra=extra;this.table=Object.assign(Object.create(null),defaultTable)}resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag))}}const defaultTokenTable=new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg)}function createTokenType(extra,tagStr){let tags$1=[];for(let name of tagStr.split(" ")){let found=[];for(let part of name.split(".")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`)}else if(typeof value=="function"){if(!found.length)warnForPart(part,`Modifier ${part} used at start of tag`);else found=found.map(value)}else{if(found.length)warnForPart(part,`Tag ${part} used as modifier`);else found=Array.isArray(value)?value:[value]}}for(let tag of found)tags$1.push(tag)}if(!tags$1.length)return 0;let name=tagStr.replace(/ /g,"_"),key=name+" "+tags$1.map(t=>t.id);let known=byTag[key];if(known)return known.id;let type=byTag[key]=NodeType.define({id:typeArray.length,name:name,props:[styleTags({[name]:tags$1})]});typeArray.push(type);return type.id}function docID(data,lang){let type=NodeType.define({id:typeArray.length,name:"Document",props:[languageDataProp.add(()=>data),indentNodeProp.add(()=>cx=>lang.getIndent(cx))],top:true});typeArray.push(type);return type}({rtl:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"rtl"},bidiIsolate:Direction.RTL}),ltr:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"ltr"},bidiIsolate:Direction.LTR})});const fslDeprecated=Tag.defineModifier("fslDeprecated");const STRUCTURAL_KEYWORDS=new Set(["state","start_state","end_state","active_state","terminal_state","hooked_state","action","transition","validation","configuration","graph","editor","hooks","property","required","default"]);const PROPERTY_KEYWORDS=new Set(["machine_name","machine_version","machine_author","machine_license","machine_comment","machine_contributor","machine_definition","machine_language","machine_reference","npm_name","fsl_version","graph_layout","start_states","end_states","failed_outputs","allows_override","allow_islands","edge_color","theme","flow","dot_preamble","default_size","label","color","shape","corners","linestyle","image","url","background-color","text-color","border-color","edge-color","line-style","stochastic_run_count","panels"]);const DEPRECATED_KEYWORDS=new Set(["graph_bg_color"]);const ENUM_KEYWORDS=new Set(["true","false","none","default","modern","ocean","bold","dot","circo","fdp","neato","twopi","up","right","down","left","solid","dotted","dashed","regular","rounded","lined","MIT"]);const DEPRECATED_TOKEN="fslDeprecatedKeyword";const ARROWS=/^(?:<-=>|<-~>|<=->|<=~>|<~->|<~=>|<->|<=>|<~>|->|<-|=>|<=|~>|<~|[↔←→⇔⇐⇒↮↚↛])/;const COMPARATORS=/^(?:>=|<=|>|<)/;const ATOM_START=/[\w.!$^*?,\u{80}-\u{FFFF}]/u;const ATOM_BODY=/[\w.+^()*&$#@!?,\u{80}-\u{FFFF}]/u;const fslStreamParser={name:"fsl",startState:()=>({inBlockComment:false}),token(stream,state){if(state.inBlockComment){while(!stream.eol()){if(stream.match("*/")){state.inBlockComment=false;return"comment"}stream.next()}return"comment"}if(stream.eatSpace()){return null}if(stream.match("//")){stream.skipToEnd();return"comment"}if(stream.match("/*")){state.inBlockComment=true;return"comment"}if(stream.match(/^"(?:\\.|[^"\\])*"?/)){return"string"}if(stream.match(/^'(?:\\.|[^'\\])*'?/)){return"labelName"}if(stream.match(ARROWS)){return"operator"}if(stream.match(COMPARATORS)){return"operator"}if(stream.match(/^\d+(?:\.\d+)*/)){return"number"}if(stream.match(/^&[A-Z_]\w*/i)){return"variableName.special"}const ch=stream.peek();if(ATOM_START.test(ch)){let tok="";let next=stream.peek();while(next!==void 0){const interior_hyphen=next==="-"&&ATOM_BODY.test(stream.string.slice(stream.pos+1,stream.pos+2));if(ATOM_BODY.test(next)||interior_hyphen){tok+=stream.next()}else{break}next=stream.peek()}if(DEPRECATED_KEYWORDS.has(tok)){return DEPRECATED_TOKEN}if(STRUCTURAL_KEYWORDS.has(tok)){return"keyword"}if(PROPERTY_KEYWORDS.has(tok)){return"propertyName"}if(ENUM_KEYWORDS.has(tok)){return"atom"}return"variableName"}if(stream.match(/^[[\]{}()]/)){return"bracket"}if(stream.match(/^[;:,|]/)){return"punctuation"}stream.next();return null},tokenTable:{[DEPRECATED_TOKEN]:fslDeprecated(tags.propertyName)},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};StreamLanguage.define(fslStreamParser);HighlightStyle.define([{tag:fslDeprecated(tags.propertyName),textDecoration:"line-through",opacity:"0.6"}]);function plan_walk(machine){const edges=machine.list_edges();const main=edges.filter(e=>e.main_path);if(main.length>0){const seen=new Set;const out2=[];let current=machine.state();while(!seen.has(current)){seen.add(current);out2.push(current);const next=main.find(e=>e.from===current);if(next===void 0){break}current=next.to}return out2}const out=[];for(const e of edges){if(out[out.length-1]!==e.from){out.push(e.from)}out.push(e.to)}return out}function packed_over_white(rgba,pixel){const a=rgba[pixel*4+3]/255;const r=Math.round(rgba[pixel*4]*a+255*(1-a));const g=Math.round(rgba[pixel*4+1]*a+255*(1-a));const b=Math.round(rgba[pixel*4+2]*a+255*(1-a));return r<<16|g<<8|b}function accumulate_histogram(rgba,histogram){const pixel_count=rgba.length/4;for(let i=0;i<pixel_count;++i){const key=packed_over_white(rgba,i);histogram.set(key,(histogram.get(key)??0)+1)}}function palette_from_histogram(histogram,max_colors){const distinct=[...histogram.keys()];if(distinct.length<=max_colors){const index_of=new Map;const palette=new Uint8Array(distinct.length*3);for(const[i,key]of distinct.entries()){index_of.set(key,i);palette[i*3]=key>>16&255;palette[i*3+1]=key>>8&255;palette[i*3+2]=key&255}return{palette:palette,palette_count:distinct.length,index_of:index_of}}return median_cut_palette(histogram,max_colors)}const CHANNELS=[key=>key>>16&255,key=>key>>8&255,key=>key&255];function median_cut_palette(histogram,max_colors){const boxes=[[...histogram.keys()]];while(boxes.length<max_colors){let best_box=-1,best_range=-1,best_channel=0;pick_box:for(const[bi,box2]of boxes.entries()){if(box2.length<2){continue pick_box}for(const[ci,ch2]of CHANNELS.entries()){let lo=256,hi=-1;for(const key of box2){const v=ch2(key);if(v<lo){lo=v}if(v>hi){hi=v}}if(hi-lo>best_range){best_range=hi-lo;best_box=bi;best_channel=ci}}}const box=boxes[best_box];const ch=CHANNELS[best_channel];box.sort((a,b)=>ch(a)-ch(b));const total=box.reduce((sum,key)=>sum+histogram.get(key),0);let acc=0,split=1;find_split:for(let i=0;i<box.length-1;++i){acc+=histogram.get(box[i]);if(acc*2>=total){split=i+1;break find_split}}boxes.splice(best_box,1,box.slice(0,split),box.slice(split))}const palette=new Uint8Array(boxes.length*3);const index_of=new Map;for(const[bi,box]of boxes.entries()){let r=0,g=0,b=0,n=0;for(const key of box){const count=histogram.get(key);r+=(key>>16&255)*count;g+=(key>>8&255)*count;b+=(key&255)*count;n+=count;index_of.set(key,bi)}palette[bi*3]=Math.round(r/n);palette[bi*3+1]=Math.round(g/n);palette[bi*3+2]=Math.round(b/n)}return{palette:palette,palette_count:boxes.length,index_of:index_of}}function lzw_encode(indices,min_code_size){const clear=1<<min_code_size;const eoi=clear+1;let next_code=eoi+1;let code_size=min_code_size+1;let dict=new Map;const bytes=[];let bit_acc=0,bit_count=0;const emit=code=>{bit_acc|=code<<bit_count;bit_count+=code_size;while(bit_count>=8){bytes.push(bit_acc&255);bit_acc>>=8;bit_count-=8}};emit(clear);let prefix=indices[0];for(let i=1;i<indices.length;++i){const k=indices[i];const key=prefix<<8|k;const hit=dict.get(key);if(hit!==void 0){prefix=hit;continue}emit(prefix);if(next_code<4096){dict.set(key,next_code);next_code+=1;if(next_code-1===1<<code_size){code_size+=1}}else{emit(clear);dict=new Map;next_code=eoi+1;code_size=min_code_size+1}prefix=k}emit(prefix);emit(eoi);if(bit_count>0){bytes.push(bit_acc&255)}return new Uint8Array(bytes)}function encode_gif(frames,opts={}){if(frames.length===0){throw new JssmError(void 0,"encode_gif: at least one frame is required")}const{width:width,height:height}=frames[0];if(width===0||height===0){throw new JssmError(void 0,`encode_gif: frame dimensions must be non-zero (got ${width}x${height})`)}for(const f of frames){if(f.width!==width||f.height!==height){throw new JssmError(void 0,`encode_gif: frame dimensions differ (${f.width}x${f.height} vs ${width}x${height})`)}if(f.rgba.length!==4*f.width*f.height){throw new JssmError(void 0,"encode_gif: rgba length does not match stated dimensions")}}const delay_cs=opts.delay_cs??70;const loop=opts.loop??0;const union_histogram=new Map;for(const f of frames){accumulate_histogram(f.rgba,union_histogram)}const{palette:palette,palette_count:palette_count}=palette_from_histogram(union_histogram,256);const gct_bits=Math.max(1,Math.ceil(Math.log2(Math.max(2,palette_count))));const gct_size=1<<gct_bits;const min_code_size=Math.max(2,gct_bits);const palette_cache=new Map;const map_to_palette=rgba=>{const n=rgba.length/4;const out2=new Uint8Array(n);for(let i=0;i<n;++i){const key=packed_over_white(rgba,i);const hit=palette_cache.get(key);if(hit!==void 0){out2[i]=hit;continue}const r=key>>16&255;const g=key>>8&255;const b=key&255;let best=0,best_d=Infinity;for(let p=0;p<palette_count;++p){const dr=r-palette[p*3];const dg=g-palette[p*3+1];const db=b-palette[p*3+2];const d=dr*dr+dg*dg+db*db;if(d<best_d){best_d=d;best=p}}palette_cache.set(key,best);out2[i]=best}return out2};let out=new Uint8Array(1024);let len=0;const need=extra=>{if(len+extra<=out.length){return}const bigger=new Uint8Array(Math.max(out.length*2,len+extra));bigger.set(out.subarray(0,len));out=bigger};const push=(...vals)=>{need(vals.length);for(const val of vals){out[len++]=val&255}};const push_u16=v=>{push(v&255,v>>8&255)};push(71,73,70,56,57,97);push_u16(width);push_u16(height);push(128|112|gct_bits-1);push(0,0);for(let p=0;p<gct_size;++p){if(p<palette_count){push(palette[p*3],palette[p*3+1],palette[p*3+2])}else{push(0,0,0)}}push(33,255,11);push(..."NETSCAPE2.0".split("").map(c=>c.charCodeAt(0)));push(3,1);push_u16(loop);push(0);for(const frame of frames){push(33,249,4,4);push_u16(delay_cs);push(0,0);push(44);push_u16(0);push_u16(0);push_u16(width);push_u16(height);push(0);const indices=map_to_palette(frame.rgba);const packed_lzw=lzw_encode(indices,min_code_size);push(min_code_size);for(let at=0;at<packed_lzw.length;at+=255){const chunk=packed_lzw.slice(at,at+255);push(chunk.length,...chunk)}push(0)}push(59);return out.slice(0,len)}async function render_fence_gif(source,opts={}){const machine=sm`${source}`;const max_frames=opts.max_frames??64;const walk=plan_walk(machine).slice(0,max_frames);const base_svg=await fsl_to_svg_string(source);const highlight=opts.highlight_fill??"#ff9930";const scale=opts.scale??100;const label_texts=state_svg_label_texts(machine);const frames=[];for(const state of walk){const patched=patch_state_fill(base_svg,label_texts.get(state),highlight);const raster=await rasterizeRgba(patched,{scale:scale});frames.push({rgba:raster.rgba,width:raster.width,height:raster.height})}return encode_gif(frames,{delay_cs:opts.delay_cs??70,loop:opts.loop??0})}function wrap_gif_error(e){if(e instanceof RasterizationUnsupportedError){throw e}throw new RenderError(`GIF render failed: ${e.message}`)}async function render(fsl,opts){switch(opts.target){case"svg":{return{target:"svg",kind:"text",content:await svgTarget(fsl)}}case"dot":{return{target:"dot",kind:"text",content:await dotTarget(fsl)}}case"html":{return{target:"html",kind:"text",content:await htmlTarget(fsl)}}case"png":{return{target:"png",kind:"raster",buffer:await pngTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale})}}case"jpeg":{return{target:"jpeg",kind:"raster",buffer:await jpegTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}}case"gif":{try{return{target:"gif",kind:"raster",buffer:await render_fence_gif(fsl,{scale:opts.scale,delay_cs:opts.delay,max_frames:opts.maxFrames})}}catch(error){return wrap_gif_error(error)}}default:{throw new RenderError(`unknown target: ${String(opts.target)}`)}}}async function renderSet(inputs,opts){return Promise.all(inputs.map(async(fsl,index)=>{try{const result=await render(fsl,opts);return{ok:true,index:index,result:result}}catch(error){return{ok:false,index:index,error:error}}}))}function parseFslArgs(argv,spec){const positional=[];const flags={};const shortMap={};for(const[name,fs]of Object.entries(spec.flags)){if(fs.short)shortMap[fs.short]=name}const isBoolean=name=>spec.flags[name]?.boolean;const flagType=name=>{const fs=spec.flags[name];return fs.type??"string"};const coerce=(name,raw)=>{const t=flagType(name);if(t==="number"){const n=Number(raw);if(Number.isNaN(n)){throw new TypeError(`flag --${name} requires a number, got: ${raw}`)}return n}const fs=spec.flags[name];if(fs.enum&&!fs.enum.includes(raw)){throw new Error(`flag --${name} value '${raw}' not in: ${fs.enum.join(", ")}`)}return raw};let i=0;let positionalOnly=false;while(i<argv.length){const a=argv[i];if(positionalOnly){positional.push(a);i++;continue}if(a==="--"){positionalOnly=true;i++;continue}if(a==="-"){positional.push(a);i++;continue}if(a.startsWith("--")){const eq=a.indexOf("=");const name=eq===-1?a.slice(2):a.slice(2,eq);if(!Object.prototype.hasOwnProperty.call(spec.flags,name))throw new Error(`unknown flag: --${name}`);if(isBoolean(name)){flags[name]=true;i++}else if(eq===-1){if(i+1>=argv.length)throw new Error(`flag --${name} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}else{flags[name]=coerce(name,a.slice(eq+1));i++}continue}if(a.startsWith("-")&&a.length>1){const short=a[1];const name=shortMap[short];if(!name)throw new Error(`unknown flag: -${short}`);if(isBoolean(name)){flags[name]=true;if(a.length>2)throw new Error(`combined short flags not supported: ${a}`);i++}else if(a.length>2){flags[name]=coerce(name,a.slice(2));i++}else{if(i+1>=argv.length)throw new Error(`flag -${short} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}positional.push(a);i++}for(const[name,fs]of Object.entries(spec.flags)){if(flags[name]===void 0&&fs.default!==void 0){flags[name]=fs.default}}const helpText=()=>{const lines=["Usage:"," "+spec.usage,"","Options:"];for(const[name,fs]of Object.entries(spec.flags)){const short=fs.short?`-${fs.short}, `:" ".repeat(4);const longPart=`--${name}`;let arg=" VALUE";if(fs.boolean){arg=""}else if(fs.enum){arg=` ${fs.enum.join("|")}`}else if(fs.type==="number"){arg=" N"}const defStr=fs.default===void 0?"":` (default: ${fs.default})`;lines.push(` ${short}${longPart}${arg}${defStr}`)}return lines.join("\n")};return{positional:positional,flags:flags,helpText:helpText}}exports.RasterizationUnsupportedError=RasterizationUnsupportedError;exports.RenderError=RenderError;exports.parseFslArgs=parseFslArgs;exports.render=render;exports.renderSet=renderSet;