@drincs/pixi-vn-ink 1.2.0 → 1.2.2

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/index.cjs CHANGED
@@ -1,109 +1,109 @@
1
- 'use strict';var pixiVn=require('@drincs/pixi-vn'),canvas=require('@drincs/pixi-vn/canvas'),characters=require('@drincs/pixi-vn/characters'),D=require('zod'),narration=require('@drincs/pixi-vn/narration'),sound=require('@drincs/pixi-vn/sound'),storage=require('@drincs/pixi-vn/storage');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var D__default=/*#__PURE__*/_interopDefault(D);var eC=Object.create;var Kf=Object.defineProperty;var tC=Object.getOwnPropertyDescriptor;var nC=Object.getOwnPropertyNames;var rC=Object.getPrototypeOf,iC=Object.prototype.hasOwnProperty;var On=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var E=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var sC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of nC(e))!iC.call(n,i)&&i!==t&&Kf(n,i,{get:()=>e[i],enumerable:!(r=tC(e,i))||r.enumerable});return n};var ei=(n,e,t)=>(t=n!=null?eC(rC(n)):{},sC(Kf(t,"default",{value:n,enumerable:true}),n));var li=E(Y=>{Object.defineProperty(Y,"__esModule",{value:true});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var oi=class{};Y._CodeOrName=oi;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var In=class extends oi{constructor(e){if(super(),!Y.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e;}toString(){return this.str}emptyStr(){return false}get names(){return {[this.str]:1}}};Y.Name=In;var ft=class extends oi{constructor(e){super(),this._items=typeof e=="string"?[e]:e;}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;let e=this._items[0];return e===""||e==='""'}get str(){var e;return (e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,r)=>`${t}${r}`,"")}get names(){var e;return (e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,r)=>(r instanceof In&&(t[r.str]=(t[r.str]||0)+1),t),{})}};Y._Code=ft;Y.nil=new ft("");function Mp(n,...e){let t=[n[0]],r=0;for(;r<e.length;)ll(t,e[r]),t.push(n[++r]);return new ft(t)}Y._=Mp;var ul=new ft("+");function Gp(n,...e){let t=[ui(n[0])],r=0;for(;r<e.length;)t.push(ul),ll(t,e[r]),t.push(ul,ui(n[++r]));return Eb(t),new ft(t)}Y.str=Gp;function ll(n,e){e instanceof ft?n.push(...e._items):e instanceof In?n.push(e):n.push(Ab(e));}Y.addCodeArg=ll;function Eb(n){let e=1;for(;e<n.length-1;){if(n[e]===ul){let t=wb(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function wb(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof In||n[n.length-1]!=='"'?void 0:typeof e!="string"?`${n.slice(0,-1)}${e}"`:e[0]==='"'?n.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(n instanceof In))return `"${n}${e.slice(1)}`}function Db(n,e){return e.emptyStr()?n:n.emptyStr()?e:Gp`${n}${e}`}Y.strConcat=Db;function Ab(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:ui(Array.isArray(n)?n.join(","):n)}function Pb(n){return new ft(ui(n))}Y.stringify=Pb;function ui(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=ui;function Ob(n){return typeof n=="string"&&Y.IDENTIFIER.test(n)?new ft(`.${n}`):Mp`[${n}]`}Y.getProperty=Ob;function xb(n){if(typeof n=="string"&&Y.IDENTIFIER.test(n))return new ft(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}Y.getEsmExportName=xb;function Tb(n){return new ft(n.toString())}Y.regexpCode=Tb;});var dl=E(tt=>{Object.defineProperty(tt,"__esModule",{value:true});tt.ValueScope=tt.ValueScopeName=tt.Scope=tt.varKinds=tt.UsedValueState=void 0;var et=li(),cl=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value;}},Is;(function(n){n[n.Started=0]="Started",n[n.Completed=1]="Completed";})(Is||(tt.UsedValueState=Is={}));tt.varKinds={const:new et.Name("const"),let:new et.Name("let"),var:new et.Name("var")};var ks=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t;}toName(e){return e instanceof et.Name?e:this.name(e)}name(e){return new et.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return `${e}${t.index++}`}_nameGroup(e){var t,r;if(!((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0)&&r.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};tt.Scope=ks;var Vs=class extends et.Name{constructor(e,t){super(t),this.prefix=e;}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=(0, et._)`.${new et.Name(t)}[${r}]`;}};tt.ValueScopeName=Vs;var Nb=(0, et._)`\n`,hl=class extends ks{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Nb:et.nil};}get(){return this._scope}name(e){return new Vs(e,this._newName(e))}value(e,t){var r;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,s=(r=t.key)!==null&&r!==void 0?r:t.ref,o=this._values[a];if(o){let c=o.get(s);if(c)return c}else o=this._values[a]=new Map;o.set(s,i);let u=this._scope[a]||(this._scope[a]=[]),l=u.length;return u[l]=t.ref,i.setValue(t,{property:a,itemIndex:l}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return (0, et._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},t,r)}_reduceValues(e,t,r={},i){let a=et.nil;for(let s in e){let o=e[s];if(!o)continue;let u=r[s]=r[s]||new Map;o.forEach(l=>{if(u.has(l))return;u.set(l,Is.Started);let c=t(l);if(c){let h=this.opts.es5?tt.varKinds.var:tt.varKinds.const;a=(0, et._)`${a}${h} ${l} = ${c};${this.opts._n}`;}else if(c=i?.(l))a=(0, et._)`${a}${c}${this.opts._n}`;else throw new cl(l);u.set(l,Is.Completed);});}return a}};tt.ValueScope=hl;});var $=E(q=>{Object.defineProperty(q,"__esModule",{value:true});q.or=q.and=q.not=q.CodeGen=q.operators=q.varKinds=q.ValueScopeName=q.ValueScope=q.Scope=q.Name=q.regexpCode=q.stringify=q.getProperty=q.nil=q.strConcat=q.str=q._=void 0;var H=li(),Pt=dl(),cn=li();Object.defineProperty(q,"_",{enumerable:true,get:function(){return cn._}});Object.defineProperty(q,"str",{enumerable:true,get:function(){return cn.str}});Object.defineProperty(q,"strConcat",{enumerable:true,get:function(){return cn.strConcat}});Object.defineProperty(q,"nil",{enumerable:true,get:function(){return cn.nil}});Object.defineProperty(q,"getProperty",{enumerable:true,get:function(){return cn.getProperty}});Object.defineProperty(q,"stringify",{enumerable:true,get:function(){return cn.stringify}});Object.defineProperty(q,"regexpCode",{enumerable:true,get:function(){return cn.regexpCode}});Object.defineProperty(q,"Name",{enumerable:true,get:function(){return cn.Name}});var Ls=dl();Object.defineProperty(q,"Scope",{enumerable:true,get:function(){return Ls.Scope}});Object.defineProperty(q,"ValueScope",{enumerable:true,get:function(){return Ls.ValueScope}});Object.defineProperty(q,"ValueScopeName",{enumerable:true,get:function(){return Ls.ValueScopeName}});Object.defineProperty(q,"varKinds",{enumerable:true,get:function(){return Ls.varKinds}});q.operators={GT:new H._Code(">"),GTE:new H._Code(">="),LT:new H._Code("<"),LTE:new H._Code("<="),EQ:new H._Code("==="),NEQ:new H._Code("!=="),NOT:new H._Code("!"),OR:new H._Code("||"),AND:new H._Code("&&"),ADD:new H._Code("+")};var Zt=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},fl=class extends Zt{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r;}render({es5:e,_n:t}){let r=e?Pt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return `${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=lr(this.rhs,e,t)),this}get names(){return this.rhs instanceof H._CodeOrName?this.rhs.names:{}}},Rs=class extends Zt{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r;}render({_n:e}){return `${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof H.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=lr(this.rhs,e,t),this}get names(){let e=this.lhs instanceof H.Name?{}:{...this.lhs.names};return js(e,this.rhs)}},pl=class extends Rs{constructor(e,t,r,i){super(e,r,i),this.op=t;}render({_n:e}){return `${this.lhs} ${this.op}= ${this.rhs};`+e}},ml=class extends Zt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `${this.label}:`+e}},gl=class extends Zt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `break${this.label?` ${this.label}`:""};`+e}},yl=class extends Zt{constructor(e){super(),this.error=e;}render({_n:e}){return `throw ${this.error};`+e}get names(){return this.error.names}},vl=class extends Zt{constructor(e){super(),this.code=e;}render({_n:e}){return `${this.code};`+e}optimizeNodes(){return `${this.code}`?this:void 0}optimizeNames(e,t){return this.code=lr(this.code,e,t),this}get names(){return this.code instanceof H._CodeOrName?this.code.names:{}}},ci=class extends Zt{constructor(e=[]){super(),this.nodes=e;}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1);}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let a=r[i];a.optimizeNames(e,t)||(Fb(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>Rn(e,t.names),{})}},Qt=class extends ci{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},Cl=class extends ci{},ur=class extends Qt{};ur.kind="else";var kn=class n extends Qt{constructor(e,t){super(t),this.condition=e;}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){let r=t.optimizeNodes();t=this.else=Array.isArray(r)?new ur(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Jp(e),t instanceof n?[t]:t.nodes);if(!(e===false||!this.nodes.length))return this}optimizeNames(e,t){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=lr(this.condition,e,t),this}get names(){let e=super.names;return js(e,this.condition),this.else&&Rn(e,this.else.names),e}};kn.kind="if";var Vn=class extends Qt{};Vn.kind="for";var bl=class extends Vn{constructor(e){super(),this.iteration=e;}render(e){return `for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=lr(this.iteration,e,t),this}get names(){return Rn(super.names,this.iteration.names)}},_l=class extends Vn{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i;}render(e){let t=e.es5?Pt.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return `for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){let e=js(super.names,this.from);return js(e,this.to)}},$s=class extends Vn{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i;}render(e){return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=lr(this.iterable,e,t),this}get names(){return Rn(super.names,this.iterable.names)}},hi=class extends Qt{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r;}render(e){return `${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};hi.kind="func";var di=class extends ci{render(e){return "return "+super.render(e)}};di.kind="return";var Sl=class extends Qt{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),(r=this.catch)===null||r===void 0||r.optimizeNames(e,t),(i=this.finally)===null||i===void 0||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&Rn(e,this.catch.names),this.finally&&Rn(e,this.finally.names),e}},fi=class extends Qt{constructor(e){super(),this.error=e;}render(e){return `catch(${this.error})`+super.render(e)}};fi.kind="catch";var pi=class extends Qt{render(e){return "finally"+super.render(e)}};pi.kind="finally";var El=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
2
- `:""},this._extScope=e,this._scope=new Pt.Scope({parent:e}),this._nodes=[new Cl];}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return (this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let a=this._scope.toName(t);return r!==void 0&&i&&(this._constants[a.str]=r),this._leafNode(new fl(e,a,r)),a}const(e,t,r){return this._def(Pt.varKinds.const,e,t,r)}let(e,t,r){return this._def(Pt.varKinds.let,e,t,r)}var(e,t,r){return this._def(Pt.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Rs(e,t,r))}add(e,t){return this._leafNode(new pl(e,q.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==H.nil&&this._leafNode(new vl(e)),this}object(...e){let t=["{"];for(let[r,i]of e)t.length>1&&t.push(","),t.push(r),(r!==i||this.opts.es5)&&(t.push(":"),(0, H.addCodeArg)(t,i));return t.push("}"),new H._Code(t)}if(e,t,r){if(this._blockNode(new kn(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new kn(e))}else(){return this._elseNode(new ur)}endIf(){return this._endBlockNode(kn,ur)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new bl(e),t)}forRange(e,t,r,i,a=this.opts.es5?Pt.varKinds.var:Pt.varKinds.let){let s=this._scope.toName(e);return this._for(new _l(a,s,t,r),()=>i(s))}forOf(e,t,r,i=Pt.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let s=t instanceof H.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, H._)`${s}.length`,o=>{this.var(a,(0, H._)`${s}[${o}]`),r(a);})}return this._for(new $s("of",i,a,t),()=>r(a))}forIn(e,t,r,i=this.opts.es5?Pt.varKinds.var:Pt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0, H._)`Object.keys(${t})`,r);let a=this._scope.toName(e);return this._for(new $s("in",i,a,t),()=>r(a))}endFor(){return this._endBlockNode(Vn)}label(e){return this._leafNode(new ml(e))}break(e){return this._leafNode(new gl(e))}return(e){let t=new di;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(di)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Sl;if(this._blockNode(i),this.code(e),t){let a=this.name("e");this._currNode=i.catch=new fi(a),t(a);}return r&&(this._currNode=i.finally=new pi,this.code(r)),this._endBlockNode(fi,pi)}throw(e){return this._leafNode(new yl(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||e!==void 0&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=H.nil,r,i){return this._blockNode(new hi(e,t,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(hi)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants);}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e);}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof kn))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e;}};q.CodeGen=El;function Rn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function js(n,e){return e instanceof H._CodeOrName?Rn(n,e.names):n}function lr(n,e,t){if(n instanceof H.Name)return r(n);if(!i(n))return n;return new H._Code(n._items.reduce((a,s)=>(s instanceof H.Name&&(s=r(s)),s instanceof H._Code?a.push(...s._items):a.push(s),a),[]));function r(a){let s=t[a.str];return s===void 0||e[a.str]!==1?a:(delete e[a.str],s)}function i(a){return a instanceof H._Code&&a._items.some(s=>s instanceof H.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function Fb(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Jp(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, H._)`!${wl(n)}`}q.not=Jp;var Ib=zp(q.operators.AND);function kb(...n){return n.reduce(Ib)}q.and=kb;var Vb=zp(q.operators.OR);function Rb(...n){return n.reduce(Vb)}q.or=Rb;function zp(n){return (e,t)=>e===H.nil?t:t===H.nil?e:(0, H._)`${wl(e)} ${n} ${wl(t)}`}function wl(n){return n instanceof H.Name?n:(0, H._)`(${n})`}});var M=E(W=>{Object.defineProperty(W,"__esModule",{value:true});W.checkStrictMode=W.getErrorPath=W.Type=W.useFunc=W.setEvaluated=W.evaluatedPropsToName=W.mergeEvaluated=W.eachItem=W.unescapeJsonPointer=W.escapeJsonPointer=W.escapeFragment=W.unescapeFragment=W.schemaRefOrVal=W.schemaHasRulesButRef=W.schemaHasRules=W.checkUnknownRules=W.alwaysValidSchema=W.toHash=void 0;var oe=$(),$b=li();function jb(n){let e={};for(let t of n)e[t]=true;return e}W.toHash=jb;function Lb(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Kp(n,e),!Xp(e,n.self.RULES.all))}W.alwaysValidSchema=Lb;function Kp(n,e=n.schema){let{opts:t,self:r}=n;if(!t.strictSchema||typeof e=="boolean")return;let i=r.RULES.keywords;for(let a in e)i[a]||Qp(n,`unknown keyword: "${a}"`);}W.checkUnknownRules=Kp;function Xp(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}W.schemaHasRules=Xp;function qb(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}W.schemaHasRulesButRef=qb;function Bb({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, oe._)`${t}`}return (0, oe._)`${n}${e}${(0, oe.getProperty)(r)}`}W.schemaRefOrVal=Bb;function Wb(n){return Yp(decodeURIComponent(n))}W.unescapeFragment=Wb;function Mb(n){return encodeURIComponent(Al(n))}W.escapeFragment=Mb;function Al(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}W.escapeJsonPointer=Al;function Yp(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}W.unescapeJsonPointer=Yp;function Gb(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}W.eachItem=Gb;function Hp({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof oe.Name?(a instanceof oe.Name?n(i,a,s):e(i,a,s),s):a instanceof oe.Name?(e(i,s,a),a):t(a,s);return o===oe.Name&&!(u instanceof oe.Name)?r(i,u):u}}W.mergeEvaluated={props:Hp({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, oe._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, oe._)`${t} || {}`).code((0, oe._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, oe._)`${t} || {}`),Pl(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:Zp}),items:Hp({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, oe._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, oe._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function Zp(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, oe._)`{}`);return e!==void 0&&Pl(n,t,e),t}W.evaluatedPropsToName=Zp;function Pl(n,e,t){Object.keys(t).forEach(r=>n.assign((0, oe._)`${e}${(0, oe.getProperty)(r)}`,true));}W.setEvaluated=Pl;var Up={};function Jb(n,e){return n.scopeValue("func",{ref:e,code:Up[e.code]||(Up[e.code]=new $b._Code(e.code))})}W.useFunc=Jb;var Dl;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(Dl||(W.Type=Dl={}));function zb(n,e,t){if(n instanceof oe.Name){let r=e===Dl.Num;return t?r?(0, oe._)`"[" + ${n} + "]"`:(0, oe._)`"['" + ${n} + "']"`:r?(0, oe._)`"/" + ${n}`:(0, oe._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, oe.getProperty)(n).toString():"/"+Al(n)}W.getErrorPath=zb;function Qp(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}W.checkStrictMode=Qp;});var pt=E(Ol=>{Object.defineProperty(Ol,"__esModule",{value:true});var Ve=$(),Hb={data:new Ve.Name("data"),valCxt:new Ve.Name("valCxt"),instancePath:new Ve.Name("instancePath"),parentData:new Ve.Name("parentData"),parentDataProperty:new Ve.Name("parentDataProperty"),rootData:new Ve.Name("rootData"),dynamicAnchors:new Ve.Name("dynamicAnchors"),vErrors:new Ve.Name("vErrors"),errors:new Ve.Name("errors"),this:new Ve.Name("this"),self:new Ve.Name("self"),scope:new Ve.Name("scope"),json:new Ve.Name("json"),jsonPos:new Ve.Name("jsonPos"),jsonLen:new Ve.Name("jsonLen"),jsonPart:new Ve.Name("jsonPart")};Ol.default=Hb;});var mi=E(Re=>{Object.defineProperty(Re,"__esModule",{value:true});Re.extendErrors=Re.resetErrorsCount=Re.reportExtraError=Re.reportError=Re.keyword$DataError=Re.keywordError=void 0;var K=$(),qs=M(),He=pt();Re.keywordError={message:({keyword:n})=>(0, K.str)`must pass "${n}" keyword validation`};Re.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, K.str)`"${n}" keyword must be ${e} ($data)`:(0, K.str)`"${n}" keyword is invalid ($data)`};function Ub(n,e=Re.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=nm(n,e,t);r??(s||o)?em(a,u):tm(i,(0, K._)`[${u}]`);}Re.reportError=Ub;function Kb(n,e=Re.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=nm(n,e,t);em(i,o),a||s||tm(r,He.default.vErrors);}Re.reportExtraError=Kb;function Xb(n,e){n.assign(He.default.errors,e),n.if((0, K._)`${He.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, K._)`${He.default.vErrors}.length`,e),()=>n.assign(He.default.vErrors,null)));}Re.resetErrorsCount=Xb;function Yb({gen:n,keyword:e,schemaValue:t,data:r,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=n.name("err");n.forRange("i",i,He.default.errors,o=>{n.const(s,(0, K._)`${He.default.vErrors}[${o}]`),n.if((0, K._)`${s}.instancePath === undefined`,()=>n.assign((0, K._)`${s}.instancePath`,(0, K.strConcat)(He.default.instancePath,a.errorPath))),n.assign((0, K._)`${s}.schemaPath`,(0, K.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, K._)`${s}.schema`,t),n.assign((0, K._)`${s}.data`,r));});}Re.extendErrors=Yb;function em(n,e){let t=n.const("err",e);n.if((0, K._)`${He.default.vErrors} === null`,()=>n.assign(He.default.vErrors,(0, K._)`[${t}]`),(0, K._)`${He.default.vErrors}.push(${t})`),n.code((0, K._)`${He.default.errors}++`);}function tm(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, K._)`new ${n.ValidationError}(${e})`):(t.assign((0, K._)`${r}.errors`,e),t.return(false));}var $n={keyword:new K.Name("keyword"),schemaPath:new K.Name("schemaPath"),params:new K.Name("params"),propertyName:new K.Name("propertyName"),message:new K.Name("message"),schema:new K.Name("schema"),parentSchema:new K.Name("parentSchema")};function nm(n,e,t){let{createErrors:r}=n.it;return r===false?(0, K._)`{}`:Zb(n,e,t)}function Zb(n,e,t={}){let{gen:r,it:i}=n,a=[Qb(i,t),e_(n,t)];return t_(n,e,a),r.object(...a)}function Qb({errorPath:n},{instancePath:e}){let t=e?(0, K.str)`${n}${(0, qs.getErrorPath)(e,qs.Type.Str)}`:n;return [He.default.instancePath,(0, K.strConcat)(He.default.instancePath,t)]}function e_({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, K.str)`${e}/${n}`;return t&&(i=(0, K.str)`${i}${(0, qs.getErrorPath)(t,qs.Type.Str)}`),[$n.schemaPath,i]}function t_(n,{params:e,message:t},r){let{keyword:i,data:a,schemaValue:s,it:o}=n,{opts:u,propertyName:l,topSchemaRef:c,schemaPath:h}=o;r.push([$n.keyword,i],[$n.params,typeof e=="function"?e(n):e||(0, K._)`{}`]),u.messages&&r.push([$n.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([$n.schema,s],[$n.parentSchema,(0, K._)`${c}${h}`],[He.default.data,a]),l&&r.push([$n.propertyName,l]);}});var im=E(cr=>{Object.defineProperty(cr,"__esModule",{value:true});cr.boolOrEmptySchema=cr.topBoolOrEmptySchema=void 0;var n_=mi(),r_=$(),i_=pt(),s_={message:"boolean schema is false"};function a_(n){let{gen:e,schema:t,validateName:r}=n;t===false?rm(n,false):typeof t=="object"&&t.$async===true?e.return(i_.default.data):(e.assign((0, r_._)`${r}.errors`,null),e.return(true));}cr.topBoolOrEmptySchema=a_;function o_(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),rm(n)):t.var(e,true);}cr.boolOrEmptySchema=o_;function rm(n,e){let{gen:t,data:r}=n,i={gen:t,keyword:"false schema",data:r,schema:false,schemaCode:false,schemaValue:false,params:{},it:n};(0, n_.reportError)(i,s_,void 0,e);}});var xl=E(hr=>{Object.defineProperty(hr,"__esModule",{value:true});hr.getRules=hr.isJSONType=void 0;var u_=["string","number","integer","boolean","null","object","array"],l_=new Set(u_);function c_(n){return typeof n=="string"&&l_.has(n)}hr.isJSONType=c_;function h_(){let n={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return {types:{...n,integer:true,boolean:true,null:true},rules:[{rules:[]},n.number,n.string,n.array,n.object],post:{rules:[]},all:{},keywords:{}}}hr.getRules=h_;});var Tl=E(hn=>{Object.defineProperty(hn,"__esModule",{value:true});hn.shouldUseRule=hn.shouldUseGroup=hn.schemaHasRulesForType=void 0;function d_({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&sm(n,r)}hn.schemaHasRulesForType=d_;function sm(n,e){return e.rules.some(t=>am(n,t))}hn.shouldUseGroup=sm;function am(n,e){var t;return n[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(r=>n[r]!==void 0))}hn.shouldUseRule=am;});var gi=E($e=>{Object.defineProperty($e,"__esModule",{value:true});$e.reportTypeError=$e.checkDataTypes=$e.checkDataType=$e.coerceAndCheckDataType=$e.getJSONTypes=$e.getSchemaTypes=$e.DataType=void 0;var f_=xl(),p_=Tl(),m_=mi(),j=$(),om=M(),dr;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(dr||($e.DataType=dr={}));function g_(n){let e=um(n.type);if(e.includes("null")){if(n.nullable===false)throw new Error("type: null contradicts nullable: false")}else {if(!e.length&&n.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');n.nullable===true&&e.push("null");}return e}$e.getSchemaTypes=g_;function um(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(f_.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}$e.getJSONTypes=um;function y_(n,e){let{gen:t,data:r,opts:i}=n,a=v_(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, p_.schemaHasRulesForType)(n,e[0]));if(s){let o=Fl(e,r,i.strictNumbers,dr.Wrong);t.if(o,()=>{a.length?C_(n,e,a):Il(n);});}return s}$e.coerceAndCheckDataType=y_;var lm=new Set(["string","number","integer","boolean","null"]);function v_(n,e){return e?n.filter(t=>lm.has(t)||e==="array"&&t==="array"):[]}function C_(n,e,t){let{gen:r,data:i,opts:a}=n,s=r.let("dataType",(0, j._)`typeof ${i}`),o=r.let("coerced",(0, j._)`undefined`);a.coerceTypes==="array"&&r.if((0, j._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0, j._)`${i}[0]`).assign(s,(0, j._)`typeof ${i}`).if(Fl(e,i,a.strictNumbers),()=>r.assign(o,i))),r.if((0, j._)`${o} !== undefined`);for(let l of t)(lm.has(l)||l==="array"&&a.coerceTypes==="array")&&u(l);r.else(),Il(n),r.endIf(),r.if((0, j._)`${o} !== undefined`,()=>{r.assign(i,o),b_(n,o);});function u(l){switch(l){case "string":r.elseIf((0, j._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0, j._)`"" + ${i}`).elseIf((0, j._)`${i} === null`).assign(o,(0, j._)`""`);return;case "number":r.elseIf((0, j._)`${s} == "boolean" || ${i} === null
1
+ 'use strict';var pixiVn=require('@drincs/pixi-vn'),canvas=require('@drincs/pixi-vn/canvas'),characters=require('@drincs/pixi-vn/characters'),D=require('zod'),narration=require('@drincs/pixi-vn/narration'),sound=require('@drincs/pixi-vn/sound'),storage=require('@drincs/pixi-vn/storage');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var D__default=/*#__PURE__*/_interopDefault(D);var tC=Object.create;var Yf=Object.defineProperty;var nC=Object.getOwnPropertyDescriptor;var rC=Object.getOwnPropertyNames;var iC=Object.getPrototypeOf,sC=Object.prototype.hasOwnProperty;var On=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var E=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var aC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of rC(e))!sC.call(n,i)&&i!==t&&Yf(n,i,{get:()=>e[i],enumerable:!(r=nC(e,i))||r.enumerable});return n};var ei=(n,e,t)=>(t=n!=null?tC(iC(n)):{},aC(Yf(t,"default",{value:n,enumerable:true}),n));var li=E(Y=>{Object.defineProperty(Y,"__esModule",{value:true});Y.regexpCode=Y.getEsmExportName=Y.getProperty=Y.safeStringify=Y.stringify=Y.strConcat=Y.addCodeArg=Y.str=Y._=Y.nil=Y._Code=Y.Name=Y.IDENTIFIER=Y._CodeOrName=void 0;var oi=class{};Y._CodeOrName=oi;Y.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var In=class extends oi{constructor(e){if(super(),!Y.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e;}toString(){return this.str}emptyStr(){return false}get names(){return {[this.str]:1}}};Y.Name=In;var ft=class extends oi{constructor(e){super(),this._items=typeof e=="string"?[e]:e;}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;let e=this._items[0];return e===""||e==='""'}get str(){var e;return (e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((t,r)=>`${t}${r}`,"")}get names(){var e;return (e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((t,r)=>(r instanceof In&&(t[r.str]=(t[r.str]||0)+1),t),{})}};Y._Code=ft;Y.nil=new ft("");function Jp(n,...e){let t=[n[0]],r=0;for(;r<e.length;)ll(t,e[r]),t.push(n[++r]);return new ft(t)}Y._=Jp;var ul=new ft("+");function zp(n,...e){let t=[ui(n[0])],r=0;for(;r<e.length;)t.push(ul),ll(t,e[r]),t.push(ul,ui(n[++r]));return wb(t),new ft(t)}Y.str=zp;function ll(n,e){e instanceof ft?n.push(...e._items):e instanceof In?n.push(e):n.push(Pb(e));}Y.addCodeArg=ll;function wb(n){let e=1;for(;e<n.length-1;){if(n[e]===ul){let t=Db(n[e-1],n[e+1]);if(t!==void 0){n.splice(e-1,3,t);continue}n[e++]="+";}e++;}}function Db(n,e){if(e==='""')return n;if(n==='""')return e;if(typeof n=="string")return e instanceof In||n[n.length-1]!=='"'?void 0:typeof e!="string"?`${n.slice(0,-1)}${e}"`:e[0]==='"'?n.slice(0,-1)+e.slice(1):void 0;if(typeof e=="string"&&e[0]==='"'&&!(n instanceof In))return `"${n}${e.slice(1)}`}function Ab(n,e){return e.emptyStr()?n:n.emptyStr()?e:zp`${n}${e}`}Y.strConcat=Ab;function Pb(n){return typeof n=="number"||typeof n=="boolean"||n===null?n:ui(Array.isArray(n)?n.join(","):n)}function Ob(n){return new ft(ui(n))}Y.stringify=Ob;function ui(n){return JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Y.safeStringify=ui;function xb(n){return typeof n=="string"&&Y.IDENTIFIER.test(n)?new ft(`.${n}`):Jp`[${n}]`}Y.getProperty=xb;function Tb(n){if(typeof n=="string"&&Y.IDENTIFIER.test(n))return new ft(`${n}`);throw new Error(`CodeGen: invalid export name: ${n}, use explicit $id name mapping`)}Y.getEsmExportName=Tb;function Nb(n){return new ft(n.toString())}Y.regexpCode=Nb;});var dl=E(tt=>{Object.defineProperty(tt,"__esModule",{value:true});tt.ValueScope=tt.ValueScopeName=tt.Scope=tt.varKinds=tt.UsedValueState=void 0;var et=li(),cl=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value;}},Is;(function(n){n[n.Started=0]="Started",n[n.Completed=1]="Completed";})(Is||(tt.UsedValueState=Is={}));tt.varKinds={const:new et.Name("const"),let:new et.Name("let"),var:new et.Name("var")};var ks=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t;}toName(e){return e instanceof et.Name?e:this.name(e)}name(e){return new et.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return `${e}${t.index++}`}_nameGroup(e){var t,r;if(!((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0)&&r.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};tt.Scope=ks;var Vs=class extends et.Name{constructor(e,t){super(t),this.prefix=e;}setValue(e,{property:t,itemIndex:r}){this.value=e,this.scopePath=(0, et._)`.${new et.Name(t)}[${r}]`;}};tt.ValueScopeName=Vs;var Fb=(0, et._)`\n`,hl=class extends ks{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?Fb:et.nil};}get(){return this._scope}name(e){return new Vs(e,this._newName(e))}value(e,t){var r;if(t.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let i=this.toName(e),{prefix:a}=i,s=(r=t.key)!==null&&r!==void 0?r:t.ref,o=this._values[a];if(o){let c=o.get(s);if(c)return c}else o=this._values[a]=new Map;o.set(s,i);let u=this._scope[a]||(this._scope[a]=[]),l=u.length;return u[l]=t.ref,i.setValue(t,{property:a,itemIndex:l}),i}getValue(e,t){let r=this._values[e];if(r)return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,r=>{if(r.scopePath===void 0)throw new Error(`CodeGen: name "${r}" has no value`);return (0, et._)`${e}${r.scopePath}`})}scopeCode(e=this._values,t,r){return this._reduceValues(e,i=>{if(i.value===void 0)throw new Error(`CodeGen: name "${i}" has no value`);return i.value.code},t,r)}_reduceValues(e,t,r={},i){let a=et.nil;for(let s in e){let o=e[s];if(!o)continue;let u=r[s]=r[s]||new Map;o.forEach(l=>{if(u.has(l))return;u.set(l,Is.Started);let c=t(l);if(c){let h=this.opts.es5?tt.varKinds.var:tt.varKinds.const;a=(0, et._)`${a}${h} ${l} = ${c};${this.opts._n}`;}else if(c=i?.(l))a=(0, et._)`${a}${c}${this.opts._n}`;else throw new cl(l);u.set(l,Is.Completed);});}return a}};tt.ValueScope=hl;});var $=E(q=>{Object.defineProperty(q,"__esModule",{value:true});q.or=q.and=q.not=q.CodeGen=q.operators=q.varKinds=q.ValueScopeName=q.ValueScope=q.Scope=q.Name=q.regexpCode=q.stringify=q.getProperty=q.nil=q.strConcat=q.str=q._=void 0;var H=li(),Pt=dl(),cn=li();Object.defineProperty(q,"_",{enumerable:true,get:function(){return cn._}});Object.defineProperty(q,"str",{enumerable:true,get:function(){return cn.str}});Object.defineProperty(q,"strConcat",{enumerable:true,get:function(){return cn.strConcat}});Object.defineProperty(q,"nil",{enumerable:true,get:function(){return cn.nil}});Object.defineProperty(q,"getProperty",{enumerable:true,get:function(){return cn.getProperty}});Object.defineProperty(q,"stringify",{enumerable:true,get:function(){return cn.stringify}});Object.defineProperty(q,"regexpCode",{enumerable:true,get:function(){return cn.regexpCode}});Object.defineProperty(q,"Name",{enumerable:true,get:function(){return cn.Name}});var Ls=dl();Object.defineProperty(q,"Scope",{enumerable:true,get:function(){return Ls.Scope}});Object.defineProperty(q,"ValueScope",{enumerable:true,get:function(){return Ls.ValueScope}});Object.defineProperty(q,"ValueScopeName",{enumerable:true,get:function(){return Ls.ValueScopeName}});Object.defineProperty(q,"varKinds",{enumerable:true,get:function(){return Ls.varKinds}});q.operators={GT:new H._Code(">"),GTE:new H._Code(">="),LT:new H._Code("<"),LTE:new H._Code("<="),EQ:new H._Code("==="),NEQ:new H._Code("!=="),NOT:new H._Code("!"),OR:new H._Code("||"),AND:new H._Code("&&"),ADD:new H._Code("+")};var Zt=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},fl=class extends Zt{constructor(e,t,r){super(),this.varKind=e,this.name=t,this.rhs=r;}render({es5:e,_n:t}){let r=e?Pt.varKinds.var:this.varKind,i=this.rhs===void 0?"":` = ${this.rhs}`;return `${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&(this.rhs=lr(this.rhs,e,t)),this}get names(){return this.rhs instanceof H._CodeOrName?this.rhs.names:{}}},Rs=class extends Zt{constructor(e,t,r){super(),this.lhs=e,this.rhs=t,this.sideEffects=r;}render({_n:e}){return `${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(!(this.lhs instanceof H.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=lr(this.rhs,e,t),this}get names(){let e=this.lhs instanceof H.Name?{}:{...this.lhs.names};return js(e,this.rhs)}},pl=class extends Rs{constructor(e,t,r,i){super(e,r,i),this.op=t;}render({_n:e}){return `${this.lhs} ${this.op}= ${this.rhs};`+e}},ml=class extends Zt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `${this.label}:`+e}},gl=class extends Zt{constructor(e){super(),this.label=e,this.names={};}render({_n:e}){return `break${this.label?` ${this.label}`:""};`+e}},yl=class extends Zt{constructor(e){super(),this.error=e;}render({_n:e}){return `throw ${this.error};`+e}get names(){return this.error.names}},vl=class extends Zt{constructor(e){super(),this.code=e;}render({_n:e}){return `${this.code};`+e}optimizeNodes(){return `${this.code}`?this:void 0}optimizeNames(e,t){return this.code=lr(this.code,e,t),this}get names(){return this.code instanceof H._CodeOrName?this.code.names:{}}},ci=class extends Zt{constructor(e=[]){super(),this.nodes=e;}render(e){return this.nodes.reduce((t,r)=>t+r.render(e),"")}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let r=e[t].optimizeNodes();Array.isArray(r)?e.splice(t,1,...r):r?e[t]=r:e.splice(t,1);}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:r}=this,i=r.length;for(;i--;){let a=r[i];a.optimizeNames(e,t)||(Ib(e,a.names),r.splice(i,1));}return r.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>Rn(e,t.names),{})}},Qt=class extends ci{render(e){return "{"+e._n+super.render(e)+"}"+e._n}},Cl=class extends ci{},ur=class extends Qt{};ur.kind="else";var kn=class n extends Qt{constructor(e,t){super(t),this.condition=e;}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+="else "+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){let r=t.optimizeNodes();t=this.else=Array.isArray(r)?new ur(r):r;}if(t)return e===false?t instanceof n?t:t.nodes:this.nodes.length?this:new n(Hp(e),t instanceof n?[t]:t.nodes);if(!(e===false||!this.nodes.length))return this}optimizeNames(e,t){var r;if(this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t),!!(super.optimizeNames(e,t)||this.else))return this.condition=lr(this.condition,e,t),this}get names(){let e=super.names;return js(e,this.condition),this.else&&Rn(e,this.else.names),e}};kn.kind="if";var Vn=class extends Qt{};Vn.kind="for";var bl=class extends Vn{constructor(e){super(),this.iteration=e;}render(e){return `for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=lr(this.iteration,e,t),this}get names(){return Rn(super.names,this.iteration.names)}},_l=class extends Vn{constructor(e,t,r,i){super(),this.varKind=e,this.name=t,this.from=r,this.to=i;}render(e){let t=e.es5?Pt.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return `for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){let e=js(super.names,this.from);return js(e,this.to)}},$s=class extends Vn{constructor(e,t,r,i){super(),this.loop=e,this.varKind=t,this.name=r,this.iterable=i;}render(e){return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=lr(this.iterable,e,t),this}get names(){return Rn(super.names,this.iterable.names)}},hi=class extends Qt{constructor(e,t,r){super(),this.name=e,this.args=t,this.async=r;}render(e){return `${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};hi.kind="func";var di=class extends ci{render(e){return "return "+super.render(e)}};di.kind="return";var Sl=class extends Qt{render(e){let t="try"+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(t=this.finally)===null||t===void 0||t.optimizeNodes(),this}optimizeNames(e,t){var r,i;return super.optimizeNames(e,t),(r=this.catch)===null||r===void 0||r.optimizeNames(e,t),(i=this.finally)===null||i===void 0||i.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&Rn(e,this.catch.names),this.finally&&Rn(e,this.finally.names),e}},fi=class extends Qt{constructor(e){super(),this.error=e;}render(e){return `catch(${this.error})`+super.render(e)}};fi.kind="catch";var pi=class extends Qt{render(e){return "finally"+super.render(e)}};pi.kind="finally";var El=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
2
+ `:""},this._extScope=e,this._scope=new Pt.Scope({parent:e}),this._nodes=[new Cl];}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let r=this._extScope.value(e,t);return (this._values[r.prefix]||(this._values[r.prefix]=new Set)).add(r),r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,i){let a=this._scope.toName(t);return r!==void 0&&i&&(this._constants[a.str]=r),this._leafNode(new fl(e,a,r)),a}const(e,t,r){return this._def(Pt.varKinds.const,e,t,r)}let(e,t,r){return this._def(Pt.varKinds.let,e,t,r)}var(e,t,r){return this._def(Pt.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Rs(e,t,r))}add(e,t){return this._leafNode(new pl(e,q.operators.ADD,t))}code(e){return typeof e=="function"?e():e!==H.nil&&this._leafNode(new vl(e)),this}object(...e){let t=["{"];for(let[r,i]of e)t.length>1&&t.push(","),t.push(r),(r!==i||this.opts.es5)&&(t.push(":"),(0, H.addCodeArg)(t,i));return t.push("}"),new H._Code(t)}if(e,t,r){if(this._blockNode(new kn(e)),t&&r)this.code(t).else().code(r).endIf();else if(t)this.code(t).endIf();else if(r)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new kn(e))}else(){return this._elseNode(new ur)}endIf(){return this._endBlockNode(kn,ur)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new bl(e),t)}forRange(e,t,r,i,a=this.opts.es5?Pt.varKinds.var:Pt.varKinds.let){let s=this._scope.toName(e);return this._for(new _l(a,s,t,r),()=>i(s))}forOf(e,t,r,i=Pt.varKinds.const){let a=this._scope.toName(e);if(this.opts.es5){let s=t instanceof H.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0, H._)`${s}.length`,o=>{this.var(a,(0, H._)`${s}[${o}]`),r(a);})}return this._for(new $s("of",i,a,t),()=>r(a))}forIn(e,t,r,i=this.opts.es5?Pt.varKinds.var:Pt.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0, H._)`Object.keys(${t})`,r);let a=this._scope.toName(e);return this._for(new $s("in",i,a,t),()=>r(a))}endFor(){return this._endBlockNode(Vn)}label(e){return this._leafNode(new ml(e))}break(e){return this._leafNode(new gl(e))}return(e){let t=new di;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(di)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');let i=new Sl;if(this._blockNode(i),this.code(e),t){let a=this.name("e");this._currNode=i.catch=new fi(a),t(a);}return r&&(this._currNode=i.finally=new pi,this.code(r)),this._endBlockNode(fi,pi)}throw(e){return this._leafNode(new yl(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw new Error("CodeGen: not in self-balancing block");let r=this._nodes.length-t;if(r<0||e!==void 0&&r!==e)throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`);return this._nodes.length=t,this}func(e,t=H.nil,r,i){return this._blockNode(new hi(e,t,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(hi)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants);}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e);}_endBlockNode(e,t){let r=this._currNode;if(r instanceof e||t&&r instanceof t)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof kn))throw new Error('CodeGen: "else" without "if"');return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e;}};q.CodeGen=El;function Rn(n,e){for(let t in e)n[t]=(n[t]||0)+(e[t]||0);return n}function js(n,e){return e instanceof H._CodeOrName?Rn(n,e.names):n}function lr(n,e,t){if(n instanceof H.Name)return r(n);if(!i(n))return n;return new H._Code(n._items.reduce((a,s)=>(s instanceof H.Name&&(s=r(s)),s instanceof H._Code?a.push(...s._items):a.push(s),a),[]));function r(a){let s=t[a.str];return s===void 0||e[a.str]!==1?a:(delete e[a.str],s)}function i(a){return a instanceof H._Code&&a._items.some(s=>s instanceof H.Name&&e[s.str]===1&&t[s.str]!==void 0)}}function Ib(n,e){for(let t in e)n[t]=(n[t]||0)-(e[t]||0);}function Hp(n){return typeof n=="boolean"||typeof n=="number"||n===null?!n:(0, H._)`!${wl(n)}`}q.not=Hp;var kb=Up(q.operators.AND);function Vb(...n){return n.reduce(kb)}q.and=Vb;var Rb=Up(q.operators.OR);function $b(...n){return n.reduce(Rb)}q.or=$b;function Up(n){return (e,t)=>e===H.nil?t:t===H.nil?e:(0, H._)`${wl(e)} ${n} ${wl(t)}`}function wl(n){return n instanceof H.Name?n:(0, H._)`(${n})`}});var M=E(W=>{Object.defineProperty(W,"__esModule",{value:true});W.checkStrictMode=W.getErrorPath=W.Type=W.useFunc=W.setEvaluated=W.evaluatedPropsToName=W.mergeEvaluated=W.eachItem=W.unescapeJsonPointer=W.escapeJsonPointer=W.escapeFragment=W.unescapeFragment=W.schemaRefOrVal=W.schemaHasRulesButRef=W.schemaHasRules=W.checkUnknownRules=W.alwaysValidSchema=W.toHash=void 0;var oe=$(),jb=li();function Lb(n){let e={};for(let t of n)e[t]=true;return e}W.toHash=Lb;function qb(n,e){return typeof e=="boolean"?e:Object.keys(e).length===0?true:(Yp(n,e),!Zp(e,n.self.RULES.all))}W.alwaysValidSchema=qb;function Yp(n,e=n.schema){let{opts:t,self:r}=n;if(!t.strictSchema||typeof e=="boolean")return;let i=r.RULES.keywords;for(let a in e)i[a]||tm(n,`unknown keyword: "${a}"`);}W.checkUnknownRules=Yp;function Zp(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(e[t])return true;return false}W.schemaHasRules=Zp;function Bb(n,e){if(typeof n=="boolean")return !n;for(let t in n)if(t!=="$ref"&&e.all[t])return true;return false}W.schemaHasRulesButRef=Bb;function Wb({topSchemaRef:n,schemaPath:e},t,r,i){if(!i){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")return (0, oe._)`${t}`}return (0, oe._)`${n}${e}${(0, oe.getProperty)(r)}`}W.schemaRefOrVal=Wb;function Mb(n){return Qp(decodeURIComponent(n))}W.unescapeFragment=Mb;function Gb(n){return encodeURIComponent(Al(n))}W.escapeFragment=Gb;function Al(n){return typeof n=="number"?`${n}`:n.replace(/~/g,"~0").replace(/\//g,"~1")}W.escapeJsonPointer=Al;function Qp(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}W.unescapeJsonPointer=Qp;function Jb(n,e){if(Array.isArray(n))for(let t of n)e(t);else e(n);}W.eachItem=Jb;function Kp({mergeNames:n,mergeToName:e,mergeValues:t,resultToName:r}){return (i,a,s,o)=>{let u=s===void 0?a:s instanceof oe.Name?(a instanceof oe.Name?n(i,a,s):e(i,a,s),s):a instanceof oe.Name?(e(i,s,a),a):t(a,s);return o===oe.Name&&!(u instanceof oe.Name)?r(i,u):u}}W.mergeEvaluated={props:Kp({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>{n.if((0, oe._)`${e} === true`,()=>n.assign(t,true),()=>n.assign(t,(0, oe._)`${t} || {}`).code((0, oe._)`Object.assign(${t}, ${e})`));}),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>{e===true?n.assign(t,true):(n.assign(t,(0, oe._)`${t} || {}`),Pl(n,t,e));}),mergeValues:(n,e)=>n===true?true:{...n,...e},resultToName:em}),items:Kp({mergeNames:(n,e,t)=>n.if((0, oe._)`${t} !== true && ${e} !== undefined`,()=>n.assign(t,(0, oe._)`${e} === true ? true : ${t} > ${e} ? ${t} : ${e}`)),mergeToName:(n,e,t)=>n.if((0, oe._)`${t} !== true`,()=>n.assign(t,e===true?true:(0, oe._)`${t} > ${e} ? ${t} : ${e}`)),mergeValues:(n,e)=>n===true?true:Math.max(n,e),resultToName:(n,e)=>n.var("items",e)})};function em(n,e){if(e===true)return n.var("props",true);let t=n.var("props",(0, oe._)`{}`);return e!==void 0&&Pl(n,t,e),t}W.evaluatedPropsToName=em;function Pl(n,e,t){Object.keys(t).forEach(r=>n.assign((0, oe._)`${e}${(0, oe.getProperty)(r)}`,true));}W.setEvaluated=Pl;var Xp={};function zb(n,e){return n.scopeValue("func",{ref:e,code:Xp[e.code]||(Xp[e.code]=new jb._Code(e.code))})}W.useFunc=zb;var Dl;(function(n){n[n.Num=0]="Num",n[n.Str=1]="Str";})(Dl||(W.Type=Dl={}));function Hb(n,e,t){if(n instanceof oe.Name){let r=e===Dl.Num;return t?r?(0, oe._)`"[" + ${n} + "]"`:(0, oe._)`"['" + ${n} + "']"`:r?(0, oe._)`"/" + ${n}`:(0, oe._)`"/" + ${n}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return t?(0, oe.getProperty)(n).toString():"/"+Al(n)}W.getErrorPath=Hb;function tm(n,e,t=n.opts.strictSchema){if(t){if(e=`strict mode: ${e}`,t===true)throw new Error(e);n.self.logger.warn(e);}}W.checkStrictMode=tm;});var pt=E(Ol=>{Object.defineProperty(Ol,"__esModule",{value:true});var Ve=$(),Ub={data:new Ve.Name("data"),valCxt:new Ve.Name("valCxt"),instancePath:new Ve.Name("instancePath"),parentData:new Ve.Name("parentData"),parentDataProperty:new Ve.Name("parentDataProperty"),rootData:new Ve.Name("rootData"),dynamicAnchors:new Ve.Name("dynamicAnchors"),vErrors:new Ve.Name("vErrors"),errors:new Ve.Name("errors"),this:new Ve.Name("this"),self:new Ve.Name("self"),scope:new Ve.Name("scope"),json:new Ve.Name("json"),jsonPos:new Ve.Name("jsonPos"),jsonLen:new Ve.Name("jsonLen"),jsonPart:new Ve.Name("jsonPart")};Ol.default=Ub;});var mi=E(Re=>{Object.defineProperty(Re,"__esModule",{value:true});Re.extendErrors=Re.resetErrorsCount=Re.reportExtraError=Re.reportError=Re.keyword$DataError=Re.keywordError=void 0;var K=$(),qs=M(),He=pt();Re.keywordError={message:({keyword:n})=>(0, K.str)`must pass "${n}" keyword validation`};Re.keyword$DataError={message:({keyword:n,schemaType:e})=>e?(0, K.str)`"${n}" keyword must be ${e} ($data)`:(0, K.str)`"${n}" keyword is invalid ($data)`};function Kb(n,e=Re.keywordError,t,r){let{it:i}=n,{gen:a,compositeRule:s,allErrors:o}=i,u=im(n,e,t);r??(s||o)?nm(a,u):rm(i,(0, K._)`[${u}]`);}Re.reportError=Kb;function Xb(n,e=Re.keywordError,t){let{it:r}=n,{gen:i,compositeRule:a,allErrors:s}=r,o=im(n,e,t);nm(i,o),a||s||rm(r,He.default.vErrors);}Re.reportExtraError=Xb;function Yb(n,e){n.assign(He.default.errors,e),n.if((0, K._)`${He.default.vErrors} !== null`,()=>n.if(e,()=>n.assign((0, K._)`${He.default.vErrors}.length`,e),()=>n.assign(He.default.vErrors,null)));}Re.resetErrorsCount=Yb;function Zb({gen:n,keyword:e,schemaValue:t,data:r,errsCount:i,it:a}){if(i===void 0)throw new Error("ajv implementation error");let s=n.name("err");n.forRange("i",i,He.default.errors,o=>{n.const(s,(0, K._)`${He.default.vErrors}[${o}]`),n.if((0, K._)`${s}.instancePath === undefined`,()=>n.assign((0, K._)`${s}.instancePath`,(0, K.strConcat)(He.default.instancePath,a.errorPath))),n.assign((0, K._)`${s}.schemaPath`,(0, K.str)`${a.errSchemaPath}/${e}`),a.opts.verbose&&(n.assign((0, K._)`${s}.schema`,t),n.assign((0, K._)`${s}.data`,r));});}Re.extendErrors=Zb;function nm(n,e){let t=n.const("err",e);n.if((0, K._)`${He.default.vErrors} === null`,()=>n.assign(He.default.vErrors,(0, K._)`[${t}]`),(0, K._)`${He.default.vErrors}.push(${t})`),n.code((0, K._)`${He.default.errors}++`);}function rm(n,e){let{gen:t,validateName:r,schemaEnv:i}=n;i.$async?t.throw((0, K._)`new ${n.ValidationError}(${e})`):(t.assign((0, K._)`${r}.errors`,e),t.return(false));}var $n={keyword:new K.Name("keyword"),schemaPath:new K.Name("schemaPath"),params:new K.Name("params"),propertyName:new K.Name("propertyName"),message:new K.Name("message"),schema:new K.Name("schema"),parentSchema:new K.Name("parentSchema")};function im(n,e,t){let{createErrors:r}=n.it;return r===false?(0, K._)`{}`:Qb(n,e,t)}function Qb(n,e,t={}){let{gen:r,it:i}=n,a=[e_(i,t),t_(n,t)];return n_(n,e,a),r.object(...a)}function e_({errorPath:n},{instancePath:e}){let t=e?(0, K.str)`${n}${(0, qs.getErrorPath)(e,qs.Type.Str)}`:n;return [He.default.instancePath,(0, K.strConcat)(He.default.instancePath,t)]}function t_({keyword:n,it:{errSchemaPath:e}},{schemaPath:t,parentSchema:r}){let i=r?e:(0, K.str)`${e}/${n}`;return t&&(i=(0, K.str)`${i}${(0, qs.getErrorPath)(t,qs.Type.Str)}`),[$n.schemaPath,i]}function n_(n,{params:e,message:t},r){let{keyword:i,data:a,schemaValue:s,it:o}=n,{opts:u,propertyName:l,topSchemaRef:c,schemaPath:h}=o;r.push([$n.keyword,i],[$n.params,typeof e=="function"?e(n):e||(0, K._)`{}`]),u.messages&&r.push([$n.message,typeof t=="function"?t(n):t]),u.verbose&&r.push([$n.schema,s],[$n.parentSchema,(0, K._)`${c}${h}`],[He.default.data,a]),l&&r.push([$n.propertyName,l]);}});var am=E(cr=>{Object.defineProperty(cr,"__esModule",{value:true});cr.boolOrEmptySchema=cr.topBoolOrEmptySchema=void 0;var r_=mi(),i_=$(),s_=pt(),a_={message:"boolean schema is false"};function o_(n){let{gen:e,schema:t,validateName:r}=n;t===false?sm(n,false):typeof t=="object"&&t.$async===true?e.return(s_.default.data):(e.assign((0, i_._)`${r}.errors`,null),e.return(true));}cr.topBoolOrEmptySchema=o_;function u_(n,e){let{gen:t,schema:r}=n;r===false?(t.var(e,false),sm(n)):t.var(e,true);}cr.boolOrEmptySchema=u_;function sm(n,e){let{gen:t,data:r}=n,i={gen:t,keyword:"false schema",data:r,schema:false,schemaCode:false,schemaValue:false,params:{},it:n};(0, r_.reportError)(i,a_,void 0,e);}});var xl=E(hr=>{Object.defineProperty(hr,"__esModule",{value:true});hr.getRules=hr.isJSONType=void 0;var l_=["string","number","integer","boolean","null","object","array"],c_=new Set(l_);function h_(n){return typeof n=="string"&&c_.has(n)}hr.isJSONType=h_;function d_(){let n={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return {types:{...n,integer:true,boolean:true,null:true},rules:[{rules:[]},n.number,n.string,n.array,n.object],post:{rules:[]},all:{},keywords:{}}}hr.getRules=d_;});var Tl=E(hn=>{Object.defineProperty(hn,"__esModule",{value:true});hn.shouldUseRule=hn.shouldUseGroup=hn.schemaHasRulesForType=void 0;function f_({schema:n,self:e},t){let r=e.RULES.types[t];return r&&r!==true&&om(n,r)}hn.schemaHasRulesForType=f_;function om(n,e){return e.rules.some(t=>um(n,t))}hn.shouldUseGroup=om;function um(n,e){var t;return n[e.keyword]!==void 0||((t=e.definition.implements)===null||t===void 0?void 0:t.some(r=>n[r]!==void 0))}hn.shouldUseRule=um;});var gi=E($e=>{Object.defineProperty($e,"__esModule",{value:true});$e.reportTypeError=$e.checkDataTypes=$e.checkDataType=$e.coerceAndCheckDataType=$e.getJSONTypes=$e.getSchemaTypes=$e.DataType=void 0;var p_=xl(),m_=Tl(),g_=mi(),j=$(),lm=M(),dr;(function(n){n[n.Correct=0]="Correct",n[n.Wrong=1]="Wrong";})(dr||($e.DataType=dr={}));function y_(n){let e=cm(n.type);if(e.includes("null")){if(n.nullable===false)throw new Error("type: null contradicts nullable: false")}else {if(!e.length&&n.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');n.nullable===true&&e.push("null");}return e}$e.getSchemaTypes=y_;function cm(n){let e=Array.isArray(n)?n:n?[n]:[];if(e.every(p_.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}$e.getJSONTypes=cm;function v_(n,e){let{gen:t,data:r,opts:i}=n,a=C_(e,i.coerceTypes),s=e.length>0&&!(a.length===0&&e.length===1&&(0, m_.schemaHasRulesForType)(n,e[0]));if(s){let o=Fl(e,r,i.strictNumbers,dr.Wrong);t.if(o,()=>{a.length?b_(n,e,a):Il(n);});}return s}$e.coerceAndCheckDataType=v_;var hm=new Set(["string","number","integer","boolean","null"]);function C_(n,e){return e?n.filter(t=>hm.has(t)||e==="array"&&t==="array"):[]}function b_(n,e,t){let{gen:r,data:i,opts:a}=n,s=r.let("dataType",(0, j._)`typeof ${i}`),o=r.let("coerced",(0, j._)`undefined`);a.coerceTypes==="array"&&r.if((0, j._)`${s} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,()=>r.assign(i,(0, j._)`${i}[0]`).assign(s,(0, j._)`typeof ${i}`).if(Fl(e,i,a.strictNumbers),()=>r.assign(o,i))),r.if((0, j._)`${o} !== undefined`);for(let l of t)(hm.has(l)||l==="array"&&a.coerceTypes==="array")&&u(l);r.else(),Il(n),r.endIf(),r.if((0, j._)`${o} !== undefined`,()=>{r.assign(i,o),__(n,o);});function u(l){switch(l){case "string":r.elseIf((0, j._)`${s} == "number" || ${s} == "boolean"`).assign(o,(0, j._)`"" + ${i}`).elseIf((0, j._)`${i} === null`).assign(o,(0, j._)`""`);return;case "number":r.elseIf((0, j._)`${s} == "boolean" || ${i} === null
3
3
  || (${s} == "string" && ${i} && ${i} == +${i})`).assign(o,(0, j._)`+${i}`);return;case "integer":r.elseIf((0, j._)`${s} === "boolean" || ${i} === null
4
4
  || (${s} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(o,(0, j._)`+${i}`);return;case "boolean":r.elseIf((0, j._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(o,false).elseIf((0, j._)`${i} === "true" || ${i} === 1`).assign(o,true);return;case "null":r.elseIf((0, j._)`${i} === "" || ${i} === 0 || ${i} === false`),r.assign(o,null);return;case "array":r.elseIf((0, j._)`${s} === "string" || ${s} === "number"
5
- || ${s} === "boolean" || ${i} === null`).assign(o,(0, j._)`[${i}]`);}}}function b_({gen:n,parentData:e,parentDataProperty:t},r){n.if((0, j._)`${e} !== undefined`,()=>n.assign((0, j._)`${e}[${t}]`,r));}function Nl(n,e,t,r=dr.Correct){let i=r===dr.Correct?j.operators.EQ:j.operators.NEQ,a;switch(n){case "null":return (0, j._)`${e} ${i} null`;case "array":a=(0, j._)`Array.isArray(${e})`;break;case "object":a=(0, j._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case "integer":a=s((0, j._)`!(${e} % 1) && !isNaN(${e})`);break;case "number":a=s();break;default:return (0, j._)`typeof ${e} ${i} ${n}`}return r===dr.Correct?a:(0, j.not)(a);function s(o=j.nil){return (0, j.and)((0, j._)`typeof ${e} == "number"`,o,t?(0, j._)`isFinite(${e})`:j.nil)}}$e.checkDataType=Nl;function Fl(n,e,t,r){if(n.length===1)return Nl(n[0],e,t,r);let i,a=(0, om.toHash)(n);if(a.array&&a.object){let s=(0, j._)`typeof ${e} != "object"`;i=a.null?s:(0, j._)`!${e} || ${s}`,delete a.null,delete a.array,delete a.object;}else i=j.nil;a.number&&delete a.integer;for(let s in a)i=(0, j.and)(i,Nl(s,e,t,r));return i}$e.checkDataTypes=Fl;var __={message:({schema:n})=>`must be ${n}`,params:({schema:n,schemaValue:e})=>typeof n=="string"?(0, j._)`{type: ${n}}`:(0, j._)`{type: ${e}}`};function Il(n){let e=S_(n);(0, m_.reportError)(e,__);}$e.reportTypeError=Il;function S_(n){let{gen:e,data:t,schema:r}=n,i=(0, om.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var hm=E(Bs=>{Object.defineProperty(Bs,"__esModule",{value:true});Bs.assignDefaults=void 0;var fr=$(),E_=M();function w_(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)cm(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>cm(n,a,i.default));}Bs.assignDefaults=w_;function cm(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, fr._)`${a}${(0, fr.getProperty)(e)}`;if(i){(0, E_.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, fr._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, fr._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, fr._)`${o} = ${(0, fr.stringify)(t)}`);}});var mt=E(se=>{Object.defineProperty(se,"__esModule",{value:true});se.validateUnion=se.validateArray=se.usePattern=se.callValidateCode=se.schemaProperties=se.allSchemaProperties=se.noPropertyInData=se.propertyInData=se.isOwnProperty=se.hasPropFunc=se.reportMissingProp=se.checkMissingProp=se.checkReportMissingProp=void 0;var fe=$(),kl=M(),dn=pt(),D_=M();function A_(n,e){let{gen:t,data:r,it:i}=n;t.if(Rl(t,r,e,i.opts.ownProperties),()=>{n.setParams({missingProperty:(0, fe._)`${e}`},true),n.error();});}se.checkReportMissingProp=A_;function P_({gen:n,data:e,it:{opts:t}},r,i){return (0, fe.or)(...r.map(a=>(0, fe.and)(Rl(n,e,a,t.ownProperties),(0, fe._)`${i} = ${a}`)))}se.checkMissingProp=P_;function O_(n,e){n.setParams({missingProperty:e},true),n.error();}se.reportMissingProp=O_;function dm(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, fe._)`Object.prototype.hasOwnProperty`})}se.hasPropFunc=dm;function Vl(n,e,t){return (0, fe._)`${dm(n)}.call(${e}, ${t})`}se.isOwnProperty=Vl;function x_(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} !== undefined`;return r?(0, fe._)`${i} && ${Vl(n,e,t)}`:i}se.propertyInData=x_;function Rl(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} === undefined`;return r?(0, fe.or)(i,(0, fe.not)(Vl(n,e,t))):i}se.noPropertyInData=Rl;function fm(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}se.allSchemaProperties=fm;function T_(n,e){return fm(e).filter(t=>!(0, kl.alwaysValidSchema)(n,e[t]))}se.schemaProperties=T_;function N_({schemaCode:n,data:e,it:{gen:t,topSchemaRef:r,schemaPath:i,errorPath:a},it:s},o,u,l){let c=l?(0, fe._)`${n}, ${e}, ${r}${i}`:e,h=[[dn.default.instancePath,(0, fe.strConcat)(dn.default.instancePath,a)],[dn.default.parentData,s.parentData],[dn.default.parentDataProperty,s.parentDataProperty],[dn.default.rootData,dn.default.rootData]];s.opts.dynamicRef&&h.push([dn.default.dynamicAnchors,dn.default.dynamicAnchors]);let f=(0, fe._)`${c}, ${t.object(...h)}`;return u!==fe.nil?(0, fe._)`${o}.call(${u}, ${f})`:(0, fe._)`${o}(${f})`}se.callValidateCode=N_;var F_=(0, fe._)`new RegExp`;function I_({gen:n,it:{opts:e}},t){let r=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(t,r);return n.scopeValue("pattern",{key:a.toString(),ref:a,code:(0, fe._)`${i.code==="new RegExp"?F_:(0, D_.useFunc)(n,i)}(${t}, ${r})`})}se.usePattern=I_;function k_(n){let{gen:e,data:t,keyword:r,it:i}=n,a=e.name("valid");if(i.allErrors){let o=e.let("valid",true);return s(()=>e.assign(o,false)),o}return e.var(a,true),s(()=>e.break()),a;function s(o){let u=e.const("len",(0, fe._)`${t}.length`);e.forRange("i",0,u,l=>{n.subschema({keyword:r,dataProp:l,dataPropType:kl.Type.Num},a),e.if((0, fe.not)(a),o);});}}se.validateArray=k_;function V_(n){let{gen:e,schema:t,keyword:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(u=>(0, kl.alwaysValidSchema)(i,u))&&!i.opts.unevaluated)return;let s=e.let("valid",false),o=e.name("_valid");e.block(()=>t.forEach((u,l)=>{let c=n.subschema({keyword:r,schemaProp:l,compositeRule:true},o);e.assign(s,(0, fe._)`${s} || ${o}`),n.mergeValidEvaluated(c,o)||e.if((0, fe.not)(s));})),n.result(s,()=>n.reset(),()=>n.error(true));}se.validateUnion=V_;});var gm=E(Vt=>{Object.defineProperty(Vt,"__esModule",{value:true});Vt.validateKeywordUsage=Vt.validSchemaType=Vt.funcKeywordCode=Vt.macroKeywordCode=void 0;var Ue=$(),jn=pt(),R_=mt(),$_=mi();function j_(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=mm(t,r,o);s.opts.validateSchema!==false&&s.self.validateSchema(o,true);let l=t.name("valid");n.subschema({schema:o,schemaPath:Ue.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:true},l),n.pass(l,()=>n.error(true));}Vt.macroKeywordCode=j_;function L_(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;B_(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=mm(r,i,l),h=r.let("valid");n.block$data(h,f),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function f(){if(e.errors===false)y(),e.modifying&&pm(n),_(()=>n.error());else {let S=e.async?d():m();e.modifying&&pm(n),_(()=>q_(n,S));}}function d(){let S=r.let("ruleErrs",null);return r.try(()=>y((0, Ue._)`await `),b=>r.assign(h,false).if((0, Ue._)`${b} instanceof ${u.ValidationError}`,()=>r.assign(S,(0, Ue._)`${b}.errors`),()=>r.throw(b))),S}function m(){let S=(0, Ue._)`${c}.errors`;return r.assign(S,null),y(Ue.nil),S}function y(S=e.async?(0, Ue._)`await `:Ue.nil){let b=u.opts.passContext?jn.default.this:jn.default.self,g=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Ue._)`${S}${(0, R_.callValidateCode)(n,c,b,g)}`,e.modifying);}function _(S){var b;r.if((0, Ue.not)((b=e.valid)!==null&&b!==void 0?b:h),S);}}Vt.funcKeywordCode=L_;function pm(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Ue._)`${r.parentData}[${r.parentDataProperty}]`));}function q_(n,e){let{gen:t}=n;t.if((0, Ue._)`Array.isArray(${e})`,()=>{t.assign(jn.default.vErrors,(0, Ue._)`${jn.default.vErrors} === null ? ${e} : ${jn.default.vErrors}.concat(${e})`).assign(jn.default.errors,(0, Ue._)`${jn.default.vErrors}.length`),(0, $_.extendErrors)(n);},()=>n.error());}function B_({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function mm(n,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return n.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0, Ue.stringify)(t)})}function W_(n,e,t=false){return !e.length||e.some(r=>r==="array"?Array.isArray(n):r==="object"?n&&typeof n=="object"&&!Array.isArray(n):typeof n==r||t&&typeof n>"u")}Vt.validSchemaType=W_;function M_({schema:n,opts:e,self:t,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(n[a])){let u=`keyword "${a}" value is invalid at path "${r}": `+t.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(u);else throw new Error(u)}}Vt.validateKeywordUsage=M_;});var vm=E(fn=>{Object.defineProperty(fn,"__esModule",{value:true});fn.extendSubschemaMode=fn.extendSubschemaData=fn.getSubschema=void 0;var Rt=$(),ym=M();function G_(n,{keyword:e,schemaProp:t,schema:r,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(e!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=n.schema[e];return t===void 0?{schema:o,schemaPath:(0, Rt._)`${n.schemaPath}${(0, Rt.getProperty)(e)}`,errSchemaPath:`${n.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0, Rt._)`${n.schemaPath}${(0, Rt.getProperty)(e)}${(0, Rt.getProperty)(t)}`,errSchemaPath:`${n.errSchemaPath}/${e}/${(0, ym.escapeFragment)(t)}`}}if(r!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return {schema:r,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}fn.getSubschema=G_;function J_(n,e,{dataProp:t,dataPropType:r,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:l,dataPathArr:c,opts:h}=e,f=o.let("data",(0, Rt._)`${e.data}${(0, Rt.getProperty)(t)}`,true);u(f),n.errorPath=(0, Rt.str)`${l}${(0, ym.getErrorPath)(t,r,h.jsPropertySyntax)}`,n.parentDataProperty=(0, Rt._)`${t}`,n.dataPathArr=[...c,n.parentDataProperty];}if(i!==void 0){let l=i instanceof Rt.Name?i:o.let("data",i,true);u(l),s!==void 0&&(n.propertyName=s);}a&&(n.dataTypes=a);function u(l){n.data=l,n.dataLevel=e.dataLevel+1,n.dataTypes=[],e.definedProperties=new Set,n.parentData=e.data,n.dataNames=[...e.dataNames,l];}}fn.extendSubschemaData=J_;function z_(n,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(n.compositeRule=r),i!==void 0&&(n.createErrors=i),a!==void 0&&(n.allErrors=a),n.jtdDiscriminator=e,n.jtdMetadata=t;}fn.extendSubschemaMode=z_;});var $l=E((QI,Cm)=>{Cm.exports=function n(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return false;for(i=r;i--!==0;)if(!n(e[i],t[i]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return false;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[i]))return false;for(i=r;i--!==0;){var s=a[i];if(!n(e[s],t[s]))return false}return true}return e!==e&&t!==t};});var _m=E((ek,bm)=>{var pn=bm.exports=function(n,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var r=typeof t=="function"?t:t.pre||function(){},i=t.post||function(){};Ws(e,r,i,n,"",n);};pn.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};pn.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};pn.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};pn.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function Ws(n,e,t,r,i,a,s,o,u,l){if(r&&typeof r=="object"&&!Array.isArray(r)){e(r,i,a,s,o,u,l);for(var c in r){var h=r[c];if(Array.isArray(h)){if(c in pn.arrayKeywords)for(var f=0;f<h.length;f++)Ws(n,e,t,h[f],i+"/"+c+"/"+f,a,i,c,r,f);}else if(c in pn.propsKeywords){if(h&&typeof h=="object")for(var d in h)Ws(n,e,t,h[d],i+"/"+c+"/"+H_(d),a,i,c,r,d);}else (c in pn.keywords||n.allKeys&&!(c in pn.skipKeywords))&&Ws(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function H_(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var yi=E(nt=>{Object.defineProperty(nt,"__esModule",{value:true});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var U_=M(),K_=$l(),X_=_m(),Y_=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Z_(n,e=true){return typeof n=="boolean"?true:e===true?!jl(n):e?Sm(n)<=e:false}nt.inlineRef=Z_;var Q_=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function jl(n){for(let e in n){if(Q_.has(e))return true;let t=n[e];if(Array.isArray(t)&&t.some(jl)||typeof t=="object"&&jl(t))return true}return false}function Sm(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!Y_.has(t)&&(typeof n[t]=="object"&&(0, U_.eachItem)(n[t],r=>e+=Sm(r)),e===1/0))return 1/0}return e}function Em(n,e="",t){t!==false&&(e=pr(e));let r=n.parse(e);return wm(n,r)}nt.getFullPath=Em;function wm(n,e){return n.serialize(e).split("#")[0]+"#"}nt._getFullPath=wm;var eS=/#\/?$/;function pr(n){return n?n.replace(eS,""):""}nt.normalizeId=pr;function tS(n,e,t){return t=pr(t),n.resolve(e,t)}nt.resolveUrl=tS;var nS=/^[a-z_][-a-z0-9._]*$/i;function rS(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=pr(n[t]||e),a={"":i},s=Em(r,i,false),o={},u=new Set;return X_(n,{allKeys:true},(h,f,d,m)=>{if(m===void 0)return;let y=s+f,_=a[m];typeof h[t]=="string"&&(_=S.call(this,h[t])),b.call(this,h.$anchor),b.call(this,h.$dynamicAnchor),a[f]=_;function S(g){let v=this.opts.uriResolver.resolve;if(g=pr(_?v(_,g):g),u.has(g))throw c(g);u.add(g);let p=this.refs[g];return typeof p=="string"&&(p=this.refs[p]),typeof p=="object"?l(h,p.schema,g):g!==pr(y)&&(g[0]==="#"?(l(h,o[g],g),o[g]=h):this.refs[g]=y),g}function b(g){if(typeof g=="string"){if(!nS.test(g))throw new Error(`invalid anchor "${g}"`);S.call(this,`#${g}`);}}}),o;function l(h,f,d){if(f!==void 0&&!K_(h,f))throw c(d)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}nt.getSchemaRefs=rS;});var mr=E(mn=>{Object.defineProperty(mn,"__esModule",{value:true});mn.getData=mn.KeywordCxt=mn.validateFunctionCode=void 0;var xm=im(),Dm=gi(),ql=Tl(),Ms=gi(),iS=hm(),Ci=gm(),Ll=vm(),F=$(),V=pt(),sS=yi(),en=M(),vi=mi();function aS(n){if(Fm(n)&&(Im(n),Nm(n))){lS(n);return}Tm(n,()=>(0, xm.topBoolOrEmptySchema)(n));}mn.validateFunctionCode=aS;function Tm({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, F._)`${V.default.data}, ${V.default.valCxt}`,r.$async,()=>{n.code((0, F._)`"use strict"; ${Am(t,i)}`),uS(n,i),n.code(a);}):n.func(e,(0, F._)`${V.default.data}, ${oS(i)}`,r.$async,()=>n.code(Am(t,i)).code(a));}function oS(n){return (0, F._)`{${V.default.instancePath}="", ${V.default.parentData}, ${V.default.parentDataProperty}, ${V.default.rootData}=${V.default.data}${n.dynamicRef?(0, F._)`, ${V.default.dynamicAnchors}={}`:F.nil}}={}`}function uS(n,e){n.if(V.default.valCxt,()=>{n.var(V.default.instancePath,(0, F._)`${V.default.valCxt}.${V.default.instancePath}`),n.var(V.default.parentData,(0, F._)`${V.default.valCxt}.${V.default.parentData}`),n.var(V.default.parentDataProperty,(0, F._)`${V.default.valCxt}.${V.default.parentDataProperty}`),n.var(V.default.rootData,(0, F._)`${V.default.valCxt}.${V.default.rootData}`),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, F._)`${V.default.valCxt}.${V.default.dynamicAnchors}`);},()=>{n.var(V.default.instancePath,(0, F._)`""`),n.var(V.default.parentData,(0, F._)`undefined`),n.var(V.default.parentDataProperty,(0, F._)`undefined`),n.var(V.default.rootData,V.default.data),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, F._)`{}`);});}function lS(n){let{schema:e,opts:t,gen:r}=n;Tm(n,()=>{t.$comment&&e.$comment&&Vm(n),pS(n),r.let(V.default.vErrors,null),r.let(V.default.errors,0),t.unevaluated&&cS(n),km(n),yS(n);});}function cS(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, F._)`${t}.evaluated`),e.if((0, F._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, F._)`${n.evaluated}.props`,(0, F._)`undefined`)),e.if((0, F._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, F._)`${n.evaluated}.items`,(0, F._)`undefined`));}function Am(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, F._)`/*# sourceURL=${t} */`:F.nil}function hS(n,e){if(Fm(n)&&(Im(n),Nm(n))){dS(n,e);return}(0, xm.boolOrEmptySchema)(n,e);}function Nm({schema:n,self:e}){if(typeof n=="boolean")return !n;for(let t in n)if(e.RULES.all[t])return true;return false}function Fm(n){return typeof n.schema!="boolean"}function dS(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&Vm(n),mS(n),gS(n);let a=r.const("_errs",V.default.errors);km(n,a),r.var(e,(0, F._)`${a} === ${V.default.errors}`);}function Im(n){(0, en.checkUnknownRules)(n),fS(n);}function km(n,e){if(n.opts.jtd)return Pm(n,[],false,e);let t=(0, Dm.getSchemaTypes)(n.schema),r=(0, Dm.coerceAndCheckDataType)(n,t);Pm(n,t,!r,e);}function fS(n){let{schema:e,errSchemaPath:t,opts:r,self:i}=n;e.$ref&&r.ignoreKeywordsWithRef&&(0, en.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${t}"`);}function pS(n){let{schema:e,opts:t}=n;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0, en.checkStrictMode)(n,"default is ignored in the schema root");}function mS(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, sS.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function gS(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function Vm({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, F._)`${V.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, F.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, F._)`${V.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function yS(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, F._)`${V.default.errors} === 0`,()=>e.return(V.default.data),()=>e.throw((0, F._)`new ${i}(${V.default.vErrors})`)):(e.assign((0, F._)`${r}.errors`,V.default.vErrors),a.unevaluated&&vS(n),e.return((0, F._)`${V.default.errors} === 0`));}function vS({gen:n,evaluated:e,props:t,items:r}){t instanceof F.Name&&n.assign((0, F._)`${e}.props`,t),r instanceof F.Name&&n.assign((0, F._)`${e}.items`,r);}function Pm(n,e,t,r){let{gen:i,schema:a,data:s,allErrors:o,opts:u,self:l}=n,{RULES:c}=l;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0, en.schemaHasRulesButRef)(a,c))){i.block(()=>$m(n,"$ref",c.all.$ref.definition));return}u.jtd||CS(n,e),i.block(()=>{for(let f of c.rules)h(f);h(c.post);});function h(f){(0, ql.shouldUseGroup)(a,f)&&(f.type?(i.if((0, Ms.checkDataType)(f.type,s,u.strictNumbers)),Om(n,f),e.length===1&&e[0]===f.type&&t&&(i.else(),(0, Ms.reportTypeError)(n)),i.endIf()):Om(n,f),o||i.if((0, F._)`${V.default.errors} === ${r||0}`));}}function Om(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, iS.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, ql.shouldUseRule)(r,a)&&$m(n,a.keyword,a.definition,e.type);});}function CS(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(bS(n,e),n.opts.allowUnionTypes||_S(n,e),SS(n,n.dataTypes));}function bS(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{Rm(n.dataTypes,t)||Bl(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),wS(n,e);}}function _S(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Bl(n,"use allowUnionTypes to allow union type keyword");}function SS(n,e){let t=n.self.RULES.all;for(let r in t){let i=t[r];if(typeof i=="object"&&(0, ql.shouldUseRule)(n.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>ES(e,s))&&Bl(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function ES(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function Rm(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function wS(n,e){let t=[];for(let r of n.dataTypes)Rm(e,r)?t.push(r):e.includes("integer")&&r==="number"&&t.push("integer");n.dataTypes=t;}function Bl(n,e){let t=n.schemaEnv.baseId+n.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0, en.checkStrictMode)(n,e,n.opts.strictTypes);}var Gs=class{constructor(e,t,r){if((0, Ci.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0, en.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",jm(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0, Ci.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==false)&&(this.errsCount=e.gen.const("_errs",V.default.errors));}result(e,t,r){this.failResult((0, F.not)(e),t,r);}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else();}pass(e,t){this.failResult((0, F.not)(e),void 0,t);}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(false);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else();}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0, F._)`${t} !== undefined && (${(0, F.or)(this.invalid$data(),e)})`);}error(e,t,r){if(t){this.setParams(t),this._error(e,r),this.setParams({});return}this._error(e,r);}_error(e,t){(e?vi.reportExtraError:vi.reportError)(this,this.def.error,t);}$dataError(){(0, vi.reportError)(this,this.def.$dataError||vi.keyword$DataError);}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0, vi.resetErrorsCount)(this.gen,this.errsCount);}ok(e){this.allErrors||this.gen.if(e);}setParams(e,t){t?Object.assign(this.params,e):this.params=e;}block$data(e,t,r=F.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=F.nil,t=F.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, F.or)((0, F._)`${i} === undefined`,t)),e!==F.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==F.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, F.or)(s(),o());function s(){if(r.length){if(!(t instanceof F.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, F._)`${(0, Ms.checkDataTypes)(u,t,a.opts.strictNumbers,Ms.DataType.Wrong)}`}return F.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, F._)`!${u}(${t})`}return F.nil}}subschema(e,t){let r=(0, Ll.getSubschema)(this.it,e);(0, Ll.extendSubschemaData)(r,this.it,e),(0, Ll.extendSubschemaMode)(r,e);let i={...this.it,...r,items:void 0,props:void 0};return hS(i,t),i}mergeEvaluated(e,t){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==true&&e.props!==void 0&&(r.props=en.mergeEvaluated.props(i,e.props,r.props,t)),r.items!==true&&e.items!==void 0&&(r.items=en.mergeEvaluated.items(i,e.items,r.items,t)));}mergeValidEvaluated(e,t){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true))return i.if(t,()=>this.mergeEvaluated(e,F.Name)),true}};mn.KeywordCxt=Gs;function $m(n,e,t,r){let i=new Gs(n,t,e);"code"in t?t.code(i,r):i.$data&&t.validate?(0, Ci.funcKeywordCode)(i,t):"macro"in t?(0, Ci.macroKeywordCode)(i,t):(t.compile||t.validate)&&(0, Ci.funcKeywordCode)(i,t);}var DS=/^\/(?:[^~]|~0|~1)*$/,AS=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function jm(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return V.default.rootData;if(n[0]==="/"){if(!DS.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=V.default.rootData;}else {let l=AS.exec(n);if(!l)throw new Error(`Invalid JSON-pointer: ${n}`);let c=+l[1];if(i=l[2],i==="#"){if(c>=e)throw new Error(u("property/index",c));return r[e-c]}if(c>e)throw new Error(u("data",c));if(a=t[e-c],!i)return a}let s=a,o=i.split("/");for(let l of o)l&&(a=(0, F._)`${a}${(0, F.getProperty)((0, en.unescapeJsonPointer)(l))}`,s=(0, F._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}mn.getData=jm;});var bi=E(Ml=>{Object.defineProperty(Ml,"__esModule",{value:true});var Wl=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=true;}};Ml.default=Wl;});var gr=E(zl=>{Object.defineProperty(zl,"__esModule",{value:true});var Gl=yi(),Jl=class extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0, Gl.resolveUrl)(e,t,r),this.missingSchema=(0, Gl.normalizeId)((0, Gl.getFullPath)(e,this.missingRef));}};zl.default=Jl;});var _i=E(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.resolveSchema=gt.getCompilingSchema=gt.resolveRef=gt.compileSchema=gt.SchemaEnv=void 0;var Ot=$(),PS=bi(),Ln=pt(),xt=yi(),Lm=M(),OS=mr(),yr=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let r;typeof e.schema=="object"&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0, xt.normalizeId)(r?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=r?.$async,this.refs={};}};gt.SchemaEnv=yr;function Ul(n){let e=qm.call(this,n);if(e)return e;let t=(0, xt.getFullPath)(this.opts.uriResolver,n.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new Ot.CodeGen(this.scope,{es5:r,lines:i,ownProperties:a}),o;n.$async&&(o=s.scopeValue("Error",{ref:PS.default,code:(0, Ot._)`require("ajv/dist/runtime/validation_error").default`}));let u=s.scopeName("validate");n.validateName=u;let l={gen:s,allErrors:this.opts.allErrors,data:Ln.default.data,parentData:Ln.default.parentData,parentDataProperty:Ln.default.parentDataProperty,dataNames:[Ln.default.data],dataPathArr:[Ot.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===true?{ref:n.schema,code:(0, Ot.stringify)(n.schema)}:{ref:n.schema}),validateName:u,ValidationError:o,schema:n.schema,schemaEnv:n,rootId:t,baseId:n.baseId||t,schemaPath:Ot.nil,errSchemaPath:n.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0, Ot._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(n),(0,OS.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs(Ln.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let d=new Function(`${Ln.default.self}`,`${Ln.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:d}),d.errors=null,d.schema=n.schema,d.schemaEnv=n,n.$async&&(d.$async=!0),this.opts.code.source===!0&&(d.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:m,items:y}=l;d.evaluated={props:m instanceof Ot.Name?void 0:m,items:y instanceof Ot.Name?void 0:y,dynamicProps:m instanceof Ot.Name,dynamicItems:y instanceof Ot.Name},d.source&&(d.source.evaluated=(0,Ot.stringify)(d.evaluated));}return n.validate=d,n}catch(h){throw delete n.validate,delete n.validateName,c&&this.logger.error("Error compiling schema, function code:",c),h}finally{this._compilations.delete(n);}}gt.compileSchema=Ul;function xS(n,e,t){var r;t=(0, xt.resolveUrl)(this.opts.uriResolver,e,t);let i=n.refs[t];if(i)return i;let a=FS.call(this,n,t);if(a===void 0){let s=(r=n.localRefs)===null||r===void 0?void 0:r[t],{schemaId:o}=this.opts;s&&(a=new yr({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=TS.call(this,a)}gt.resolveRef=xS;function TS(n){return (0, xt.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:Ul.call(this,n)}function qm(n){for(let e of this._compilations)if(NS(e,n))return e}gt.getCompilingSchema=qm;function NS(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function FS(n,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Js.call(this,n,e)}function Js(n,e){let t=this.opts.uriResolver.parse(e),r=(0, xt._getFullPath)(this.opts.uriResolver,t),i=(0, xt.getFullPath)(this.opts.uriResolver,n.baseId,void 0);if(Object.keys(n.schema).length>0&&r===i)return Hl.call(this,t,n);let a=(0, xt.normalizeId)(r),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=Js.call(this,n,s);return typeof o?.schema!="object"?void 0:Hl.call(this,t,o)}if(typeof s?.schema=="object"){if(s.validate||Ul.call(this,s),a===(0, xt.normalizeId)(e)){let{schema:o}=s,{schemaId:u}=this.opts,l=o[u];return l&&(i=(0, xt.resolveUrl)(this.opts.uriResolver,i,l)),new yr({schema:o,schemaId:u,root:n,baseId:i})}return Hl.call(this,t,s)}}gt.resolveSchema=Js;var IS=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Hl(n,{baseId:e,schema:t,root:r}){var i;if(((i=n.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of n.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let u=t[(0, Lm.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!IS.has(o)&&l&&(e=(0, xt.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, Lm.schemaHasRulesButRef)(t,this.RULES)){let o=(0, xt.resolveUrl)(this.opts.uriResolver,e,t.$ref);a=Js.call(this,r,o);}let{schemaId:s}=this.opts;if(a=a||new yr({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var Bm=E((ak,kS)=>{kS.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};});var ec=E((ok,Um)=>{var VS=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Xl=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),qn=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Yl=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Mm=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),Zl=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),RS=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),rt=new Array(256);{let n="0123456789ABCDEF";for(let e=0;e<256;e++)rt[e]="%"+n[e>>4]+n[e&15];}function je(n){return n<2048?rt[192|n>>6]+rt[128|n&63]:n<65536?rt[224|n>>12]+rt[128|n>>6&63]+rt[128|n&63]:rt[240|n>>18]+rt[128|n>>12&63]+rt[128|n>>6&63]+rt[128|n&63]}function $S(n){let e="",t=0,r=0;for(r=0;r<n.length;r++)if(t=n[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];break}for(r+=1;r<n.length;r++){if(t=n[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];}return e}var jS=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),LS=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),qS=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),BS=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function WS(n){if(n.length===0)return false;for(let e=0;e<n.length;e++)if(!qS(n[e])){if(n[e]==="%"&&e+2<n.length&&qn(n.slice(e+1,e+3))){e+=2;continue}return false}return true}function Wm(n){let e=-1,t=0,r=-1,i=0;for(let o=0;o<n.length;o++)n[o]==="0"?(r===-1&&(r=o),i++,i>t&&(t=i,e=r)):(r=-1,i=0);if(t<2)return n.join(":");let a=n.slice(0,e).join(":"),s=n.slice(e+t).join(":");return a+"::"+s}function MS(n){let e=n.indexOf("::");if(e!==-1&&n.indexOf("::",e+1)!==-1)return;let t=e===-1?n.split(":"):n.slice(0,e).split(":"),r=e===-1?[]:n.slice(e+2).split(":");e!==-1&&(t.length===1&&t[0]===""&&(t.length=0),r.length===1&&r[0]===""&&(r.length=0));let i=t.concat(r),a=0;for(let o=0;o<i.length;o++){let u=i[o];if(u==="")return;if(u.indexOf(".")!==-1){if(o!==i.length-1||e!==-1&&r.length===0||!Xl(u))return;a+=2;continue}if(!jS(u))return;i[o]=parseInt(u,16).toString(16),a++;}if(e===-1)return a!==8?void 0:Wm(i);if(a>=8)return;let s=i.slice(0,t.length);for(let o=a;o<8;o++)s.push("0");for(let o=t.length;o<i.length;o++)s.push(i[o]);return Wm(s)}function Kl(n){let e=n[0]==="["&&n[n.length-1]==="]";if((n[0]==="["||n[n.length-1]==="]")&&!e)return {host:n,isIPV6:false,error:true};let r=e?n.slice(1,-1):n;if(e&&LS(r))return r=r.toLowerCase(),{host:`[${r}]`,escapedHost:r,isIPV6:false,isIPVFuture:true};if(GS(r,":")<2)return {host:n,isIPV6:false,error:e};let i="",a=r.indexOf("%");if(a!==-1){let o=r.slice(a,a+3).toLowerCase()==="%25"?3:1;if(i=r.slice(a+o),!WS(i))return {host:n,isIPV6:false,error:true};r=r.slice(0,a);}let s=MS(r);return s===void 0?{host:n,isIPV6:false,error:true}:{host:s+(i?"%"+i:""),escapedHost:s+(i?"%25"+i:""),isIPV6:true}}function GS(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function JS(n){let e=n,t=[],r=-1,i=0;for(;i=e.length;){if(i===1){if(e===".")break;if(e==="/"){t.push("/");break}else {t.push(e);break}}else if(i===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(i===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((r=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,r)),e=e.slice(r);}return t.join("")}var zS={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},HS=/[@/?#:]/g,US=/[@/?#]/g;function Gm(n,e){let t=e?US:HS;return t.lastIndex=0,n.replace(t,r=>zS[r])}function Jm(n,e=false){if(n.indexOf("%")===-1)return n;let t="";for(let r=0;r<n.length;r++){if(n[r]==="%"&&r+2<n.length){let i=n.slice(r+1,r+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));e&&Yl(s)?t+=s:t+="%"+a,r+=2;continue}}t+=n[r];}return t}function KS(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));s!=="."&&Yl(s)?e+=s:e+="%"+a,t+=2;continue}}if(Mm(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Hm(i)?r:rt[i];else if(i<55296||i>57343)e+=je(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=je(65536+(i-55296<<10)+(a-56320)),t++):e+=je(65533);}else e+=je(65533);}}return e}function XS(n,e=false){let t="",r=e&&n[0]!=="/";for(let i=0;i<n.length;i++){let a=n[i];if(a==="%"&&i+2<n.length){let s=n.slice(i+1,i+3);if(qn(s)){t+="%"+s.toUpperCase(),i+=2;continue}}if(a==="/"&&(r=false),Mm(a)&&(a!==":"||!r))t+=a;else {let s=n.charCodeAt(i);if(s<128)t+=rt[s];else if(s<55296||s>57343)t+=je(s);else if(s<=56319&&i+1<n.length){let o=n.charCodeAt(i+1);o>=56320&&o<=57343?(t+=je(65536+(s-55296<<10)+(o-56320)),i++):t+=je(65533);}else t+=je(65533);}}return t}function Ql(n,e){let t="";for(let r=0;r<n.length;r++){let i=n[r];if(i==="%"&&r+2<n.length){let a=n.slice(r+1,r+3);if(qn(a)){t+="%"+a.toUpperCase(),r+=2;continue}}if(e(i))t+=i;else {let a=n.charCodeAt(r);if(a<128)t+=rt[a];else if(a<55296||a>57343)t+=je(a);else if(a<=56319&&r+1<n.length){let s=n.charCodeAt(r+1);s>=56320&&s<=57343?(t+=je(65536+(a-55296<<10)+(s-56320)),r++):t+=je(65533);}else t+=je(65533);}}return t}function zm(n){return Ql(n,RS)}function YS(n){return Ql(n,Zl)}function ZS(n){return Ql(n,Zl)}function Hm(n){return n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===42||n===43||n===45||n===46||n===47||n===64||n===95}function QS(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));Yl(s)?e+=s:e+="%"+a,t+=2;continue}}if(Zl(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Hm(i)?r:rt[i];else if(i<55296||i>57343)e+=je(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=je(65536+(i-55296<<10)+(a-56320)),t++):e+=je(65533);}else e+=je(65533);}}return e}function eE(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(qn(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function tE(n){let e=[];if(n.userinfo!==void 0&&(e.push(zm(n.userinfo)),e.push("@")),n.host!==void 0){let t=n.host;if(!Xl(t)){let r=Kl(t);r.isIPV6!==true&&r.isIPVFuture!==true&&(t=Jm(t,true),r=Kl(t)),r.isIPV6===true||r.isIPVFuture===true?t=`[${r.escapedHost}]`:t=Gm(t,false);}e.push(t);}return (typeof n.port=="number"||typeof n.port=="string")&&(e.push(":"),e.push(String(n.port))),e.length?e.join(""):void 0}Um.exports={nonSimpleDomain:BS,recomposeAuthority:tE,reescapeHostDelimiters:Gm,normalizePercentEncoding:Jm,normalizePathEncoding:KS,serializePathEncoding:XS,normalizeQueryFragmentEncoding:QS,encodeUserinfo:zm,encodeQuery:YS,encodeFragment:ZS,escapePreservingEscapes:eE,removeDotSegments:JS,isIPv4:Xl,isUUID:VS,normalizeIPv6:Kl,stringArrayToHexStripped:$S};});var Qm=E((uk,Zm)=>{var{isUUID:nE}=ec(),rE=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,iE=["http","https","ws","wss","urn","urn:uuid"];function sE(n){return iE.indexOf(n)!==-1}function tc(n){return n.secure===true?true:n.secure===false?false:n.scheme?n.scheme.length===3&&(n.scheme[0]==="w"||n.scheme[0]==="W")&&(n.scheme[1]==="s"||n.scheme[1]==="S")&&(n.scheme[2]==="s"||n.scheme[2]==="S"):false}function Km(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Xm(n){let e=String(n.scheme).toLowerCase()==="https";return (n.port===(e?443:80)||n.port==="")&&(n.port=void 0),n.path||(n.path="/"),n}function aE(n){return n.secure=tc(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function oE(n){if((n.port===(tc(n)?443:80)||n.port==="")&&(n.port=void 0),typeof n.secure=="boolean"&&(n.scheme=n.secure?"wss":"ws",n.secure=void 0),n.resourceName){let e=n.resourceName.indexOf("?"),t=e===-1?n.resourceName:n.resourceName.slice(0,e);n.path=t&&t!=="/"?t:void 0,n.query=e===-1?void 0:n.resourceName.slice(e+1),n.resourceName=void 0;}return n.fragment=void 0,n}function uE(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(rE);if(t&&t[0]===n.path){let r=e.scheme||n.scheme||"urn";n.nid=t[1].toLowerCase(),n.nss=t[2];let i=`${r}:${e.nid||n.nid}`,a=nc(i);n.path=void 0,a&&(n=a.parse(n,e));}else n.error=n.error||"URN can not be parsed.";return n}function lE(n,e){if(n.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||n.scheme||"urn",r=n.nid.toLowerCase(),i=`${t}:${e.nid||r}`,a=nc(i);a&&(n=a.serialize(n,e));let s=n,o=n.nss;return s.path=`${r||e.nid}:${o}`,e.skipEscape=true,s}function cE(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!nE(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function hE(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var Ym={scheme:"http",domainHost:true,parse:Km,serialize:Xm},dE={scheme:"https",domainHost:Ym.domainHost,parse:Km,serialize:Xm},zs={scheme:"ws",domainHost:true,parse:aE,serialize:oE},fE={scheme:"wss",domainHost:zs.domainHost,parse:zs.parse,serialize:zs.serialize},pE={scheme:"urn",parse:uE,serialize:lE,skipNormalize:true},mE={scheme:"urn:uuid",parse:cE,serialize:hE,skipNormalize:true},Hs={http:Ym,https:dE,ws:zs,wss:fE,urn:pE,"urn:uuid":mE};Object.setPrototypeOf(Hs,null);function nc(n){return n&&(Hs[n]||Hs[n.toLowerCase()])||void 0}Zm.exports={wsIsSecure:tc,SCHEMES:Hs,isValidSchemeName:sE,getSchemeHandler:nc};});var fg=E((lk,Xs)=>{var{normalizeIPv6:ig,removeDotSegments:Ei,recomposeAuthority:gE,normalizePercentEncoding:sg,normalizePathEncoding:yE,serializePathEncoding:eg,normalizeQueryFragmentEncoding:tg,encodeQuery:vE,encodeFragment:CE,reescapeHostDelimiters:bE,isIPv4:ag,nonSimpleDomain:_E}=ec(),{SCHEMES:og,getSchemeHandler:rc}=Qm(),ug=/^[A-Za-z][A-Za-z0-9+.-]*$/u,lg="URI scheme is malformed.";function ng(n){let e=unescape(String(n));if(!ug.test(e))throw new TypeError(lg);return e}function SE(n,e){return typeof n=="string"?n=TE(n,e):typeof n=="object"&&(n=Ks(Bn(n,e),e)),n}function EE(n,e,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a,malformedPercentEncoding:s,malformedSchemeSpecific:o,malformedHost:u,malformedScheme:l}=Us(n,r),{parsed:c,malformedAuthorityOrPort:h,malformedPercentEncoding:f,malformedSchemeSpecific:d,malformedHost:m,malformedScheme:y}=Us(e,r);if(a||h||s||f||o||d||u||m||l||y)throw new Error(i.error||c.error||"URI is malformed.");let _=cg(i,c,r,true),S=rc(t&&t.scheme||_.scheme),b=_.host,g=b!==void 0&&b!==""&&(ag(b)||ig(b).isIPV6);hg(_,t||{},S,g);let v=b&&b.indexOf("%")!==-1&&!/\P{ASCII}/u.test(b);if(_.error&&!v)throw new Error(_.error);return r.skipEscape=true,Bn(_,r)}function cg(n,e,t,r){let i={};return r||(n=Ks(Bn(n,t),t),e=Ks(Bn(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ei(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ei(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=Ei(e.path):((n.userinfo!==void 0||n.host!==void 0||n.port!==void 0)&&!n.path?i.path="/"+e.path:n.path?i.path=n.path.slice(0,n.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=Ei(i.path)),i.query=e.query):(i.path=n.path,e.query!==void 0?i.query=e.query:i.query=n.query),i.userinfo=n.userinfo,i.host=n.host,i.port=n.port),i.scheme=n.scheme),i.fragment=e.fragment,i}function wE(n,e,t){let r=rg(n,t),i=rg(e,t);return r!==void 0&&i!==void 0&&r===i}function Bn(n,e){let t={host:n.host,scheme:n.scheme,userinfo:n.userinfo,port:n.port,path:n.path,query:n.query,nid:n.nid,nss:n.nss,uuid:n.uuid,fragment:n.fragment,reference:n.reference,resourceName:n.resourceName,secure:n.secure,error:""},r=Object.assign({},e),i=[];t.scheme&&(t.scheme=ng(t.scheme));let a=rc(r.scheme||t.scheme);a&&a.serialize&&a.serialize(t,r);let s=t.userinfo!==void 0||t.host!==void 0||t.port!==void 0,o=!r.skipEscape&&t.scheme===void 0&&!s;t.path!==void 0&&(r.skipEscape?t.path=sg(t.path):t.path=eg(t.path,o)),r.reference!=="suffix"&&t.scheme&&(t.scheme=ng(t.scheme),i.push(t.scheme,":"));let u=gE(t);if(u!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(u),t.path&&t.path[0]!=="/"&&i.push("/")),t.path!==void 0){let l=t.path;!r.absolutePath&&(!a||!a.absolutePath)&&(l=Ei(l)),o&&(l=eg(l,true)),u===void 0&&l[0]==="/"&&l[1]==="/"&&(l="/%2F"+l.slice(2)),i.push(l);}return t.query!==void 0&&i.push("?",vE(t.query)),t.fragment!==void 0&&i.push("#",CE(t.fragment)),i.join("")}var DE=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,AE=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,PE=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function OE(n,e){if(e[2]!==void 0&&n.path&&n.path[0]!=="/")return 'URI path must start with "/" when authority is present.';if(typeof n.port=="number"&&(n.port<0||n.port>65535))return "URI port is malformed."}function Si(n){if(n===void 0)return false;let e=n.indexOf("%");for(;e!==-1;){if(e+2>=n.length||!/^[\da-f]{2}$/iu.test(n.slice(e+1,e+3)))return true;e=n.indexOf("%",e+3);}return false}function xE(n){let e=n[4];return Si(n[3])||e!==void 0&&!(e[0]==="["&&e[e.length-1]==="]")&&Si(e)||Si(n[6])||Si(n[7])||Si(n[8])}function hg(n,e,t,r){if(!e.unicodeSupport&&(!t||!t.unicodeSupport)&&n.host&&n.host[0]!=="["&&(e.domainHost||t&&t.domainHost)&&r===false&&_E(n.host))try{n.host=new URL("http://"+n.host).hostname;}catch(i){return n.error=n.error||"Host's domain name can not be converted to ASCII: "+i,true}return false}function Us(n,e){let t=Object.assign({},e),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=false,a=false,s=false,o=false,u=false,l=false,c=false;t.reference==="suffix"&&(t.scheme?n=t.scheme+":"+n:n="//"+n);let h=n.match(AE);h!==null&&h[1].indexOf("\\")!==-1&&(r.error="URI authority must not contain a literal backslash.",i=true);let f=n.match(PE);if(f!==null){let m=f[1],y=m.replace(/[\t\n\r]/g,"");y.length>=2&&(y.slice(0,2)!=="//"?(r.error=r.error||"URI authority must not contain a literal backslash.",i=true):m.length!==y.length&&(r.error=r.error||"URI authority introducer must not contain whitespace.",i=true));}let d=n.match(DE);if(d){if(r.scheme=d[1],r.userinfo=d[3],r.host=d[4],r.port=parseInt(d[5],10),r.path=d[6]||"",r.query=d[7],r.fragment=d[8],r.scheme!==void 0){let _=unescape(r.scheme);ug.test(_)?r.scheme=_.toLowerCase():(r.error=r.error||lg,l=true);}a=xE(d),a&&(r.error=r.error||"URI contains malformed percent-encoding."),isNaN(r.port)&&(r.port=d[5]);let m=OE(r,d);if(m!==void 0&&(r.error=r.error||m,i=true),r.host)if(ag(r.host)===false){let S=r.host[0]==="["&&r.host[r.host.length-1]==="]",b=ig(r.host);c=b.isIPV6||b.isIPVFuture===true,u=S&&b.error===true,r.host=c?b.host:b.host.toLowerCase(),u&&(r.error=r.error||"URI host is malformed.",i=true);}else c=true;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let y=rc(t.scheme||r.scheme);if(o=hg(r,t,y,c),!y||y&&!y.skipNormalize){if(n.indexOf("%")!==-1&&r.host!==void 0&&!u){let _=c?r.host:sg(r.host,true);r.host=bE(_,c);}r.path&&(r.path=yE(r.path)),r.query&&(r.query=tg(r.query)),r.fragment&&(r.fragment=tg(r.fragment));}y&&y.parse&&(y.parse(r,t),y===og.urn&&r.nid===void 0&&(s=true));}else r.error=r.error||"URI can not be parsed.";return {parsed:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:l}}function Ks(n,e){return Us(n,e).parsed}function TE(n,e){return dg(n,e).normalized}function dg(n,e){let{parsed:t,malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}=Us(n,e);return {normalized:r||i||a||s||o?n:Bn(t,e),malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}}function rg(n,e){if(typeof n!="string"&&typeof n!="object")return;let t;try{t=typeof n=="string"?n:Bn(n,e);}catch{return}let{normalized:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:u}=dg(t,e);return i||a||s||o||u?void 0:r}var ic={SCHEMES:og,normalize:SE,resolve:EE,resolveComponent:cg,equal:wE,serialize:Bn,parse:Ks};Xs.exports=ic;Xs.exports.default=ic;Xs.exports.fastUri=ic;});var mg=E(sc=>{Object.defineProperty(sc,"__esModule",{value:true});var pg=fg();pg.code='require("ajv/dist/runtime/uri").default';sc.default=pg;});var uc=E(Fe=>{Object.defineProperty(Fe,"__esModule",{value:true});Fe.CodeGen=Fe.Name=Fe.nil=Fe.stringify=Fe.str=Fe._=Fe.KeywordCxt=void 0;var NE=mr();Object.defineProperty(Fe,"KeywordCxt",{enumerable:true,get:function(){return NE.KeywordCxt}});var vr=$();Object.defineProperty(Fe,"_",{enumerable:true,get:function(){return vr._}});Object.defineProperty(Fe,"str",{enumerable:true,get:function(){return vr.str}});Object.defineProperty(Fe,"stringify",{enumerable:true,get:function(){return vr.stringify}});Object.defineProperty(Fe,"nil",{enumerable:true,get:function(){return vr.nil}});Object.defineProperty(Fe,"Name",{enumerable:true,get:function(){return vr.Name}});Object.defineProperty(Fe,"CodeGen",{enumerable:true,get:function(){return vr.CodeGen}});var FE=bi(),bg=gr(),IE=xl(),wi=_i(),kE=$(),Di=yi(),Ys=gi(),oc=M(),gg=Bm(),VE=mg(),_g=(n,e)=>new RegExp(n,e);_g.code="new RegExp";var RE=["removeAdditional","useDefaults","coerceTypes"],$E=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),jE={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},LE={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},yg=200;function qE(n){var e,t,r,i,a,s,o,u,l,c,h,f,d,m,y,_,S,b,g,v,p,C,w,O,A;let N=n.strict,J=(e=n.code)===null||e===void 0?void 0:e.optimize,Z=J===true||J===void 0?1:J||0,ue=(r=(t=n.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:_g,an=(i=n.uriResolver)!==null&&i!==void 0?i:VE.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:N)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:N)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:N)!==null&&c!==void 0?c:"log",strictTuples:(f=(h=n.strictTuples)!==null&&h!==void 0?h:N)!==null&&f!==void 0?f:"log",strictRequired:(m=(d=n.strictRequired)!==null&&d!==void 0?d:N)!==null&&m!==void 0?m:false,code:n.code?{...n.code,optimize:Z,regExp:ue}:{optimize:Z,regExp:ue},loopRequired:(y=n.loopRequired)!==null&&y!==void 0?y:yg,loopEnum:(_=n.loopEnum)!==null&&_!==void 0?_:yg,meta:(S=n.meta)!==null&&S!==void 0?S:true,messages:(b=n.messages)!==null&&b!==void 0?b:true,inlineRefs:(g=n.inlineRefs)!==null&&g!==void 0?g:true,schemaId:(v=n.schemaId)!==null&&v!==void 0?v:"$id",addUsedSchema:(p=n.addUsedSchema)!==null&&p!==void 0?p:true,validateSchema:(C=n.validateSchema)!==null&&C!==void 0?C:true,validateFormats:(w=n.validateFormats)!==null&&w!==void 0?w:true,unicodeRegExp:(O=n.unicodeRegExp)!==null&&O!==void 0?O:true,int32range:(A=n.int32range)!==null&&A!==void 0?A:true,uriResolver:an}}var Ai=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...qE(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new kE.ValueScope({scope:{},prefixes:$E,es5:t,lines:r}),this.logger=zE(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, IE.getRules)(),vg.call(this,jE,e,"NOT SUPPORTED"),vg.call(this,LE,e,"DEPRECATED","warn"),this._metaOpts=GE.call(this),e.formats&&WE.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&ME.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),BE.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=gg;r==="id"&&(i={...gg},i.id=i.$id,delete i.$id),t&&e&&this.addMetaSchema(i,i[r],false);}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);let i=r(t);return "$async"in r||(this.errors=r.errors),i}compile(e,t){let r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,e,t);async function i(c,h){await a.call(this,c.$schema);let f=this._addSchema(c,h);return f.validate||s.call(this,f)}async function a(c){c&&!this.getSchema(c)&&await i.call(this,{$ref:c},true);}async function s(c){try{return this._compileSchemaEnv(c)}catch(h){if(!(h instanceof bg.default))throw h;return o.call(this,h),await u.call(this,h.missingSchema),s.call(this,c)}}function o({missingSchema:c,missingRef:h}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${h} cannot be resolved`)}async function u(c){let h=await l.call(this,c);this.refs[c]||await a.call(this,h.$schema),this.refs[c]||this.addSchema(h,c,t);}async function l(c){let h=this._loading[c];if(h)return h;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c];}}}addSchema(e,t,r,i=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,r,i);return this}let a;if(typeof e=="object"){let{schemaId:s}=this.opts;if(a=e[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return t=(0, Di.normalizeId)(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,i,true),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,true,r),this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;if(r=e.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,true;let i=this.validate(r,e);if(!i&&t){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let t;for(;typeof(t=Cg.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:r}=this.opts,i=new wi.SchemaEnv({schema:{},schemaId:r});if(t=wi.resolveSchema.call(this,i,e),!t)return;this.refs[e]=t;}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case "undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case "string":{let t=Cg.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case "object":{let t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0, Di.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string")r=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof e=="object"&&t===void 0){if(t=e,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(UE.call(this,r,t),!t)return (0, oc.eachItem)(r,a=>ac.call(this,a)),this;XE.call(this,t);let i={...t,type:(0, Ys.getJSONTypes)(t.type),schemaType:(0, Ys.getJSONTypes)(t.schemaType)};return (0, oc.eachItem)(r,i.type.length===0?a=>ac.call(this,a,i):a=>i.type.forEach(s=>ac.call(this,a,i,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let r of t.rules){let i=r.rules.findIndex(a=>a.keyword===e);i>=0&&r.rules.splice(i,1);}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return !e||e.length===0?"No errors":e.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,a)=>i+t+a)}$dataMetaSchema(e,t){let r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of t){let a=i.split("/").slice(1),s=e;for(let o of a)s=s[o];for(let o in r){let u=r[o];if(typeof u!="object")continue;let{$data:l}=u.definition,c=s[o];l&&c&&(s[o]=Sg(c));}}return e}_removeAllSchemas(e,t){for(let r in e){let i=e[r];(!t||t.test(r))&&(typeof i=="string"?delete e[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[r]));}}_addSchema(e,t,r,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else {if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(e);if(u!==void 0)return u;r=(0, Di.normalizeId)(s||r);let l=Di.getSchemaRefs.call(this,e,r);return u=new wi.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:r,localRefs:l}),this._cache.set(u.schema,u),a&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=u),i&&this.validateSchema(e,true),u}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):wi.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{wi.compileSchema.call(this,e);}finally{this.opts=t;}}};Ai.ValidationError=FE.default;Ai.MissingRefError=bg.default;Fe.default=Ai;function vg(n,e,t,r="error"){for(let i in n){let a=i;a in e&&this.logger[r](`${t}: option ${i}. ${n[a]}`);}}function Cg(n){return n=(0, Di.normalizeId)(n),this.schemas[n]||this.refs[n]}function BE(){let n=this.opts.schemas;if(n)if(Array.isArray(n))this.addSchema(n);else for(let e in n)this.addSchema(n[e],e);}function WE(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function ME(n){if(Array.isArray(n)){this.addVocabulary(n);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in n){let t=n[e];t.keyword||(t.keyword=e),this.addKeyword(t);}}function GE(){let n={...this.opts};for(let e of RE)delete n[e];return n}var JE={log(){},warn(){},error(){}};function zE(n){if(n===false)return JE;if(n===void 0)return console;if(n.log&&n.warn&&n.error)return n;throw new Error("logger must implement log, warn and error methods")}var HE=/^[a-z_$][a-z0-9_$:-]*$/i;function UE(n,e){let{RULES:t}=this;if((0, oc.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!HE.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function ac(n,e,t){var r;let i=e?.post;if(t&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:u})=>u===t);if(s||(s={type:t,rules:[]},a.rules.push(s)),a.keywords[n]=true,!e)return;let o={keyword:n,definition:{...e,type:(0, Ys.getJSONTypes)(e.type),schemaType:(0, Ys.getJSONTypes)(e.schemaType)}};e.before?KE.call(this,s,o,e.before):s.rules.push(o),a.all[n]=o,(r=e.implements)===null||r===void 0||r.forEach(u=>this.addKeyword(u));}function KE(n,e,t){let r=n.rules.findIndex(i=>i.keyword===t);r>=0?n.rules.splice(r,0,e):(n.rules.push(e),this.logger.warn(`rule ${t} is not defined`));}function XE(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=Sg(e)),n.validateSchema=this.compile(e,true));}var YE={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Sg(n){return {anyOf:[n,YE]}}});var Eg=E(lc=>{Object.defineProperty(lc,"__esModule",{value:true});var ZE={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};lc.default=ZE;});var ea=E(Wn=>{Object.defineProperty(Wn,"__esModule",{value:true});Wn.callRef=Wn.getValidate=void 0;var QE=gr(),wg=mt(),it=$(),Cr=pt(),Dg=_i(),Zs=M(),ew={keyword:"$ref",schemaType:"string",code(n){let{gen:e,schema:t,it:r}=n,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:u}=r,{root:l}=a;if((t==="#"||t==="#/")&&i===l.baseId)return h();let c=Dg.resolveRef.call(u,l,i,t);if(c===void 0)throw new QE.default(r.opts.uriResolver,i,t);if(c instanceof Dg.SchemaEnv)return f(c);return d(c);function h(){if(a===l)return Qs(n,s,a,a.$async);let m=e.scopeValue("root",{ref:l});return Qs(n,(0, it._)`${m}.validate`,l,l.$async)}function f(m){let y=Ag(n,m);Qs(n,y,m,m.$async);}function d(m){let y=e.scopeValue("schema",o.code.source===true?{ref:m,code:(0, it.stringify)(m)}:{ref:m}),_=e.name("valid"),S=n.subschema({schema:m,dataTypes:[],schemaPath:it.nil,topSchemaRef:y,errSchemaPath:t},_);n.mergeEvaluated(S),n.ok(_);}}};function Ag(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, it._)`${t.scopeValue("wrapper",{ref:e})}.validate`}Wn.getValidate=Ag;function Qs(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?Cr.default.this:it.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let m=i.let("valid");i.try(()=>{i.code((0, it._)`await ${(0, wg.callValidateCode)(n,e,l)}`),d(e),s||i.assign(m,true);},y=>{i.if((0, it._)`!(${y} instanceof ${a.ValidationError})`,()=>i.throw(y)),f(y),s||i.assign(m,false);}),n.ok(m);}function h(){n.result((0, wg.callValidateCode)(n,e,l),()=>d(e),()=>f(e));}function f(m){let y=(0, it._)`${m}.errors`;i.assign(Cr.default.vErrors,(0, it._)`${Cr.default.vErrors} === null ? ${y} : ${Cr.default.vErrors}.concat(${y})`),i.assign(Cr.default.errors,(0, it._)`${Cr.default.vErrors}.length`);}function d(m){var y;if(!a.opts.unevaluated)return;let _=(y=t?.validate)===null||y===void 0?void 0:y.evaluated;if(a.props!==true)if(_&&!_.dynamicProps)_.props!==void 0&&(a.props=Zs.mergeEvaluated.props(i,_.props,a.props));else {let S=i.var("props",(0, it._)`${m}.evaluated.props`);a.props=Zs.mergeEvaluated.props(i,S,a.props,it.Name);}if(a.items!==true)if(_&&!_.dynamicItems)_.items!==void 0&&(a.items=Zs.mergeEvaluated.items(i,_.items,a.items));else {let S=i.var("items",(0, it._)`${m}.evaluated.items`);a.items=Zs.mergeEvaluated.items(i,S,a.items,it.Name);}}}Wn.callRef=Qs;Wn.default=ew;});var hc=E(cc=>{Object.defineProperty(cc,"__esModule",{value:true});var tw=Eg(),nw=ea(),rw=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",tw.default,nw.default];cc.default=rw;});var Pg=E(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var ta=$(),gn=ta.operators,na={maximum:{okStr:"<=",ok:gn.LTE,fail:gn.GT},minimum:{okStr:">=",ok:gn.GTE,fail:gn.LT},exclusiveMaximum:{okStr:"<",ok:gn.LT,fail:gn.GTE},exclusiveMinimum:{okStr:">",ok:gn.GT,fail:gn.LTE}},iw={message:({keyword:n,schemaCode:e})=>(0, ta.str)`must be ${na[n].okStr} ${e}`,params:({keyword:n,schemaCode:e})=>(0, ta._)`{comparison: ${na[n].okStr}, limit: ${e}}`},sw={keyword:Object.keys(na),type:"number",schemaType:"number",$data:true,error:iw,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, ta._)`${t} ${na[e].fail} ${r} || isNaN(${t})`);}};dc.default=sw;});var Og=E(fc=>{Object.defineProperty(fc,"__esModule",{value:true});var Pi=$(),aw={message:({schemaCode:n})=>(0, Pi.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, Pi._)`{multipleOf: ${n}}`},ow={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:aw,code(n){let{gen:e,data:t,schemaCode:r,it:i}=n,a=i.opts.multipleOfPrecision,s=e.let("res"),o=a?(0, Pi._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0, Pi._)`${s} !== parseInt(${s})`;n.fail$data((0, Pi._)`(${r} === 0 || (${s} = ${t}/${r}, ${o}))`);}};fc.default=ow;});var Tg=E(pc=>{Object.defineProperty(pc,"__esModule",{value:true});function xg(n){let e=n.length,t=0,r=0,i;for(;r<e;)t++,i=n.charCodeAt(r++),i>=55296&&i<=56319&&r<e&&(i=n.charCodeAt(r),(i&64512)===56320&&r++);return t}pc.default=xg;xg.code='require("ajv/dist/runtime/ucs2length").default';});var Ng=E(mc=>{Object.defineProperty(mc,"__esModule",{value:true});var Mn=$(),uw=M(),lw=Tg(),cw={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, Mn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, Mn._)`{limit: ${n}}`},hw={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:cw,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?Mn.operators.GT:Mn.operators.LT,s=i.opts.unicode===false?(0, Mn._)`${t}.length`:(0, Mn._)`${(0, uw.useFunc)(n.gen,lw.default)}(${t})`;n.fail$data((0, Mn._)`${s} ${a} ${r}`);}};mc.default=hw;});var Fg=E(gc=>{Object.defineProperty(gc,"__esModule",{value:true});var dw=mt(),fw=M(),br=$(),pw={message:({schemaCode:n})=>(0, br.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, br._)`{pattern: ${n}}`},mw={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:pw,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n,o=s.opts.unicodeRegExp?"u":"";if(r){let{regExp:u}=s.opts.code,l=u.code==="new RegExp"?(0, br._)`new RegExp`:(0, fw.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, br._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, br._)`!${c}`);}else {let u=(0, dw.usePattern)(n,i);n.fail$data((0, br._)`!${u}.test(${t})`);}}};gc.default=mw;});var Ig=E(yc=>{Object.defineProperty(yc,"__esModule",{value:true});var Oi=$(),gw={message({keyword:n,schemaCode:e}){let t=n==="maxProperties"?"more":"fewer";return (0, Oi.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:n})=>(0, Oi._)`{limit: ${n}}`},yw={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:gw,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxProperties"?Oi.operators.GT:Oi.operators.LT;n.fail$data((0, Oi._)`Object.keys(${t}).length ${i} ${r}`);}};yc.default=yw;});var kg=E(vc=>{Object.defineProperty(vc,"__esModule",{value:true});var xi=mt(),Ti=$(),vw=M(),Cw={message:({params:{missingProperty:n}})=>(0, Ti.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, Ti._)`{missingProperty: ${n}}`},bw={keyword:"required",type:"object",schemaType:"array",$data:true,error:Cw,code(n){let{gen:e,schema:t,schemaCode:r,data:i,$data:a,it:s}=n,{opts:o}=s;if(!a&&t.length===0)return;let u=t.length>=o.loopRequired;if(s.allErrors?l():c(),o.strictRequired){let d=n.parentSchema.properties,{definedProperties:m}=n.it;for(let y of t)if(d?.[y]===void 0&&!m.has(y)){let _=s.schemaEnv.baseId+s.errSchemaPath,S=`required property "${y}" is not defined at "${_}" (strictRequired)`;(0, vw.checkStrictMode)(s,S,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(Ti.nil,h);else for(let d of t)(0, xi.checkReportMissingProp)(n,d);}function c(){let d=e.let("missing");if(u||a){let m=e.let("valid",true);n.block$data(m,()=>f(d,m)),n.ok(m);}else e.if((0, xi.checkMissingProp)(n,t,d)),(0, xi.reportMissingProp)(n,d),e.else();}function h(){e.forOf("prop",r,d=>{n.setParams({missingProperty:d}),e.if((0, xi.noPropertyInData)(e,i,d,o.ownProperties),()=>n.error());});}function f(d,m){n.setParams({missingProperty:d}),e.forOf(d,r,()=>{e.assign(m,(0, xi.propertyInData)(e,i,d,o.ownProperties)),e.if((0, Ti.not)(m),()=>{n.error(),e.break();});},Ti.nil);}}};vc.default=bw;});var Vg=E(Cc=>{Object.defineProperty(Cc,"__esModule",{value:true});var Ni=$(),_w={message({keyword:n,schemaCode:e}){let t=n==="maxItems"?"more":"fewer";return (0, Ni.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:n})=>(0, Ni._)`{limit: ${n}}`},Sw={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:_w,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxItems"?Ni.operators.GT:Ni.operators.LT;n.fail$data((0, Ni._)`${t}.length ${i} ${r}`);}};Cc.default=Sw;});var ra=E(bc=>{Object.defineProperty(bc,"__esModule",{value:true});var Rg=$l();Rg.code='require("ajv/dist/runtime/equal").default';bc.default=Rg;});var $g=E(Sc=>{Object.defineProperty(Sc,"__esModule",{value:true});var _c=gi(),Ie=$(),Ew=M(),ww=ra(),Dw={message:({params:{i:n,j:e}})=>(0, Ie.str)`must NOT have duplicate items (items ## ${e} and ${n} are identical)`,params:({params:{i:n,j:e}})=>(0, Ie._)`{i: ${n}, j: ${e}}`},Aw={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:Dw,code(n){let{gen:e,data:t,$data:r,schema:i,parentSchema:a,schemaCode:s,it:o}=n;if(!r&&!i)return;let u=e.let("valid"),l=a.items?(0, _c.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, Ie._)`${s} === false`),n.ok(u);function c(){let m=e.let("i",(0, Ie._)`${t}.length`),y=e.let("j");n.setParams({i:m,j:y}),e.assign(u,true),e.if((0, Ie._)`${m} > 1`,()=>(h()?f:d)(m,y));}function h(){return l.length>0&&!l.some(m=>m==="object"||m==="array")}function f(m,y){let _=e.name("item"),S=(0, _c.checkDataTypes)(l,_,o.opts.strictNumbers,_c.DataType.Wrong),b=e.const("indices",(0, Ie._)`{}`);e.for((0, Ie._)`;${m}--;`,()=>{e.let(_,(0, Ie._)`${t}[${m}]`),e.if(S,(0, Ie._)`continue`),l.length>1&&e.if((0, Ie._)`typeof ${_} == "string"`,(0, Ie._)`${_} += "_"`),e.if((0, Ie._)`typeof ${b}[${_}] == "number"`,()=>{e.assign(y,(0, Ie._)`${b}[${_}]`),n.error(),e.assign(u,false).break();}).code((0, Ie._)`${b}[${_}] = ${m}`);});}function d(m,y){let _=(0, Ew.useFunc)(e,ww.default),S=e.name("outer");e.label(S).for((0, Ie._)`;${m}--;`,()=>e.for((0, Ie._)`${y} = ${m}; ${y}--;`,()=>e.if((0, Ie._)`${_}(${t}[${m}], ${t}[${y}])`,()=>{n.error(),e.assign(u,false).break(S);})));}}};Sc.default=Aw;});var jg=E(wc=>{Object.defineProperty(wc,"__esModule",{value:true});var Ec=$(),Pw=M(),Ow=ra(),xw={message:"must be equal to constant",params:({schemaCode:n})=>(0, Ec._)`{allowedValue: ${n}}`},Tw={keyword:"const",$data:true,error:xw,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, Ec._)`!${(0, Pw.useFunc)(e,Ow.default)}(${t}, ${i})`):n.fail((0, Ec._)`${a} !== ${t}`);}};wc.default=Tw;});var Lg=E(Dc=>{Object.defineProperty(Dc,"__esModule",{value:true});var Fi=$(),Nw=M(),Fw=ra(),Iw={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, Fi._)`{allowedValues: ${n}}`},kw={keyword:"enum",schemaType:"array",$data:true,error:Iw,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,u,l=()=>u??(u=(0, Nw.useFunc)(e,Fw.default)),c;if(o||r)c=e.let("valid"),n.block$data(c,h);else {if(!Array.isArray(i))throw new Error("ajv implementation error");let d=e.const("vSchema",a);c=(0, Fi.or)(...i.map((m,y)=>f(d,y)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,d=>e.if((0, Fi._)`${l()}(${t}, ${d})`,()=>e.assign(c,true).break()));}function f(d,m){let y=i[m];return typeof y=="object"&&y!==null?(0, Fi._)`${l()}(${t}, ${d}[${m}])`:(0, Fi._)`${t} === ${y}`}}};Dc.default=kw;});var Pc=E(Ac=>{Object.defineProperty(Ac,"__esModule",{value:true});var Vw=Pg(),Rw=Og(),$w=Ng(),jw=Fg(),Lw=Ig(),qw=kg(),Bw=Vg(),Ww=$g(),Mw=jg(),Gw=Lg(),Jw=[Vw.default,Rw.default,$w.default,jw.default,Lw.default,qw.default,Bw.default,Ww.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Mw.default,Gw.default];Ac.default=Jw;});var xc=E(Ii=>{Object.defineProperty(Ii,"__esModule",{value:true});Ii.validateAdditionalItems=void 0;var Gn=$(),Oc=M(),zw={message:({params:{len:n}})=>(0, Gn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Gn._)`{limit: ${n}}`},Hw={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zw,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, Oc.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}qg(n,r);}};function qg(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, Gn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, Gn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, Oc.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, Gn._)`${o} <= ${e.length}`);t.if((0, Gn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:Oc.Type.Num},l),s.allErrors||t.if((0, Gn.not)(l),()=>t.break());});}}Ii.validateAdditionalItems=qg;Ii.default=Hw;});var Tc=E(ki=>{Object.defineProperty(ki,"__esModule",{value:true});ki.validateTuple=void 0;var Bg=$(),ia=M(),Uw=mt(),Kw={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return Wg(n,"additionalItems",e);t.items=true,!(0, ia.alwaysValidSchema)(t,e)&&n.ok((0, Uw.validateArray)(n));}};function Wg(n,e,t=n.schema){let{gen:r,parentSchema:i,data:a,keyword:s,it:o}=n;c(i),o.opts.unevaluated&&t.length&&o.items!==true&&(o.items=ia.mergeEvaluated.items(r,t.length,o.items));let u=r.name("valid"),l=r.const("len",(0, Bg._)`${a}.length`);t.forEach((h,f)=>{(0, ia.alwaysValidSchema)(o,h)||(r.if((0, Bg._)`${l} > ${f}`,()=>n.subschema({keyword:s,schemaProp:f,dataProp:f},u)),n.ok(u));});function c(h){let{opts:f,errSchemaPath:d}=o,m=t.length,y=m===h.minItems&&(m===h.maxItems||h[e]===false);if(f.strictTuples&&!y){let _=`"${s}" is ${m}-tuple, but minItems or maxItems/${e} are not specified or different at path "${d}"`;(0, ia.checkStrictMode)(o,_,f.strictTuples);}}}ki.validateTuple=Wg;ki.default=Kw;});var Mg=E(Nc=>{Object.defineProperty(Nc,"__esModule",{value:true});var Xw=Tc(),Yw={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, Xw.validateTuple)(n,"items")};Nc.default=Yw;});var Jg=E(Fc=>{Object.defineProperty(Fc,"__esModule",{value:true});var Gg=$(),Zw=M(),Qw=mt(),eD=xc(),tD={message:({params:{len:n}})=>(0, Gg.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Gg._)`{limit: ${n}}`},nD={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:tD,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, Zw.alwaysValidSchema)(r,e)&&(i?(0, eD.validateAdditionalItems)(n,i):n.ok((0, Qw.validateArray)(n)));}};Fc.default=nD;});var zg=E(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var yt=$(),sa=M(),rD={message:({params:{min:n,max:e}})=>e===void 0?(0, yt.str)`must contain at least ${n} valid item(s)`:(0, yt.str)`must contain at least ${n} and no more than ${e} valid item(s)`,params:({params:{min:n,max:e}})=>e===void 0?(0, yt._)`{minContains: ${n}}`:(0, yt._)`{minContains: ${n}, maxContains: ${e}}`},iD={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:rD,code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n,s,o,{minContains:u,maxContains:l}=r;a.opts.next?(s=u===void 0?1:u,o=l):s=1;let c=e.const("len",(0, yt._)`${i}.length`);if(n.setParams({min:s,max:o}),o===void 0&&s===0){(0, sa.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0, sa.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),n.fail();return}if((0, sa.alwaysValidSchema)(a,t)){let y=(0, yt._)`${c} >= ${s}`;o!==void 0&&(y=(0, yt._)`${y} && ${c} <= ${o}`),n.pass(y);return}a.items=true;let h=e.name("valid");o===void 0&&s===1?d(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, yt._)`${i}.length > 0`,f)):(e.let(h,false),f()),n.result(h,()=>n.reset());function f(){let y=e.name("_valid"),_=e.let("count",0);d(y,()=>e.if(y,()=>m(_)));}function d(y,_){e.forRange("i",0,c,S=>{n.subschema({keyword:"contains",dataProp:S,dataPropType:sa.Type.Num,compositeRule:true},y),_();});}function m(y){e.code((0, yt._)`${y}++`),o===void 0?e.if((0, yt._)`${y} >= ${s}`,()=>e.assign(h,true).break()):(e.if((0, yt._)`${y} > ${o}`,()=>e.assign(h,false).break()),s===1?e.assign(h,true):e.if((0, yt._)`${y} >= ${s}`,()=>e.assign(h,true)));}}};Ic.default=iD;});var aa=E($t=>{Object.defineProperty($t,"__esModule",{value:true});$t.validateSchemaDeps=$t.validatePropertyDeps=$t.error=void 0;var kc=$(),sD=M(),Vi=mt();$t.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, kc.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, kc._)`{property: ${n},
5
+ || ${s} === "boolean" || ${i} === null`).assign(o,(0, j._)`[${i}]`);}}}function __({gen:n,parentData:e,parentDataProperty:t},r){n.if((0, j._)`${e} !== undefined`,()=>n.assign((0, j._)`${e}[${t}]`,r));}function Nl(n,e,t,r=dr.Correct){let i=r===dr.Correct?j.operators.EQ:j.operators.NEQ,a;switch(n){case "null":return (0, j._)`${e} ${i} null`;case "array":a=(0, j._)`Array.isArray(${e})`;break;case "object":a=(0, j._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case "integer":a=s((0, j._)`!(${e} % 1) && !isNaN(${e})`);break;case "number":a=s();break;default:return (0, j._)`typeof ${e} ${i} ${n}`}return r===dr.Correct?a:(0, j.not)(a);function s(o=j.nil){return (0, j.and)((0, j._)`typeof ${e} == "number"`,o,t?(0, j._)`isFinite(${e})`:j.nil)}}$e.checkDataType=Nl;function Fl(n,e,t,r){if(n.length===1)return Nl(n[0],e,t,r);let i,a=(0, lm.toHash)(n);if(a.array&&a.object){let s=(0, j._)`typeof ${e} != "object"`;i=a.null?s:(0, j._)`!${e} || ${s}`,delete a.null,delete a.array,delete a.object;}else i=j.nil;a.number&&delete a.integer;for(let s in a)i=(0, j.and)(i,Nl(s,e,t,r));return i}$e.checkDataTypes=Fl;var S_={message:({schema:n})=>`must be ${n}`,params:({schema:n,schemaValue:e})=>typeof n=="string"?(0, j._)`{type: ${n}}`:(0, j._)`{type: ${e}}`};function Il(n){let e=E_(n);(0, g_.reportError)(e,S_);}$e.reportTypeError=Il;function E_(n){let{gen:e,data:t,schema:r}=n,i=(0, lm.schemaRefOrVal)(n,r,"type");return {gen:e,keyword:"type",data:t,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:n}}});var fm=E(Bs=>{Object.defineProperty(Bs,"__esModule",{value:true});Bs.assignDefaults=void 0;var fr=$(),w_=M();function D_(n,e){let{properties:t,items:r}=n.schema;if(e==="object"&&t)for(let i in t)dm(n,i,t[i].default);else e==="array"&&Array.isArray(r)&&r.forEach((i,a)=>dm(n,a,i.default));}Bs.assignDefaults=D_;function dm(n,e,t){let{gen:r,compositeRule:i,data:a,opts:s}=n;if(t===void 0)return;let o=(0, fr._)`${a}${(0, fr.getProperty)(e)}`;if(i){(0, w_.checkStrictMode)(n,`default is ignored for: ${o}`);return}let u=(0, fr._)`${o} === undefined`;s.useDefaults==="empty"&&(u=(0, fr._)`${u} || ${o} === null || ${o} === ""`),r.if(u,(0, fr._)`${o} = ${(0, fr.stringify)(t)}`);}});var mt=E(se=>{Object.defineProperty(se,"__esModule",{value:true});se.validateUnion=se.validateArray=se.usePattern=se.callValidateCode=se.schemaProperties=se.allSchemaProperties=se.noPropertyInData=se.propertyInData=se.isOwnProperty=se.hasPropFunc=se.reportMissingProp=se.checkMissingProp=se.checkReportMissingProp=void 0;var fe=$(),kl=M(),dn=pt(),A_=M();function P_(n,e){let{gen:t,data:r,it:i}=n;t.if(Rl(t,r,e,i.opts.ownProperties),()=>{n.setParams({missingProperty:(0, fe._)`${e}`},true),n.error();});}se.checkReportMissingProp=P_;function O_({gen:n,data:e,it:{opts:t}},r,i){return (0, fe.or)(...r.map(a=>(0, fe.and)(Rl(n,e,a,t.ownProperties),(0, fe._)`${i} = ${a}`)))}se.checkMissingProp=O_;function x_(n,e){n.setParams({missingProperty:e},true),n.error();}se.reportMissingProp=x_;function pm(n){return n.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0, fe._)`Object.prototype.hasOwnProperty`})}se.hasPropFunc=pm;function Vl(n,e,t){return (0, fe._)`${pm(n)}.call(${e}, ${t})`}se.isOwnProperty=Vl;function T_(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} !== undefined`;return r?(0, fe._)`${i} && ${Vl(n,e,t)}`:i}se.propertyInData=T_;function Rl(n,e,t,r){let i=(0, fe._)`${e}${(0, fe.getProperty)(t)} === undefined`;return r?(0, fe.or)(i,(0, fe.not)(Vl(n,e,t))):i}se.noPropertyInData=Rl;function mm(n){return n?Object.keys(n).filter(e=>e!=="__proto__"):[]}se.allSchemaProperties=mm;function N_(n,e){return mm(e).filter(t=>!(0, kl.alwaysValidSchema)(n,e[t]))}se.schemaProperties=N_;function F_({schemaCode:n,data:e,it:{gen:t,topSchemaRef:r,schemaPath:i,errorPath:a},it:s},o,u,l){let c=l?(0, fe._)`${n}, ${e}, ${r}${i}`:e,h=[[dn.default.instancePath,(0, fe.strConcat)(dn.default.instancePath,a)],[dn.default.parentData,s.parentData],[dn.default.parentDataProperty,s.parentDataProperty],[dn.default.rootData,dn.default.rootData]];s.opts.dynamicRef&&h.push([dn.default.dynamicAnchors,dn.default.dynamicAnchors]);let p=(0, fe._)`${c}, ${t.object(...h)}`;return u!==fe.nil?(0, fe._)`${o}.call(${u}, ${p})`:(0, fe._)`${o}(${p})`}se.callValidateCode=F_;var I_=(0, fe._)`new RegExp`;function k_({gen:n,it:{opts:e}},t){let r=e.unicodeRegExp?"u":"",{regExp:i}=e.code,a=i(t,r);return n.scopeValue("pattern",{key:a.toString(),ref:a,code:(0, fe._)`${i.code==="new RegExp"?I_:(0, A_.useFunc)(n,i)}(${t}, ${r})`})}se.usePattern=k_;function V_(n){let{gen:e,data:t,keyword:r,it:i}=n,a=e.name("valid");if(i.allErrors){let o=e.let("valid",true);return s(()=>e.assign(o,false)),o}return e.var(a,true),s(()=>e.break()),a;function s(o){let u=e.const("len",(0, fe._)`${t}.length`);e.forRange("i",0,u,l=>{n.subschema({keyword:r,dataProp:l,dataPropType:kl.Type.Num},a),e.if((0, fe.not)(a),o);});}}se.validateArray=V_;function R_(n){let{gen:e,schema:t,keyword:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(t.some(u=>(0, kl.alwaysValidSchema)(i,u))&&!i.opts.unevaluated)return;let s=e.let("valid",false),o=e.name("_valid");e.block(()=>t.forEach((u,l)=>{let c=n.subschema({keyword:r,schemaProp:l,compositeRule:true},o);e.assign(s,(0, fe._)`${s} || ${o}`),n.mergeValidEvaluated(c,o)||e.if((0, fe.not)(s));})),n.result(s,()=>n.reset(),()=>n.error(true));}se.validateUnion=R_;});var vm=E(Vt=>{Object.defineProperty(Vt,"__esModule",{value:true});Vt.validateKeywordUsage=Vt.validSchemaType=Vt.funcKeywordCode=Vt.macroKeywordCode=void 0;var Ue=$(),jn=pt(),$_=mt(),j_=mi();function L_(n,e){let{gen:t,keyword:r,schema:i,parentSchema:a,it:s}=n,o=e.macro.call(s.self,i,a,s),u=ym(t,r,o);s.opts.validateSchema!==false&&s.self.validateSchema(o,true);let l=t.name("valid");n.subschema({schema:o,schemaPath:Ue.nil,errSchemaPath:`${s.errSchemaPath}/${r}`,topSchemaRef:u,compositeRule:true},l),n.pass(l,()=>n.error(true));}Vt.macroKeywordCode=L_;function q_(n,e){var t;let{gen:r,keyword:i,schema:a,parentSchema:s,$data:o,it:u}=n;W_(u,e);let l=!o&&e.compile?e.compile.call(u.self,a,s,u):e.validate,c=ym(r,i,l),h=r.let("valid");n.block$data(h,p),n.ok((t=e.valid)!==null&&t!==void 0?t:h);function p(){if(e.errors===false)y(),e.modifying&&gm(n),C(()=>n.error());else {let _=e.async?f():g();e.modifying&&gm(n),C(()=>B_(n,_));}}function f(){let _=r.let("ruleErrs",null);return r.try(()=>y((0, Ue._)`await `),v=>r.assign(h,false).if((0, Ue._)`${v} instanceof ${u.ValidationError}`,()=>r.assign(_,(0, Ue._)`${v}.errors`),()=>r.throw(v))),_}function g(){let _=(0, Ue._)`${c}.errors`;return r.assign(_,null),y(Ue.nil),_}function y(_=e.async?(0, Ue._)`await `:Ue.nil){let v=u.opts.passContext?jn.default.this:jn.default.self,d=!("compile"in e&&!o||e.schema===false);r.assign(h,(0, Ue._)`${_}${(0, $_.callValidateCode)(n,c,v,d)}`,e.modifying);}function C(_){var v;r.if((0, Ue.not)((v=e.valid)!==null&&v!==void 0?v:h),_);}}Vt.funcKeywordCode=q_;function gm(n){let{gen:e,data:t,it:r}=n;e.if(r.parentData,()=>e.assign(t,(0, Ue._)`${r.parentData}[${r.parentDataProperty}]`));}function B_(n,e){let{gen:t}=n;t.if((0, Ue._)`Array.isArray(${e})`,()=>{t.assign(jn.default.vErrors,(0, Ue._)`${jn.default.vErrors} === null ? ${e} : ${jn.default.vErrors}.concat(${e})`).assign(jn.default.errors,(0, Ue._)`${jn.default.vErrors}.length`),(0, j_.extendErrors)(n);},()=>n.error());}function W_({schemaEnv:n},e){if(e.async&&!n.$async)throw new Error("async keyword in sync schema")}function ym(n,e,t){if(t===void 0)throw new Error(`keyword "${e}" failed to compile`);return n.scopeValue("keyword",typeof t=="function"?{ref:t}:{ref:t,code:(0, Ue.stringify)(t)})}function M_(n,e,t=false){return !e.length||e.some(r=>r==="array"?Array.isArray(n):r==="object"?n&&typeof n=="object"&&!Array.isArray(n):typeof n==r||t&&typeof n>"u")}Vt.validSchemaType=M_;function G_({schema:n,opts:e,self:t,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw new Error("ajv implementation error");let s=i.dependencies;if(s?.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))throw new Error(`parent schema must have dependencies of ${a}: ${s.join(",")}`);if(i.validateSchema&&!i.validateSchema(n[a])){let u=`keyword "${a}" value is invalid at path "${r}": `+t.errorsText(i.validateSchema.errors);if(e.validateSchema==="log")t.logger.error(u);else throw new Error(u)}}Vt.validateKeywordUsage=G_;});var bm=E(fn=>{Object.defineProperty(fn,"__esModule",{value:true});fn.extendSubschemaMode=fn.extendSubschemaData=fn.getSubschema=void 0;var Rt=$(),Cm=M();function J_(n,{keyword:e,schemaProp:t,schema:r,schemaPath:i,errSchemaPath:a,topSchemaRef:s}){if(e!==void 0&&r!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=n.schema[e];return t===void 0?{schema:o,schemaPath:(0, Rt._)`${n.schemaPath}${(0, Rt.getProperty)(e)}`,errSchemaPath:`${n.errSchemaPath}/${e}`}:{schema:o[t],schemaPath:(0, Rt._)`${n.schemaPath}${(0, Rt.getProperty)(e)}${(0, Rt.getProperty)(t)}`,errSchemaPath:`${n.errSchemaPath}/${e}/${(0, Cm.escapeFragment)(t)}`}}if(r!==void 0){if(i===void 0||a===void 0||s===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return {schema:r,schemaPath:i,topSchemaRef:s,errSchemaPath:a}}throw new Error('either "keyword" or "schema" must be passed')}fn.getSubschema=J_;function z_(n,e,{dataProp:t,dataPropType:r,data:i,dataTypes:a,propertyName:s}){if(i!==void 0&&t!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(t!==void 0){let{errorPath:l,dataPathArr:c,opts:h}=e,p=o.let("data",(0, Rt._)`${e.data}${(0, Rt.getProperty)(t)}`,true);u(p),n.errorPath=(0, Rt.str)`${l}${(0, Cm.getErrorPath)(t,r,h.jsPropertySyntax)}`,n.parentDataProperty=(0, Rt._)`${t}`,n.dataPathArr=[...c,n.parentDataProperty];}if(i!==void 0){let l=i instanceof Rt.Name?i:o.let("data",i,true);u(l),s!==void 0&&(n.propertyName=s);}a&&(n.dataTypes=a);function u(l){n.data=l,n.dataLevel=e.dataLevel+1,n.dataTypes=[],e.definedProperties=new Set,n.parentData=e.data,n.dataNames=[...e.dataNames,l];}}fn.extendSubschemaData=z_;function H_(n,{jtdDiscriminator:e,jtdMetadata:t,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(n.compositeRule=r),i!==void 0&&(n.createErrors=i),a!==void 0&&(n.allErrors=a),n.jtdDiscriminator=e,n.jtdMetadata=t;}fn.extendSubschemaMode=H_;});var $l=E((tk,_m)=>{_m.exports=function n(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,i,a;if(Array.isArray(e)){if(r=e.length,r!=t.length)return false;for(i=r;i--!==0;)if(!n(e[i],t[i]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(a=Object.keys(e),r=a.length,r!==Object.keys(t).length)return false;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[i]))return false;for(i=r;i--!==0;){var s=a[i];if(!n(e[s],t[s]))return false}return true}return e!==e&&t!==t};});var Em=E((nk,Sm)=>{var pn=Sm.exports=function(n,e,t){typeof e=="function"&&(t=e,e={}),t=e.cb||t;var r=typeof t=="function"?t:t.pre||function(){},i=t.post||function(){};Ws(e,r,i,n,"",n);};pn.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};pn.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};pn.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};pn.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function Ws(n,e,t,r,i,a,s,o,u,l){if(r&&typeof r=="object"&&!Array.isArray(r)){e(r,i,a,s,o,u,l);for(var c in r){var h=r[c];if(Array.isArray(h)){if(c in pn.arrayKeywords)for(var p=0;p<h.length;p++)Ws(n,e,t,h[p],i+"/"+c+"/"+p,a,i,c,r,p);}else if(c in pn.propsKeywords){if(h&&typeof h=="object")for(var f in h)Ws(n,e,t,h[f],i+"/"+c+"/"+U_(f),a,i,c,r,f);}else (c in pn.keywords||n.allKeys&&!(c in pn.skipKeywords))&&Ws(n,e,t,h,i+"/"+c,a,i,c,r);}t(r,i,a,s,o,u,l);}}function U_(n){return n.replace(/~/g,"~0").replace(/\//g,"~1")}});var yi=E(nt=>{Object.defineProperty(nt,"__esModule",{value:true});nt.getSchemaRefs=nt.resolveUrl=nt.normalizeId=nt._getFullPath=nt.getFullPath=nt.inlineRef=void 0;var K_=M(),X_=$l(),Y_=Em(),Z_=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function Q_(n,e=true){return typeof n=="boolean"?true:e===true?!jl(n):e?wm(n)<=e:false}nt.inlineRef=Q_;var eS=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function jl(n){for(let e in n){if(eS.has(e))return true;let t=n[e];if(Array.isArray(t)&&t.some(jl)||typeof t=="object"&&jl(t))return true}return false}function wm(n){let e=0;for(let t in n){if(t==="$ref")return 1/0;if(e++,!Z_.has(t)&&(typeof n[t]=="object"&&(0, K_.eachItem)(n[t],r=>e+=wm(r)),e===1/0))return 1/0}return e}function Dm(n,e="",t){t!==false&&(e=pr(e));let r=n.parse(e);return Am(n,r)}nt.getFullPath=Dm;function Am(n,e){return n.serialize(e).split("#")[0]+"#"}nt._getFullPath=Am;var tS=/#\/?$/;function pr(n){return n?n.replace(tS,""):""}nt.normalizeId=pr;function nS(n,e,t){return t=pr(t),n.resolve(e,t)}nt.resolveUrl=nS;var rS=/^[a-z_][-a-z0-9._]*$/i;function iS(n,e){if(typeof n=="boolean")return {};let{schemaId:t,uriResolver:r}=this.opts,i=pr(n[t]||e),a={"":i},s=Dm(r,i,false),o={},u=new Set;return Y_(n,{allKeys:true},(h,p,f,g)=>{if(g===void 0)return;let y=s+p,C=a[g];typeof h[t]=="string"&&(C=_.call(this,h[t])),v.call(this,h.$anchor),v.call(this,h.$dynamicAnchor),a[p]=C;function _(d){let S=this.opts.uriResolver.resolve;if(d=pr(C?S(C,d):d),u.has(d))throw c(d);u.add(d);let m=this.refs[d];return typeof m=="string"&&(m=this.refs[m]),typeof m=="object"?l(h,m.schema,d):d!==pr(y)&&(d[0]==="#"?(l(h,o[d],d),o[d]=h):this.refs[d]=y),d}function v(d){if(typeof d=="string"){if(!rS.test(d))throw new Error(`invalid anchor "${d}"`);_.call(this,`#${d}`);}}}),o;function l(h,p,f){if(p!==void 0&&!X_(h,p))throw c(f)}function c(h){return new Error(`reference "${h}" resolves to more than one schema`)}}nt.getSchemaRefs=iS;});var mr=E(mn=>{Object.defineProperty(mn,"__esModule",{value:true});mn.getData=mn.KeywordCxt=mn.validateFunctionCode=void 0;var Nm=am(),Pm=gi(),ql=Tl(),Ms=gi(),sS=fm(),Ci=vm(),Ll=bm(),N=$(),V=pt(),aS=yi(),en=M(),vi=mi();function oS(n){if(km(n)&&(Vm(n),Im(n))){cS(n);return}Fm(n,()=>(0, Nm.topBoolOrEmptySchema)(n));}mn.validateFunctionCode=oS;function Fm({gen:n,validateName:e,schema:t,schemaEnv:r,opts:i},a){i.code.es5?n.func(e,(0, N._)`${V.default.data}, ${V.default.valCxt}`,r.$async,()=>{n.code((0, N._)`"use strict"; ${Om(t,i)}`),lS(n,i),n.code(a);}):n.func(e,(0, N._)`${V.default.data}, ${uS(i)}`,r.$async,()=>n.code(Om(t,i)).code(a));}function uS(n){return (0, N._)`{${V.default.instancePath}="", ${V.default.parentData}, ${V.default.parentDataProperty}, ${V.default.rootData}=${V.default.data}${n.dynamicRef?(0, N._)`, ${V.default.dynamicAnchors}={}`:N.nil}}={}`}function lS(n,e){n.if(V.default.valCxt,()=>{n.var(V.default.instancePath,(0, N._)`${V.default.valCxt}.${V.default.instancePath}`),n.var(V.default.parentData,(0, N._)`${V.default.valCxt}.${V.default.parentData}`),n.var(V.default.parentDataProperty,(0, N._)`${V.default.valCxt}.${V.default.parentDataProperty}`),n.var(V.default.rootData,(0, N._)`${V.default.valCxt}.${V.default.rootData}`),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, N._)`${V.default.valCxt}.${V.default.dynamicAnchors}`);},()=>{n.var(V.default.instancePath,(0, N._)`""`),n.var(V.default.parentData,(0, N._)`undefined`),n.var(V.default.parentDataProperty,(0, N._)`undefined`),n.var(V.default.rootData,V.default.data),e.dynamicRef&&n.var(V.default.dynamicAnchors,(0, N._)`{}`);});}function cS(n){let{schema:e,opts:t,gen:r}=n;Fm(n,()=>{t.$comment&&e.$comment&&$m(n),mS(n),r.let(V.default.vErrors,null),r.let(V.default.errors,0),t.unevaluated&&hS(n),Rm(n),vS(n);});}function hS(n){let{gen:e,validateName:t}=n;n.evaluated=e.const("evaluated",(0, N._)`${t}.evaluated`),e.if((0, N._)`${n.evaluated}.dynamicProps`,()=>e.assign((0, N._)`${n.evaluated}.props`,(0, N._)`undefined`)),e.if((0, N._)`${n.evaluated}.dynamicItems`,()=>e.assign((0, N._)`${n.evaluated}.items`,(0, N._)`undefined`));}function Om(n,e){let t=typeof n=="object"&&n[e.schemaId];return t&&(e.code.source||e.code.process)?(0, N._)`/*# sourceURL=${t} */`:N.nil}function dS(n,e){if(km(n)&&(Vm(n),Im(n))){fS(n,e);return}(0, Nm.boolOrEmptySchema)(n,e);}function Im({schema:n,self:e}){if(typeof n=="boolean")return !n;for(let t in n)if(e.RULES.all[t])return true;return false}function km(n){return typeof n.schema!="boolean"}function fS(n,e){let{schema:t,gen:r,opts:i}=n;i.$comment&&t.$comment&&$m(n),gS(n),yS(n);let a=r.const("_errs",V.default.errors);Rm(n,a),r.var(e,(0, N._)`${a} === ${V.default.errors}`);}function Vm(n){(0, en.checkUnknownRules)(n),pS(n);}function Rm(n,e){if(n.opts.jtd)return xm(n,[],false,e);let t=(0, Pm.getSchemaTypes)(n.schema),r=(0, Pm.coerceAndCheckDataType)(n,t);xm(n,t,!r,e);}function pS(n){let{schema:e,errSchemaPath:t,opts:r,self:i}=n;e.$ref&&r.ignoreKeywordsWithRef&&(0, en.schemaHasRulesButRef)(e,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${t}"`);}function mS(n){let{schema:e,opts:t}=n;e.default!==void 0&&t.useDefaults&&t.strictSchema&&(0, en.checkStrictMode)(n,"default is ignored in the schema root");}function gS(n){let e=n.schema[n.opts.schemaId];e&&(n.baseId=(0, aS.resolveUrl)(n.opts.uriResolver,n.baseId,e));}function yS(n){if(n.schema.$async&&!n.schemaEnv.$async)throw new Error("async schema in sync schema")}function $m({gen:n,schemaEnv:e,schema:t,errSchemaPath:r,opts:i}){let a=t.$comment;if(i.$comment===true)n.code((0, N._)`${V.default.self}.logger.log(${a})`);else if(typeof i.$comment=="function"){let s=(0, N.str)`${r}/$comment`,o=n.scopeValue("root",{ref:e.root});n.code((0, N._)`${V.default.self}.opts.$comment(${a}, ${s}, ${o}.schema)`);}}function vS(n){let{gen:e,schemaEnv:t,validateName:r,ValidationError:i,opts:a}=n;t.$async?e.if((0, N._)`${V.default.errors} === 0`,()=>e.return(V.default.data),()=>e.throw((0, N._)`new ${i}(${V.default.vErrors})`)):(e.assign((0, N._)`${r}.errors`,V.default.vErrors),a.unevaluated&&CS(n),e.return((0, N._)`${V.default.errors} === 0`));}function CS({gen:n,evaluated:e,props:t,items:r}){t instanceof N.Name&&n.assign((0, N._)`${e}.props`,t),r instanceof N.Name&&n.assign((0, N._)`${e}.items`,r);}function xm(n,e,t,r){let{gen:i,schema:a,data:s,allErrors:o,opts:u,self:l}=n,{RULES:c}=l;if(a.$ref&&(u.ignoreKeywordsWithRef||!(0, en.schemaHasRulesButRef)(a,c))){i.block(()=>Lm(n,"$ref",c.all.$ref.definition));return}u.jtd||bS(n,e),i.block(()=>{for(let p of c.rules)h(p);h(c.post);});function h(p){(0, ql.shouldUseGroup)(a,p)&&(p.type?(i.if((0, Ms.checkDataType)(p.type,s,u.strictNumbers)),Tm(n,p),e.length===1&&e[0]===p.type&&t&&(i.else(),(0, Ms.reportTypeError)(n)),i.endIf()):Tm(n,p),o||i.if((0, N._)`${V.default.errors} === ${r||0}`));}}function Tm(n,e){let{gen:t,schema:r,opts:{useDefaults:i}}=n;i&&(0, sS.assignDefaults)(n,e.type),t.block(()=>{for(let a of e.rules)(0, ql.shouldUseRule)(r,a)&&Lm(n,a.keyword,a.definition,e.type);});}function bS(n,e){n.schemaEnv.meta||!n.opts.strictTypes||(_S(n,e),n.opts.allowUnionTypes||SS(n,e),ES(n,n.dataTypes));}function _S(n,e){if(e.length){if(!n.dataTypes.length){n.dataTypes=e;return}e.forEach(t=>{jm(n.dataTypes,t)||Bl(n,`type "${t}" not allowed by context "${n.dataTypes.join(",")}"`);}),DS(n,e);}}function SS(n,e){e.length>1&&!(e.length===2&&e.includes("null"))&&Bl(n,"use allowUnionTypes to allow union type keyword");}function ES(n,e){let t=n.self.RULES.all;for(let r in t){let i=t[r];if(typeof i=="object"&&(0, ql.shouldUseRule)(n.schema,i)){let{type:a}=i.definition;a.length&&!a.some(s=>wS(e,s))&&Bl(n,`missing type "${a.join(",")}" for keyword "${r}"`);}}}function wS(n,e){return n.includes(e)||e==="number"&&n.includes("integer")}function jm(n,e){return n.includes(e)||e==="integer"&&n.includes("number")}function DS(n,e){let t=[];for(let r of n.dataTypes)jm(e,r)?t.push(r):e.includes("integer")&&r==="number"&&t.push("integer");n.dataTypes=t;}function Bl(n,e){let t=n.schemaEnv.baseId+n.errSchemaPath;e+=` at "${t}" (strictTypes)`,(0, en.checkStrictMode)(n,e,n.opts.strictTypes);}var Gs=class{constructor(e,t,r){if((0, Ci.validateKeywordUsage)(e,t,r),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=r,this.data=e.data,this.schema=e.schema[r],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0, en.schemaRefOrVal)(e,this.schema,r,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",qm(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0, Ci.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:t.errors!==false)&&(this.errsCount=e.gen.const("_errs",V.default.errors));}result(e,t,r){this.failResult((0, N.not)(e),t,r);}failResult(e,t,r){this.gen.if(e),r?r():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else();}pass(e,t){this.failResult((0, N.not)(e),void 0,t);}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(false);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else();}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0, N._)`${t} !== undefined && (${(0, N.or)(this.invalid$data(),e)})`);}error(e,t,r){if(t){this.setParams(t),this._error(e,r),this.setParams({});return}this._error(e,r);}_error(e,t){(e?vi.reportExtraError:vi.reportError)(this,this.def.error,t);}$dataError(){(0, vi.reportError)(this,this.def.$dataError||vi.keyword$DataError);}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0, vi.resetErrorsCount)(this.gen,this.errsCount);}ok(e){this.allErrors||this.gen.if(e);}setParams(e,t){t?Object.assign(this.params,e):this.params=e;}block$data(e,t,r=N.nil){this.gen.block(()=>{this.check$data(e,r),t();});}check$data(e=N.nil,t=N.nil){if(!this.$data)return;let{gen:r,schemaCode:i,schemaType:a,def:s}=this;r.if((0, N.or)((0, N._)`${i} === undefined`,t)),e!==N.nil&&r.assign(e,true),(a.length||s.validateSchema)&&(r.elseIf(this.invalid$data()),this.$dataError(),e!==N.nil&&r.assign(e,false)),r.else();}invalid$data(){let{gen:e,schemaCode:t,schemaType:r,def:i,it:a}=this;return (0, N.or)(s(),o());function s(){if(r.length){if(!(t instanceof N.Name))throw new Error("ajv implementation error");let u=Array.isArray(r)?r:[r];return (0, N._)`${(0, Ms.checkDataTypes)(u,t,a.opts.strictNumbers,Ms.DataType.Wrong)}`}return N.nil}function o(){if(i.validateSchema){let u=e.scopeValue("validate$data",{ref:i.validateSchema});return (0, N._)`!${u}(${t})`}return N.nil}}subschema(e,t){let r=(0, Ll.getSubschema)(this.it,e);(0, Ll.extendSubschemaData)(r,this.it,e),(0, Ll.extendSubschemaMode)(r,e);let i={...this.it,...r,items:void 0,props:void 0};return dS(i,t),i}mergeEvaluated(e,t){let{it:r,gen:i}=this;r.opts.unevaluated&&(r.props!==true&&e.props!==void 0&&(r.props=en.mergeEvaluated.props(i,e.props,r.props,t)),r.items!==true&&e.items!==void 0&&(r.items=en.mergeEvaluated.items(i,e.items,r.items,t)));}mergeValidEvaluated(e,t){let{it:r,gen:i}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true))return i.if(t,()=>this.mergeEvaluated(e,N.Name)),true}};mn.KeywordCxt=Gs;function Lm(n,e,t,r){let i=new Gs(n,t,e);"code"in t?t.code(i,r):i.$data&&t.validate?(0, Ci.funcKeywordCode)(i,t):"macro"in t?(0, Ci.macroKeywordCode)(i,t):(t.compile||t.validate)&&(0, Ci.funcKeywordCode)(i,t);}var AS=/^\/(?:[^~]|~0|~1)*$/,PS=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function qm(n,{dataLevel:e,dataNames:t,dataPathArr:r}){let i,a;if(n==="")return V.default.rootData;if(n[0]==="/"){if(!AS.test(n))throw new Error(`Invalid JSON-pointer: ${n}`);i=n,a=V.default.rootData;}else {let l=PS.exec(n);if(!l)throw new Error(`Invalid JSON-pointer: ${n}`);let c=+l[1];if(i=l[2],i==="#"){if(c>=e)throw new Error(u("property/index",c));return r[e-c]}if(c>e)throw new Error(u("data",c));if(a=t[e-c],!i)return a}let s=a,o=i.split("/");for(let l of o)l&&(a=(0, N._)`${a}${(0, N.getProperty)((0, en.unescapeJsonPointer)(l))}`,s=(0, N._)`${s} && ${a}`);return s;function u(l,c){return `Cannot access ${l} ${c} levels up, current level is ${e}`}}mn.getData=qm;});var bi=E(Ml=>{Object.defineProperty(Ml,"__esModule",{value:true});var Wl=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=true;}};Ml.default=Wl;});var gr=E(zl=>{Object.defineProperty(zl,"__esModule",{value:true});var Gl=yi(),Jl=class extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`),this.missingRef=(0, Gl.resolveUrl)(e,t,r),this.missingSchema=(0, Gl.normalizeId)((0, Gl.getFullPath)(e,this.missingRef));}};zl.default=Jl;});var _i=E(gt=>{Object.defineProperty(gt,"__esModule",{value:true});gt.resolveSchema=gt.getCompilingSchema=gt.resolveRef=gt.compileSchema=gt.SchemaEnv=void 0;var Ot=$(),OS=bi(),Ln=pt(),xt=yi(),Bm=M(),xS=mr(),yr=class{constructor(e){var t;this.refs={},this.dynamicAnchors={};let r;typeof e.schema=="object"&&(r=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0, xt.normalizeId)(r?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=r?.$async,this.refs={};}};gt.SchemaEnv=yr;function Ul(n){let e=Wm.call(this,n);if(e)return e;let t=(0, xt.getFullPath)(this.opts.uriResolver,n.root.baseId),{es5:r,lines:i}=this.opts.code,{ownProperties:a}=this.opts,s=new Ot.CodeGen(this.scope,{es5:r,lines:i,ownProperties:a}),o;n.$async&&(o=s.scopeValue("Error",{ref:OS.default,code:(0, Ot._)`require("ajv/dist/runtime/validation_error").default`}));let u=s.scopeName("validate");n.validateName=u;let l={gen:s,allErrors:this.opts.allErrors,data:Ln.default.data,parentData:Ln.default.parentData,parentDataProperty:Ln.default.parentDataProperty,dataNames:[Ln.default.data],dataPathArr:[Ot.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:s.scopeValue("schema",this.opts.code.source===true?{ref:n.schema,code:(0, Ot.stringify)(n.schema)}:{ref:n.schema}),validateName:u,ValidationError:o,schema:n.schema,schemaEnv:n,rootId:t,baseId:n.baseId||t,schemaPath:Ot.nil,errSchemaPath:n.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0, Ot._)`""`,opts:this.opts,self:this},c;try{this._compilations.add(n),(0,xS.validateFunctionCode)(l),s.optimize(this.opts.code.optimize);let h=s.toString();c=`${s.scopeRefs(Ln.default.scope)}return ${h}`,this.opts.code.process&&(c=this.opts.code.process(c,n));let f=new Function(`${Ln.default.self}`,`${Ln.default.scope}`,c)(this,this.scope.get());if(this.scope.value(u,{ref:f}),f.errors=null,f.schema=n.schema,f.schemaEnv=n,n.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:u,validateCode:h,scopeValues:s._values}),this.opts.unevaluated){let{props:g,items:y}=l;f.evaluated={props:g instanceof Ot.Name?void 0:g,items:y instanceof Ot.Name?void 0:y,dynamicProps:g instanceof Ot.Name,dynamicItems:y instanceof Ot.Name},f.source&&(f.source.evaluated=(0,Ot.stringify)(f.evaluated));}return n.validate=f,n}catch(h){throw delete n.validate,delete n.validateName,c&&this.logger.error("Error compiling schema, function code:",c),h}finally{this._compilations.delete(n);}}gt.compileSchema=Ul;function TS(n,e,t){var r;t=(0, xt.resolveUrl)(this.opts.uriResolver,e,t);let i=n.refs[t];if(i)return i;let a=IS.call(this,n,t);if(a===void 0){let s=(r=n.localRefs)===null||r===void 0?void 0:r[t],{schemaId:o}=this.opts;s&&(a=new yr({schema:s,schemaId:o,root:n,baseId:e}));}if(a!==void 0)return n.refs[t]=NS.call(this,a)}gt.resolveRef=TS;function NS(n){return (0, xt.inlineRef)(n.schema,this.opts.inlineRefs)?n.schema:n.validate?n:Ul.call(this,n)}function Wm(n){for(let e of this._compilations)if(FS(e,n))return e}gt.getCompilingSchema=Wm;function FS(n,e){return n.schema===e.schema&&n.root===e.root&&n.baseId===e.baseId}function IS(n,e){let t;for(;typeof(t=this.refs[e])=="string";)e=t;return t||this.schemas[e]||Js.call(this,n,e)}function Js(n,e){let t=this.opts.uriResolver.parse(e),r=(0, xt._getFullPath)(this.opts.uriResolver,t),i=(0, xt.getFullPath)(this.opts.uriResolver,n.baseId,void 0);if(Object.keys(n.schema).length>0&&r===i)return Hl.call(this,t,n);let a=(0, xt.normalizeId)(r),s=this.refs[a]||this.schemas[a];if(typeof s=="string"){let o=Js.call(this,n,s);return typeof o?.schema!="object"?void 0:Hl.call(this,t,o)}if(typeof s?.schema=="object"){if(s.validate||Ul.call(this,s),a===(0, xt.normalizeId)(e)){let{schema:o}=s,{schemaId:u}=this.opts,l=o[u];return l&&(i=(0, xt.resolveUrl)(this.opts.uriResolver,i,l)),new yr({schema:o,schemaId:u,root:n,baseId:i})}return Hl.call(this,t,s)}}gt.resolveSchema=Js;var kS=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Hl(n,{baseId:e,schema:t,root:r}){var i;if(((i=n.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(let o of n.fragment.slice(1).split("/")){if(typeof t=="boolean")return;let u=t[(0, Bm.unescapeFragment)(o)];if(u===void 0)return;t=u;let l=typeof t=="object"&&t[this.opts.schemaId];!kS.has(o)&&l&&(e=(0, xt.resolveUrl)(this.opts.uriResolver,e,l));}let a;if(typeof t!="boolean"&&t.$ref&&!(0, Bm.schemaHasRulesButRef)(t,this.RULES)){let o=(0, xt.resolveUrl)(this.opts.uriResolver,e,t.$ref);a=Js.call(this,r,o);}let{schemaId:s}=this.opts;if(a=a||new yr({schema:t,schemaId:s,root:r,baseId:e}),a.schema!==a.root.schema)return a}});var Mm=E((uk,VS)=>{VS.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};});var ec=E((lk,Xm)=>{var RS=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Xl=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),$S=RegExp.prototype.test.bind(/^\d*$/u),qn=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),Yl=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),Jm=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u),Zl=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u),jS=RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u),rt=new Array(256);{let n="0123456789ABCDEF";for(let e=0;e<256;e++)rt[e]="%"+n[e>>4]+n[e&15];}function je(n){return n<2048?rt[192|n>>6]+rt[128|n&63]:n<65536?rt[224|n>>12]+rt[128|n>>6&63]+rt[128|n&63]:rt[240|n>>18]+rt[128|n>>12&63]+rt[128|n>>6&63]+rt[128|n&63]}function LS(n){let e="",t=0,r=0;for(r=0;r<n.length;r++)if(t=n[r].charCodeAt(0),t!==48){if(!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];break}for(r+=1;r<n.length;r++){if(t=n[r].charCodeAt(0),!(t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102))return "";e+=n[r];}return e}var qS=RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/),BS=RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/),WS=RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/),MS=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function GS(n){if(n.length===0)return false;for(let e=0;e<n.length;e++)if(!WS(n[e])){if(n[e]==="%"&&e+2<n.length&&qn(n.slice(e+1,e+3))){e+=2;continue}return false}return true}function Gm(n){let e=-1,t=0,r=-1,i=0;for(let o=0;o<n.length;o++)n[o]==="0"?(r===-1&&(r=o),i++,i>t&&(t=i,e=r)):(r=-1,i=0);if(t<2)return n.join(":");let a=n.slice(0,e).join(":"),s=n.slice(e+t).join(":");return a+"::"+s}function JS(n){let e=n.indexOf("::");if(e!==-1&&n.indexOf("::",e+1)!==-1)return;let t=e===-1?n.split(":"):n.slice(0,e).split(":"),r=e===-1?[]:n.slice(e+2).split(":");e!==-1&&(t.length===1&&t[0]===""&&(t.length=0),r.length===1&&r[0]===""&&(r.length=0));let i=t.concat(r),a=0;for(let o=0;o<i.length;o++){let u=i[o];if(u==="")return;if(u.indexOf(".")!==-1){if(o!==i.length-1||e!==-1&&r.length===0||!Xl(u))return;a+=2;continue}if(!qS(u))return;i[o]=parseInt(u,16).toString(16),a++;}if(e===-1)return a!==8?void 0:Gm(i);if(a>=8)return;let s=i.slice(0,t.length);for(let o=a;o<8;o++)s.push("0");for(let o=t.length;o<i.length;o++)s.push(i[o]);return Gm(s)}function Kl(n){let e=n[0]==="["&&n[n.length-1]==="]";if((n[0]==="["||n[n.length-1]==="]")&&!e)return {host:n,isIPV6:false,error:true};let r=e?n.slice(1,-1):n;if(e&&BS(r))return r=r.toLowerCase(),{host:`[${r}]`,escapedHost:r,isIPV6:false,isIPVFuture:true};if(zS(r,":")<2)return {host:n,isIPV6:false,error:e};let i="",a=r.indexOf("%");if(a!==-1){let o=r.slice(a,a+3).toLowerCase()==="%25"?3:1;if(i=r.slice(a+o),!GS(i))return {host:n,isIPV6:false,error:true};r=r.slice(0,a);}let s=JS(r);return s===void 0?{host:n,isIPV6:false,error:true}:{host:s+(i?"%"+i:""),escapedHost:s+(i?"%25"+i:""),isIPV6:true}}function zS(n,e){let t=0;for(let r=0;r<n.length;r++)n[r]===e&&t++;return t}function HS(n){let e=n,t=[],r=-1,i=0;for(;i=e.length;){if(i===1){if(e===".")break;if(e==="/"){t.push("/");break}else {t.push(e);break}}else if(i===2){if(e[0]==="."){if(e[1]===".")break;if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&(e[1]==="."||e[1]==="/")){t.push("/");break}}else if(i===3&&e==="/.."){t.length!==0&&t.pop(),t.push("/");break}if(e[0]==="."){if(e[1]==="."){if(e[2]==="/"){e=e.slice(3);continue}}else if(e[1]==="/"){e=e.slice(2);continue}}else if(e[0]==="/"&&e[1]==="."){if(e[2]==="/"){e=e.slice(2);continue}else if(e[2]==="."&&e[3]==="/"){e=e.slice(3),t.length!==0&&t.pop();continue}}if((r=e.indexOf("/",1))===-1){t.push(e);break}else t.push(e.slice(0,r)),e=e.slice(r);}return t.join("")}var US={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},KS=/[@/?#:]/g,XS=/[@/?#]/g;function zm(n,e){let t=e?XS:KS;return t.lastIndex=0,n.replace(t,r=>US[r])}function Hm(n,e=false){if(n.indexOf("%")===-1)return n;let t="";for(let r=0;r<n.length;r++){if(n[r]==="%"&&r+2<n.length){let i=n.slice(r+1,r+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));e&&Yl(s)?t+=s:t+="%"+a,r+=2;continue}}t+=n[r];}return t}function YS(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));s!=="."&&Yl(s)?e+=s:e+="%"+a,t+=2;continue}}if(Jm(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Km(i)?r:rt[i];else if(i<55296||i>57343)e+=je(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=je(65536+(i-55296<<10)+(a-56320)),t++):e+=je(65533);}else e+=je(65533);}}return e}function ZS(n,e=false){let t="",r=e&&n[0]!=="/";for(let i=0;i<n.length;i++){let a=n[i];if(a==="%"&&i+2<n.length){let s=n.slice(i+1,i+3);if(qn(s)){t+="%"+s.toUpperCase(),i+=2;continue}}if(a==="/"&&(r=false),Jm(a)&&(a!==":"||!r))t+=a;else {let s=n.charCodeAt(i);if(s<128)t+=rt[s];else if(s<55296||s>57343)t+=je(s);else if(s<=56319&&i+1<n.length){let o=n.charCodeAt(i+1);o>=56320&&o<=57343?(t+=je(65536+(s-55296<<10)+(o-56320)),i++):t+=je(65533);}else t+=je(65533);}}return t}function Ql(n,e){let t="";for(let r=0;r<n.length;r++){let i=n[r];if(i==="%"&&r+2<n.length){let a=n.slice(r+1,r+3);if(qn(a)){t+="%"+a.toUpperCase(),r+=2;continue}}if(e(i))t+=i;else {let a=n.charCodeAt(r);if(a<128)t+=rt[a];else if(a<55296||a>57343)t+=je(a);else if(a<=56319&&r+1<n.length){let s=n.charCodeAt(r+1);s>=56320&&s<=57343?(t+=je(65536+(a-55296<<10)+(s-56320)),r++):t+=je(65533);}else t+=je(65533);}}return t}function Um(n){return Ql(n,jS)}function QS(n){return Ql(n,Zl)}function eE(n){return Ql(n,Zl)}function Km(n){return n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===42||n===43||n===45||n===46||n===47||n===64||n===95}function tE(n){let e="";for(let t=0;t<n.length;t++){let r=n[t];if(r==="%"&&t+2<n.length){let i=n.slice(t+1,t+3);if(qn(i)){let a=i.toUpperCase(),s=String.fromCharCode(parseInt(a,16));Yl(s)?e+=s:e+="%"+a,t+=2;continue}}if(Zl(r))e+=r;else {let i=n.charCodeAt(t);if(i<128)e+=Km(i)?r:rt[i];else if(i<55296||i>57343)e+=je(i);else if(i<=56319&&t+1<n.length){let a=n.charCodeAt(t+1);a>=56320&&a<=57343?(e+=je(65536+(i-55296<<10)+(a-56320)),t++):e+=je(65533);}else e+=je(65533);}}return e}function nE(n){let e="";for(let t=0;t<n.length;t++){if(n[t]==="%"&&t+2<n.length){let r=n.slice(t+1,t+3);if(qn(r)){e+="%"+r.toUpperCase(),t+=2;continue}}e+=escape(n[t]);}return e}function rE(n){let e=[];if(n.userinfo!==void 0&&(e.push(Um(n.userinfo)),e.push("@")),n.host!==void 0){let t=n.host;if(!Xl(t)){let r=Kl(t);r.isIPV6!==true&&r.isIPVFuture!==true&&(t=Hm(t,true),r=Kl(t)),r.isIPV6===true||r.isIPVFuture===true?t=`[${r.escapedHost}]`:t=zm(t,false);}e.push(t);}if(typeof n.port=="number"||typeof n.port=="string"){let t=String(n.port);if(!$S(t))throw new TypeError("URI port is malformed.");e.push(":"),e.push(t);}return e.length?e.join(""):void 0}Xm.exports={nonSimpleDomain:MS,recomposeAuthority:rE,reescapeHostDelimiters:zm,normalizePercentEncoding:Hm,normalizePathEncoding:YS,serializePathEncoding:ZS,normalizeQueryFragmentEncoding:tE,encodeUserinfo:Um,encodeQuery:QS,encodeFragment:eE,escapePreservingEscapes:nE,removeDotSegments:HS,isIPv4:Xl,isUUID:RS,normalizeIPv6:Kl,stringArrayToHexStripped:LS};});var tg=E((ck,eg)=>{var{isUUID:iE}=ec(),sE=/^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu,aE=["http","https","ws","wss","urn","urn:uuid"];function oE(n){return aE.indexOf(n)!==-1}function tc(n){return n.secure===true?true:n.secure===false?false:n.scheme?n.scheme.length===3&&(n.scheme[0]==="w"||n.scheme[0]==="W")&&(n.scheme[1]==="s"||n.scheme[1]==="S")&&(n.scheme[2]==="s"||n.scheme[2]==="S"):false}function Ym(n){return n.host||(n.error=n.error||"HTTP URIs must have a host."),n}function Zm(n){let e=String(n.scheme).toLowerCase()==="https";return (n.port===(e?443:80)||n.port==="")&&(n.port=void 0),n.path||(n.path="/"),n}function uE(n){return n.secure=tc(n),n.resourceName=(n.path||"/")+(n.query?"?"+n.query:""),n.path=void 0,n.query=void 0,n}function lE(n){if((n.port===(tc(n)?443:80)||n.port==="")&&(n.port=void 0),typeof n.secure=="boolean"&&(n.scheme=n.secure?"wss":"ws",n.secure=void 0),n.resourceName){let e=n.resourceName.indexOf("?"),t=e===-1?n.resourceName:n.resourceName.slice(0,e);n.path=t&&t!=="/"?t:void 0,n.query=e===-1?void 0:n.resourceName.slice(e+1),n.resourceName=void 0;}return n.fragment=void 0,n}function cE(n,e){if(!n.path)return n.error="URN can not be parsed",n;let t=n.path.match(sE);if(t&&t[0]===n.path){let r=e.scheme||n.scheme||"urn";n.nid=t[1].toLowerCase(),n.nss=t[2];let i=`${r}:${e.nid||n.nid}`,a=nc(i);n.path=void 0,a&&(n=a.parse(n,e));}else n.error=n.error||"URN can not be parsed.";return n}function hE(n,e){if(n.nid===void 0)throw new Error("URN without nid cannot be serialized");let t=e.scheme||n.scheme||"urn",r=n.nid.toLowerCase(),i=`${t}:${e.nid||r}`,a=nc(i);a&&(n=a.serialize(n,e));let s=n,o=n.nss;return s.path=`${r||e.nid}:${o}`,e.skipEscape=true,s}function dE(n,e){let t=n;return t.uuid=t.nss,t.nss=void 0,!e.tolerant&&(!t.uuid||!iE(t.uuid))&&(t.error=t.error||"UUID is not valid."),t}function fE(n){let e=n;return e.nss=(n.uuid||"").toLowerCase(),e}var Qm={scheme:"http",domainHost:true,parse:Ym,serialize:Zm},pE={scheme:"https",domainHost:Qm.domainHost,parse:Ym,serialize:Zm},zs={scheme:"ws",domainHost:true,parse:uE,serialize:lE},mE={scheme:"wss",domainHost:zs.domainHost,parse:zs.parse,serialize:zs.serialize},gE={scheme:"urn",parse:cE,serialize:hE,skipNormalize:true},yE={scheme:"urn:uuid",parse:dE,serialize:fE,skipNormalize:true},Hs={http:Qm,https:pE,ws:zs,wss:mE,urn:gE,"urn:uuid":yE};Object.setPrototypeOf(Hs,null);function nc(n){return n&&(Hs[n]||Hs[n.toLowerCase()])||void 0}eg.exports={wsIsSecure:tc,SCHEMES:Hs,isValidSchemeName:oE,getSchemeHandler:nc};});var pg=E((hk,Xs)=>{var{normalizeIPv6:ag,removeDotSegments:Ei,recomposeAuthority:vE,normalizePercentEncoding:rc,normalizePathEncoding:CE,serializePathEncoding:ng,normalizeQueryFragmentEncoding:rg,encodeQuery:bE,encodeFragment:_E,reescapeHostDelimiters:SE,isIPv4:og,nonSimpleDomain:EE}=ec(),{SCHEMES:ug,getSchemeHandler:ic}=tg(),lg=/^[A-Za-z][A-Za-z0-9+.-]*$/u,cg="URI scheme is malformed.";function ig(n){let e=unescape(String(n));if(!lg.test(e))throw new TypeError(cg);return e}function wE(n,e){return typeof n=="string"?n=FE(n,e):typeof n=="object"&&(n=Ks(Bn(n,e),e)),n}function DE(n,e,t){let r=t?Object.assign({scheme:"null"},t):{scheme:"null"},{parsed:i,malformedAuthorityOrPort:a,malformedPercentEncoding:s,malformedSchemeSpecific:o,malformedHost:u,malformedScheme:l}=Us(n,r),{parsed:c,malformedAuthorityOrPort:h,malformedPercentEncoding:p,malformedSchemeSpecific:f,malformedHost:g,malformedScheme:y}=Us(e,r);if(a||h||s||p||o||f||u||g||l||y)throw new Error(i.error||c.error||"URI is malformed.");let C=hg(i,c,r,true),_=ic(t&&t.scheme||C.scheme),v=C.host,d=v!==void 0&&v!==""&&(og(v)||ag(v).isIPV6);dg(C,t||{},_,d);let S=v&&v.indexOf("%")!==-1&&!/\P{ASCII}/u.test(v);if(C.error&&!S)throw new Error(C.error);return r.skipEscape=true,Bn(C,r)}function hg(n,e,t,r){let i={};return r||(n=Ks(Bn(n,t),t),e=Ks(Bn(e,t),t)),t=t||{},!t.tolerant&&e.scheme?(i.scheme=e.scheme,i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ei(e.path||""),i.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(i.userinfo=e.userinfo,i.host=e.host,i.port=e.port,i.path=Ei(e.path||""),i.query=e.query):(e.path?(e.path[0]==="/"?i.path=Ei(e.path):((n.userinfo!==void 0||n.host!==void 0||n.port!==void 0)&&!n.path?i.path="/"+e.path:n.path?i.path=n.path.slice(0,n.path.lastIndexOf("/")+1)+e.path:i.path=e.path,i.path=Ei(i.path)),i.query=e.query):(i.path=n.path,e.query!==void 0?i.query=e.query:i.query=n.query),i.userinfo=n.userinfo,i.host=n.host,i.port=n.port),i.scheme=n.scheme),i.fragment=e.fragment,i}function AE(n,e,t){let r=sg(n,t),i=sg(e,t);return r!==void 0&&i!==void 0&&r===i}function Bn(n,e){let t={host:n.host,scheme:n.scheme,userinfo:n.userinfo,port:n.port,path:n.path,query:n.query,nid:n.nid,nss:n.nss,uuid:n.uuid,fragment:n.fragment,reference:n.reference,resourceName:n.resourceName,secure:n.secure,error:""},r=Object.assign({},e),i=[];t.scheme&&(t.scheme=ig(t.scheme));let a=ic(r.scheme||t.scheme);a&&a.serialize&&a.serialize(t,r);let s=t.userinfo!==void 0||t.host!==void 0||t.port!==void 0,o=!r.skipEscape&&t.scheme===void 0&&!s;t.path!==void 0&&(r.skipEscape?t.path=rc(t.path):t.path=ng(t.path,o)),r.reference!=="suffix"&&t.scheme&&(t.scheme=ig(t.scheme),i.push(t.scheme,":"));let u=vE(t);if(u!==void 0&&(r.reference!=="suffix"&&i.push("//"),i.push(u),t.path&&t.path[0]!=="/"&&i.push("/")),t.path!==void 0){let l=t.path;!r.absolutePath&&(!a||!a.absolutePath)&&(l=Ei(l)),o&&(l=ng(l,true)),u===void 0&&l[0]==="/"&&l[1]==="/"&&(l="/%2F"+l.slice(2)),i.push(l);}return t.query!==void 0&&i.push("?",bE(t.query)),t.fragment!==void 0&&i.push("#",_E(t.fragment)),i.join("")}var PE=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,OE=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/,xE=/^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;function TE(n,e){if(e[2]!==void 0&&n.path&&n.path[0]!=="/")return 'URI path must start with "/" when authority is present.';if(typeof n.port=="number"&&(n.port<0||n.port>65535))return "URI port is malformed."}function Si(n){if(n===void 0)return false;let e=n.indexOf("%");for(;e!==-1;){if(e+2>=n.length||!/^[\da-f]{2}$/iu.test(n.slice(e+1,e+3)))return true;e=n.indexOf("%",e+3);}return false}function sc(n){return n[0]==="["&&n[n.length-1]==="]"}function NE(n){let e=n[4];return Si(n[3])||e!==void 0&&!sc(e)&&Si(e)||Si(n[6])||Si(n[7])||Si(n[8])}function dg(n,e,t,r){if(!e.unicodeSupport&&(!t||!t.unicodeSupport)&&n.host&&!sc(n.host)&&(e.domainHost||t&&t.domainHost)&&r===false&&EE(n.host))try{n.host=new URL("http://"+n.host).hostname;}catch(i){return n.error=n.error||"Host's domain name can not be converted to ASCII: "+i,true}return false}function Us(n,e){let t=Object.assign({},e),r={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},i=false,a=false,s=false,o=false,u=false,l=false,c=false;t.reference==="suffix"&&(t.scheme?n=t.scheme+":"+n:n="//"+n);let h=n.match(OE);h!==null&&h[1].indexOf("\\")!==-1&&(r.error="URI authority must not contain a literal backslash.",i=true);let p=n.match(xE);if(p!==null){let g=p[1],y=g.replace(/[\t\n\r]/g,"");y.length>=2&&(y.slice(0,2)!=="//"?(r.error=r.error||"URI authority must not contain a literal backslash.",i=true):g.length!==y.length&&(r.error=r.error||"URI authority introducer must not contain whitespace.",i=true));}let f=n.match(PE);if(f){if(r.scheme=f[1],r.userinfo=f[3],r.host=f[4],r.port=parseInt(f[5],10),r.path=f[6]||"",r.query=f[7],r.fragment=f[8],r.scheme!==void 0){let C=unescape(r.scheme);lg.test(C)?r.scheme=C.toLowerCase():(r.error=r.error||cg,l=true);}a=NE(f),a&&(r.error=r.error||"URI contains malformed percent-encoding."),isNaN(r.port)&&(r.port=f[5]);let g=TE(r,f);if(g!==void 0&&(r.error=r.error||g,i=true),r.host)if(og(r.host)===false){let _=sc(r.host),v=r.host.indexOf("[")!==-1||r.host.indexOf("]")!==-1,d=ag(r.host);c=d.isIPV6||d.isIPVFuture===true,u=v&&(!_||d.error===true),r.host=c?d.host:d.host.toLowerCase(),u&&(r.error=r.error||"URI host is malformed.",i=true);}else c=true;r.scheme===void 0&&r.userinfo===void 0&&r.host===void 0&&r.port===void 0&&r.query===void 0&&!r.path?r.reference="same-document":r.scheme===void 0?r.reference="relative":r.fragment===void 0?r.reference="absolute":r.reference="uri",t.reference&&t.reference!=="suffix"&&t.reference!==r.reference&&(r.error=r.error||"URI is not a "+t.reference+" reference.");let y=ic(t.scheme||r.scheme);if(u||(o=dg(r,t,y,c)),n.indexOf("%")!==-1&&r.host!==void 0&&!u){let C=c?r.host:rc(r.host,true);c||(C=rc(C.toLowerCase())),r.host=SE(C,c);}(!y||y&&!y.skipNormalize)&&(r.path&&(r.path=CE(r.path)),r.query&&(r.query=rg(r.query)),r.fragment&&(r.fragment=rg(r.fragment))),y&&y.parse&&(y.parse(r,t),y===ug.urn&&r.nid===void 0&&(s=true));}else r.error=r.error||"URI can not be parsed.";return {parsed:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:l}}function Ks(n,e){return Us(n,e).parsed}function FE(n,e){return fg(n,e).normalized}function fg(n,e){let{parsed:t,malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}=Us(n,e);return {normalized:r||i||a||s||o?n:Bn(t,e),malformedAuthorityOrPort:r,malformedPercentEncoding:i,malformedSchemeSpecific:a,malformedHost:s,malformedScheme:o}}function sg(n,e){if(typeof n!="string"&&typeof n!="object")return;let t;try{t=typeof n=="string"?n:Bn(n,e);}catch{return}let{normalized:r,malformedAuthorityOrPort:i,malformedPercentEncoding:a,malformedSchemeSpecific:s,malformedHost:o,malformedScheme:u}=fg(t,e);return i||a||s||o||u?void 0:r}var ac={SCHEMES:ug,normalize:wE,resolve:DE,resolveComponent:hg,equal:AE,serialize:Bn,parse:Ks};Xs.exports=ac;Xs.exports.default=ac;Xs.exports.fastUri=ac;});var gg=E(oc=>{Object.defineProperty(oc,"__esModule",{value:true});var mg=pg();mg.code='require("ajv/dist/runtime/uri").default';oc.default=mg;});var cc=E(Fe=>{Object.defineProperty(Fe,"__esModule",{value:true});Fe.CodeGen=Fe.Name=Fe.nil=Fe.stringify=Fe.str=Fe._=Fe.KeywordCxt=void 0;var IE=mr();Object.defineProperty(Fe,"KeywordCxt",{enumerable:true,get:function(){return IE.KeywordCxt}});var vr=$();Object.defineProperty(Fe,"_",{enumerable:true,get:function(){return vr._}});Object.defineProperty(Fe,"str",{enumerable:true,get:function(){return vr.str}});Object.defineProperty(Fe,"stringify",{enumerable:true,get:function(){return vr.stringify}});Object.defineProperty(Fe,"nil",{enumerable:true,get:function(){return vr.nil}});Object.defineProperty(Fe,"Name",{enumerable:true,get:function(){return vr.Name}});Object.defineProperty(Fe,"CodeGen",{enumerable:true,get:function(){return vr.CodeGen}});var kE=bi(),_g=gr(),VE=xl(),wi=_i(),RE=$(),Di=yi(),Ys=gi(),lc=M(),yg=Mm(),$E=gg(),Sg=(n,e)=>new RegExp(n,e);Sg.code="new RegExp";var jE=["removeAdditional","useDefaults","coerceTypes"],LE=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),qE={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},BE={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},vg=200;function WE(n){var e,t,r,i,a,s,o,u,l,c,h,p,f,g,y,C,_,v,d,S,m,b,w,P,O;let k=n.strict,J=(e=n.code)===null||e===void 0?void 0:e.optimize,ie=J===true||J===void 0?1:J||0,ue=(r=(t=n.code)===null||t===void 0?void 0:t.regExp)!==null&&r!==void 0?r:Sg,an=(i=n.uriResolver)!==null&&i!==void 0?i:$E.default;return {strictSchema:(s=(a=n.strictSchema)!==null&&a!==void 0?a:k)!==null&&s!==void 0?s:true,strictNumbers:(u=(o=n.strictNumbers)!==null&&o!==void 0?o:k)!==null&&u!==void 0?u:true,strictTypes:(c=(l=n.strictTypes)!==null&&l!==void 0?l:k)!==null&&c!==void 0?c:"log",strictTuples:(p=(h=n.strictTuples)!==null&&h!==void 0?h:k)!==null&&p!==void 0?p:"log",strictRequired:(g=(f=n.strictRequired)!==null&&f!==void 0?f:k)!==null&&g!==void 0?g:false,code:n.code?{...n.code,optimize:ie,regExp:ue}:{optimize:ie,regExp:ue},loopRequired:(y=n.loopRequired)!==null&&y!==void 0?y:vg,loopEnum:(C=n.loopEnum)!==null&&C!==void 0?C:vg,meta:(_=n.meta)!==null&&_!==void 0?_:true,messages:(v=n.messages)!==null&&v!==void 0?v:true,inlineRefs:(d=n.inlineRefs)!==null&&d!==void 0?d:true,schemaId:(S=n.schemaId)!==null&&S!==void 0?S:"$id",addUsedSchema:(m=n.addUsedSchema)!==null&&m!==void 0?m:true,validateSchema:(b=n.validateSchema)!==null&&b!==void 0?b:true,validateFormats:(w=n.validateFormats)!==null&&w!==void 0?w:true,unicodeRegExp:(P=n.unicodeRegExp)!==null&&P!==void 0?P:true,int32range:(O=n.int32range)!==null&&O!==void 0?O:true,uriResolver:an}}var Ai=class{constructor(e={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...WE(e)};let{es5:t,lines:r}=this.opts.code;this.scope=new RE.ValueScope({scope:{},prefixes:LE,es5:t,lines:r}),this.logger=UE(e.logger);let i=e.validateFormats;e.validateFormats=false,this.RULES=(0, VE.getRules)(),Cg.call(this,qE,e,"NOT SUPPORTED"),Cg.call(this,BE,e,"DEPRECATED","warn"),this._metaOpts=zE.call(this),e.formats&&GE.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&JE.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),ME.call(this),e.validateFormats=i;}_addVocabularies(){this.addKeyword("$async");}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:r}=this.opts,i=yg;r==="id"&&(i={...yg},i.id=i.$id,delete i.$id),t&&e&&this.addMetaSchema(i,i[r],false);}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:void 0}validate(e,t){let r;if(typeof e=="string"){if(r=this.getSchema(e),!r)throw new Error(`no schema with key or ref "${e}"`)}else r=this.compile(e);let i=r(t);return "$async"in r||(this.errors=r.errors),i}compile(e,t){let r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:r}=this.opts;return i.call(this,e,t);async function i(c,h){await a.call(this,c.$schema);let p=this._addSchema(c,h);return p.validate||s.call(this,p)}async function a(c){c&&!this.getSchema(c)&&await i.call(this,{$ref:c},true);}async function s(c){try{return this._compileSchemaEnv(c)}catch(h){if(!(h instanceof _g.default))throw h;return o.call(this,h),await u.call(this,h.missingSchema),s.call(this,c)}}function o({missingSchema:c,missingRef:h}){if(this.refs[c])throw new Error(`AnySchema ${c} is loaded but ${h} cannot be resolved`)}async function u(c){let h=await l.call(this,c);this.refs[c]||await a.call(this,h.$schema),this.refs[c]||this.addSchema(h,c,t);}async function l(c){let h=this._loading[c];if(h)return h;try{return await(this._loading[c]=r(c))}finally{delete this._loading[c];}}}addSchema(e,t,r,i=this.opts.validateSchema){if(Array.isArray(e)){for(let s of e)this.addSchema(s,void 0,r,i);return this}let a;if(typeof e=="object"){let{schemaId:s}=this.opts;if(a=e[s],a!==void 0&&typeof a!="string")throw new Error(`schema ${s} must be string`)}return t=(0, Di.normalizeId)(t||a),this._checkUnique(t),this.schemas[t]=this._addSchema(e,r,t,i,true),this}addMetaSchema(e,t,r=this.opts.validateSchema){return this.addSchema(e,t,true,r),this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;if(r=e.$schema,r!==void 0&&typeof r!="string")throw new Error("$schema must be a string");if(r=r||this.opts.defaultMeta||this.defaultMeta(),!r)return this.logger.warn("meta-schema not available"),this.errors=null,true;let i=this.validate(r,e);if(!i&&t){let a="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(a);else throw new Error(a)}return i}getSchema(e){let t;for(;typeof(t=bg.call(this,e))=="string";)e=t;if(t===void 0){let{schemaId:r}=this.opts,i=new wi.SchemaEnv({schema:{},schemaId:r});if(t=wi.resolveSchema.call(this,i,e),!t)return;this.refs[e]=t;}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case "undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case "string":{let t=bg.call(this,e);return typeof t=="object"&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case "object":{let t=e;this._cache.delete(t);let r=e[this.opts.schemaId];return r&&(r=(0, Di.normalizeId)(r),delete this.schemas[r],delete this.refs[r]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string")r=e,typeof t=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=r);else if(typeof e=="object"&&t===void 0){if(t=e,r=t.keyword,Array.isArray(r)&&!r.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(XE.call(this,r,t),!t)return (0, lc.eachItem)(r,a=>uc.call(this,a)),this;ZE.call(this,t);let i={...t,type:(0, Ys.getJSONTypes)(t.type),schemaType:(0, Ys.getJSONTypes)(t.schemaType)};return (0, lc.eachItem)(r,i.type.length===0?a=>uc.call(this,a,i):a=>i.type.forEach(s=>uc.call(this,a,i,s))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let r of t.rules){let i=r.rules.findIndex(a=>a.keyword===e);i>=0&&r.rules.splice(i,1);}return this}addFormat(e,t){return typeof t=="string"&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){return !e||e.length===0?"No errors":e.map(i=>`${r}${i.instancePath} ${i.message}`).reduce((i,a)=>i+t+a)}$dataMetaSchema(e,t){let r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let i of t){let a=i.split("/").slice(1),s=e;for(let o of a)s=s[o];for(let o in r){let u=r[o];if(typeof u!="object")continue;let{$data:l}=u.definition,c=s[o];l&&c&&(s[o]=Eg(c));}}return e}_removeAllSchemas(e,t){for(let r in e){let i=e[r];(!t||t.test(r))&&(typeof i=="string"?delete e[r]:i&&!i.meta&&(this._cache.delete(i.schema),delete e[r]));}}_addSchema(e,t,r,i=this.opts.validateSchema,a=this.opts.addUsedSchema){let s,{schemaId:o}=this.opts;if(typeof e=="object")s=e[o];else {if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let u=this._cache.get(e);if(u!==void 0)return u;r=(0, Di.normalizeId)(s||r);let l=Di.getSchemaRefs.call(this,e,r);return u=new wi.SchemaEnv({schema:e,schemaId:o,meta:t,baseId:r,localRefs:l}),this._cache.set(u.schema,u),a&&!r.startsWith("#")&&(r&&this._checkUnique(r),this.refs[r]=u),i&&this.validateSchema(e,true),u}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):wi.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{wi.compileSchema.call(this,e);}finally{this.opts=t;}}};Ai.ValidationError=kE.default;Ai.MissingRefError=_g.default;Fe.default=Ai;function Cg(n,e,t,r="error"){for(let i in n){let a=i;a in e&&this.logger[r](`${t}: option ${i}. ${n[a]}`);}}function bg(n){return n=(0, Di.normalizeId)(n),this.schemas[n]||this.refs[n]}function ME(){let n=this.opts.schemas;if(n)if(Array.isArray(n))this.addSchema(n);else for(let e in n)this.addSchema(n[e],e);}function GE(){for(let n in this.opts.formats){let e=this.opts.formats[n];e&&this.addFormat(n,e);}}function JE(n){if(Array.isArray(n)){this.addVocabulary(n);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in n){let t=n[e];t.keyword||(t.keyword=e),this.addKeyword(t);}}function zE(){let n={...this.opts};for(let e of jE)delete n[e];return n}var HE={log(){},warn(){},error(){}};function UE(n){if(n===false)return HE;if(n===void 0)return console;if(n.log&&n.warn&&n.error)return n;throw new Error("logger must implement log, warn and error methods")}var KE=/^[a-z_$][a-z0-9_$:-]*$/i;function XE(n,e){let{RULES:t}=this;if((0, lc.eachItem)(n,r=>{if(t.keywords[r])throw new Error(`Keyword ${r} is already defined`);if(!KE.test(r))throw new Error(`Keyword ${r} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function uc(n,e,t){var r;let i=e?.post;if(t&&i)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:a}=this,s=i?a.post:a.rules.find(({type:u})=>u===t);if(s||(s={type:t,rules:[]},a.rules.push(s)),a.keywords[n]=true,!e)return;let o={keyword:n,definition:{...e,type:(0, Ys.getJSONTypes)(e.type),schemaType:(0, Ys.getJSONTypes)(e.schemaType)}};e.before?YE.call(this,s,o,e.before):s.rules.push(o),a.all[n]=o,(r=e.implements)===null||r===void 0||r.forEach(u=>this.addKeyword(u));}function YE(n,e,t){let r=n.rules.findIndex(i=>i.keyword===t);r>=0?n.rules.splice(r,0,e):(n.rules.push(e),this.logger.warn(`rule ${t} is not defined`));}function ZE(n){let{metaSchema:e}=n;e!==void 0&&(n.$data&&this.opts.$data&&(e=Eg(e)),n.validateSchema=this.compile(e,true));}var QE={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Eg(n){return {anyOf:[n,QE]}}});var wg=E(hc=>{Object.defineProperty(hc,"__esModule",{value:true});var ew={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};hc.default=ew;});var ea=E(Wn=>{Object.defineProperty(Wn,"__esModule",{value:true});Wn.callRef=Wn.getValidate=void 0;var tw=gr(),Dg=mt(),it=$(),Cr=pt(),Ag=_i(),Zs=M(),nw={keyword:"$ref",schemaType:"string",code(n){let{gen:e,schema:t,it:r}=n,{baseId:i,schemaEnv:a,validateName:s,opts:o,self:u}=r,{root:l}=a;if((t==="#"||t==="#/")&&i===l.baseId)return h();let c=Ag.resolveRef.call(u,l,i,t);if(c===void 0)throw new tw.default(r.opts.uriResolver,i,t);if(c instanceof Ag.SchemaEnv)return p(c);return f(c);function h(){if(a===l)return Qs(n,s,a,a.$async);let g=e.scopeValue("root",{ref:l});return Qs(n,(0, it._)`${g}.validate`,l,l.$async)}function p(g){let y=Pg(n,g);Qs(n,y,g,g.$async);}function f(g){let y=e.scopeValue("schema",o.code.source===true?{ref:g,code:(0, it.stringify)(g)}:{ref:g}),C=e.name("valid"),_=n.subschema({schema:g,dataTypes:[],schemaPath:it.nil,topSchemaRef:y,errSchemaPath:t},C);n.mergeEvaluated(_),n.ok(C);}}};function Pg(n,e){let{gen:t}=n;return e.validate?t.scopeValue("validate",{ref:e.validate}):(0, it._)`${t.scopeValue("wrapper",{ref:e})}.validate`}Wn.getValidate=Pg;function Qs(n,e,t,r){let{gen:i,it:a}=n,{allErrors:s,schemaEnv:o,opts:u}=a,l=u.passContext?Cr.default.this:it.nil;r?c():h();function c(){if(!o.$async)throw new Error("async schema referenced by sync schema");let g=i.let("valid");i.try(()=>{i.code((0, it._)`await ${(0, Dg.callValidateCode)(n,e,l)}`),f(e),s||i.assign(g,true);},y=>{i.if((0, it._)`!(${y} instanceof ${a.ValidationError})`,()=>i.throw(y)),p(y),s||i.assign(g,false);}),n.ok(g);}function h(){n.result((0, Dg.callValidateCode)(n,e,l),()=>f(e),()=>p(e));}function p(g){let y=(0, it._)`${g}.errors`;i.assign(Cr.default.vErrors,(0, it._)`${Cr.default.vErrors} === null ? ${y} : ${Cr.default.vErrors}.concat(${y})`),i.assign(Cr.default.errors,(0, it._)`${Cr.default.vErrors}.length`);}function f(g){var y;if(!a.opts.unevaluated)return;let C=(y=t?.validate)===null||y===void 0?void 0:y.evaluated;if(a.props!==true)if(C&&!C.dynamicProps)C.props!==void 0&&(a.props=Zs.mergeEvaluated.props(i,C.props,a.props));else {let _=i.var("props",(0, it._)`${g}.evaluated.props`);a.props=Zs.mergeEvaluated.props(i,_,a.props,it.Name);}if(a.items!==true)if(C&&!C.dynamicItems)C.items!==void 0&&(a.items=Zs.mergeEvaluated.items(i,C.items,a.items));else {let _=i.var("items",(0, it._)`${g}.evaluated.items`);a.items=Zs.mergeEvaluated.items(i,_,a.items,it.Name);}}}Wn.callRef=Qs;Wn.default=nw;});var fc=E(dc=>{Object.defineProperty(dc,"__esModule",{value:true});var rw=wg(),iw=ea(),sw=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",rw.default,iw.default];dc.default=sw;});var Og=E(pc=>{Object.defineProperty(pc,"__esModule",{value:true});var ta=$(),gn=ta.operators,na={maximum:{okStr:"<=",ok:gn.LTE,fail:gn.GT},minimum:{okStr:">=",ok:gn.GTE,fail:gn.LT},exclusiveMaximum:{okStr:"<",ok:gn.LT,fail:gn.GTE},exclusiveMinimum:{okStr:">",ok:gn.GT,fail:gn.LTE}},aw={message:({keyword:n,schemaCode:e})=>(0, ta.str)`must be ${na[n].okStr} ${e}`,params:({keyword:n,schemaCode:e})=>(0, ta._)`{comparison: ${na[n].okStr}, limit: ${e}}`},ow={keyword:Object.keys(na),type:"number",schemaType:"number",$data:true,error:aw,code(n){let{keyword:e,data:t,schemaCode:r}=n;n.fail$data((0, ta._)`${t} ${na[e].fail} ${r} || isNaN(${t})`);}};pc.default=ow;});var xg=E(mc=>{Object.defineProperty(mc,"__esModule",{value:true});var Pi=$(),uw={message:({schemaCode:n})=>(0, Pi.str)`must be multiple of ${n}`,params:({schemaCode:n})=>(0, Pi._)`{multipleOf: ${n}}`},lw={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:uw,code(n){let{gen:e,data:t,schemaCode:r,it:i}=n,a=i.opts.multipleOfPrecision,s=e.let("res"),o=a?(0, Pi._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:(0, Pi._)`${s} !== parseInt(${s})`;n.fail$data((0, Pi._)`(${r} === 0 || (${s} = ${t}/${r}, ${o}))`);}};mc.default=lw;});var Ng=E(gc=>{Object.defineProperty(gc,"__esModule",{value:true});function Tg(n){let e=n.length,t=0,r=0,i;for(;r<e;)t++,i=n.charCodeAt(r++),i>=55296&&i<=56319&&r<e&&(i=n.charCodeAt(r),(i&64512)===56320&&r++);return t}gc.default=Tg;Tg.code='require("ajv/dist/runtime/ucs2length").default';});var Fg=E(yc=>{Object.defineProperty(yc,"__esModule",{value:true});var Mn=$(),cw=M(),hw=Ng(),dw={message({keyword:n,schemaCode:e}){let t=n==="maxLength"?"more":"fewer";return (0, Mn.str)`must NOT have ${t} than ${e} characters`},params:({schemaCode:n})=>(0, Mn._)`{limit: ${n}}`},fw={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:dw,code(n){let{keyword:e,data:t,schemaCode:r,it:i}=n,a=e==="maxLength"?Mn.operators.GT:Mn.operators.LT,s=i.opts.unicode===false?(0, Mn._)`${t}.length`:(0, Mn._)`${(0, cw.useFunc)(n.gen,hw.default)}(${t})`;n.fail$data((0, Mn._)`${s} ${a} ${r}`);}};yc.default=fw;});var Ig=E(vc=>{Object.defineProperty(vc,"__esModule",{value:true});var pw=mt(),mw=M(),br=$(),gw={message:({schemaCode:n})=>(0, br.str)`must match pattern "${n}"`,params:({schemaCode:n})=>(0, br._)`{pattern: ${n}}`},yw={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:gw,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n,o=s.opts.unicodeRegExp?"u":"";if(r){let{regExp:u}=s.opts.code,l=u.code==="new RegExp"?(0, br._)`new RegExp`:(0, mw.useFunc)(e,u),c=e.let("valid");e.try(()=>e.assign(c,(0, br._)`${l}(${a}, ${o}).test(${t})`),()=>e.assign(c,false)),n.fail$data((0, br._)`!${c}`);}else {let u=(0, pw.usePattern)(n,i);n.fail$data((0, br._)`!${u}.test(${t})`);}}};vc.default=yw;});var kg=E(Cc=>{Object.defineProperty(Cc,"__esModule",{value:true});var Oi=$(),vw={message({keyword:n,schemaCode:e}){let t=n==="maxProperties"?"more":"fewer";return (0, Oi.str)`must NOT have ${t} than ${e} properties`},params:({schemaCode:n})=>(0, Oi._)`{limit: ${n}}`},Cw={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:vw,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxProperties"?Oi.operators.GT:Oi.operators.LT;n.fail$data((0, Oi._)`Object.keys(${t}).length ${i} ${r}`);}};Cc.default=Cw;});var Vg=E(bc=>{Object.defineProperty(bc,"__esModule",{value:true});var xi=mt(),Ti=$(),bw=M(),_w={message:({params:{missingProperty:n}})=>(0, Ti.str)`must have required property '${n}'`,params:({params:{missingProperty:n}})=>(0, Ti._)`{missingProperty: ${n}}`},Sw={keyword:"required",type:"object",schemaType:"array",$data:true,error:_w,code(n){let{gen:e,schema:t,schemaCode:r,data:i,$data:a,it:s}=n,{opts:o}=s;if(!a&&t.length===0)return;let u=t.length>=o.loopRequired;if(s.allErrors?l():c(),o.strictRequired){let f=n.parentSchema.properties,{definedProperties:g}=n.it;for(let y of t)if(f?.[y]===void 0&&!g.has(y)){let C=s.schemaEnv.baseId+s.errSchemaPath,_=`required property "${y}" is not defined at "${C}" (strictRequired)`;(0, bw.checkStrictMode)(s,_,s.opts.strictRequired);}}function l(){if(u||a)n.block$data(Ti.nil,h);else for(let f of t)(0, xi.checkReportMissingProp)(n,f);}function c(){let f=e.let("missing");if(u||a){let g=e.let("valid",true);n.block$data(g,()=>p(f,g)),n.ok(g);}else e.if((0, xi.checkMissingProp)(n,t,f)),(0, xi.reportMissingProp)(n,f),e.else();}function h(){e.forOf("prop",r,f=>{n.setParams({missingProperty:f}),e.if((0, xi.noPropertyInData)(e,i,f,o.ownProperties),()=>n.error());});}function p(f,g){n.setParams({missingProperty:f}),e.forOf(f,r,()=>{e.assign(g,(0, xi.propertyInData)(e,i,f,o.ownProperties)),e.if((0, Ti.not)(g),()=>{n.error(),e.break();});},Ti.nil);}}};bc.default=Sw;});var Rg=E(_c=>{Object.defineProperty(_c,"__esModule",{value:true});var Ni=$(),Ew={message({keyword:n,schemaCode:e}){let t=n==="maxItems"?"more":"fewer";return (0, Ni.str)`must NOT have ${t} than ${e} items`},params:({schemaCode:n})=>(0, Ni._)`{limit: ${n}}`},ww={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:Ew,code(n){let{keyword:e,data:t,schemaCode:r}=n,i=e==="maxItems"?Ni.operators.GT:Ni.operators.LT;n.fail$data((0, Ni._)`${t}.length ${i} ${r}`);}};_c.default=ww;});var ra=E(Sc=>{Object.defineProperty(Sc,"__esModule",{value:true});var $g=$l();$g.code='require("ajv/dist/runtime/equal").default';Sc.default=$g;});var jg=E(wc=>{Object.defineProperty(wc,"__esModule",{value:true});var Ec=gi(),Ie=$(),Dw=M(),Aw=ra(),Pw={message:({params:{i:n,j:e}})=>(0, Ie.str)`must NOT have duplicate items (items ## ${e} and ${n} are identical)`,params:({params:{i:n,j:e}})=>(0, Ie._)`{i: ${n}, j: ${e}}`},Ow={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:Pw,code(n){let{gen:e,data:t,$data:r,schema:i,parentSchema:a,schemaCode:s,it:o}=n;if(!r&&!i)return;let u=e.let("valid"),l=a.items?(0, Ec.getSchemaTypes)(a.items):[];n.block$data(u,c,(0, Ie._)`${s} === false`),n.ok(u);function c(){let g=e.let("i",(0, Ie._)`${t}.length`),y=e.let("j");n.setParams({i:g,j:y}),e.assign(u,true),e.if((0, Ie._)`${g} > 1`,()=>(h()?p:f)(g,y));}function h(){return l.length>0&&!l.some(g=>g==="object"||g==="array")}function p(g,y){let C=e.name("item"),_=(0, Ec.checkDataTypes)(l,C,o.opts.strictNumbers,Ec.DataType.Wrong),v=e.const("indices",(0, Ie._)`{}`);e.for((0, Ie._)`;${g}--;`,()=>{e.let(C,(0, Ie._)`${t}[${g}]`),e.if(_,(0, Ie._)`continue`),l.length>1&&e.if((0, Ie._)`typeof ${C} == "string"`,(0, Ie._)`${C} += "_"`),e.if((0, Ie._)`typeof ${v}[${C}] == "number"`,()=>{e.assign(y,(0, Ie._)`${v}[${C}]`),n.error(),e.assign(u,false).break();}).code((0, Ie._)`${v}[${C}] = ${g}`);});}function f(g,y){let C=(0, Dw.useFunc)(e,Aw.default),_=e.name("outer");e.label(_).for((0, Ie._)`;${g}--;`,()=>e.for((0, Ie._)`${y} = ${g}; ${y}--;`,()=>e.if((0, Ie._)`${C}(${t}[${g}], ${t}[${y}])`,()=>{n.error(),e.assign(u,false).break(_);})));}}};wc.default=Ow;});var Lg=E(Ac=>{Object.defineProperty(Ac,"__esModule",{value:true});var Dc=$(),xw=M(),Tw=ra(),Nw={message:"must be equal to constant",params:({schemaCode:n})=>(0, Dc._)`{allowedValue: ${n}}`},Fw={keyword:"const",$data:true,error:Nw,code(n){let{gen:e,data:t,$data:r,schemaCode:i,schema:a}=n;r||a&&typeof a=="object"?n.fail$data((0, Dc._)`!${(0, xw.useFunc)(e,Tw.default)}(${t}, ${i})`):n.fail((0, Dc._)`${a} !== ${t}`);}};Ac.default=Fw;});var qg=E(Pc=>{Object.defineProperty(Pc,"__esModule",{value:true});var Fi=$(),Iw=M(),kw=ra(),Vw={message:"must be equal to one of the allowed values",params:({schemaCode:n})=>(0, Fi._)`{allowedValues: ${n}}`},Rw={keyword:"enum",schemaType:"array",$data:true,error:Vw,code(n){let{gen:e,data:t,$data:r,schema:i,schemaCode:a,it:s}=n;if(!r&&i.length===0)throw new Error("enum must have non-empty array");let o=i.length>=s.opts.loopEnum,u,l=()=>u??(u=(0, Iw.useFunc)(e,kw.default)),c;if(o||r)c=e.let("valid"),n.block$data(c,h);else {if(!Array.isArray(i))throw new Error("ajv implementation error");let f=e.const("vSchema",a);c=(0, Fi.or)(...i.map((g,y)=>p(f,y)));}n.pass(c);function h(){e.assign(c,false),e.forOf("v",a,f=>e.if((0, Fi._)`${l()}(${t}, ${f})`,()=>e.assign(c,true).break()));}function p(f,g){let y=i[g];return typeof y=="object"&&y!==null?(0, Fi._)`${l()}(${t}, ${f}[${g}])`:(0, Fi._)`${t} === ${y}`}}};Pc.default=Rw;});var xc=E(Oc=>{Object.defineProperty(Oc,"__esModule",{value:true});var $w=Og(),jw=xg(),Lw=Fg(),qw=Ig(),Bw=kg(),Ww=Vg(),Mw=Rg(),Gw=jg(),Jw=Lg(),zw=qg(),Hw=[$w.default,jw.default,Lw.default,qw.default,Bw.default,Ww.default,Mw.default,Gw.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Jw.default,zw.default];Oc.default=Hw;});var Nc=E(Ii=>{Object.defineProperty(Ii,"__esModule",{value:true});Ii.validateAdditionalItems=void 0;var Gn=$(),Tc=M(),Uw={message:({params:{len:n}})=>(0, Gn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Gn._)`{limit: ${n}}`},Kw={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:Uw,code(n){let{parentSchema:e,it:t}=n,{items:r}=e;if(!Array.isArray(r)){(0, Tc.checkStrictMode)(t,'"additionalItems" is ignored when "items" is not an array of schemas');return}Bg(n,r);}};function Bg(n,e){let{gen:t,schema:r,data:i,keyword:a,it:s}=n;s.items=true;let o=t.const("len",(0, Gn._)`${i}.length`);if(r===false)n.setParams({len:e.length}),n.pass((0, Gn._)`${o} <= ${e.length}`);else if(typeof r=="object"&&!(0, Tc.alwaysValidSchema)(s,r)){let l=t.var("valid",(0, Gn._)`${o} <= ${e.length}`);t.if((0, Gn.not)(l),()=>u(l)),n.ok(l);}function u(l){t.forRange("i",e.length,o,c=>{n.subschema({keyword:a,dataProp:c,dataPropType:Tc.Type.Num},l),s.allErrors||t.if((0, Gn.not)(l),()=>t.break());});}}Ii.validateAdditionalItems=Bg;Ii.default=Kw;});var Fc=E(ki=>{Object.defineProperty(ki,"__esModule",{value:true});ki.validateTuple=void 0;var Wg=$(),ia=M(),Xw=mt(),Yw={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(n){let{schema:e,it:t}=n;if(Array.isArray(e))return Mg(n,"additionalItems",e);t.items=true,!(0, ia.alwaysValidSchema)(t,e)&&n.ok((0, Xw.validateArray)(n));}};function Mg(n,e,t=n.schema){let{gen:r,parentSchema:i,data:a,keyword:s,it:o}=n;c(i),o.opts.unevaluated&&t.length&&o.items!==true&&(o.items=ia.mergeEvaluated.items(r,t.length,o.items));let u=r.name("valid"),l=r.const("len",(0, Wg._)`${a}.length`);t.forEach((h,p)=>{(0, ia.alwaysValidSchema)(o,h)||(r.if((0, Wg._)`${l} > ${p}`,()=>n.subschema({keyword:s,schemaProp:p,dataProp:p},u)),n.ok(u));});function c(h){let{opts:p,errSchemaPath:f}=o,g=t.length,y=g===h.minItems&&(g===h.maxItems||h[e]===false);if(p.strictTuples&&!y){let C=`"${s}" is ${g}-tuple, but minItems or maxItems/${e} are not specified or different at path "${f}"`;(0, ia.checkStrictMode)(o,C,p.strictTuples);}}}ki.validateTuple=Mg;ki.default=Yw;});var Gg=E(Ic=>{Object.defineProperty(Ic,"__esModule",{value:true});var Zw=Fc(),Qw={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0, Zw.validateTuple)(n,"items")};Ic.default=Qw;});var zg=E(kc=>{Object.defineProperty(kc,"__esModule",{value:true});var Jg=$(),eD=M(),tD=mt(),nD=Nc(),rD={message:({params:{len:n}})=>(0, Jg.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Jg._)`{limit: ${n}}`},iD={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:rD,code(n){let{schema:e,parentSchema:t,it:r}=n,{prefixItems:i}=t;r.items=true,!(0, eD.alwaysValidSchema)(r,e)&&(i?(0, nD.validateAdditionalItems)(n,i):n.ok((0, tD.validateArray)(n)));}};kc.default=iD;});var Hg=E(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var yt=$(),sa=M(),sD={message:({params:{min:n,max:e}})=>e===void 0?(0, yt.str)`must contain at least ${n} valid item(s)`:(0, yt.str)`must contain at least ${n} and no more than ${e} valid item(s)`,params:({params:{min:n,max:e}})=>e===void 0?(0, yt._)`{minContains: ${n}}`:(0, yt._)`{minContains: ${n}, maxContains: ${e}}`},aD={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:sD,code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n,s,o,{minContains:u,maxContains:l}=r;a.opts.next?(s=u===void 0?1:u,o=l):s=1;let c=e.const("len",(0, yt._)`${i}.length`);if(n.setParams({min:s,max:o}),o===void 0&&s===0){(0, sa.checkStrictMode)(a,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&s>o){(0, sa.checkStrictMode)(a,'"minContains" > "maxContains" is always invalid'),n.fail();return}if((0, sa.alwaysValidSchema)(a,t)){let y=(0, yt._)`${c} >= ${s}`;o!==void 0&&(y=(0, yt._)`${y} && ${c} <= ${o}`),n.pass(y);return}a.items=true;let h=e.name("valid");o===void 0&&s===1?f(h,()=>e.if(h,()=>e.break())):s===0?(e.let(h,true),o!==void 0&&e.if((0, yt._)`${i}.length > 0`,p)):(e.let(h,false),p()),n.result(h,()=>n.reset());function p(){let y=e.name("_valid"),C=e.let("count",0);f(y,()=>e.if(y,()=>g(C)));}function f(y,C){e.forRange("i",0,c,_=>{n.subschema({keyword:"contains",dataProp:_,dataPropType:sa.Type.Num,compositeRule:true},y),C();});}function g(y){e.code((0, yt._)`${y}++`),o===void 0?e.if((0, yt._)`${y} >= ${s}`,()=>e.assign(h,true).break()):(e.if((0, yt._)`${y} > ${o}`,()=>e.assign(h,false).break()),s===1?e.assign(h,true):e.if((0, yt._)`${y} >= ${s}`,()=>e.assign(h,true)));}}};Vc.default=aD;});var aa=E($t=>{Object.defineProperty($t,"__esModule",{value:true});$t.validateSchemaDeps=$t.validatePropertyDeps=$t.error=void 0;var Rc=$(),oD=M(),Vi=mt();$t.error={message:({params:{property:n,depsCount:e,deps:t}})=>{let r=e===1?"property":"properties";return (0, Rc.str)`must have ${r} ${t} when property ${n} is present`},params:({params:{property:n,depsCount:e,deps:t,missingProperty:r}})=>(0, Rc._)`{property: ${n},
6
6
  missingProperty: ${r},
7
7
  depsCount: ${e},
8
- deps: ${t}}`};var aD={keyword:"dependencies",type:"object",schemaType:"object",error:$t.error,code(n){let[e,t]=oD(n);Hg(n,e),Ug(n,t);}};function oD({schema:n}){let e={},t={};for(let r in n){if(r==="__proto__")continue;let i=Array.isArray(n[r])?e:t;i[r]=n[r];}return [e,t]}function Hg(n,e=n.schema){let{gen:t,data:r,it:i}=n;if(Object.keys(e).length===0)return;let a=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let u=(0, Vi.propertyInData)(t,r,s,i.opts.ownProperties);n.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?t.if(u,()=>{for(let l of o)(0, Vi.checkReportMissingProp)(n,l);}):(t.if((0, kc._)`${u} && (${(0, Vi.checkMissingProp)(n,o,a)})`),(0, Vi.reportMissingProp)(n,a),t.else());}}$t.validatePropertyDeps=Hg;function Ug(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, sD.alwaysValidSchema)(a,e[o])||(t.if((0, Vi.propertyInData)(t,r,o,a.opts.ownProperties),()=>{let u=n.subschema({keyword:i,schemaProp:o},s);n.mergeValidEvaluated(u,s);},()=>t.var(s,true)),n.ok(s));}$t.validateSchemaDeps=Ug;$t.default=aD;});var Xg=E(Vc=>{Object.defineProperty(Vc,"__esModule",{value:true});var Kg=$(),uD=M(),lD={message:"property name must be valid",params:({params:n})=>(0, Kg._)`{propertyName: ${n.propertyName}}`},cD={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:lD,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, uD.alwaysValidSchema)(i,t))return;let a=e.name("valid");e.forIn("key",r,s=>{n.setParams({propertyName:s}),n.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:true},a),e.if((0, Kg.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};Vc.default=cD;});var $c=E(Rc=>{Object.defineProperty(Rc,"__esModule",{value:true});var oa=mt(),Tt=$(),hD=pt(),ua=M(),dD={message:"must NOT have additional properties",params:({params:n})=>(0, Tt._)`{additionalProperty: ${n.additionalProperty}}`},fD={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:dD,code(n){let{gen:e,schema:t,parentSchema:r,data:i,errsCount:a,it:s}=n;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=s;if(s.props=true,u.removeAdditional!=="all"&&(0, ua.alwaysValidSchema)(s,t))return;let l=(0, oa.allSchemaProperties)(r.properties),c=(0, oa.allSchemaProperties)(r.patternProperties);h(),n.ok((0, Tt._)`${a} === ${hD.default.errors}`);function h(){e.forIn("key",i,_=>{!l.length&&!c.length?m(_):e.if(f(_),()=>m(_));});}function f(_){let S;if(l.length>8){let b=(0, ua.schemaRefOrVal)(s,r.properties,"properties");S=(0, oa.isOwnProperty)(e,b,_);}else l.length?S=(0, Tt.or)(...l.map(b=>(0, Tt._)`${_} === ${b}`)):S=Tt.nil;return c.length&&(S=(0, Tt.or)(S,...c.map(b=>(0, Tt._)`${(0, oa.usePattern)(n,b)}.test(${_})`))),(0, Tt.not)(S)}function d(_){e.code((0, Tt._)`delete ${i}[${_}]`);}function m(_){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){d(_);return}if(t===false){n.setParams({additionalProperty:_}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, ua.alwaysValidSchema)(s,t)){let S=e.name("valid");u.removeAdditional==="failing"?(y(_,S,false),e.if((0, Tt.not)(S),()=>{n.reset(),d(_);})):(y(_,S),o||e.if((0, Tt.not)(S),()=>e.break()));}}function y(_,S,b){let g={keyword:"additionalProperties",dataProp:_,dataPropType:ua.Type.Str};b===false&&Object.assign(g,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(g,S);}}};Rc.default=fD;});var Qg=E(Lc=>{Object.defineProperty(Lc,"__esModule",{value:true});var pD=mr(),Yg=mt(),jc=M(),Zg=$c(),mD={keyword:"properties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&Zg.default.code(new pD.KeywordCxt(a,Zg.default,"additionalProperties"));let s=(0, Yg.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=jc.mergeEvaluated.props(e,(0, jc.toHash)(s),a.props));let o=s.filter(h=>!(0, jc.alwaysValidSchema)(a,t[h]));if(o.length===0)return;let u=e.name("valid");for(let h of o)l(h)?c(h):(e.if((0, Yg.propertyInData)(e,i,h,a.opts.ownProperties)),c(h),a.allErrors||e.else().var(u,true),e.endIf()),n.it.definedProperties.add(h),n.ok(u);function l(h){return a.opts.useDefaults&&!a.compositeRule&&t[h].default!==void 0}function c(h){n.subschema({keyword:"properties",schemaProp:h,dataProp:h},u);}}};Lc.default=mD;});var ry=E(qc=>{Object.defineProperty(qc,"__esModule",{value:true});var ey=mt(),la=$(),ty=M(),ny=M(),gD={keyword:"patternProperties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,data:r,parentSchema:i,it:a}=n,{opts:s}=a,o=(0, ey.allSchemaProperties)(t),u=o.filter(y=>(0, ty.alwaysValidSchema)(a,t[y]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===true))return;let l=s.strictSchema&&!s.allowMatchingProperties&&i.properties,c=e.name("valid");a.props!==true&&!(a.props instanceof la.Name)&&(a.props=(0, ny.evaluatedPropsToName)(e,a.props));let{props:h}=a;f();function f(){for(let y of o)l&&d(y),a.allErrors?m(y):(e.var(c,true),m(y),e.if(c));}function d(y){for(let _ in l)new RegExp(y).test(_)&&(0, ty.checkStrictMode)(a,`property ${_} matches pattern ${y} (use allowMatchingProperties)`);}function m(y){e.forIn("key",r,_=>{e.if((0, la._)`${(0, ey.usePattern)(n,y)}.test(${_})`,()=>{let S=u.includes(y);S||n.subschema({keyword:"patternProperties",schemaProp:y,dataProp:_,dataPropType:ny.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, la._)`${h}[${_}]`,true):!S&&!a.allErrors&&e.if((0, la.not)(c),()=>e.break());});});}}};qc.default=gD;});var iy=E(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var yD=M(),vD={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, yD.alwaysValidSchema)(r,t)){n.fail();return}let i=e.name("valid");n.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i),n.failResult(i,()=>n.reset(),()=>n.error());},error:{message:"must NOT be valid"}};Bc.default=vD;});var sy=E(Wc=>{Object.defineProperty(Wc,"__esModule",{value:true});var CD=mt(),bD={keyword:"anyOf",schemaType:"array",trackErrors:true,code:CD.validateUnion,error:{message:"must match a schema in anyOf"}};Wc.default=bD;});var ay=E(Mc=>{Object.defineProperty(Mc,"__esModule",{value:true});var ca=$(),_D=M(),SD={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, ca._)`{passingSchemas: ${n.passing}}`},ED={keyword:"oneOf",schemaType:"array",trackErrors:true,error:SD,code(n){let{gen:e,schema:t,parentSchema:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=t,s=e.let("valid",false),o=e.let("passing",null),u=e.name("_valid");n.setParams({passing:o}),e.block(l),n.result(s,()=>n.reset(),()=>n.error(true));function l(){a.forEach((c,h)=>{let f;(0, _D.alwaysValidSchema)(i,c)?e.var(u,true):f=n.subschema({keyword:"oneOf",schemaProp:h,compositeRule:true},u),h>0&&e.if((0, ca._)`${u} && ${s}`).assign(s,false).assign(o,(0, ca._)`[${o}, ${h}]`).else(),e.if(u,()=>{e.assign(s,true),e.assign(o,h),f&&n.mergeEvaluated(f,ca.Name);});});}}};Mc.default=ED;});var oy=E(Gc=>{Object.defineProperty(Gc,"__esModule",{value:true});var wD=M(),DD={keyword:"allOf",schemaType:"array",code(n){let{gen:e,schema:t,it:r}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");let i=e.name("valid");t.forEach((a,s)=>{if((0, wD.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};Gc.default=DD;});var cy=E(Jc=>{Object.defineProperty(Jc,"__esModule",{value:true});var ha=$(),ly=M(),AD={message:({params:n})=>(0, ha.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, ha._)`{failingKeyword: ${n.ifClause}}`},PD={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:AD,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, ly.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=uy(r,"then"),a=uy(r,"else");if(!i&&!a)return;let s=e.let("valid",true),o=e.name("_valid");if(u(),n.reset(),i&&a){let c=e.let("ifClause");n.setParams({ifClause:c}),e.if(o,l("then",c),l("else",c));}else i?e.if(o,l("then")):e.if((0, ha.not)(o),l("else"));n.pass(s,()=>n.error(true));function u(){let c=n.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},o);n.mergeEvaluated(c);}function l(c,h){return ()=>{let f=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(f,s),h?e.assign(h,(0, ha._)`${c}`):n.setParams({ifClause:c});}}}};function uy(n,e){let t=n.schema[e];return t!==void 0&&!(0, ly.alwaysValidSchema)(n,t)}Jc.default=PD;});var hy=E(zc=>{Object.defineProperty(zc,"__esModule",{value:true});var OD=M(),xD={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, OD.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};zc.default=xD;});var Uc=E(Hc=>{Object.defineProperty(Hc,"__esModule",{value:true});var TD=xc(),ND=Mg(),FD=Tc(),ID=Jg(),kD=zg(),VD=aa(),RD=Xg(),$D=$c(),jD=Qg(),LD=ry(),qD=iy(),BD=sy(),WD=ay(),MD=oy(),GD=cy(),JD=hy();function zD(n=false){let e=[qD.default,BD.default,WD.default,MD.default,GD.default,JD.default,RD.default,$D.default,VD.default,jD.default,LD.default];return n?e.push(ND.default,ID.default):e.push(TD.default,FD.default),e.push(kD.default),e}Hc.default=zD;});var dy=E(Kc=>{Object.defineProperty(Kc,"__esModule",{value:true});var _e=$(),HD={message:({schemaCode:n})=>(0, _e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, _e._)`{format: ${n}}`},UD={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:HD,code(n,e){let{gen:t,data:r,$data:i,schema:a,schemaCode:s,it:o}=n,{opts:u,errSchemaPath:l,schemaEnv:c,self:h}=o;if(!u.validateFormats)return;i?f():d();function f(){let m=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),y=t.const("fDef",(0, _e._)`${m}[${s}]`),_=t.let("fType"),S=t.let("format");t.if((0, _e._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>t.assign(_,(0, _e._)`${y}.type || "string"`).assign(S,(0, _e._)`${y}.validate`),()=>t.assign(_,(0, _e._)`"string"`).assign(S,y)),n.fail$data((0, _e.or)(b(),g()));function b(){return u.strictSchema===false?_e.nil:(0, _e._)`${s} && !${S}`}function g(){let v=c.$async?(0, _e._)`(${y}.async ? await ${S}(${r}) : ${S}(${r}))`:(0, _e._)`${S}(${r})`,p=(0, _e._)`(typeof ${S} == "function" ? ${v} : ${S}.test(${r}))`;return (0, _e._)`${S} && ${S} !== true && ${_} === ${e} && !${p}`}}function d(){let m=h.formats[a];if(!m){b();return}if(m===true)return;let[y,_,S]=g(m);y===e&&n.pass(v());function b(){if(u.strictSchema===false){h.logger.warn(p());return}throw new Error(p());function p(){return `unknown format "${a}" ignored in schema at path "${l}"`}}function g(p){let C=p instanceof RegExp?(0, _e.regexpCode)(p):u.code.formats?(0, _e._)`${u.code.formats}${(0, _e.getProperty)(a)}`:void 0,w=t.scopeValue("formats",{key:a,ref:p,code:C});return typeof p=="object"&&!(p instanceof RegExp)?[p.type||"string",p.validate,(0, _e._)`${w}.validate`]:["string",p,w]}function v(){if(typeof m=="object"&&!(m instanceof RegExp)&&m.async){if(!c.$async)throw new Error("async format in sync schema");return (0, _e._)`await ${S}(${r})`}return typeof _=="function"?(0, _e._)`${S}(${r})`:(0, _e._)`${S}.test(${r})`}}}};Kc.default=UD;});var Yc=E(Xc=>{Object.defineProperty(Xc,"__esModule",{value:true});var KD=dy(),XD=[KD.default];Xc.default=XD;});var Zc=E(_r=>{Object.defineProperty(_r,"__esModule",{value:true});_r.contentVocabulary=_r.metadataVocabulary=void 0;_r.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];_r.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var py=E(Qc=>{Object.defineProperty(Qc,"__esModule",{value:true});var YD=hc(),ZD=Pc(),QD=Uc(),eA=Yc(),fy=Zc(),tA=[YD.default,ZD.default,(0, QD.default)(),eA.default,fy.metadataVocabulary,fy.contentVocabulary];Qc.default=tA;});var gy=E(da=>{Object.defineProperty(da,"__esModule",{value:true});da.DiscrError=void 0;var my;(function(n){n.Tag="tag",n.Mapping="mapping";})(my||(da.DiscrError=my={}));});var nh=E(th=>{Object.defineProperty(th,"__esModule",{value:true});var Sr=$(),eh=gy(),yy=_i(),nA=gr(),rA=M(),iA={message:({params:{discrError:n,tagName:e}})=>n===eh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, Sr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},sA={keyword:"discriminator",type:"object",schemaType:"object",error:iA,code(n){let{gen:e,data:t,schema:r,parentSchema:i,it:a}=n,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=r.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let u=e.let("valid",false),l=e.const("tag",(0, Sr._)`${t}${(0, Sr.getProperty)(o)}`);e.if((0, Sr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:eh.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let d=f();e.if(false);for(let m in d)e.elseIf((0, Sr._)`${l} === ${m}`),e.assign(u,h(d[m]));e.else(),n.error(false,{discrError:eh.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(d){let m=e.name("valid"),y=n.subschema({keyword:"oneOf",schemaProp:d},m);return n.mergeEvaluated(y,Sr.Name),m}function f(){var d;let m={},y=S(i),_=true;for(let v=0;v<s.length;v++){let p=s[v];if(p?.$ref&&!(0, rA.schemaHasRulesButRef)(p,a.self.RULES)){let w=p.$ref;if(p=yy.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,w),p instanceof yy.SchemaEnv&&(p=p.schema),p===void 0)throw new nA.default(a.opts.uriResolver,a.baseId,w)}let C=(d=p?.properties)===null||d===void 0?void 0:d[o];if(typeof C!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);_=_&&(y||S(p)),b(C,v);}if(!_)throw new Error(`discriminator: "${o}" must be required`);return m;function S({required:v}){return Array.isArray(v)&&v.includes(o)}function b(v,p){if(v.const)g(v.const,p);else if(v.enum)for(let C of v.enum)g(C,p);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function g(v,p){if(typeof v!="string"||v in m)throw new Error(`discriminator: "${o}" values must be unique strings`);m[v]=p;}}}};th.default=sA;});var vy=E((Yk,aA)=>{aA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:true,readOnly:{type:"boolean",default:false},examples:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:true},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:true,enum:{type:"array",items:true,minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:true};});var by=E((pe,rh)=>{Object.defineProperty(pe,"__esModule",{value:true});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv=void 0;var oA=uc(),uA=py(),lA=nh(),Cy=vy(),cA=["/properties"],fa="http://json-schema.org/draft-07/schema",Er=class extends oA.default{_addVocabularies(){super._addVocabularies(),uA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(lA.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(Cy,cA):Cy;this.addMetaSchema(e,fa,false),this.refs["http://json-schema.org/schema"]=fa;}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(fa)?fa:void 0)}};pe.Ajv=Er;rh.exports=pe=Er;rh.exports.Ajv=Er;Object.defineProperty(pe,"__esModule",{value:true});pe.default=Er;var hA=mr();Object.defineProperty(pe,"KeywordCxt",{enumerable:true,get:function(){return hA.KeywordCxt}});var wr=$();Object.defineProperty(pe,"_",{enumerable:true,get:function(){return wr._}});Object.defineProperty(pe,"str",{enumerable:true,get:function(){return wr.str}});Object.defineProperty(pe,"stringify",{enumerable:true,get:function(){return wr.stringify}});Object.defineProperty(pe,"nil",{enumerable:true,get:function(){return wr.nil}});Object.defineProperty(pe,"Name",{enumerable:true,get:function(){return wr.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:true,get:function(){return wr.CodeGen}});var dA=bi();Object.defineProperty(pe,"ValidationError",{enumerable:true,get:function(){return dA.default}});var fA=gr();Object.defineProperty(pe,"MissingRefError",{enumerable:true,get:function(){return fA.default}});});var sh=E(Ri=>{Object.defineProperty(Ri,"__esModule",{value:true});Ri.dynamicAnchor=void 0;var ih=$(),pA=pt(),_y=_i(),mA=ea(),gA={keyword:"$dynamicAnchor",schemaType:"string",code:n=>Sy(n,n.schema)};function Sy(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, ih._)`${pA.default.dynamicAnchors}${(0, ih.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:yA(n);t.if((0, ih._)`!${i}`,()=>t.assign(i,a));}Ri.dynamicAnchor=Sy;function yA(n){let{schemaEnv:e,schema:t,self:r}=n.it,{root:i,baseId:a,localRefs:s,meta:o}=e.root,{schemaId:u}=r.opts,l=new _y.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return _y.compileSchema.call(r,l),(0, mA.getValidate)(n,l)}Ri.default=gA;});var ah=E($i=>{Object.defineProperty($i,"__esModule",{value:true});$i.dynamicRef=void 0;var Ey=$(),vA=pt(),wy=ea(),CA={keyword:"$dynamicRef",schemaType:"string",code:n=>Dy(n,n.schema)};function Dy(n,e){let{gen:t,keyword:r,it:i}=n;if(e[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let a=e.slice(1);if(i.allErrors)s();else {let u=t.let("valid",false);s(u),n.ok(u);}function s(u){if(i.schemaEnv.root.dynamicAnchors[a]){let l=t.let("_v",(0, Ey._)`${vA.default.dynamicAnchors}${(0, Ey.getProperty)(a)}`);t.if(l,o(l,u),o(i.validateName,u));}else o(i.validateName,u)();}function o(u,l){return l?()=>t.block(()=>{(0, wy.callRef)(n,u),t.let(l,true);}):()=>(0, wy.callRef)(n,u)}}$i.dynamicRef=Dy;$i.default=CA;});var Ay=E(oh=>{Object.defineProperty(oh,"__esModule",{value:true});var bA=sh(),_A=M(),SA={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, bA.dynamicAnchor)(n,""):(0, _A.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};oh.default=SA;});var Py=E(uh=>{Object.defineProperty(uh,"__esModule",{value:true});var EA=ah(),wA={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, EA.dynamicRef)(n,n.schema)};uh.default=wA;});var Oy=E(lh=>{Object.defineProperty(lh,"__esModule",{value:true});var DA=sh(),AA=ah(),PA=Ay(),OA=Py(),xA=[DA.default,AA.default,PA.default,OA.default];lh.default=xA;});var Ty=E(ch=>{Object.defineProperty(ch,"__esModule",{value:true});var xy=aa(),TA={keyword:"dependentRequired",type:"object",schemaType:"object",error:xy.error,code:n=>(0, xy.validatePropertyDeps)(n)};ch.default=TA;});var Ny=E(hh=>{Object.defineProperty(hh,"__esModule",{value:true});var NA=aa(),FA={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, NA.validateSchemaDeps)(n)};hh.default=FA;});var Fy=E(dh=>{Object.defineProperty(dh,"__esModule",{value:true});var IA=M(),kA={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, IA.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};dh.default=kA;});var Iy=E(fh=>{Object.defineProperty(fh,"__esModule",{value:true});var VA=Ty(),RA=Ny(),$A=Fy(),jA=[VA.default,RA.default,$A.default];fh.default=jA;});var Vy=E(ph=>{Object.defineProperty(ph,"__esModule",{value:true});var yn=$(),ky=M(),LA=pt(),qA={message:"must NOT have unevaluated properties",params:({params:n})=>(0, yn._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},BA={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:qA,code(n){let{gen:e,schema:t,data:r,errsCount:i,it:a}=n;if(!i)throw new Error("ajv implementation error");let{allErrors:s,props:o}=a;o instanceof yn.Name?e.if((0, yn._)`${o} !== true`,()=>e.forIn("key",r,h=>e.if(l(o,h),()=>u(h)))):o!==true&&e.forIn("key",r,h=>o===void 0?u(h):e.if(c(o,h),()=>u(h))),a.props=true,n.ok((0, yn._)`${i} === ${LA.default.errors}`);function u(h){if(t===false){n.setParams({unevaluatedProperty:h}),n.error(),s||e.break();return}if(!(0, ky.alwaysValidSchema)(a,t)){let f=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:ky.Type.Str},f),s||e.if((0, yn.not)(f),()=>e.break());}}function l(h,f){return (0, yn._)`!${h} || !${h}[${f}]`}function c(h,f){let d=[];for(let m in h)h[m]===true&&d.push((0, yn._)`${f} !== ${m}`);return (0, yn.and)(...d)}}};ph.default=BA;});var $y=E(mh=>{Object.defineProperty(mh,"__esModule",{value:true});var Jn=$(),Ry=M(),WA={message:({params:{len:n}})=>(0, Jn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Jn._)`{limit: ${n}}`},MA={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:WA,code(n){let{gen:e,schema:t,data:r,it:i}=n,a=i.items||0;if(a===true)return;let s=e.const("len",(0, Jn._)`${r}.length`);if(t===false)n.setParams({len:a}),n.fail((0, Jn._)`${s} > ${a}`);else if(typeof t=="object"&&!(0, Ry.alwaysValidSchema)(i,t)){let u=e.var("valid",(0, Jn._)`${s} <= ${a}`);e.if((0, Jn.not)(u),()=>o(u,a)),n.ok(u);}i.items=true;function o(u,l){e.forRange("i",l,s,c=>{n.subschema({keyword:"unevaluatedItems",dataProp:c,dataPropType:Ry.Type.Num},u),i.allErrors||e.if((0, Jn.not)(u),()=>e.break());});}}};mh.default=MA;});var jy=E(gh=>{Object.defineProperty(gh,"__esModule",{value:true});var GA=Vy(),JA=$y(),zA=[GA.default,JA.default];gh.default=zA;});var qy=E(yh=>{Object.defineProperty(yh,"__esModule",{value:true});var HA=hc(),UA=Pc(),KA=Uc(),XA=Oy(),YA=Iy(),ZA=jy(),QA=Yc(),Ly=Zc(),eP=[XA.default,HA.default,UA.default,(0, KA.default)(true),QA.default,Ly.metadataVocabulary,Ly.contentVocabulary,YA.default,ZA.default];yh.default=eP;});var By=E((hV,tP)=>{tP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true,"https://json-schema.org/draft/2020-12/vocab/applicator":true,"https://json-schema.org/draft/2020-12/vocab/unevaluated":true,"https://json-schema.org/draft/2020-12/vocab/validation":true,"https://json-schema.org/draft/2020-12/vocab/meta-data":true,"https://json-schema.org/draft/2020-12/vocab/format-annotation":true,"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:true,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:true,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:true},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:true}}};});var Wy=E((dV,nP)=>{nP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":true},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}};});var My=E((fV,rP)=>{rP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":true},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}};});var Gy=E((pV,iP)=>{iP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}};});var Jy=E((mV,sP)=>{sP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}};});var zy=E((gV,aP)=>{aP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":true},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}};});var Hy=E((yV,oP)=>{oP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":true},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:true,deprecated:{type:"boolean",default:false},readOnly:{type:"boolean",default:false},writeOnly:{type:"boolean",default:false},examples:{type:"array",items:true}}};});var Uy=E((vV,uP)=>{uP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":true},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:true}]},const:true,enum:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}}};});var Ky=E(vh=>{Object.defineProperty(vh,"__esModule",{value:true});var lP=By(),cP=Wy(),hP=My(),dP=Gy(),fP=Jy(),pP=zy(),mP=Hy(),gP=Uy(),yP=["/properties"];function vP(n){return [lP,cP,hP,dP,fP,e(this,pP),mP,e(this,gP)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,yP):r}}vh.default=vP;});var Xy=E((me,bh)=>{Object.defineProperty(me,"__esModule",{value:true});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var CP=uc(),bP=qy(),_P=nh(),SP=Ky(),Ch="https://json-schema.org/draft/2020-12/schema",Dr=class extends CP.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),bP.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(_P.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(SP.default.call(this,e),this.refs["http://json-schema.org/schema"]=Ch);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Ch)?Ch:void 0)}};me.Ajv2020=Dr;bh.exports=me=Dr;bh.exports.Ajv2020=Dr;Object.defineProperty(me,"__esModule",{value:true});me.default=Dr;var EP=mr();Object.defineProperty(me,"KeywordCxt",{enumerable:true,get:function(){return EP.KeywordCxt}});var Ar=$();Object.defineProperty(me,"_",{enumerable:true,get:function(){return Ar._}});Object.defineProperty(me,"str",{enumerable:true,get:function(){return Ar.str}});Object.defineProperty(me,"stringify",{enumerable:true,get:function(){return Ar.stringify}});Object.defineProperty(me,"nil",{enumerable:true,get:function(){return Ar.nil}});Object.defineProperty(me,"Name",{enumerable:true,get:function(){return Ar.Name}});Object.defineProperty(me,"CodeGen",{enumerable:true,get:function(){return Ar.CodeGen}});var wP=bi();Object.defineProperty(me,"ValidationError",{enumerable:true,get:function(){return wP.default}});var DP=gr();Object.defineProperty(me,"MissingRefError",{enumerable:true,get:function(){return DP.default}});});var Sh=E(pa=>{Object.defineProperty(pa,"__esModule",{value:true});pa.CompilerOptions=void 0;var _h=class{constructor(e=null,t=[],r=false,i=null,a=null){this.sourceFilename=e,this.pluginNames=t,this.countAllVisits=r,this.errorHandler=i,this.fileHandler=a;}};pa.CompilerOptions=_h;});var Yy=E(ma=>{Object.defineProperty(ma,"__esModule",{value:true});ma.DebugSourceRange=void 0;var Eh=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};ma.DebugSourceRange=Eh;});var Pr=E(ga=>{Object.defineProperty(ga,"__esModule",{value:true});ga.ErrorType=void 0;var Zy;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(Zy||(ga.ErrorType=Zy={}));});var Qy=E(ya=>{Object.defineProperty(ya,"__esModule",{value:true});ya.Argument=void 0;var wh=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};ya.Argument=wh;});var ae=E(Oe=>{Object.defineProperty(Oe,"__esModule",{value:true});Oe.filterUndef=Oe.isEquatable=Oe.nullIfUndefined=Oe.asINamedContentOrNull=Oe.asBooleanOrThrows=Oe.asNumberOrThrows=Oe.asOrThrows=Oe.asOrNull=void 0;function AP(n,e){return n instanceof e?ev(n):null}Oe.asOrNull=AP;function PP(n,e){if(n instanceof e)return ev(n);throw new Error(`${n} is not of type ${e}`)}Oe.asOrThrows=PP;function OP(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}Oe.asNumberOrThrows=OP;function xP(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}Oe.asBooleanOrThrows=xP;function TP(n){return n.hasValidName&&n.name?n:null}Oe.asINamedContentOrNull=TP;function NP(n){return typeof n>"u"?null:n}Oe.nullIfUndefined=NP;function FP(n){return typeof n=="object"&&typeof n.Equals=="function"}Oe.isEquatable=FP;function ev(n,e){return n}function IP(n){return n!=null}Oe.filterUndef=IP;});var ye=E(va=>{Object.defineProperty(va,"__esModule",{value:true});va.ParsedObject=void 0;var tv=ae(),Dh=class{constructor(){this._alreadyHadError=false,this._alreadyHadWarning=false,this._debugMetadata=null,this._runtimeObject=null,this.content=[],this.parent=null,this.GetType=()=>this.typeName,this.AddContent=e=>{this.content===null&&(this.content=[]);let t=Array.isArray(e)?e:[e];for(let r of t)r.hasOwnProperty("parent")&&(r.parent=this),this.content.push(r);if(!Array.isArray(e))return e},this.InsertContent=(e,t)=>(this.content===null&&(this.content=[]),t.parent=this,this.content.splice(e,0,t),t),this.Find=e=>(t=null)=>{let r=(0, tv.asOrNull)(this,e);if(r!==null&&(t===null||t(r)===true))return r;if(this.content===null)return null;for(let i of this.content){let a=i.Find&&i.Find(e)(t);if(a)return a}return null},this.FindAll=e=>(t,r)=>{let i=Array.isArray(r)?r:[],a=(0, tv.asOrNull)(this,e);if(a!==null&&(!t||t(a)===true)&&i.push(a),this.content===null)return [];for(let s of this.content)s.FindAll&&s.FindAll(e)(t,i);return i},this.Warning=(e,t=null)=>{this.Error(e,t,true);};}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get hasOwnDebugMetadata(){return !!this.debugMetadata}get typeName(){return "ParsedObject"}get story(){let e=this;for(;e.parent;)e=e.parent;return e}get runtimeObject(){return this._runtimeObject||(this._runtimeObject=this.GenerateRuntimeObject(),this._runtimeObject&&(this._runtimeObject.debugMetadata=this.debugMetadata)),this._runtimeObject}set runtimeObject(e){this._runtimeObject=e;}get runtimePath(){if(!this.runtimeObject.path)throw new Error;return this.runtimeObject.path}get containerForCounting(){return this.runtimeObject}get ancestry(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e=e.reverse(),e}ResolveReferences(e){if(this.content!==null)for(let t of this.content)t.ResolveReferences(e);}Error(e,t=null,r=false){if(t===null&&(t=this),!(t._alreadyHadError&&!r||t._alreadyHadWarning&&r)){if(this.parent)this.parent.Error(e,t,r);else throw new Error(`No parent object to send error to: ${e}`);r?t._alreadyHadWarning=true:t._alreadyHadError=true;}}};va.ParsedObject=Dh;});var ba=E(Ca=>{Object.defineProperty(Ca,"__esModule",{value:true});Ca.AuthorWarning=void 0;var kP=ye(),Ah=class extends kP.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};Ca.AuthorWarning=Ah;});var st=E(ji=>{Object.defineProperty(ji,"__esModule",{value:true});ji.Path=void 0;var Or=class n{constructor(){if(this._components=[],this._componentsString=null,this._isRelative=false,typeof arguments[0]=="string"){let e=arguments[0];this.componentsString=e;}else if(arguments[0]instanceof n.Component&&arguments[1]instanceof n){let e=arguments[0],t=arguments[1];this._components.push(e),this._components=this._components.concat(t._components);}else if(arguments[0]instanceof Array){let e=arguments[0],t=!!arguments[1];this._components=this._components.concat(e),this._isRelative=t;}}get isRelative(){return this._isRelative}get componentCount(){return this._components.length}get head(){return this._components.length>0?this._components[0]:null}get tail(){if(this._components.length>=2){let e=this._components.slice(1,this._components.length);return new n(e)}else return n.self}get length(){return this._components.length}get lastComponent(){let e=this._components.length-1;return e>=0?this._components[e]:null}get containsNamedComponent(){for(let e=0,t=this._components.length;e<t;e++)if(!this._components[e].isIndex)return true;return false}static get self(){let e=new n;return e._isRelative=true,e}GetComponent(e){return this._components[e]}PathByAppendingPath(e){let t=new n,r=0;for(let i=0;i<e._components.length&&e._components[i].isParent;++i)r++;for(let i=0;i<this._components.length-r;++i)t._components.push(this._components[i]);for(let i=r;i<e._components.length;++i)t._components.push(e._components[i]);return t}get componentsString(){return this._componentsString==null&&(this._componentsString=this._components.join("."),this.isRelative&&(this._componentsString="."+this._componentsString)),this._componentsString}set componentsString(e){if(this._components.length=0,this._componentsString=e,this._componentsString==null||this._componentsString=="")return;this._componentsString[0]=="."&&(this._isRelative=true,this._componentsString=this._componentsString.substring(1));let t=this._componentsString.split(".");for(let r of t)/^(\-|\+)?([0-9]+|Infinity)$/.test(r)?this._components.push(new n.Component(parseInt(r))):this._components.push(new n.Component(r));}toString(){return this.componentsString}Equals(e){if(e==null||e._components.length!=this._components.length||e.isRelative!=this.isRelative)return false;for(let t=0,r=e._components.length;t<r;t++)if(!e._components[t].Equals(this._components[t]))return false;return true}PathByAppendingComponent(e){let t=new n;return t._components.push(...this._components),t._components.push(e),t}};ji.Path=Or;Or.parentId="^";(function(n){class e{constructor(r){this.index=-1,this.name=null,typeof r=="string"?this.name=r:this.index=r;}get isIndex(){return this.index>=0}get isParent(){return this.name==n.parentId}static ToParent(){return new e(n.parentId)}toString(){return this.isIndex?this.index.toString():this.name}Equals(r){return r!=null&&r.isIndex==this.isIndex?this.isIndex?this.index==r.index:this.name==r.name:false}}n.Component=e;})(Or||(ji.Path=Or={}));});var Li=E(_a=>{Object.defineProperty(_a,"__esModule",{value:true});_a.Debug=void 0;var nv;(function(n){function e(r,i,a){t(r instanceof i,a);}n.AssertType=e;function t(r,i){if(!r)throw typeof i<"u"&&console.warn(i),console.trace&&console.trace(),new Error("")}n.Assert=t;})(nv||(_a.Debug=nv={}));});var Le=E(xr=>{Object.defineProperty(xr,"__esModule",{value:true});xr.throwNullException=xr.NullException=void 0;var Sa=class extends Error{};xr.NullException=Sa;function VP(n){throw new Sa(`${n} is null or undefined`)}xr.throwNullException=VP;});var at=E(wa=>{Object.defineProperty(wa,"__esModule",{value:true});wa.InkObject=void 0;var Tr=st(),qi=Ee(),Ph=Li(),Nr=ae(),Ea=Le(),Oh=class{constructor(){this.parent=null,this._debugMetadata=null,this._path=null;}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get ownDebugMetadata(){return this._debugMetadata}DebugLineNumberOfPath(e){if(e===null)return null;let t=this.rootContentContainer;if(t){let r=t.ContentAtPath(e).obj;if(r){let i=r.debugMetadata;if(i!==null)return i.startLineNumber}}return null}get path(){if(this._path==null)if(this.parent==null)this._path=new Tr.Path;else {let e=[],t=this,r=(0, Nr.asOrNull)(t.parent,qi.Container);for(;r!==null;){let i=(0, Nr.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, Ea.throwNullException)("namedChild.name");e.unshift(new Tr.Path.Component(i.name));}else e.unshift(new Tr.Path.Component(r.content.indexOf(t)));t=r,r=(0, Nr.asOrNull)(r.parent,qi.Container);}this._path=new Tr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, Ea.throwNullException)("path");if(e.isRelative){let t=(0, Nr.asOrNull)(this,qi.Container);return t===null&&(Ph.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, Nr.asOrNull)(this.parent,qi.Container),Ph.Debug.Assert(t!==null,"Expected parent to be a container"),Ph.Debug.Assert(e.GetComponent(0).isParent),e=e.tail),t===null?(0, Ea.throwNullException)("nearestContainer"):t.ContentAtPath(e)}else {let t=this.rootContentContainer;return t===null?(0, Ea.throwNullException)("contentContainer"):t.ContentAtPath(e)}}ConvertPathToRelative(e){let t=this.path,r=Math.min(e.length,t.length),i=-1;for(let u=0;u<r;++u){let l=t.GetComponent(u),c=e.GetComponent(u);if(l.Equals(c))i=u;else break}if(i==-1)return e;let a=t.componentCount-1-i,s=[];for(let u=0;u<a;++u)s.push(Tr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new Tr.Path(s,true)}CompactPathString(e){let t=null,r=null;return e.isRelative?(r=e.componentsString,t=this.path.PathByAppendingPath(e).componentsString):(r=this.ConvertPathToRelative(e).componentsString,t=e.componentsString),r.length<t.length?r:t}get rootContentContainer(){let e=this;for(;e.parent;)e=e.parent;return (0, Nr.asOrNull)(e,qi.Container)}Copy(){throw Error("Not Implemented: Doesn't support copying")}SetChild(e,t,r){e[t]&&(e[t]=null),e[t]=r,e[t]&&(e[t].parent=this);}Equals(e){return e===this}};wa.InkObject=Oh;});var zn=E(Da=>{Object.defineProperty(Da,"__esModule",{value:true});Da.StringBuilder=void 0;var xh=class{constructor(e){e=typeof e<"u"?e.toString():"",this.string=e;}get Length(){return this.string.length}Append(e){e!==null&&(this.string+=e);}AppendLine(e){typeof e<"u"&&this.Append(e),this.string+=`
9
- `;}AppendFormat(e,...t){this.string+=e.replace(/{(\d+)}/g,(r,i)=>typeof t[i]<"u"?t[i]:r);}toString(){return this.string}Clear(){this.string="";}};Da.StringBuilder=xh;});var ut=E(Fr=>{Object.defineProperty(Fr,"__esModule",{value:true});Fr.InkList=Fr.InkListItem=void 0;var jt=Le(),RP=zn(),ot=class n{constructor(){if(this.originName=null,this.itemName=null,typeof arguments[1]<"u"){let e=arguments[0],t=arguments[1];this.originName=e,this.itemName=t;}else if(arguments[0]){let t=arguments[0].toString().split(".");this.originName=t[0],this.itemName=t[1];}}static get Null(){return new n(null,null)}get isNull(){return this.originName==null&&this.itemName==null}get fullName(){return (this.originName!==null?this.originName:"?")+"."+this.itemName}toString(){return this.fullName}Equals(e){if(e instanceof n){let t=e;return t.itemName==this.itemName&&t.originName==this.originName}return false}copy(){return new n(this.originName,this.itemName)}serialized(){return JSON.stringify({originName:this.originName,itemName:this.itemName})}static fromSerializedKey(e){let t=JSON.parse(e);if(!n.isLikeInkListItem(t))return n.Null;let r=t;return new n(r.originName,r.itemName)}static isLikeInkListItem(e){return !(typeof e!="object"||!e.hasOwnProperty("originName")||!e.hasOwnProperty("itemName")||typeof e.originName!="string"&&typeof e.originName!==null||typeof e.itemName!="string"&&typeof e.itemName!==null)}};Fr.InkListItem=ot;var Th=class n extends Map{constructor(){if(super(arguments[0]instanceof n?arguments[0]:[]),this.origins=null,this._originNames=[],arguments[0]instanceof n){let e=arguments[0],t=e.originNames;t!==null&&(this._originNames=t.slice()),e.origins!==null&&(this.origins=e.origins.slice());}else if(typeof arguments[0]=="string"){let e=arguments[0],t=arguments[1];if(this.SetInitialOriginName(e),t.listDefinitions===null)return (0, jt.throwNullException)("originStory.listDefinitions");let r=t.listDefinitions.TryListGetDefinition(e,null);if(r.exists){if(r.result===null)return (0, jt.throwNullException)("def.result");this.origins=[r.result];}else throw new Error("InkList origin could not be found in story when constructing new list: "+e)}else if(typeof arguments[0]=="object"&&arguments[0].hasOwnProperty("Key")&&arguments[0].hasOwnProperty("Value")){let e=arguments[0];this.Add(e.Key,e.Value);}}static FromString(e,t){var r;if(e==null||e=="")return new n;let i=(r=t.listDefinitions)===null||r===void 0?void 0:r.FindSingleItemListWithName(e);if(i)return i.value===null?(0, jt.throwNullException)("listValue.value"):new n(i.value);throw new Error("Could not find the InkListItem from the string '"+e+"' to create an InkList because it doesn't exist in the original list definition in ink.")}AddItem(e,t=null){if(e instanceof ot){let r=e;if(r.originName==null){this.AddItem(r.itemName);return}if(this.origins===null)return (0, jt.throwNullException)("this.origins");for(let i of this.origins)if(i.name==r.originName){let a=i.TryGetValueForItem(r,0);if(a.exists){this.Add(r,a.result);return}else throw new Error("Could not add the item "+r+" to this list because it doesn't exist in the original list definition in ink.")}throw new Error("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found.")}else if(e!==null){let r=e,i=null;if(this.origins===null)return (0, jt.throwNullException)("this.origins");for(let a of this.origins){if(r===null)return (0, jt.throwNullException)("itemName");if(a.ContainsItemWithName(r)){if(i!=null)throw new Error("Could not add the item "+r+" to this list because it could come from either "+a.name+" or "+i.name);i=a;}}if(i==null){if(t==null)throw new Error("Could not add the item "+r+" to this list because it isn't known to any list definitions previously associated with this list.");{let a=n.FromString(r,t).orderedItems[0];this.Add(a.Key,a.Value);}}else {let a=new ot(i.name,r),s=i.ValueForItem(a);this.Add(a,s);}}}ContainsItemNamed(e){for(let[t]of this)if(ot.fromSerializedKey(t).itemName==e)return true;return false}ContainsKey(e){return this.has(e.serialized())}Add(e,t){let r=e.serialized();if(this.has(r))throw new Error(`The Map already contains an entry for ${e}`);this.set(r,t);}Remove(e){return this.delete(e.serialized())}get Count(){return this.size}get originOfMaxItem(){if(this.origins==null)return null;let e=this.maxItem.Key.originName,t=null;return this.origins.every(r=>r.name==e?(t=r,false):true),t}get originNames(){if(this.Count>0){this._originNames==null&&this.Count>0?this._originNames=[]:(this._originNames||(this._originNames=[]),this._originNames.length=0);for(let[e]of this){let t=ot.fromSerializedKey(e);if(t.originName===null)return (0, jt.throwNullException)("item.originName");this._originNames.push(t.originName);}}return this._originNames}SetInitialOriginName(e){this._originNames=[e];}SetInitialOriginNames(e){e==null?this._originNames=null:this._originNames=e.slice();}get maxItem(){let e={Key:ot.Null,Value:0};for(let[t,r]of this){let i=ot.fromSerializedKey(t);(e.Key.isNull||r>e.Value)&&(e={Key:i,Value:r});}return e}get minItem(){let e={Key:ot.Null,Value:0};for(let[t,r]of this){let i=ot.fromSerializedKey(t);(e.Key.isNull||r<e.Value)&&(e={Key:i,Value:r});}return e}get inverse(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=ot.fromSerializedKey(r);this.ContainsKey(a)||e.Add(a,i);}return e}get all(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=ot.fromSerializedKey(r);e.set(a.serialized(),i);}return e}Union(e){let t=new n(this);for(let[r,i]of e)t.set(r,i);return t}Intersect(e){let t=new n;for(let[r,i]of this)e.has(r)&&t.set(r,i);return t}HasIntersection(e){for(let[t]of this)if(e.has(t))return true;return false}Without(e){let t=new n(this);for(let[r]of e)t.delete(r);return t}Contains(e){if(typeof e=="string")return this.ContainsItemNamed(e);let t=e;if(t.size==0||this.size==0)return false;for(let[r]of t)if(!this.has(r))return false;return true}GreaterThan(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>e.maxItem.Value}GreaterThanOrEquals(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>=e.minItem.Value&&this.maxItem.Value>=e.maxItem.Value}LessThan(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<e.minItem.Value}LessThanOrEquals(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<=e.maxItem.Value&&this.minItem.Value<=e.minItem.Value}MaxAsList(){return this.Count>0?new n(this.maxItem):new n}MinAsList(){return this.Count>0?new n(this.minItem):new n}ListWithSubRange(e,t){if(this.Count==0)return new n;let r=this.orderedItems,i=0,a=Number.MAX_SAFE_INTEGER;Number.isInteger(e)?i=e:e instanceof n&&e.Count>0&&(i=e.minItem.Value),Number.isInteger(t)?a=t:t instanceof n&&t.Count>0&&(a=t.maxItem.Value);let s=new n;s.SetInitialOriginNames(this.originNames);for(let o of r)o.Value>=i&&o.Value<=a&&s.Add(o.Key,o.Value);return s}Equals(e){if(!(e instanceof n)||e.Count!=this.Count)return false;for(let[t]of this)if(!e.has(t))return false;return true}get orderedItems(){let e=new Array;for(let[t,r]of this){let i=ot.fromSerializedKey(t);e.push({Key:i,Value:r});}return e.sort((t,r)=>t.Key.originName===null?(0, jt.throwNullException)("x.Key.originName"):r.Key.originName===null?(0, jt.throwNullException)("y.Key.originName"):t.Value==r.Value?t.Key.originName.localeCompare(r.Key.originName):t.Value<r.Value?-1:t.Value>r.Value?1:0),e}get singleItem(){for(let e of this.orderedItems)return e.Key;return null}toString(){let e=this.orderedItems,t=new RP.StringBuilder;for(let r=0;r<e.length;r++){r>0&&t.Append(", ");let i=e[r].Key;if(i.itemName===null)return (0, jt.throwNullException)("item.itemName");t.Append(i.itemName);}return t.toString()}valueOf(){return NaN}};Fr.InkList=Th;});var Bi=E(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.StoryException=void 0;var Nh=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};Aa.StoryException=Nh;});var Ir=E(vn=>{Object.defineProperty(vn,"__esModule",{value:true});vn.tryParseFloat=vn.tryParseInt=vn.tryGetValueFromMap=void 0;function $P(n,e,t){if(n===null)return {result:t,exists:false};let r=n.get(e);return typeof r>"u"?{result:t,exists:false}:{result:r,exists:true}}vn.tryGetValueFromMap=$P;function jP(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}vn.tryParseInt=jP;function LP(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}vn.tryParseFloat=LP;});var ve=E(Ce=>{Object.defineProperty(Ce,"__esModule",{value:true});Ce.ValueType=Ce.ListValue=Ce.VariablePointerValue=Ce.DivertTargetValue=Ce.StringValue=Ce.FloatValue=Ce.IntValue=Ce.BoolValue=Ce.Value=Ce.AbstractValue=void 0;var rv=at(),iv=st(),Hn=ut(),qP=Bi(),Wi=ae(),sv=Ir(),vt=Le(),Pa=class n extends rv.InkObject{static Create(e,t){if(t){if(t===ge.Int&&Number.isInteger(Number(e)))return new qt(Number(e));if(t===ge.Float&&!isNaN(e))return new Bt(Number(e))}if(typeof e=="boolean")return new kr(!!e);if(typeof e=="string")return new tn(String(e));if(Number.isInteger(Number(e)))return new qt(Number(e));if(isNaN(e)){if(e instanceof iv.Path)return new Oa((0, Wi.asOrThrows)(e,iv.Path));if(e instanceof Hn.InkList)return new xa((0, Wi.asOrThrows)(e,Hn.InkList))}else return new Bt(Number(e));return null}Copy(){return (0, Wi.asOrThrows)(n.Create(this.valueObject),rv.InkObject)}BadCastException(e){return new qP.StoryException("Can't cast "+this.valueObject+" from "+this.valueType+" to "+e)}};Ce.AbstractValue=Pa;var Lt=class extends Pa{constructor(e){super(),this.value=e;}get valueObject(){return this.value}toString(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value.toString()}};Ce.Value=Lt;var kr=class extends Lt{constructor(e){super(e||false);}get isTruthy(){return !!this.value}get valueType(){return ge.Bool}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Int)return new qt(this.value?1:0);if(e==ge.Float)return new Bt(this.value?1:0);if(e==ge.String)return new tn(this.value?"true":"false");throw this.BadCastException(e)}toString(){return this.value?"true":"false"}};Ce.BoolValue=kr;var qt=class extends Lt{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Int}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new kr(this.value!==0);if(e==ge.Float)return new Bt(this.value);if(e==ge.String)return new tn(""+this.value);throw this.BadCastException(e)}};Ce.IntValue=qt;var Bt=class extends Lt{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Float}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new kr(this.value!==0);if(e==ge.Int)return new qt(this.value);if(e==ge.String)return new tn(""+this.value);throw this.BadCastException(e)}};Ce.FloatValue=Bt;var tn=class extends Lt{constructor(e){if(super(e||""),this._isNewline=this.value==`
10
- `,this._isInlineWhitespace=true,this.value===null)return (0, vt.throwNullException)("Value.value");this.value.length>0&&this.value.split("").every(t=>t!=" "&&t!=" "?(this._isInlineWhitespace=false,false):true);}get valueType(){return ge.String}get isTruthy(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value.length>0}get isNewline(){return this._isNewline}get isInlineWhitespace(){return this._isInlineWhitespace}get isNonWhitespace(){return !this.isNewline&&!this.isInlineWhitespace}Cast(e){if(e==this.valueType)return this;if(e==ge.Int){let t=(0, sv.tryParseInt)(this.value);if(t.exists)return new qt(t.result);throw this.BadCastException(e)}if(e==ge.Float){let t=(0, sv.tryParseFloat)(this.value);if(t.exists)return new Bt(t.result);throw this.BadCastException(e)}throw this.BadCastException(e)}};Ce.StringValue=tn;var Oa=class extends Lt{constructor(e=null){super(e);}get valueType(){return ge.DivertTarget}get targetPath(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value}set targetPath(e){this.value=e;}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a divert target")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "DivertTargetValue("+this.targetPath+")"}};Ce.DivertTargetValue=Oa;var Fh=class n extends Lt{constructor(e,t=-1){super(e),this._contextIndex=t;}get contextIndex(){return this._contextIndex}set contextIndex(e){this._contextIndex=e;}get variableName(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value}set variableName(e){this.value=e;}get valueType(){return ge.VariablePointer}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a variable pointer")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "VariablePointerValue("+this.variableName+")"}Copy(){return new n(this.variableName,this.contextIndex)}};Ce.VariablePointerValue=Fh;var xa=class n extends Lt{get isTruthy(){return this.value===null?(0, vt.throwNullException)("this.value"):this.value.Count>0}get valueType(){return ge.List}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==ge.Int){let t=this.value.maxItem;return t.Key.isNull?new qt(0):new qt(t.Value)}else if(e==ge.Float){let t=this.value.maxItem;return t.Key.isNull?new Bt(0):new Bt(t.Value)}else if(e==ge.String){let t=this.value.maxItem;return t.Key.isNull?new tn(""):new tn(t.Key.toString())}if(e==this.valueType)return this;throw this.BadCastException(e)}constructor(e,t){super(null),!e&&!t?this.value=new Hn.InkList:e instanceof Hn.InkList?this.value=new Hn.InkList(e):e instanceof Hn.InkListItem&&typeof t=="number"&&(this.value=new Hn.InkList({Key:e,Value:t}));}static RetainListOriginsForAssignment(e,t){let r=(0, Wi.asOrNull)(e,n),i=(0, Wi.asOrNull)(t,n);if(i&&i.value===null)return (0, vt.throwNullException)("newList.value");if(r&&r.value===null)return (0, vt.throwNullException)("oldList.value");r&&i&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}};Ce.ListValue=xa;var ge;(function(n){n[n.Bool=-1]="Bool",n[n.Int=0]="Int",n[n.Float=1]="Float",n[n.List=2]="List",n[n.String=3]="String",n[n.DivertTarget=4]="DivertTarget",n[n.VariablePointer=5]="VariablePointer";})(ge||(Ce.ValueType=ge={}));});var av=E(Ta=>{Object.defineProperty(Ta,"__esModule",{value:true});Ta.SearchResult=void 0;var BP=Ee(),Ih=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof BP.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};Ta.SearchResult=Ih;});var Ee=E(Gi=>{Object.defineProperty(Gi,"__esModule",{value:true});Gi.Container=void 0;var WP=ve(),ov=Le(),MP=zn(),Vr=at(),GP=av(),uv=st(),lv=Li(),JP=Ir(),Cn=ae(),Mi=class n extends Vr.InkObject{constructor(){super(...arguments),this.name=null,this._content=[],this.namedContent=new Map,this.visitsShouldBeCounted=false,this.turnIndexShouldBeCounted=false,this.countingAtStartOnly=false,this._pathToFirstLeafContent=null;}get hasValidName(){return this.name!=null&&this.name.length>0}get content(){return this._content}set content(e){this.AddContent(e);}get namedOnlyContent(){let e=new Map;for(let[t,r]of this.namedContent){let i=(0, Cn.asOrThrows)(r,Vr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, Cn.asINamedContentOrNull)(t);r!=null&&r.hasValidName&&e.delete(r.name);}return e.size==0&&(e=null),e}set namedOnlyContent(e){let t=this.namedOnlyContent;if(t!=null)for(let[r]of t)this.namedContent.delete(r);if(e!=null)for(let[,r]of e){let i=(0, Cn.asINamedContentOrNull)(r);i!=null&&this.AddToNamedContentOnly(i);}}get countFlags(){let e=0;return this.visitsShouldBeCounted&&(e|=n.CountFlags.Visits),this.turnIndexShouldBeCounted&&(e|=n.CountFlags.Turns),this.countingAtStartOnly&&(e|=n.CountFlags.CountStartOnly),e==n.CountFlags.CountStartOnly&&(e=0),e}set countFlags(e){let t=e;(t&n.CountFlags.Visits)>0&&(this.visitsShouldBeCounted=true),(t&n.CountFlags.Turns)>0&&(this.turnIndexShouldBeCounted=true),(t&n.CountFlags.CountStartOnly)>0&&(this.countingAtStartOnly=true);}get pathToFirstLeafContent(){return this._pathToFirstLeafContent==null&&(this._pathToFirstLeafContent=this.path.PathByAppendingPath(this.internalPathToFirstLeafContent)),this._pathToFirstLeafContent}get internalPathToFirstLeafContent(){let e=[],t=this;for(;t instanceof n;)t.content.length>0&&(e.push(new uv.Path.Component(0)),t=t.content[0]);return new uv.Path(e)}AddContent(e){if(e instanceof Array){let t=e;for(let r of t)this.AddContent(r);}else {let t=e;if(this._content.push(t),t.parent)throw new Error("content is already in "+t.parent);t.parent=this,this.TryAddNamedContent(t);}}TryAddNamedContent(e){let t=(0, Cn.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){lv.Debug.AssertType(e,Vr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, Cn.asOrThrows)(e,Vr.InkObject);if(t.parent=this,e.name===null)return (0, ov.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new GP.SearchResult;i.approximate=false;let a=this,s=this;for(let o=t;o<r;++o){let u=e.GetComponent(o);if(a==null){i.approximate=true;break}let l=a.ContentWithPathComponent(u);if(l==null){i.approximate=true;break}let c=(0, Cn.asOrNull)(l,n);if(o<r-1&&c==null){i.approximate=true;break}s=l,a=c;}return i.obj=s,i}InsertContent(e,t){if(this.content.splice(t,0,e),e.parent)throw new Error("content is already in "+e.parent);e.parent=this,this.TryAddNamedContent(e);}AddContentsOfContainer(e){this.content.push(...e.content);for(let t of e.content)t.parent=this,this.TryAddNamedContent(t);}ContentWithPathComponent(e){if(e.isIndex)return e.index>=0&&e.index<this.content.length?this.content[e.index]:null;if(e.isParent)return this.parent;{if(e.name===null)return (0, ov.throwNullException)("component.name");let t=(0, JP.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, Cn.asOrThrows)(t.result,Vr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new MP.StringBuilder,this.BuildStringOfHierarchy(e,0,null),e.toString();e=arguments[0];let t=arguments[1],r=arguments[2];function i(){for(let o=0;o<4*t;++o)e.Append(" ");}i(),e.Append("["),this.hasValidName&&e.AppendFormat(" ({0})",this.name),this==r&&e.Append(" <---"),e.AppendLine(),t++;for(let s=0;s<this.content.length;++s){let o=this.content[s];o instanceof n?o.BuildStringOfHierarchy(e,t,r):(i(),o instanceof WP.StringValue?(e.Append('"'),e.Append(o.toString().replace(`
11
- `,"\\n")),e.Append('"')):e.Append(o.toString())),s!=this.content.length-1&&e.Append(","),!(o instanceof n)&&o==r&&e.Append(" <---"),e.AppendLine();}let a=new Map;for(let[s,o]of this.namedContent)this.content.indexOf((0, Cn.asOrThrows)(o,Vr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)lv.Debug.AssertType(s,n,"Can only print out named Containers"),s.BuildStringOfHierarchy(e,t,r),e.AppendLine();}t--,i(),e.Append("]");}};Gi.Container=Mi;(function(n){(function(t){t[t.Start=0]="Start",t[t.Visits=1]="Visits",t[t.Turns=2]="Turns",t[t.CountStartOnly=4]="CountStartOnly";})(n.CountFlags||(n.CountFlags={}));})(Mi||(Gi.Container=Mi={}));});var qe=E(zi=>{Object.defineProperty(zi,"__esModule",{value:true});zi.ControlCommand=void 0;var zP=at(),Ji=class n extends zP.InkObject{get commandType(){return this._commandType}constructor(e=n.CommandType.NotSet){super(),this._commandType=e;}Copy(){return new n(this.commandType)}static EvalStart(){return new n(n.CommandType.EvalStart)}static EvalOutput(){return new n(n.CommandType.EvalOutput)}static EvalEnd(){return new n(n.CommandType.EvalEnd)}static Duplicate(){return new n(n.CommandType.Duplicate)}static PopEvaluatedValue(){return new n(n.CommandType.PopEvaluatedValue)}static PopFunction(){return new n(n.CommandType.PopFunction)}static PopTunnel(){return new n(n.CommandType.PopTunnel)}static BeginString(){return new n(n.CommandType.BeginString)}static EndString(){return new n(n.CommandType.EndString)}static NoOp(){return new n(n.CommandType.NoOp)}static ChoiceCount(){return new n(n.CommandType.ChoiceCount)}static Turns(){return new n(n.CommandType.Turns)}static TurnsSince(){return new n(n.CommandType.TurnsSince)}static ReadCount(){return new n(n.CommandType.ReadCount)}static Random(){return new n(n.CommandType.Random)}static SeedRandom(){return new n(n.CommandType.SeedRandom)}static VisitIndex(){return new n(n.CommandType.VisitIndex)}static SequenceShuffleIndex(){return new n(n.CommandType.SequenceShuffleIndex)}static StartThread(){return new n(n.CommandType.StartThread)}static Done(){return new n(n.CommandType.Done)}static End(){return new n(n.CommandType.End)}static ListFromInt(){return new n(n.CommandType.ListFromInt)}static ListRange(){return new n(n.CommandType.ListRange)}static ListRandom(){return new n(n.CommandType.ListRandom)}static BeginTag(){return new n(n.CommandType.BeginTag)}static EndTag(){return new n(n.CommandType.EndTag)}toString(){return "ControlCommand "+this.commandType.toString()}};zi.ControlCommand=Ji;(function(n){(function(t){t[t.NotSet=-1]="NotSet",t[t.EvalStart=0]="EvalStart",t[t.EvalOutput=1]="EvalOutput",t[t.EvalEnd=2]="EvalEnd",t[t.Duplicate=3]="Duplicate",t[t.PopEvaluatedValue=4]="PopEvaluatedValue",t[t.PopFunction=5]="PopFunction",t[t.PopTunnel=6]="PopTunnel",t[t.BeginString=7]="BeginString",t[t.EndString=8]="EndString",t[t.NoOp=9]="NoOp",t[t.ChoiceCount=10]="ChoiceCount",t[t.Turns=11]="Turns",t[t.TurnsSince=12]="TurnsSince",t[t.ReadCount=13]="ReadCount",t[t.Random=14]="Random",t[t.SeedRandom=15]="SeedRandom",t[t.VisitIndex=16]="VisitIndex",t[t.SequenceShuffleIndex=17]="SequenceShuffleIndex",t[t.StartThread=18]="StartThread",t[t.Done=19]="Done",t[t.End=20]="End",t[t.ListFromInt=21]="ListFromInt",t[t.ListRange=22]="ListRange",t[t.ListRandom=23]="ListRandom",t[t.BeginTag=24]="BeginTag",t[t.EndTag=25]="EndTag",t[t.TOTAL_VALUES=26]="TOTAL_VALUES";})(n.CommandType||(n.CommandType={}));})(Ji||(zi.ControlCommand=Ji={}));});var Ct=E(Na=>{Object.defineProperty(Na,"__esModule",{value:true});Na.Expression=void 0;var cv=Ee(),kh=qe(),HP=ye(),Vh=class extends HP.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new cv.Container;return e.AddContent(kh.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(kh.ControlCommand.EvalOutput()),e.AddContent(kh.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new cv.Container,this.GenerateIntoContainer(this._prototypeRuntimeConstantExpression));for(let t of this._prototypeRuntimeConstantExpression.content){let r=t.Copy();r&&e.AddContent(r);}},this.toString=()=>"No string value in JavaScript.";}get typeName(){return "Expression"}Equals(e){return false}};Na.Expression=Vh;});var Un=E(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.Void=void 0;var UP=at(),Rh=class extends UP.InkObject{toString(){return "Void"}};Fa.Void=Rh;});var Wt=E(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.NativeFunctionCall=void 0;var I=ve(),Hi=Bi(),KP=Un(),Ia=ut(),XP=at(),bt=ae(),lt=Le(),U=class n extends XP.InkObject{static CallWithName(e){return new n(e)}static CallExistsWithName(e){return this.GenerateNativeFunctionsIfNecessary(),this._nativeFunctions.get(e)}get name(){return this._name===null?(0, lt.throwNullException)("NativeFunctionCall._name"):this._name}set name(e){this._name=e,this._isPrototype||(n._nativeFunctions===null?(0, lt.throwNullException)("NativeFunctionCall._nativeFunctions"):this._prototype=n._nativeFunctions.get(this._name)||null);}get numberOfParameters(){return this._prototype?this._prototype.numberOfParameters:this._numberOfParameters}set numberOfParameters(e){this._numberOfParameters=e;}Call(e){if(this._prototype)return this._prototype.Call(e);if(this.numberOfParameters!=e.length)throw new Error("Unexpected number of parameters");let t=false;for(let a of e){if(a instanceof KP.Void)throw new Hi.StoryException("Attempting to perform "+this.name+' on a void value. Did you forget to "return" a value from a function you called here?');a instanceof I.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==I.ValueType.Int?this.CallType(r):i==I.ValueType.Float?this.CallType(r):i==I.ValueType.String?this.CallType(r):i==I.ValueType.DivertTarget?this.CallType(r):i==I.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, bt.asOrThrows)(e[0],I.Value),r=t.valueType,i=t,a=e.length;if(a==2||a==1){if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let s=this._operationFuncs.get(r);if(!s){let o=I.ValueType[r];throw new Hi.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, bt.asOrThrows)(e[1],I.Value),l=s;if(i.value===null||u.value===null)return (0, lt.throwNullException)("NativeFunctionCall.Call BinaryOp values");let c=l(i.value,u.value);return I.Value.Create(c)}else {let o=s;if(i.value===null)return (0, lt.throwNullException)("NativeFunctionCall.Call UnaryOp value");let u=o(i.value);return this.name===n.Int?I.Value.Create(u,I.ValueType.Int):this.name===n.Float?I.Value.Create(u,I.ValueType.Float):I.Value.Create(u,t.valueType)}}else throw new Error("Unexpected number of parameters to NativeFunctionCall: "+e.length)}CallBinaryListOperation(e){if((this.name=="+"||this.name=="-")&&e[0]instanceof I.ListValue&&e[1]instanceof I.IntValue)return this.CallListIncrementOperation(e);let t=(0, bt.asOrThrows)(e[0],I.Value),r=(0, bt.asOrThrows)(e[1],I.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=I.ValueType.List||r.valueType!=I.ValueType.List)){if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(I.ValueType.Int);if(i===null)return (0, lt.throwNullException)("NativeFunctionCall.CallBinaryListOperation op");let a=(0, bt.asBooleanOrThrows)(i(t.isTruthy?1:0,r.isTruthy?1:0));return new I.BoolValue(a)}if(t.valueType==I.ValueType.List&&r.valueType==I.ValueType.List)return this.CallType([t,r]);throw new Hi.StoryException("Can not call use "+this.name+" operation on "+I.ValueType[t.valueType]+" and "+I.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, bt.asOrThrows)(e[0],I.ListValue),r=(0, bt.asOrThrows)(e[1],I.IntValue),i=new Ia.InkList;if(t.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value");for(let[a,s]of t.value){let o=Ia.InkListItem.fromSerializedKey(a);if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let u=this._operationFuncs.get(I.ValueType.Int);if(r.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation intVal.value");let l=u(s,r.value),c=null;if(t.value.origins===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value.origins");for(let h of t.value.origins)if(h.name==o.originName){c=h;break}if(c!=null){let h=c.TryGetItemWithValue(l,Ia.InkListItem.Null);h.exists&&i.Add(h.result,l);}}return new I.ListValue(i)}CoerceValuesToSingleType(e){let t=I.ValueType.Int,r=null;for(let a of e){let s=(0, bt.asOrThrows)(a,I.Value);s.valueType>t&&(t=s.valueType),s.valueType==I.ValueType.List&&(r=(0, bt.asOrNull)(s,I.ListValue));}let i=[];if(I.ValueType[t]==I.ValueType[I.ValueType.List])for(let a of e){let s=(0, bt.asOrThrows)(a,I.Value);if(s.valueType==I.ValueType.List)i.push(s);else if(s.valueType==I.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, bt.asOrThrows)(r,I.ListValue),r.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType specialCaseList.value");let u=r.value.originOfMaxItem;if(u===null)return (0, lt.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType list");let l=u.TryGetItemWithValue(o,Ia.InkListItem.Null);if(l.exists){let c=new I.ListValue(l.result,o);i.push(c);}else throw new Hi.StoryException("Could not find List item with the value "+o+" in "+u.name)}else {let o=I.ValueType[s.valueType];throw new Hi.StoryException("Cannot mix Lists and "+o+" values in this operation")}}else for(let a of e){let o=(0, bt.asOrThrows)(a,I.Value).Cast(t);i.push(o);}return i}constructor(){if(super(),this._name=null,this._numberOfParameters=0,this._prototype=null,this._isPrototype=false,this._operationFuncs=null,arguments.length===0)n.GenerateNativeFunctionsIfNecessary();else if(arguments.length===1){let e=arguments[0];n.GenerateNativeFunctionsIfNecessary(),this.name=e;}else if(arguments.length===2){let e=arguments[0],t=arguments[1];this._isPrototype=true,this.name=e,this.numberOfParameters=t;}}static Identity(e){return e}static GenerateNativeFunctionsIfNecessary(){if(this._nativeFunctions==null){this._nativeFunctions=new Map,this.AddIntBinaryOp(this.Add,(r,i)=>r+i),this.AddIntBinaryOp(this.Subtract,(r,i)=>r-i),this.AddIntBinaryOp(this.Multiply,(r,i)=>r*i),this.AddIntBinaryOp(this.Divide,(r,i)=>Math.floor(r/i)),this.AddIntBinaryOp(this.Mod,(r,i)=>r%i),this.AddIntUnaryOp(this.Negate,r=>-r),this.AddIntBinaryOp(this.Equal,(r,i)=>r==i),this.AddIntBinaryOp(this.Greater,(r,i)=>r>i),this.AddIntBinaryOp(this.Less,(r,i)=>r<i),this.AddIntBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddIntBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddIntBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddIntUnaryOp(this.Not,r=>r==0),this.AddIntBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddIntBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddIntBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddIntBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddIntBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddIntUnaryOp(this.Floor,n.Identity),this.AddIntUnaryOp(this.Ceiling,n.Identity),this.AddIntUnaryOp(this.Int,n.Identity),this.AddIntUnaryOp(this.Float,r=>r),this.AddFloatBinaryOp(this.Add,(r,i)=>r+i),this.AddFloatBinaryOp(this.Subtract,(r,i)=>r-i),this.AddFloatBinaryOp(this.Multiply,(r,i)=>r*i),this.AddFloatBinaryOp(this.Divide,(r,i)=>r/i),this.AddFloatBinaryOp(this.Mod,(r,i)=>r%i),this.AddFloatUnaryOp(this.Negate,r=>-r),this.AddFloatBinaryOp(this.Equal,(r,i)=>r==i),this.AddFloatBinaryOp(this.Greater,(r,i)=>r>i),this.AddFloatBinaryOp(this.Less,(r,i)=>r<i),this.AddFloatBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddFloatBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddFloatBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddFloatUnaryOp(this.Not,r=>r==0),this.AddFloatBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddFloatBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddFloatBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddFloatBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddFloatBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddFloatUnaryOp(this.Floor,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Ceiling,r=>Math.ceil(r)),this.AddFloatUnaryOp(this.Int,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Float,n.Identity),this.AddStringBinaryOp(this.Add,(r,i)=>r+i),this.AddStringBinaryOp(this.Equal,(r,i)=>r===i),this.AddStringBinaryOp(this.NotEquals,(r,i)=>r!==i),this.AddStringBinaryOp(this.Has,(r,i)=>r.includes(i)),this.AddStringBinaryOp(this.Hasnt,(r,i)=>!r.includes(i)),this.AddListBinaryOp(this.Add,(r,i)=>r.Union(i)),this.AddListBinaryOp(this.Subtract,(r,i)=>r.Without(i)),this.AddListBinaryOp(this.Has,(r,i)=>r.Contains(i)),this.AddListBinaryOp(this.Hasnt,(r,i)=>!r.Contains(i)),this.AddListBinaryOp(this.Intersect,(r,i)=>r.Intersect(i)),this.AddListBinaryOp(this.Equal,(r,i)=>r.Equals(i)),this.AddListBinaryOp(this.Greater,(r,i)=>r.GreaterThan(i)),this.AddListBinaryOp(this.Less,(r,i)=>r.LessThan(i)),this.AddListBinaryOp(this.GreaterThanOrEquals,(r,i)=>r.GreaterThanOrEquals(i)),this.AddListBinaryOp(this.LessThanOrEquals,(r,i)=>r.LessThanOrEquals(i)),this.AddListBinaryOp(this.NotEquals,(r,i)=>!r.Equals(i)),this.AddListBinaryOp(this.And,(r,i)=>r.Count>0&&i.Count>0),this.AddListBinaryOp(this.Or,(r,i)=>r.Count>0||i.Count>0),this.AddListUnaryOp(this.Not,r=>r.Count==0?1:0),this.AddListUnaryOp(this.Invert,r=>r.inverse),this.AddListUnaryOp(this.All,r=>r.all),this.AddListUnaryOp(this.ListMin,r=>r.MinAsList()),this.AddListUnaryOp(this.ListMax,r=>r.MaxAsList()),this.AddListUnaryOp(this.Count,r=>r.Count),this.AddListUnaryOp(this.ValueOfList,r=>r.maxItem.Value);let e=(r,i)=>r.Equals(i),t=(r,i)=>!r.Equals(i);this.AddOpToNativeFunc(this.Equal,2,I.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,I.ValueType.DivertTarget,t);}}AddOpFuncForType(e,t){this._operationFuncs==null&&(this._operationFuncs=new Map),this._operationFuncs.set(e,t);}static AddOpToNativeFunc(e,t,r,i){if(this._nativeFunctions===null)return (0, lt.throwNullException)("NativeFunctionCall._nativeFunctions");let a=this._nativeFunctions.get(e);a||(a=new n(e,t),this._nativeFunctions.set(e,a)),a.AddOpFuncForType(r,i);}static AddIntBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,I.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,I.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};ka.NativeFunctionCall=U;U.Add="+";U.Subtract="-";U.Divide="/";U.Multiply="*";U.Mod="%";U.Negate="_";U.Equal="==";U.Greater=">";U.Less="<";U.GreaterThanOrEquals=">=";U.LessThanOrEquals="<=";U.NotEquals="!=";U.Not="!";U.And="&&";U.Or="||";U.Min="MIN";U.Max="MAX";U.Pow="POW";U.Floor="FLOOR";U.Ceiling="CEILING";U.Int="INT";U.Float="FLOAT";U.Has="?";U.Hasnt="!?";U.Intersect="^";U.ListMin="LIST_MIN";U.ListMax="LIST_MAX";U.All="LIST_ALL";U.Count="LIST_COUNT";U.ValueOfList="LIST_VALUE";U.Invert="LIST_INVERT";U._nativeFunctions=null;});var Ra=E(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.NumberExpression=void 0;var YP=Ct(),$h=ve(),ZP=ae(),jh=class n extends YP.Expression{constructor(e,t){if(super(),this.isInt=()=>this.subtype=="int",this.isFloat=()=>this.subtype=="float",this.isBool=()=>this.subtype=="bool",this.GenerateIntoContainer=r=>{this.isInt()?r.AddContent(new $h.IntValue(this.value)):this.isFloat()?r.AddContent(new $h.FloatValue(this.value)):this.isBool()&&r.AddContent(new $h.BoolValue(this.value));},this.toString=()=>String(this.value),typeof e=="number"&&!Number.isNaN(e)||typeof e=="boolean")this.value=e,this.subtype=t;else throw new Error("Unexpected object type in NumberExpression.")}get typeName(){return "Number"}Equals(e){let t=(0, ZP.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};Va.NumberExpression=jh;});var Lh=E($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.UnaryExpression=void 0;var QP=Ct(),eO=Wt(),Rr=Ra(),tO=ae(),Ui=class extends QP.Expression{get nativeNameForOp(){return this.op==="-"?"_":this.op==="not"?"!":this.op}constructor(e,t){super(),this.op=t,this.GenerateIntoContainer=r=>{this.innerExpression.GenerateIntoContainer(r),r.AddContent(eO.NativeFunctionCall.CallWithName(this.nativeNameForOp));},this.toString=()=>this.nativeNameForOp+this.innerExpression,this.innerExpression=this.AddContent(e);}get typeName(){return "UnaryExpression"}};$a.UnaryExpression=Ui;Ui.WithInner=(n,e)=>{let t=(0, tO.asOrNull)(n,Rr.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new Rr.NumberExpression(-t.value,"int");if(t.isFloat())return new Rr.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new Rr.NumberExpression(t.value==0,"bool");if(t.isFloat())return new Rr.NumberExpression(t.value==0,"bool");if(t.isBool())return new Rr.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new Ui(n,e)};});var Bh=E(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.BinaryExpression=void 0;var nO=Ct(),rO=Wt(),iO=Lh(),sO=ae(),qh=class extends nO.Expression{constructor(e,t,r){super(),this.opName=r,this.GenerateIntoContainer=i=>{this.leftExpression.GenerateIntoContainer(i),this.rightExpression.GenerateIntoContainer(i),this.opName=this.NativeNameForOp(this.opName),i.AddContent(rO.NativeFunctionCall.CallWithName(this.opName));},this.NativeNameForOp=i=>i==="and"?"&&":i==="or"?"||":i==="mod"?"%":i==="has"?"?":i==="hasnt"?"!?":i,this.toString=()=>`(${this.leftExpression} ${this.opName} ${this.rightExpression})`,this.leftExpression=this.AddContent(e),this.rightExpression=this.AddContent(t),this.opName=r;}get typeName(){return "BinaryExpression"}ResolveReferences(e){if(super.ResolveReferences(e),this.NativeNameForOp(this.opName)==="?"){let t=(0, sO.asOrNull)(this.leftExpression,iO.UnaryExpression);t!==null&&(t.op==="not"||t.op==="!")&&this.Error(`Using 'not' or '!' here negates '${t.innerExpression}' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression.`);}}};ja.BinaryExpression=qh;});var Xi=E(La=>{Object.defineProperty(La,"__esModule",{value:true});La.CharacterSet=void 0;var Ki=class{constructor(e){this.set=new Set,this.Add=t=>this.set.add(t),this.AddRange=(t,r)=>{for(let i=t.charCodeAt(0);i<=r.charCodeAt(0);++i)this.Add(String.fromCharCode(i));return this},this.AddCharacters=t=>{if(typeof t=="string"||Array.isArray(t))for(let r of t)this.Add(r);else for(let r of t.set)this.Add(r);return this},e&&this.AddCharacters(e);}};La.CharacterSet=Ki;Ki.FromRange=(n,e)=>new Ki().AddRange(n,e);});var dv=E(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.CharacterRange=void 0;var hv=Xi(),Yi=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new hv.CharacterSet,this._excludes=new Set,this.ToCharacterSet=()=>{if(this._correspondingCharSet.set.size===0)for(let i=this.start.charCodeAt(0),a;i<=this.end.charCodeAt(0);i+=1)a=String.fromCharCode(i),this._excludes.has(a)||this._correspondingCharSet.AddCharacters(a);return this._correspondingCharSet},r instanceof hv.CharacterSet)this._excludes=r.set;else for(let i of r)this._excludes.add(i);}get start(){return this._start}get end(){return this._end}};qa.CharacterRange=Yi;Yi.Define=(n,e,t=[])=>new Yi(n,e,t);});var Wa=E(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.ChoicePoint=void 0;var aO=at(),oO=st(),Wh=Le(),Mh=class extends aO.InkObject{constructor(e=true){super(),this._pathOnChoice=null,this.hasCondition=false,this.hasStartContent=false,this.hasChoiceOnlyContent=false,this.isInvisibleDefault=false,this.onceOnly=true,this.onceOnly=e;}get pathOnChoice(){if(this._pathOnChoice!=null&&this._pathOnChoice.isRelative){let e=this.choiceTarget;e&&(this._pathOnChoice=e.path);}return this._pathOnChoice}set pathOnChoice(e){this._pathOnChoice=e;}get choiceTarget(){return this._pathOnChoice===null?(0, Wh.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, Wh.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new oO.Path(e);}get flags(){let e=0;return this.hasCondition&&(e|=1),this.hasStartContent&&(e|=2),this.hasChoiceOnlyContent&&(e|=4),this.isInvisibleDefault&&(e|=8),this.onceOnly&&(e|=16),e}set flags(e){this.hasCondition=(e&1)>0,this.hasStartContent=(e&2)>0,this.hasChoiceOnlyContent=(e&4)>0,this.isInvisibleDefault=(e&8)>0,this.onceOnly=(e&16)>0;}toString(){if(this.pathOnChoice===null)return (0, Wh.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};Ba.ChoicePoint=Mh;});var Kn=E(Ma=>{Object.defineProperty(Ma,"__esModule",{value:true});Ma.PushPopType=void 0;var fv;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(fv||(Ma.PushPopType=fv={}));});var Zi=E(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.Pointer=void 0;var uO=st(),Gh=class n{constructor(){this.container=null,this.index=-1,arguments.length===2&&(this.container=arguments[0],this.index=arguments[1]);}Resolve(){return this.index<0?this.container:this.container==null?null:this.container.content.length==0?this.container:this.index>=this.container.content.length?null:this.container.content[this.index]}get isNull(){return this.container==null}get path(){return this.isNull?null:this.index>=0?this.container.path.PathByAppendingComponent(new uO.Path.Component(this.index)):this.container.path}toString(){return this.container?"Ink Pointer -> "+this.container.path.toString()+" -- index "+this.index:"Ink Pointer (null)"}copy(){return new n(this.container,this.index)}static StartOf(e){return new n(e,0)}static get Null(){return new n(null,-1)}};Ga.Pointer=Gh;});var Mt=E(za=>{Object.defineProperty(za,"__esModule",{value:true});za.Divert=void 0;var lO=st(),cO=Kn(),hO=zn(),dO=at(),Jh=Zi(),pv=Ee(),Ja=Le(),zh=class n extends dO.InkObject{get targetPath(){if(this._targetPath!=null&&this._targetPath.isRelative){let e=this.targetPointer.Resolve();e&&(this._targetPath=e.path);}return this._targetPath}set targetPath(e){this._targetPath=e,this._targetPointer=Jh.Pointer.Null;}get targetPointer(){if(this._targetPointer.isNull){let e=this.ResolvePath(this._targetPath).obj;if(this._targetPath===null)return (0, Ja.throwNullException)("this._targetPath");if(this._targetPath.lastComponent===null)return (0, Ja.throwNullException)("this._targetPath.lastComponent");if(this._targetPath.lastComponent.isIndex){if(e===null)return (0, Ja.throwNullException)("targetObj");this._targetPointer.container=e.parent instanceof pv.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=Jh.Pointer.StartOf(e instanceof pv.Container?e:null);}return this._targetPointer.copy()}get targetPathString(){return this.targetPath==null?null:this.CompactPathString(this.targetPath)}set targetPathString(e){e==null?this.targetPath=null:this.targetPath=new lO.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=Jh.Pointer.Null,this.variableDivertName=null,this.pushesToStack=false,this.stackPushType=0,this.isExternal=false,this.externalArgs=0,this.isConditional=false,this.pushesToStack=false,typeof e<"u"&&(this.pushesToStack=true,this.stackPushType=e);}Equals(e){let t=e;return t instanceof n&&this.hasVariableTarget==t.hasVariableTarget?this.hasVariableTarget?this.variableDivertName==t.variableDivertName:this.targetPath===null?(0, Ja.throwNullException)("this.targetPath"):this.targetPath.Equals(t.targetPath):false}toString(){if(this.hasVariableTarget)return "Divert(variable: "+this.variableDivertName+")";if(this.targetPath==null)return "Divert(null)";{let e=new hO.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==cO.PushPopType.Function?e.Append(" function"):e.Append(" tunnel")),e.Append(" -> "),e.Append(this.targetPathString),e.Append(" ("),e.Append(t),e.Append(")"),e.toString()}}};za.Divert=zh;});var nn=E(Ha=>{Object.defineProperty(Ha,"__esModule",{value:true});Ha.SymbolType=void 0;var mv;(function(n){n[n.Knot=0]="Knot",n[n.List=1]="List",n[n.ListItem=2]="ListItem",n[n.Var=3]="Var",n[n.SubFlowAndWeave=4]="SubFlowAndWeave",n[n.Arg=5]="Arg",n[n.Temp=6]="Temp";})(mv||(Ha.SymbolType=mv={}));});var bn=E(Ua=>{Object.defineProperty(Ua,"__esModule",{value:true});Ua.VariableAssignment=void 0;var fO=at(),Hh=class extends fO.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};Ua.VariableAssignment=Hh;});var $r=E(Xa=>{Object.defineProperty(Xa,"__esModule",{value:true});Xa.Choice=void 0;var pO=Wa(),Ka=Ee(),_n=qe(),Uh=Mt(),gv=ve(),mO=ye(),gO=nn(),yv=bn(),Kh=class extends mO.ParsedObject{get runtimeChoice(){if(!this._runtimeChoice)throw new Error;return this._runtimeChoice}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get condition(){return this._condition}set condition(e){this._condition=e,e&&this.AddContent(e);}get runtimeContainer(){return this._innerContentContainer}get innerContentContainer(){return this._innerContentContainer}get containerForCounting(){return this._innerContentContainer}get runtimePath(){if(!this.innerContentContainer||!this.innerContentContainer.path)throw new Error;return this.innerContentContainer.path}constructor(e,t,r){super(),this._condition=null,this._innerContentContainer=null,this._outerContainer=null,this._runtimeChoice=null,this._returnToR1=null,this._returnToR2=null,this._r1Label=null,this._r2Label=null,this._divertToStartContentOuter=null,this._divertToStartContentInner=null,this._startContentRuntimeContainer=null,this.isInvisibleDefault=false,this.hasWeaveStyleInlineBrackets=false,this.GenerateRuntimeObject=()=>{if(this._outerContainer=new Ka.Container,this._runtimeChoice=new pO.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(_n.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new gv.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new yv.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(_n.ControlCommand.BeginString()),this._divertToStartContentOuter=new Uh.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Uh.Divert;a.variableDivertName="$r",this._startContentRuntimeContainer.AddContent(a),this._outerContainer.AddToNamedContentOnly(this._startContentRuntimeContainer),this._r1Label=new Ka.Container,this._r1Label.name="$r1",this._outerContainer.AddContent(this._r1Label),this._outerContainer.AddContent(_n.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(_n.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(_n.ControlCommand.EndString()),this._runtimeChoice.hasChoiceOnlyContent=true;}if(this.condition&&(this.condition.GenerateIntoContainer(this._outerContainer),this._runtimeChoice.hasCondition=true),(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(_n.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Ka.Container,this.startContent){this._returnToR2=new gv.DivertTargetValue,this._innerContentContainer.AddContent(_n.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(_n.ControlCommand.EvalEnd());let i=new yv.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Uh.Divert,this._innerContentContainer.AddContent(this._divertToStartContentInner),this._r2Label=new Ka.Container,this._r2Label.name="$r2",this._innerContentContainer.AddContent(this._r2Label);}if(this.innerContent){let i=this.innerContent.GenerateRuntimeObject();this._innerContentContainer.AddContentsOfContainer(i);}return this.story.countAllVisits&&(this._innerContentContainer.visitsShouldBeCounted=true),this._innerContentContainer.countingAtStartOnly=true,this._outerContainer},this.toString=()=>this.choiceOnlyContent!==null?`* ${this.startContent}[${this.choiceOnlyContent}]...`:`* ${this.startContent}...`,this.startContent=e,this.choiceOnlyContent=t,this.innerContent=r,this.indentationDepth=1,e&&this.AddContent(this.startContent),t&&this.AddContent(this.choiceOnlyContent),r&&this.AddContent(this.innerContent),this.onceOnly=true;}get typeName(){return "Choice"}ResolveReferences(e){var t;if(this._innerContentContainer&&(this.runtimeChoice.pathOnChoice=this._innerContentContainer.path,this.onceOnly&&(this._innerContentContainer.visitsShouldBeCounted=true)),this._returnToR1){if(!this._r1Label)throw new Error;this._returnToR1.targetPath=this._r1Label.path;}if(this._returnToR2){if(!this._r2Label)throw new Error;this._returnToR2.targetPath=this._r2Label.path;}if(this._divertToStartContentOuter){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentOuter.targetPath=this._startContentRuntimeContainer.path;}if(this._divertToStartContentInner){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentInner.targetPath=this._startContentRuntimeContainer.path;}super.ResolveReferences(e),this.identifier&&(((t=this.identifier)===null||t===void 0?void 0:t.name)||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,gO.SymbolType.SubFlowAndWeave);}};Xa.Choice=Kh;});var vv=E(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.StringParserElement=void 0;var Ya=class n{constructor(){this.characterIndex=0,this.characterInLineIndex=0,this.lineIndex=0,this.reportedErrorInScope=false,this.uniqueId=0,this.customFlags=0,this.CopyFrom=e=>{n._uniqueIdCounter++,this.uniqueId=n._uniqueIdCounter,this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.customFlags=e.customFlags,this.reportedErrorInScope=false;},this.SquashFrom=e=>{this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.reportedErrorInScope=e.reportedErrorInScope,this.customFlags=e.customFlags;};}};Za.StringParserElement=Ya;Ya._uniqueIdCounter=1e3;});var bv=E(Qa=>{Object.defineProperty(Qa,"__esModule",{value:true});Qa.StringParserState=void 0;var Cv=vv(),Xh=class{get currentElement(){return this._stack[this._numElements-1]}get lineIndex(){return this.currentElement.lineIndex}set lineIndex(e){this.currentElement.lineIndex=e;}get characterIndex(){return this.currentElement.characterIndex}set characterIndex(e){this.currentElement.characterIndex=e;}get characterInLineIndex(){return this.currentElement.characterInLineIndex}set characterInLineIndex(e){this.currentElement.characterInLineIndex=e;}get customFlags(){return this.currentElement.customFlags}set customFlags(e){this.currentElement.customFlags=e;}get errorReportedAlreadyInScope(){return this.currentElement.reportedErrorInScope}get stackHeight(){return this._numElements}constructor(){this._stack=[],this._numElements=0,this.StringParserState=()=>{this._stack=new Array(200);for(let r=0;r<200;++r)this._stack[r]=new Cv.StringParserElement;this._numElements=1;},this.Push=()=>{if(this._numElements>=this._stack.length&&this._numElements>0)throw new Error("Stack overflow in parser state.");let t=this._stack[this._numElements-1],r=this._stack[this._numElements];return this._numElements++,r.CopyFrom(t),r.uniqueId},this.Pop=t=>{if(this._numElements==1)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Poping - do you have mismatched Begin/Succeed/Fail?");this._numElements-=1;},this.Peek=t=>{if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Peeking - do you have mismatched Begin/Succeed/Fail?");return this._stack[this._numElements-1]},this.PeekPenultimate=()=>this._numElements>=2?this._stack[this._numElements-2]:null,this.Squash=()=>{if(this._numElements<2)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");let t=this._stack[this._numElements-2],r=this._stack[this._numElements-1];t.SquashFrom(r),this._numElements-=1;},this.NoteErrorReported=()=>{for(let t of this._stack)t.reportedErrorInScope=true;};let e=200;for(let t=0;t<e;t++)this._stack[t]=new Cv.StringParserElement;this._numElements=1;}};Qa.StringParserState=Xh;});var Zh=E(Xn=>{Object.defineProperty(Xn,"__esModule",{value:true});Xn.StringParser=Xn.ParseSuccess=void 0;var Yh=Xi(),yO=bv();Xn.ParseSuccess=Symbol("ParseSuccessStruct");var Qi=class n{constructor(e){this.ParseRule=null,this.errorHandler=null,this.hadError=false,this.BeginRule=()=>this.state.Push(),this.FailRule=r=>(this.state.Pop(r),null),this.CancelRule=r=>{this.state.Pop(r);},this.SucceedRule=(r,i=null)=>{let a=this.state.Peek(r),s=this.state.PeekPenultimate();this.RuleDidSucceed&&this.RuleDidSucceed(i,s,a),this.state.Squash();let o=i;return o===null&&(o=n.ParseSuccess),o},this.Expect=(r,i=null,a=null)=>{let s=this.ParseObject(r);if(s===null){i===null&&(i=r.name);let o,u=this.LineRemainder();u===null||u.length===0?o="end of line":o=`'${u}'`,this.Error(`Expected ${i} but saw ${o}`),a!==null&&(s=a());}return s},this.Error=(r,i=false)=>{this.ErrorOnLine(r,this.lineIndex+1,i);},this.ErrorWithParsedObject=(r,i,a=false)=>{this.ErrorOnLine(r,i.debugMetadata?i.debugMetadata.startLineNumber:-1,a);},this.ErrorOnLine=(r,i,a)=>{if(!this.state.errorReportedAlreadyInScope){let s=a?"Warning":"Error";if(this.errorHandler)this.errorHandler(r,this.index,i-1,a);else throw new Error(`${s} on line ${i}: ${r}`);this.state.NoteErrorReported();}a||(this.hadError=true);},this.Warning=r=>this.Error(r,true),this.LineRemainder=()=>this.Peek(()=>this.ParseUntilCharactersFromString(`
8
+ deps: ${t}}`};var uD={keyword:"dependencies",type:"object",schemaType:"object",error:$t.error,code(n){let[e,t]=lD(n);Ug(n,e),Kg(n,t);}};function lD({schema:n}){let e={},t={};for(let r in n){if(r==="__proto__")continue;let i=Array.isArray(n[r])?e:t;i[r]=n[r];}return [e,t]}function Ug(n,e=n.schema){let{gen:t,data:r,it:i}=n;if(Object.keys(e).length===0)return;let a=t.let("missing");for(let s in e){let o=e[s];if(o.length===0)continue;let u=(0, Vi.propertyInData)(t,r,s,i.opts.ownProperties);n.setParams({property:s,depsCount:o.length,deps:o.join(", ")}),i.allErrors?t.if(u,()=>{for(let l of o)(0, Vi.checkReportMissingProp)(n,l);}):(t.if((0, Rc._)`${u} && (${(0, Vi.checkMissingProp)(n,o,a)})`),(0, Vi.reportMissingProp)(n,a),t.else());}}$t.validatePropertyDeps=Ug;function Kg(n,e=n.schema){let{gen:t,data:r,keyword:i,it:a}=n,s=t.name("valid");for(let o in e)(0, oD.alwaysValidSchema)(a,e[o])||(t.if((0, Vi.propertyInData)(t,r,o,a.opts.ownProperties),()=>{let u=n.subschema({keyword:i,schemaProp:o},s);n.mergeValidEvaluated(u,s);},()=>t.var(s,true)),n.ok(s));}$t.validateSchemaDeps=Kg;$t.default=uD;});var Yg=E($c=>{Object.defineProperty($c,"__esModule",{value:true});var Xg=$(),cD=M(),hD={message:"property name must be valid",params:({params:n})=>(0, Xg._)`{propertyName: ${n.propertyName}}`},dD={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:hD,code(n){let{gen:e,schema:t,data:r,it:i}=n;if((0, cD.alwaysValidSchema)(i,t))return;let a=e.name("valid");e.forIn("key",r,s=>{n.setParams({propertyName:s}),n.subschema({keyword:"propertyNames",data:s,dataTypes:["string"],propertyName:s,compositeRule:true},a),e.if((0, Xg.not)(a),()=>{n.error(true),i.allErrors||e.break();});}),n.ok(a);}};$c.default=dD;});var Lc=E(jc=>{Object.defineProperty(jc,"__esModule",{value:true});var oa=mt(),Tt=$(),fD=pt(),ua=M(),pD={message:"must NOT have additional properties",params:({params:n})=>(0, Tt._)`{additionalProperty: ${n.additionalProperty}}`},mD={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:pD,code(n){let{gen:e,schema:t,parentSchema:r,data:i,errsCount:a,it:s}=n;if(!a)throw new Error("ajv implementation error");let{allErrors:o,opts:u}=s;if(s.props=true,u.removeAdditional!=="all"&&(0, ua.alwaysValidSchema)(s,t))return;let l=(0, oa.allSchemaProperties)(r.properties),c=(0, oa.allSchemaProperties)(r.patternProperties);h(),n.ok((0, Tt._)`${a} === ${fD.default.errors}`);function h(){e.forIn("key",i,C=>{!l.length&&!c.length?g(C):e.if(p(C),()=>g(C));});}function p(C){let _;if(l.length>8){let v=(0, ua.schemaRefOrVal)(s,r.properties,"properties");_=(0, oa.isOwnProperty)(e,v,C);}else l.length?_=(0, Tt.or)(...l.map(v=>(0, Tt._)`${C} === ${v}`)):_=Tt.nil;return c.length&&(_=(0, Tt.or)(_,...c.map(v=>(0, Tt._)`${(0, oa.usePattern)(n,v)}.test(${C})`))),(0, Tt.not)(_)}function f(C){e.code((0, Tt._)`delete ${i}[${C}]`);}function g(C){if(u.removeAdditional==="all"||u.removeAdditional&&t===false){f(C);return}if(t===false){n.setParams({additionalProperty:C}),n.error(),o||e.break();return}if(typeof t=="object"&&!(0, ua.alwaysValidSchema)(s,t)){let _=e.name("valid");u.removeAdditional==="failing"?(y(C,_,false),e.if((0, Tt.not)(_),()=>{n.reset(),f(C);})):(y(C,_),o||e.if((0, Tt.not)(_),()=>e.break()));}}function y(C,_,v){let d={keyword:"additionalProperties",dataProp:C,dataPropType:ua.Type.Str};v===false&&Object.assign(d,{compositeRule:true,createErrors:false,allErrors:false}),n.subschema(d,_);}}};jc.default=mD;});var ey=E(Bc=>{Object.defineProperty(Bc,"__esModule",{value:true});var gD=mr(),Zg=mt(),qc=M(),Qg=Lc(),yD={keyword:"properties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,parentSchema:r,data:i,it:a}=n;a.opts.removeAdditional==="all"&&r.additionalProperties===void 0&&Qg.default.code(new gD.KeywordCxt(a,Qg.default,"additionalProperties"));let s=(0, Zg.allSchemaProperties)(t);for(let h of s)a.definedProperties.add(h);a.opts.unevaluated&&s.length&&a.props!==true&&(a.props=qc.mergeEvaluated.props(e,(0, qc.toHash)(s),a.props));let o=s.filter(h=>!(0, qc.alwaysValidSchema)(a,t[h]));if(o.length===0)return;let u=e.name("valid");for(let h of o)l(h)?c(h):(e.if((0, Zg.propertyInData)(e,i,h,a.opts.ownProperties)),c(h),a.allErrors||e.else().var(u,true),e.endIf()),n.it.definedProperties.add(h),n.ok(u);function l(h){return a.opts.useDefaults&&!a.compositeRule&&t[h].default!==void 0}function c(h){n.subschema({keyword:"properties",schemaProp:h,dataProp:h},u);}}};Bc.default=yD;});var iy=E(Wc=>{Object.defineProperty(Wc,"__esModule",{value:true});var ty=mt(),la=$(),ny=M(),ry=M(),vD={keyword:"patternProperties",type:"object",schemaType:"object",code(n){let{gen:e,schema:t,data:r,parentSchema:i,it:a}=n,{opts:s}=a,o=(0, ty.allSchemaProperties)(t),u=o.filter(y=>(0, ny.alwaysValidSchema)(a,t[y]));if(o.length===0||u.length===o.length&&(!a.opts.unevaluated||a.props===true))return;let l=s.strictSchema&&!s.allowMatchingProperties&&i.properties,c=e.name("valid");a.props!==true&&!(a.props instanceof la.Name)&&(a.props=(0, ry.evaluatedPropsToName)(e,a.props));let{props:h}=a;p();function p(){for(let y of o)l&&f(y),a.allErrors?g(y):(e.var(c,true),g(y),e.if(c));}function f(y){for(let C in l)new RegExp(y).test(C)&&(0, ny.checkStrictMode)(a,`property ${C} matches pattern ${y} (use allowMatchingProperties)`);}function g(y){e.forIn("key",r,C=>{e.if((0, la._)`${(0, ty.usePattern)(n,y)}.test(${C})`,()=>{let _=u.includes(y);_||n.subschema({keyword:"patternProperties",schemaProp:y,dataProp:C,dataPropType:ry.Type.Str},c),a.opts.unevaluated&&h!==true?e.assign((0, la._)`${h}[${C}]`,true):!_&&!a.allErrors&&e.if((0, la.not)(c),()=>e.break());});});}}};Wc.default=vD;});var sy=E(Mc=>{Object.defineProperty(Mc,"__esModule",{value:true});var CD=M(),bD={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(n){let{gen:e,schema:t,it:r}=n;if((0, CD.alwaysValidSchema)(r,t)){n.fail();return}let i=e.name("valid");n.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i),n.failResult(i,()=>n.reset(),()=>n.error());},error:{message:"must NOT be valid"}};Mc.default=bD;});var ay=E(Gc=>{Object.defineProperty(Gc,"__esModule",{value:true});var _D=mt(),SD={keyword:"anyOf",schemaType:"array",trackErrors:true,code:_D.validateUnion,error:{message:"must match a schema in anyOf"}};Gc.default=SD;});var oy=E(Jc=>{Object.defineProperty(Jc,"__esModule",{value:true});var ca=$(),ED=M(),wD={message:"must match exactly one schema in oneOf",params:({params:n})=>(0, ca._)`{passingSchemas: ${n.passing}}`},DD={keyword:"oneOf",schemaType:"array",trackErrors:true,error:wD,code(n){let{gen:e,schema:t,parentSchema:r,it:i}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");if(i.opts.discriminator&&r.discriminator)return;let a=t,s=e.let("valid",false),o=e.let("passing",null),u=e.name("_valid");n.setParams({passing:o}),e.block(l),n.result(s,()=>n.reset(),()=>n.error(true));function l(){a.forEach((c,h)=>{let p;(0, ED.alwaysValidSchema)(i,c)?e.var(u,true):p=n.subschema({keyword:"oneOf",schemaProp:h,compositeRule:true},u),h>0&&e.if((0, ca._)`${u} && ${s}`).assign(s,false).assign(o,(0, ca._)`[${o}, ${h}]`).else(),e.if(u,()=>{e.assign(s,true),e.assign(o,h),p&&n.mergeEvaluated(p,ca.Name);});});}}};Jc.default=DD;});var uy=E(zc=>{Object.defineProperty(zc,"__esModule",{value:true});var AD=M(),PD={keyword:"allOf",schemaType:"array",code(n){let{gen:e,schema:t,it:r}=n;if(!Array.isArray(t))throw new Error("ajv implementation error");let i=e.name("valid");t.forEach((a,s)=>{if((0, AD.alwaysValidSchema)(r,a))return;let o=n.subschema({keyword:"allOf",schemaProp:s},i);n.ok(i),n.mergeEvaluated(o);});}};zc.default=PD;});var hy=E(Hc=>{Object.defineProperty(Hc,"__esModule",{value:true});var ha=$(),cy=M(),OD={message:({params:n})=>(0, ha.str)`must match "${n.ifClause}" schema`,params:({params:n})=>(0, ha._)`{failingKeyword: ${n.ifClause}}`},xD={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:OD,code(n){let{gen:e,parentSchema:t,it:r}=n;t.then===void 0&&t.else===void 0&&(0, cy.checkStrictMode)(r,'"if" without "then" and "else" is ignored');let i=ly(r,"then"),a=ly(r,"else");if(!i&&!a)return;let s=e.let("valid",true),o=e.name("_valid");if(u(),n.reset(),i&&a){let c=e.let("ifClause");n.setParams({ifClause:c}),e.if(o,l("then",c),l("else",c));}else i?e.if(o,l("then")):e.if((0, ha.not)(o),l("else"));n.pass(s,()=>n.error(true));function u(){let c=n.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},o);n.mergeEvaluated(c);}function l(c,h){return ()=>{let p=n.subschema({keyword:c},o);e.assign(s,o),n.mergeValidEvaluated(p,s),h?e.assign(h,(0, ha._)`${c}`):n.setParams({ifClause:c});}}}};function ly(n,e){let t=n.schema[e];return t!==void 0&&!(0, cy.alwaysValidSchema)(n,t)}Hc.default=xD;});var dy=E(Uc=>{Object.defineProperty(Uc,"__esModule",{value:true});var TD=M(),ND={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:e,it:t}){e.if===void 0&&(0, TD.checkStrictMode)(t,`"${n}" without "if" is ignored`);}};Uc.default=ND;});var Xc=E(Kc=>{Object.defineProperty(Kc,"__esModule",{value:true});var FD=Nc(),ID=Gg(),kD=Fc(),VD=zg(),RD=Hg(),$D=aa(),jD=Yg(),LD=Lc(),qD=ey(),BD=iy(),WD=sy(),MD=ay(),GD=oy(),JD=uy(),zD=hy(),HD=dy();function UD(n=false){let e=[WD.default,MD.default,GD.default,JD.default,zD.default,HD.default,jD.default,LD.default,$D.default,qD.default,BD.default];return n?e.push(ID.default,VD.default):e.push(FD.default,kD.default),e.push(RD.default),e}Kc.default=UD;});var fy=E(Yc=>{Object.defineProperty(Yc,"__esModule",{value:true});var _e=$(),KD={message:({schemaCode:n})=>(0, _e.str)`must match format "${n}"`,params:({schemaCode:n})=>(0, _e._)`{format: ${n}}`},XD={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:KD,code(n,e){let{gen:t,data:r,$data:i,schema:a,schemaCode:s,it:o}=n,{opts:u,errSchemaPath:l,schemaEnv:c,self:h}=o;if(!u.validateFormats)return;i?p():f();function p(){let g=t.scopeValue("formats",{ref:h.formats,code:u.code.formats}),y=t.const("fDef",(0, _e._)`${g}[${s}]`),C=t.let("fType"),_=t.let("format");t.if((0, _e._)`typeof ${y} == "object" && !(${y} instanceof RegExp)`,()=>t.assign(C,(0, _e._)`${y}.type || "string"`).assign(_,(0, _e._)`${y}.validate`),()=>t.assign(C,(0, _e._)`"string"`).assign(_,y)),n.fail$data((0, _e.or)(v(),d()));function v(){return u.strictSchema===false?_e.nil:(0, _e._)`${s} && !${_}`}function d(){let S=c.$async?(0, _e._)`(${y}.async ? await ${_}(${r}) : ${_}(${r}))`:(0, _e._)`${_}(${r})`,m=(0, _e._)`(typeof ${_} == "function" ? ${S} : ${_}.test(${r}))`;return (0, _e._)`${_} && ${_} !== true && ${C} === ${e} && !${m}`}}function f(){let g=h.formats[a];if(!g){v();return}if(g===true)return;let[y,C,_]=d(g);y===e&&n.pass(S());function v(){if(u.strictSchema===false){h.logger.warn(m());return}throw new Error(m());function m(){return `unknown format "${a}" ignored in schema at path "${l}"`}}function d(m){let b=m instanceof RegExp?(0, _e.regexpCode)(m):u.code.formats?(0, _e._)`${u.code.formats}${(0, _e.getProperty)(a)}`:void 0,w=t.scopeValue("formats",{key:a,ref:m,code:b});return typeof m=="object"&&!(m instanceof RegExp)?[m.type||"string",m.validate,(0, _e._)`${w}.validate`]:["string",m,w]}function S(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!c.$async)throw new Error("async format in sync schema");return (0, _e._)`await ${_}(${r})`}return typeof C=="function"?(0, _e._)`${_}(${r})`:(0, _e._)`${_}.test(${r})`}}}};Yc.default=XD;});var Qc=E(Zc=>{Object.defineProperty(Zc,"__esModule",{value:true});var YD=fy(),ZD=[YD.default];Zc.default=ZD;});var eh=E(_r=>{Object.defineProperty(_r,"__esModule",{value:true});_r.contentVocabulary=_r.metadataVocabulary=void 0;_r.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];_r.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"];});var my=E(th=>{Object.defineProperty(th,"__esModule",{value:true});var QD=fc(),eA=xc(),tA=Xc(),nA=Qc(),py=eh(),rA=[QD.default,eA.default,(0, tA.default)(),nA.default,py.metadataVocabulary,py.contentVocabulary];th.default=rA;});var yy=E(da=>{Object.defineProperty(da,"__esModule",{value:true});da.DiscrError=void 0;var gy;(function(n){n.Tag="tag",n.Mapping="mapping";})(gy||(da.DiscrError=gy={}));});var ih=E(rh=>{Object.defineProperty(rh,"__esModule",{value:true});var Sr=$(),nh=yy(),vy=_i(),iA=gr(),sA=M(),aA={message:({params:{discrError:n,tagName:e}})=>n===nh.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:n,tag:e,tagName:t}})=>(0, Sr._)`{error: ${n}, tag: ${t}, tagValue: ${e}}`},oA={keyword:"discriminator",type:"object",schemaType:"object",error:aA,code(n){let{gen:e,data:t,schema:r,parentSchema:i,it:a}=n,{oneOf:s}=i;if(!a.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=r.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(r.mapping)throw new Error("discriminator: mapping is not supported");if(!s)throw new Error("discriminator: requires oneOf keyword");let u=e.let("valid",false),l=e.const("tag",(0, Sr._)`${t}${(0, Sr.getProperty)(o)}`);e.if((0, Sr._)`typeof ${l} == "string"`,()=>c(),()=>n.error(false,{discrError:nh.DiscrError.Tag,tag:l,tagName:o})),n.ok(u);function c(){let f=p();e.if(false);for(let g in f)e.elseIf((0, Sr._)`${l} === ${g}`),e.assign(u,h(f[g]));e.else(),n.error(false,{discrError:nh.DiscrError.Mapping,tag:l,tagName:o}),e.endIf();}function h(f){let g=e.name("valid"),y=n.subschema({keyword:"oneOf",schemaProp:f},g);return n.mergeEvaluated(y,Sr.Name),g}function p(){var f;let g={},y=_(i),C=true;for(let S=0;S<s.length;S++){let m=s[S];if(m?.$ref&&!(0, sA.schemaHasRulesButRef)(m,a.self.RULES)){let w=m.$ref;if(m=vy.resolveRef.call(a.self,a.schemaEnv.root,a.baseId,w),m instanceof vy.SchemaEnv&&(m=m.schema),m===void 0)throw new iA.default(a.opts.uriResolver,a.baseId,w)}let b=(f=m?.properties)===null||f===void 0?void 0:f[o];if(typeof b!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${o}"`);C=C&&(y||_(m)),v(b,S);}if(!C)throw new Error(`discriminator: "${o}" must be required`);return g;function _({required:S}){return Array.isArray(S)&&S.includes(o)}function v(S,m){if(S.const)d(S.const,m);else if(S.enum)for(let b of S.enum)d(b,m);else throw new Error(`discriminator: "properties/${o}" must have "const" or "enum"`)}function d(S,m){if(typeof S!="string"||S in g)throw new Error(`discriminator: "${o}" values must be unique strings`);g[S]=m;}}}};rh.default=oA;});var Cy=E((Qk,uA)=>{uA.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:true,readOnly:{type:"boolean",default:false},examples:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:true},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:true,enum:{type:"array",items:true,minItems:1,uniqueItems:true},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:true}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:true};});var _y=E((pe,sh)=>{Object.defineProperty(pe,"__esModule",{value:true});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv=void 0;var lA=cc(),cA=my(),hA=ih(),by=Cy(),dA=["/properties"],fa="http://json-schema.org/draft-07/schema",Er=class extends lA.default{_addVocabularies(){super._addVocabularies(),cA.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(hA.default);}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(by,dA):by;this.addMetaSchema(e,fa,false),this.refs["http://json-schema.org/schema"]=fa;}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(fa)?fa:void 0)}};pe.Ajv=Er;sh.exports=pe=Er;sh.exports.Ajv=Er;Object.defineProperty(pe,"__esModule",{value:true});pe.default=Er;var fA=mr();Object.defineProperty(pe,"KeywordCxt",{enumerable:true,get:function(){return fA.KeywordCxt}});var wr=$();Object.defineProperty(pe,"_",{enumerable:true,get:function(){return wr._}});Object.defineProperty(pe,"str",{enumerable:true,get:function(){return wr.str}});Object.defineProperty(pe,"stringify",{enumerable:true,get:function(){return wr.stringify}});Object.defineProperty(pe,"nil",{enumerable:true,get:function(){return wr.nil}});Object.defineProperty(pe,"Name",{enumerable:true,get:function(){return wr.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:true,get:function(){return wr.CodeGen}});var pA=bi();Object.defineProperty(pe,"ValidationError",{enumerable:true,get:function(){return pA.default}});var mA=gr();Object.defineProperty(pe,"MissingRefError",{enumerable:true,get:function(){return mA.default}});});var oh=E(Ri=>{Object.defineProperty(Ri,"__esModule",{value:true});Ri.dynamicAnchor=void 0;var ah=$(),gA=pt(),Sy=_i(),yA=ea(),vA={keyword:"$dynamicAnchor",schemaType:"string",code:n=>Ey(n,n.schema)};function Ey(n,e){let{gen:t,it:r}=n;r.schemaEnv.root.dynamicAnchors[e]=true;let i=(0, ah._)`${gA.default.dynamicAnchors}${(0, ah.getProperty)(e)}`,a=r.errSchemaPath==="#"?r.validateName:CA(n);t.if((0, ah._)`!${i}`,()=>t.assign(i,a));}Ri.dynamicAnchor=Ey;function CA(n){let{schemaEnv:e,schema:t,self:r}=n.it,{root:i,baseId:a,localRefs:s,meta:o}=e.root,{schemaId:u}=r.opts,l=new Sy.SchemaEnv({schema:t,schemaId:u,root:i,baseId:a,localRefs:s,meta:o});return Sy.compileSchema.call(r,l),(0, yA.getValidate)(n,l)}Ri.default=vA;});var uh=E($i=>{Object.defineProperty($i,"__esModule",{value:true});$i.dynamicRef=void 0;var wy=$(),bA=pt(),Dy=ea(),_A={keyword:"$dynamicRef",schemaType:"string",code:n=>Ay(n,n.schema)};function Ay(n,e){let{gen:t,keyword:r,it:i}=n;if(e[0]!=="#")throw new Error(`"${r}" only supports hash fragment reference`);let a=e.slice(1);if(i.allErrors)s();else {let u=t.let("valid",false);s(u),n.ok(u);}function s(u){if(i.schemaEnv.root.dynamicAnchors[a]){let l=t.let("_v",(0, wy._)`${bA.default.dynamicAnchors}${(0, wy.getProperty)(a)}`);t.if(l,o(l,u),o(i.validateName,u));}else o(i.validateName,u)();}function o(u,l){return l?()=>t.block(()=>{(0, Dy.callRef)(n,u),t.let(l,true);}):()=>(0, Dy.callRef)(n,u)}}$i.dynamicRef=Ay;$i.default=_A;});var Py=E(lh=>{Object.defineProperty(lh,"__esModule",{value:true});var SA=oh(),EA=M(),wA={keyword:"$recursiveAnchor",schemaType:"boolean",code(n){n.schema?(0, SA.dynamicAnchor)(n,""):(0, EA.checkStrictMode)(n.it,"$recursiveAnchor: false is ignored");}};lh.default=wA;});var Oy=E(ch=>{Object.defineProperty(ch,"__esModule",{value:true});var DA=uh(),AA={keyword:"$recursiveRef",schemaType:"string",code:n=>(0, DA.dynamicRef)(n,n.schema)};ch.default=AA;});var xy=E(hh=>{Object.defineProperty(hh,"__esModule",{value:true});var PA=oh(),OA=uh(),xA=Py(),TA=Oy(),NA=[PA.default,OA.default,xA.default,TA.default];hh.default=NA;});var Ny=E(dh=>{Object.defineProperty(dh,"__esModule",{value:true});var Ty=aa(),FA={keyword:"dependentRequired",type:"object",schemaType:"object",error:Ty.error,code:n=>(0, Ty.validatePropertyDeps)(n)};dh.default=FA;});var Fy=E(fh=>{Object.defineProperty(fh,"__esModule",{value:true});var IA=aa(),kA={keyword:"dependentSchemas",type:"object",schemaType:"object",code:n=>(0, IA.validateSchemaDeps)(n)};fh.default=kA;});var Iy=E(ph=>{Object.defineProperty(ph,"__esModule",{value:true});var VA=M(),RA={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:n,parentSchema:e,it:t}){e.contains===void 0&&(0, VA.checkStrictMode)(t,`"${n}" without "contains" is ignored`);}};ph.default=RA;});var ky=E(mh=>{Object.defineProperty(mh,"__esModule",{value:true});var $A=Ny(),jA=Fy(),LA=Iy(),qA=[$A.default,jA.default,LA.default];mh.default=qA;});var Ry=E(gh=>{Object.defineProperty(gh,"__esModule",{value:true});var yn=$(),Vy=M(),BA=pt(),WA={message:"must NOT have unevaluated properties",params:({params:n})=>(0, yn._)`{unevaluatedProperty: ${n.unevaluatedProperty}}`},MA={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:true,error:WA,code(n){let{gen:e,schema:t,data:r,errsCount:i,it:a}=n;if(!i)throw new Error("ajv implementation error");let{allErrors:s,props:o}=a;o instanceof yn.Name?e.if((0, yn._)`${o} !== true`,()=>e.forIn("key",r,h=>e.if(l(o,h),()=>u(h)))):o!==true&&e.forIn("key",r,h=>o===void 0?u(h):e.if(c(o,h),()=>u(h))),a.props=true,n.ok((0, yn._)`${i} === ${BA.default.errors}`);function u(h){if(t===false){n.setParams({unevaluatedProperty:h}),n.error(),s||e.break();return}if(!(0, Vy.alwaysValidSchema)(a,t)){let p=e.name("valid");n.subschema({keyword:"unevaluatedProperties",dataProp:h,dataPropType:Vy.Type.Str},p),s||e.if((0, yn.not)(p),()=>e.break());}}function l(h,p){return (0, yn._)`!${h} || !${h}[${p}]`}function c(h,p){let f=[];for(let g in h)h[g]===true&&f.push((0, yn._)`${p} !== ${g}`);return (0, yn.and)(...f)}}};gh.default=MA;});var jy=E(yh=>{Object.defineProperty(yh,"__esModule",{value:true});var Jn=$(),$y=M(),GA={message:({params:{len:n}})=>(0, Jn.str)`must NOT have more than ${n} items`,params:({params:{len:n}})=>(0, Jn._)`{limit: ${n}}`},JA={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:GA,code(n){let{gen:e,schema:t,data:r,it:i}=n,a=i.items||0;if(a===true)return;let s=e.const("len",(0, Jn._)`${r}.length`);if(t===false)n.setParams({len:a}),n.fail((0, Jn._)`${s} > ${a}`);else if(typeof t=="object"&&!(0, $y.alwaysValidSchema)(i,t)){let u=e.var("valid",(0, Jn._)`${s} <= ${a}`);e.if((0, Jn.not)(u),()=>o(u,a)),n.ok(u);}i.items=true;function o(u,l){e.forRange("i",l,s,c=>{n.subschema({keyword:"unevaluatedItems",dataProp:c,dataPropType:$y.Type.Num},u),i.allErrors||e.if((0, Jn.not)(u),()=>e.break());});}}};yh.default=JA;});var Ly=E(vh=>{Object.defineProperty(vh,"__esModule",{value:true});var zA=Ry(),HA=jy(),UA=[zA.default,HA.default];vh.default=UA;});var By=E(Ch=>{Object.defineProperty(Ch,"__esModule",{value:true});var KA=fc(),XA=xc(),YA=Xc(),ZA=xy(),QA=ky(),eP=Ly(),tP=Qc(),qy=eh(),nP=[ZA.default,KA.default,XA.default,(0, YA.default)(true),tP.default,qy.metadataVocabulary,qy.contentVocabulary,QA.default,eP.default];Ch.default=nP;});var Wy=E((fV,rP)=>{rP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true,"https://json-schema.org/draft/2020-12/vocab/applicator":true,"https://json-schema.org/draft/2020-12/vocab/unevaluated":true,"https://json-schema.org/draft/2020-12/vocab/validation":true,"https://json-schema.org/draft/2020-12/vocab/meta-data":true,"https://json-schema.org/draft/2020-12/vocab/format-annotation":true,"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:true,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:true,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:true},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:true}}};});var My=E((pV,iP)=>{iP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":true},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}};});var Gy=E((mV,sP)=>{sP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":true},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}};});var Jy=E((gV,aP)=>{aP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":true},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}};});var zy=E((yV,oP)=>{oP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":true},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}};});var Hy=E((vV,uP)=>{uP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":true},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}};});var Uy=E((CV,lP)=>{lP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":true},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:true,deprecated:{type:"boolean",default:false},readOnly:{type:"boolean",default:false},writeOnly:{type:"boolean",default:false},examples:{type:"array",items:true}}};});var Ky=E((bV,cP)=>{cP.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":true},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:true}]},const:true,enum:{type:"array",items:true},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:false},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:true,default:[]}}};});var Xy=E(bh=>{Object.defineProperty(bh,"__esModule",{value:true});var hP=Wy(),dP=My(),fP=Gy(),pP=Jy(),mP=zy(),gP=Hy(),yP=Uy(),vP=Ky(),CP=["/properties"];function bP(n){return [hP,dP,fP,pP,mP,e(this,gP),yP,e(this,vP)].forEach(t=>this.addMetaSchema(t,void 0,false)),this;function e(t,r){return n?t.$dataMetaSchema(r,CP):r}}bh.default=bP;});var Yy=E((me,Sh)=>{Object.defineProperty(me,"__esModule",{value:true});me.MissingRefError=me.ValidationError=me.CodeGen=me.Name=me.nil=me.stringify=me.str=me._=me.KeywordCxt=me.Ajv2020=void 0;var _P=cc(),SP=By(),EP=ih(),wP=Xy(),_h="https://json-schema.org/draft/2020-12/schema",Dr=class extends _P.default{constructor(e={}){super({...e,dynamicRef:true,next:true,unevaluated:true});}_addVocabularies(){super._addVocabularies(),SP.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(EP.default);}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(wP.default.call(this,e),this.refs["http://json-schema.org/schema"]=_h);}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(_h)?_h:void 0)}};me.Ajv2020=Dr;Sh.exports=me=Dr;Sh.exports.Ajv2020=Dr;Object.defineProperty(me,"__esModule",{value:true});me.default=Dr;var DP=mr();Object.defineProperty(me,"KeywordCxt",{enumerable:true,get:function(){return DP.KeywordCxt}});var Ar=$();Object.defineProperty(me,"_",{enumerable:true,get:function(){return Ar._}});Object.defineProperty(me,"str",{enumerable:true,get:function(){return Ar.str}});Object.defineProperty(me,"stringify",{enumerable:true,get:function(){return Ar.stringify}});Object.defineProperty(me,"nil",{enumerable:true,get:function(){return Ar.nil}});Object.defineProperty(me,"Name",{enumerable:true,get:function(){return Ar.Name}});Object.defineProperty(me,"CodeGen",{enumerable:true,get:function(){return Ar.CodeGen}});var AP=bi();Object.defineProperty(me,"ValidationError",{enumerable:true,get:function(){return AP.default}});var PP=gr();Object.defineProperty(me,"MissingRefError",{enumerable:true,get:function(){return PP.default}});});var wh=E(pa=>{Object.defineProperty(pa,"__esModule",{value:true});pa.CompilerOptions=void 0;var Eh=class{constructor(e=null,t=[],r=false,i=null,a=null){this.sourceFilename=e,this.pluginNames=t,this.countAllVisits=r,this.errorHandler=i,this.fileHandler=a;}};pa.CompilerOptions=Eh;});var Zy=E(ma=>{Object.defineProperty(ma,"__esModule",{value:true});ma.DebugSourceRange=void 0;var Dh=class{constructor(e,t,r){this.length=e,this.debugMetadata=t,this.text=r;}};ma.DebugSourceRange=Dh;});var Pr=E(ga=>{Object.defineProperty(ga,"__esModule",{value:true});ga.ErrorType=void 0;var Qy;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(Qy||(ga.ErrorType=Qy={}));});var ev=E(ya=>{Object.defineProperty(ya,"__esModule",{value:true});ya.Argument=void 0;var Ah=class{constructor(e=null,t=null,r=null){this.identifier=e,this.isByReference=t,this.isDivertTarget=r;}get typeName(){return "Argument"}};ya.Argument=Ah;});var ae=E(Oe=>{Object.defineProperty(Oe,"__esModule",{value:true});Oe.filterUndef=Oe.isEquatable=Oe.nullIfUndefined=Oe.asINamedContentOrNull=Oe.asBooleanOrThrows=Oe.asNumberOrThrows=Oe.asOrThrows=Oe.asOrNull=void 0;function OP(n,e){return n instanceof e?tv(n):null}Oe.asOrNull=OP;function xP(n,e){if(n instanceof e)return tv(n);throw new Error(`${n} is not of type ${e}`)}Oe.asOrThrows=xP;function TP(n){if(typeof n=="number")return n;throw new Error(`${n} is not a number`)}Oe.asNumberOrThrows=TP;function NP(n){if(typeof n=="boolean")return n;throw new Error(`${n} is not a boolean`)}Oe.asBooleanOrThrows=NP;function FP(n){return n.hasValidName&&n.name?n:null}Oe.asINamedContentOrNull=FP;function IP(n){return typeof n>"u"?null:n}Oe.nullIfUndefined=IP;function kP(n){return typeof n=="object"&&typeof n.Equals=="function"}Oe.isEquatable=kP;function tv(n,e){return n}function VP(n){return n!=null}Oe.filterUndef=VP;});var ye=E(va=>{Object.defineProperty(va,"__esModule",{value:true});va.ParsedObject=void 0;var nv=ae(),Ph=class{constructor(){this._alreadyHadError=false,this._alreadyHadWarning=false,this._debugMetadata=null,this._runtimeObject=null,this.content=[],this.parent=null,this.GetType=()=>this.typeName,this.AddContent=e=>{this.content===null&&(this.content=[]);let t=Array.isArray(e)?e:[e];for(let r of t)r.hasOwnProperty("parent")&&(r.parent=this),this.content.push(r);if(!Array.isArray(e))return e},this.InsertContent=(e,t)=>(this.content===null&&(this.content=[]),t.parent=this,this.content.splice(e,0,t),t),this.Find=e=>(t=null)=>{let r=(0, nv.asOrNull)(this,e);if(r!==null&&(t===null||t(r)===true))return r;if(this.content===null)return null;for(let i of this.content){let a=i.Find&&i.Find(e)(t);if(a)return a}return null},this.FindAll=e=>(t,r)=>{let i=Array.isArray(r)?r:[],a=(0, nv.asOrNull)(this,e);if(a!==null&&(!t||t(a)===true)&&i.push(a),this.content===null)return [];for(let s of this.content)s.FindAll&&s.FindAll(e)(t,i);return i},this.Warning=(e,t=null)=>{this.Error(e,t,true);};}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get hasOwnDebugMetadata(){return !!this.debugMetadata}get typeName(){return "ParsedObject"}get story(){let e=this;for(;e.parent;)e=e.parent;return e}get runtimeObject(){return this._runtimeObject||(this._runtimeObject=this.GenerateRuntimeObject(),this._runtimeObject&&(this._runtimeObject.debugMetadata=this.debugMetadata)),this._runtimeObject}set runtimeObject(e){this._runtimeObject=e;}get runtimePath(){if(!this.runtimeObject.path)throw new Error;return this.runtimeObject.path}get containerForCounting(){return this.runtimeObject}get ancestry(){let e=[],t=this.parent;for(;t;)e.push(t),t=t.parent;return e=e.reverse(),e}ResolveReferences(e){if(this.content!==null)for(let t of this.content)t.ResolveReferences(e);}Error(e,t=null,r=false){if(t===null&&(t=this),!(t._alreadyHadError&&!r||t._alreadyHadWarning&&r)){if(this.parent)this.parent.Error(e,t,r);else throw new Error(`No parent object to send error to: ${e}`);r?t._alreadyHadWarning=true:t._alreadyHadError=true;}}};va.ParsedObject=Ph;});var ba=E(Ca=>{Object.defineProperty(Ca,"__esModule",{value:true});Ca.AuthorWarning=void 0;var RP=ye(),Oh=class extends RP.ParsedObject{constructor(e){super(),this.warningMessage=e,this.GenerateRuntimeObject=()=>(this.Warning(this.warningMessage),null);}get typeName(){return "AuthorWarning"}};Ca.AuthorWarning=Oh;});var st=E(ji=>{Object.defineProperty(ji,"__esModule",{value:true});ji.Path=void 0;var Or=class n{constructor(){if(this._components=[],this._componentsString=null,this._isRelative=false,typeof arguments[0]=="string"){let e=arguments[0];this.componentsString=e;}else if(arguments[0]instanceof n.Component&&arguments[1]instanceof n){let e=arguments[0],t=arguments[1];this._components.push(e),this._components=this._components.concat(t._components);}else if(arguments[0]instanceof Array){let e=arguments[0],t=!!arguments[1];this._components=this._components.concat(e),this._isRelative=t;}}get isRelative(){return this._isRelative}get componentCount(){return this._components.length}get head(){return this._components.length>0?this._components[0]:null}get tail(){if(this._components.length>=2){let e=this._components.slice(1,this._components.length);return new n(e)}else return n.self}get length(){return this._components.length}get lastComponent(){let e=this._components.length-1;return e>=0?this._components[e]:null}get containsNamedComponent(){for(let e=0,t=this._components.length;e<t;e++)if(!this._components[e].isIndex)return true;return false}static get self(){let e=new n;return e._isRelative=true,e}GetComponent(e){return this._components[e]}PathByAppendingPath(e){let t=new n,r=0;for(let i=0;i<e._components.length&&e._components[i].isParent;++i)r++;for(let i=0;i<this._components.length-r;++i)t._components.push(this._components[i]);for(let i=r;i<e._components.length;++i)t._components.push(e._components[i]);return t}get componentsString(){return this._componentsString==null&&(this._componentsString=this._components.join("."),this.isRelative&&(this._componentsString="."+this._componentsString)),this._componentsString}set componentsString(e){if(this._components.length=0,this._componentsString=e,this._componentsString==null||this._componentsString=="")return;this._componentsString[0]=="."&&(this._isRelative=true,this._componentsString=this._componentsString.substring(1));let t=this._componentsString.split(".");for(let r of t)/^(\-|\+)?([0-9]+|Infinity)$/.test(r)?this._components.push(new n.Component(parseInt(r))):this._components.push(new n.Component(r));}toString(){return this.componentsString}Equals(e){if(e==null||e._components.length!=this._components.length||e.isRelative!=this.isRelative)return false;for(let t=0,r=e._components.length;t<r;t++)if(!e._components[t].Equals(this._components[t]))return false;return true}PathByAppendingComponent(e){let t=new n;return t._components.push(...this._components),t._components.push(e),t}};ji.Path=Or;Or.parentId="^";(function(n){class e{constructor(r){this.index=-1,this.name=null,typeof r=="string"?this.name=r:this.index=r;}get isIndex(){return this.index>=0}get isParent(){return this.name==n.parentId}static ToParent(){return new e(n.parentId)}toString(){return this.isIndex?this.index.toString():this.name}Equals(r){return r!=null&&r.isIndex==this.isIndex?this.isIndex?this.index==r.index:this.name==r.name:false}}n.Component=e;})(Or||(ji.Path=Or={}));});var Li=E(_a=>{Object.defineProperty(_a,"__esModule",{value:true});_a.Debug=void 0;var rv;(function(n){function e(r,i,a){t(r instanceof i,a);}n.AssertType=e;function t(r,i){if(!r)throw typeof i<"u"&&console.warn(i),console.trace&&console.trace(),new Error("")}n.Assert=t;})(rv||(_a.Debug=rv={}));});var Le=E(xr=>{Object.defineProperty(xr,"__esModule",{value:true});xr.throwNullException=xr.NullException=void 0;var Sa=class extends Error{};xr.NullException=Sa;function $P(n){throw new Sa(`${n} is null or undefined`)}xr.throwNullException=$P;});var at=E(wa=>{Object.defineProperty(wa,"__esModule",{value:true});wa.InkObject=void 0;var Tr=st(),qi=Ee(),xh=Li(),Nr=ae(),Ea=Le(),Th=class{constructor(){this.parent=null,this._debugMetadata=null,this._path=null;}get debugMetadata(){return this._debugMetadata===null&&this.parent?this.parent.debugMetadata:this._debugMetadata}set debugMetadata(e){this._debugMetadata=e;}get ownDebugMetadata(){return this._debugMetadata}DebugLineNumberOfPath(e){if(e===null)return null;let t=this.rootContentContainer;if(t){let r=t.ContentAtPath(e).obj;if(r){let i=r.debugMetadata;if(i!==null)return i.startLineNumber}}return null}get path(){if(this._path==null)if(this.parent==null)this._path=new Tr.Path;else {let e=[],t=this,r=(0, Nr.asOrNull)(t.parent,qi.Container);for(;r!==null;){let i=(0, Nr.asINamedContentOrNull)(t);if(i!=null&&i.hasValidName){if(i.name===null)return (0, Ea.throwNullException)("namedChild.name");e.unshift(new Tr.Path.Component(i.name));}else e.unshift(new Tr.Path.Component(r.content.indexOf(t)));t=r,r=(0, Nr.asOrNull)(r.parent,qi.Container);}this._path=new Tr.Path(e);}return this._path}ResolvePath(e){if(e===null)return (0, Ea.throwNullException)("path");if(e.isRelative){let t=(0, Nr.asOrNull)(this,qi.Container);return t===null&&(xh.Debug.Assert(this.parent!==null,"Can't resolve relative path because we don't have a parent"),t=(0, Nr.asOrNull)(this.parent,qi.Container),xh.Debug.Assert(t!==null,"Expected parent to be a container"),xh.Debug.Assert(e.GetComponent(0).isParent),e=e.tail),t===null?(0, Ea.throwNullException)("nearestContainer"):t.ContentAtPath(e)}else {let t=this.rootContentContainer;return t===null?(0, Ea.throwNullException)("contentContainer"):t.ContentAtPath(e)}}ConvertPathToRelative(e){let t=this.path,r=Math.min(e.length,t.length),i=-1;for(let u=0;u<r;++u){let l=t.GetComponent(u),c=e.GetComponent(u);if(l.Equals(c))i=u;else break}if(i==-1)return e;let a=t.componentCount-1-i,s=[];for(let u=0;u<a;++u)s.push(Tr.Path.Component.ToParent());for(let u=i+1;u<e.componentCount;++u)s.push(e.GetComponent(u));return new Tr.Path(s,true)}CompactPathString(e){let t=null,r=null;return e.isRelative?(r=e.componentsString,t=this.path.PathByAppendingPath(e).componentsString):(r=this.ConvertPathToRelative(e).componentsString,t=e.componentsString),r.length<t.length?r:t}get rootContentContainer(){let e=this;for(;e.parent;)e=e.parent;return (0, Nr.asOrNull)(e,qi.Container)}Copy(){throw Error("Not Implemented: Doesn't support copying")}SetChild(e,t,r){e[t]&&(e[t]=null),e[t]=r,e[t]&&(e[t].parent=this);}Equals(e){return e===this}};wa.InkObject=Th;});var zn=E(Da=>{Object.defineProperty(Da,"__esModule",{value:true});Da.StringBuilder=void 0;var Nh=class{constructor(e){e=typeof e<"u"?e.toString():"",this.string=e;}get Length(){return this.string.length}Append(e){e!==null&&(this.string+=e);}AppendLine(e){typeof e<"u"&&this.Append(e),this.string+=`
9
+ `;}AppendFormat(e,...t){this.string+=e.replace(/{(\d+)}/g,(r,i)=>typeof t[i]<"u"?t[i]:r);}toString(){return this.string}Clear(){this.string="";}};Da.StringBuilder=Nh;});var ut=E(Fr=>{Object.defineProperty(Fr,"__esModule",{value:true});Fr.InkList=Fr.InkListItem=void 0;var jt=Le(),jP=zn(),ot=class n{constructor(){if(this.originName=null,this.itemName=null,typeof arguments[1]<"u"){let e=arguments[0],t=arguments[1];this.originName=e,this.itemName=t;}else if(arguments[0]){let t=arguments[0].toString().split(".");this.originName=t[0],this.itemName=t[1];}}static get Null(){return new n(null,null)}get isNull(){return this.originName==null&&this.itemName==null}get fullName(){return (this.originName!==null?this.originName:"?")+"."+this.itemName}toString(){return this.fullName}Equals(e){if(e instanceof n){let t=e;return t.itemName==this.itemName&&t.originName==this.originName}return false}copy(){return new n(this.originName,this.itemName)}serialized(){return JSON.stringify({originName:this.originName,itemName:this.itemName})}static fromSerializedKey(e){let t=JSON.parse(e);if(!n.isLikeInkListItem(t))return n.Null;let r=t;return new n(r.originName,r.itemName)}static isLikeInkListItem(e){return !(typeof e!="object"||!e.hasOwnProperty("originName")||!e.hasOwnProperty("itemName")||typeof e.originName!="string"&&typeof e.originName!==null||typeof e.itemName!="string"&&typeof e.itemName!==null)}};Fr.InkListItem=ot;var Fh=class n extends Map{constructor(){if(super(arguments[0]instanceof n?arguments[0]:[]),this.origins=null,this._originNames=[],arguments[0]instanceof n){let e=arguments[0],t=e.originNames;t!==null&&(this._originNames=t.slice()),e.origins!==null&&(this.origins=e.origins.slice());}else if(typeof arguments[0]=="string"){let e=arguments[0],t=arguments[1];if(this.SetInitialOriginName(e),t.listDefinitions===null)return (0, jt.throwNullException)("originStory.listDefinitions");let r=t.listDefinitions.TryListGetDefinition(e,null);if(r.exists){if(r.result===null)return (0, jt.throwNullException)("def.result");this.origins=[r.result];}else throw new Error("InkList origin could not be found in story when constructing new list: "+e)}else if(typeof arguments[0]=="object"&&arguments[0].hasOwnProperty("Key")&&arguments[0].hasOwnProperty("Value")){let e=arguments[0];this.Add(e.Key,e.Value);}}static FromString(e,t){var r;if(e==null||e=="")return new n;let i=(r=t.listDefinitions)===null||r===void 0?void 0:r.FindSingleItemListWithName(e);if(i)return i.value===null?(0, jt.throwNullException)("listValue.value"):new n(i.value);throw new Error("Could not find the InkListItem from the string '"+e+"' to create an InkList because it doesn't exist in the original list definition in ink.")}AddItem(e,t=null){if(e instanceof ot){let r=e;if(r.originName==null){this.AddItem(r.itemName);return}if(this.origins===null)return (0, jt.throwNullException)("this.origins");for(let i of this.origins)if(i.name==r.originName){let a=i.TryGetValueForItem(r,0);if(a.exists){this.Add(r,a.result);return}else throw new Error("Could not add the item "+r+" to this list because it doesn't exist in the original list definition in ink.")}throw new Error("Failed to add item to list because the item was from a new list definition that wasn't previously known to this list. Only items from previously known lists can be used, so that the int value can be found.")}else if(e!==null){let r=e,i=null;if(this.origins===null)return (0, jt.throwNullException)("this.origins");for(let a of this.origins){if(r===null)return (0, jt.throwNullException)("itemName");if(a.ContainsItemWithName(r)){if(i!=null)throw new Error("Could not add the item "+r+" to this list because it could come from either "+a.name+" or "+i.name);i=a;}}if(i==null){if(t==null)throw new Error("Could not add the item "+r+" to this list because it isn't known to any list definitions previously associated with this list.");{let a=n.FromString(r,t).orderedItems[0];this.Add(a.Key,a.Value);}}else {let a=new ot(i.name,r),s=i.ValueForItem(a);this.Add(a,s);}}}ContainsItemNamed(e){for(let[t]of this)if(ot.fromSerializedKey(t).itemName==e)return true;return false}ContainsKey(e){return this.has(e.serialized())}Add(e,t){let r=e.serialized();if(this.has(r))throw new Error(`The Map already contains an entry for ${e}`);this.set(r,t);}Remove(e){return this.delete(e.serialized())}get Count(){return this.size}get originOfMaxItem(){if(this.origins==null)return null;let e=this.maxItem.Key.originName,t=null;return this.origins.every(r=>r.name==e?(t=r,false):true),t}get originNames(){if(this.Count>0){this._originNames==null&&this.Count>0?this._originNames=[]:(this._originNames||(this._originNames=[]),this._originNames.length=0);for(let[e]of this){let t=ot.fromSerializedKey(e);if(t.originName===null)return (0, jt.throwNullException)("item.originName");this._originNames.push(t.originName);}}return this._originNames}SetInitialOriginName(e){this._originNames=[e];}SetInitialOriginNames(e){e==null?this._originNames=null:this._originNames=e.slice();}get maxItem(){let e={Key:ot.Null,Value:0};for(let[t,r]of this){let i=ot.fromSerializedKey(t);(e.Key.isNull||r>e.Value)&&(e={Key:i,Value:r});}return e}get minItem(){let e={Key:ot.Null,Value:0};for(let[t,r]of this){let i=ot.fromSerializedKey(t);(e.Key.isNull||r<e.Value)&&(e={Key:i,Value:r});}return e}get inverse(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=ot.fromSerializedKey(r);this.ContainsKey(a)||e.Add(a,i);}return e}get all(){let e=new n;if(this.origins!=null)for(let t of this.origins)for(let[r,i]of t.items){let a=ot.fromSerializedKey(r);e.set(a.serialized(),i);}return e}Union(e){let t=new n(this);for(let[r,i]of e)t.set(r,i);return t}Intersect(e){let t=new n;for(let[r,i]of this)e.has(r)&&t.set(r,i);return t}HasIntersection(e){for(let[t]of this)if(e.has(t))return true;return false}Without(e){let t=new n(this);for(let[r]of e)t.delete(r);return t}Contains(e){if(typeof e=="string")return this.ContainsItemNamed(e);let t=e;if(t.size==0||this.size==0)return false;for(let[r]of t)if(!this.has(r))return false;return true}GreaterThan(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>e.maxItem.Value}GreaterThanOrEquals(e){return this.Count==0?false:e.Count==0?true:this.minItem.Value>=e.minItem.Value&&this.maxItem.Value>=e.maxItem.Value}LessThan(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<e.minItem.Value}LessThanOrEquals(e){return e.Count==0?false:this.Count==0?true:this.maxItem.Value<=e.maxItem.Value&&this.minItem.Value<=e.minItem.Value}MaxAsList(){return this.Count>0?new n(this.maxItem):new n}MinAsList(){return this.Count>0?new n(this.minItem):new n}ListWithSubRange(e,t){if(this.Count==0)return new n;let r=this.orderedItems,i=0,a=Number.MAX_SAFE_INTEGER;Number.isInteger(e)?i=e:e instanceof n&&e.Count>0&&(i=e.minItem.Value),Number.isInteger(t)?a=t:t instanceof n&&t.Count>0&&(a=t.maxItem.Value);let s=new n;s.SetInitialOriginNames(this.originNames);for(let o of r)o.Value>=i&&o.Value<=a&&s.Add(o.Key,o.Value);return s}Equals(e){if(!(e instanceof n)||e.Count!=this.Count)return false;for(let[t]of this)if(!e.has(t))return false;return true}get orderedItems(){let e=new Array;for(let[t,r]of this){let i=ot.fromSerializedKey(t);e.push({Key:i,Value:r});}return e.sort((t,r)=>t.Key.originName===null?(0, jt.throwNullException)("x.Key.originName"):r.Key.originName===null?(0, jt.throwNullException)("y.Key.originName"):t.Value==r.Value?t.Key.originName.localeCompare(r.Key.originName):t.Value<r.Value?-1:t.Value>r.Value?1:0),e}get singleItem(){for(let e of this.orderedItems)return e.Key;return null}toString(){let e=this.orderedItems,t=new jP.StringBuilder;for(let r=0;r<e.length;r++){r>0&&t.Append(", ");let i=e[r].Key;if(i.itemName===null)return (0, jt.throwNullException)("item.itemName");t.Append(i.itemName);}return t.toString()}valueOf(){return NaN}};Fr.InkList=Fh;});var Bi=E(Aa=>{Object.defineProperty(Aa,"__esModule",{value:true});Aa.StoryException=void 0;var Ih=class extends Error{constructor(e){super(e),this.useEndLineNumber=false,this.message=e,this.name="StoryException";}};Aa.StoryException=Ih;});var Ir=E(vn=>{Object.defineProperty(vn,"__esModule",{value:true});vn.tryParseFloat=vn.tryParseInt=vn.tryGetValueFromMap=void 0;function LP(n,e,t){if(n===null)return {result:t,exists:false};let r=n.get(e);return typeof r>"u"?{result:t,exists:false}:{result:r,exists:true}}vn.tryGetValueFromMap=LP;function qP(n,e=0){let t=parseInt(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}vn.tryParseInt=qP;function BP(n,e=0){let t=parseFloat(n);return Number.isNaN(t)?{result:e,exists:false}:{result:t,exists:true}}vn.tryParseFloat=BP;});var ve=E(Ce=>{Object.defineProperty(Ce,"__esModule",{value:true});Ce.ValueType=Ce.ListValue=Ce.VariablePointerValue=Ce.DivertTargetValue=Ce.StringValue=Ce.FloatValue=Ce.IntValue=Ce.BoolValue=Ce.Value=Ce.AbstractValue=void 0;var iv=at(),sv=st(),Hn=ut(),WP=Bi(),Wi=ae(),av=Ir(),vt=Le(),Pa=class n extends iv.InkObject{static Create(e,t){if(t){if(t===ge.Int&&Number.isInteger(Number(e)))return new qt(Number(e));if(t===ge.Float&&!isNaN(e))return new Bt(Number(e))}if(typeof e=="boolean")return new kr(!!e);if(typeof e=="string")return new tn(String(e));if(Number.isInteger(Number(e)))return new qt(Number(e));if(isNaN(e)){if(e instanceof sv.Path)return new Oa((0, Wi.asOrThrows)(e,sv.Path));if(e instanceof Hn.InkList)return new xa((0, Wi.asOrThrows)(e,Hn.InkList))}else return new Bt(Number(e));return null}Copy(){return (0, Wi.asOrThrows)(n.Create(this.valueObject),iv.InkObject)}BadCastException(e){return new WP.StoryException("Can't cast "+this.valueObject+" from "+this.valueType+" to "+e)}};Ce.AbstractValue=Pa;var Lt=class extends Pa{constructor(e){super(),this.value=e;}get valueObject(){return this.value}toString(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value.toString()}};Ce.Value=Lt;var kr=class extends Lt{constructor(e){super(e||false);}get isTruthy(){return !!this.value}get valueType(){return ge.Bool}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Int)return new qt(this.value?1:0);if(e==ge.Float)return new Bt(this.value?1:0);if(e==ge.String)return new tn(this.value?"true":"false");throw this.BadCastException(e)}toString(){return this.value?"true":"false"}};Ce.BoolValue=kr;var qt=class extends Lt{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Int}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new kr(this.value!==0);if(e==ge.Float)return new Bt(this.value);if(e==ge.String)return new tn(""+this.value);throw this.BadCastException(e)}};Ce.IntValue=qt;var Bt=class extends Lt{constructor(e){super(e||0);}get isTruthy(){return this.value!=0}get valueType(){return ge.Float}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==this.valueType)return this;if(e==ge.Bool)return new kr(this.value!==0);if(e==ge.Int)return new qt(this.value);if(e==ge.String)return new tn(""+this.value);throw this.BadCastException(e)}};Ce.FloatValue=Bt;var tn=class extends Lt{constructor(e){if(super(e||""),this._isNewline=this.value==`
10
+ `,this._isInlineWhitespace=true,this.value===null)return (0, vt.throwNullException)("Value.value");this.value.length>0&&this.value.split("").every(t=>t!=" "&&t!=" "?(this._isInlineWhitespace=false,false):true);}get valueType(){return ge.String}get isTruthy(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value.length>0}get isNewline(){return this._isNewline}get isInlineWhitespace(){return this._isInlineWhitespace}get isNonWhitespace(){return !this.isNewline&&!this.isInlineWhitespace}Cast(e){if(e==this.valueType)return this;if(e==ge.Int){let t=(0, av.tryParseInt)(this.value);if(t.exists)return new qt(t.result);throw this.BadCastException(e)}if(e==ge.Float){let t=(0, av.tryParseFloat)(this.value);if(t.exists)return new Bt(t.result);throw this.BadCastException(e)}throw this.BadCastException(e)}};Ce.StringValue=tn;var Oa=class extends Lt{constructor(e=null){super(e);}get valueType(){return ge.DivertTarget}get targetPath(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value}set targetPath(e){this.value=e;}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a divert target")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "DivertTargetValue("+this.targetPath+")"}};Ce.DivertTargetValue=Oa;var kh=class n extends Lt{constructor(e,t=-1){super(e),this._contextIndex=t;}get contextIndex(){return this._contextIndex}set contextIndex(e){this._contextIndex=e;}get variableName(){return this.value===null?(0, vt.throwNullException)("Value.value"):this.value}set variableName(e){this.value=e;}get valueType(){return ge.VariablePointer}get isTruthy(){throw new Error("Shouldn't be checking the truthiness of a variable pointer")}Cast(e){if(e==this.valueType)return this;throw this.BadCastException(e)}toString(){return "VariablePointerValue("+this.variableName+")"}Copy(){return new n(this.variableName,this.contextIndex)}};Ce.VariablePointerValue=kh;var xa=class n extends Lt{get isTruthy(){return this.value===null?(0, vt.throwNullException)("this.value"):this.value.Count>0}get valueType(){return ge.List}Cast(e){if(this.value===null)return (0, vt.throwNullException)("Value.value");if(e==ge.Int){let t=this.value.maxItem;return t.Key.isNull?new qt(0):new qt(t.Value)}else if(e==ge.Float){let t=this.value.maxItem;return t.Key.isNull?new Bt(0):new Bt(t.Value)}else if(e==ge.String){let t=this.value.maxItem;return t.Key.isNull?new tn(""):new tn(t.Key.toString())}if(e==this.valueType)return this;throw this.BadCastException(e)}constructor(e,t){super(null),!e&&!t?this.value=new Hn.InkList:e instanceof Hn.InkList?this.value=new Hn.InkList(e):e instanceof Hn.InkListItem&&typeof t=="number"&&(this.value=new Hn.InkList({Key:e,Value:t}));}static RetainListOriginsForAssignment(e,t){let r=(0, Wi.asOrNull)(e,n),i=(0, Wi.asOrNull)(t,n);if(i&&i.value===null)return (0, vt.throwNullException)("newList.value");if(r&&r.value===null)return (0, vt.throwNullException)("oldList.value");r&&i&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}};Ce.ListValue=xa;var ge;(function(n){n[n.Bool=-1]="Bool",n[n.Int=0]="Int",n[n.Float=1]="Float",n[n.List=2]="List",n[n.String=3]="String",n[n.DivertTarget=4]="DivertTarget",n[n.VariablePointer=5]="VariablePointer";})(ge||(Ce.ValueType=ge={}));});var ov=E(Ta=>{Object.defineProperty(Ta,"__esModule",{value:true});Ta.SearchResult=void 0;var MP=Ee(),Vh=class n{constructor(){this.obj=null,this.approximate=false;}get correctObj(){return this.approximate?null:this.obj}get container(){return this.obj instanceof MP.Container?this.obj:null}copy(){let e=new n;return e.obj=this.obj,e.approximate=this.approximate,e}};Ta.SearchResult=Vh;});var Ee=E(Gi=>{Object.defineProperty(Gi,"__esModule",{value:true});Gi.Container=void 0;var GP=ve(),uv=Le(),JP=zn(),Vr=at(),zP=ov(),lv=st(),cv=Li(),HP=Ir(),Cn=ae(),Mi=class n extends Vr.InkObject{constructor(){super(...arguments),this.name=null,this._content=[],this.namedContent=new Map,this.visitsShouldBeCounted=false,this.turnIndexShouldBeCounted=false,this.countingAtStartOnly=false,this._pathToFirstLeafContent=null;}get hasValidName(){return this.name!=null&&this.name.length>0}get content(){return this._content}set content(e){this.AddContent(e);}get namedOnlyContent(){let e=new Map;for(let[t,r]of this.namedContent){let i=(0, Cn.asOrThrows)(r,Vr.InkObject);e.set(t,i);}for(let t of this.content){let r=(0, Cn.asINamedContentOrNull)(t);r!=null&&r.hasValidName&&e.delete(r.name);}return e.size==0&&(e=null),e}set namedOnlyContent(e){let t=this.namedOnlyContent;if(t!=null)for(let[r]of t)this.namedContent.delete(r);if(e!=null)for(let[,r]of e){let i=(0, Cn.asINamedContentOrNull)(r);i!=null&&this.AddToNamedContentOnly(i);}}get countFlags(){let e=0;return this.visitsShouldBeCounted&&(e|=n.CountFlags.Visits),this.turnIndexShouldBeCounted&&(e|=n.CountFlags.Turns),this.countingAtStartOnly&&(e|=n.CountFlags.CountStartOnly),e==n.CountFlags.CountStartOnly&&(e=0),e}set countFlags(e){let t=e;(t&n.CountFlags.Visits)>0&&(this.visitsShouldBeCounted=true),(t&n.CountFlags.Turns)>0&&(this.turnIndexShouldBeCounted=true),(t&n.CountFlags.CountStartOnly)>0&&(this.countingAtStartOnly=true);}get pathToFirstLeafContent(){return this._pathToFirstLeafContent==null&&(this._pathToFirstLeafContent=this.path.PathByAppendingPath(this.internalPathToFirstLeafContent)),this._pathToFirstLeafContent}get internalPathToFirstLeafContent(){let e=[],t=this;for(;t instanceof n;)t.content.length>0&&(e.push(new lv.Path.Component(0)),t=t.content[0]);return new lv.Path(e)}AddContent(e){if(e instanceof Array){let t=e;for(let r of t)this.AddContent(r);}else {let t=e;if(this._content.push(t),t.parent)throw new Error("content is already in "+t.parent);t.parent=this,this.TryAddNamedContent(t);}}TryAddNamedContent(e){let t=(0, Cn.asINamedContentOrNull)(e);t!=null&&t.hasValidName&&this.AddToNamedContentOnly(t);}AddToNamedContentOnly(e){cv.Debug.AssertType(e,Vr.InkObject,"Can only add Runtime.Objects to a Runtime.Container");let t=(0, Cn.asOrThrows)(e,Vr.InkObject);if(t.parent=this,e.name===null)return (0, uv.throwNullException)("namedContentObj.name");this.namedContent.set(e.name,e);}ContentAtPath(e,t=0,r=-1){r==-1&&(r=e.length);let i=new zP.SearchResult;i.approximate=false;let a=this,s=this;for(let o=t;o<r;++o){let u=e.GetComponent(o);if(a==null){i.approximate=true;break}let l=a.ContentWithPathComponent(u);if(l==null){i.approximate=true;break}let c=(0, Cn.asOrNull)(l,n);if(o<r-1&&c==null){i.approximate=true;break}s=l,a=c;}return i.obj=s,i}InsertContent(e,t){if(this.content.splice(t,0,e),e.parent)throw new Error("content is already in "+e.parent);e.parent=this,this.TryAddNamedContent(e);}AddContentsOfContainer(e){this.content.push(...e.content);for(let t of e.content)t.parent=this,this.TryAddNamedContent(t);}ContentWithPathComponent(e){if(e.isIndex)return e.index>=0&&e.index<this.content.length?this.content[e.index]:null;if(e.isParent)return this.parent;{if(e.name===null)return (0, uv.throwNullException)("component.name");let t=(0, HP.tryGetValueFromMap)(this.namedContent,e.name,null);return t.exists?(0, Cn.asOrThrows)(t.result,Vr.InkObject):null}}BuildStringOfHierarchy(){let e;if(arguments.length==0)return e=new JP.StringBuilder,this.BuildStringOfHierarchy(e,0,null),e.toString();e=arguments[0];let t=arguments[1],r=arguments[2];function i(){for(let o=0;o<4*t;++o)e.Append(" ");}i(),e.Append("["),this.hasValidName&&e.AppendFormat(" ({0})",this.name),this==r&&e.Append(" <---"),e.AppendLine(),t++;for(let s=0;s<this.content.length;++s){let o=this.content[s];o instanceof n?o.BuildStringOfHierarchy(e,t,r):(i(),o instanceof GP.StringValue?(e.Append('"'),e.Append(o.toString().replace(`
11
+ `,"\\n")),e.Append('"')):e.Append(o.toString())),s!=this.content.length-1&&e.Append(","),!(o instanceof n)&&o==r&&e.Append(" <---"),e.AppendLine();}let a=new Map;for(let[s,o]of this.namedContent)this.content.indexOf((0, Cn.asOrThrows)(o,Vr.InkObject))>=0||a.set(s,o);if(a.size>0){i(),e.AppendLine("-- named: --");for(let[,s]of a)cv.Debug.AssertType(s,n,"Can only print out named Containers"),s.BuildStringOfHierarchy(e,t,r),e.AppendLine();}t--,i(),e.Append("]");}};Gi.Container=Mi;(function(n){(function(t){t[t.Start=0]="Start",t[t.Visits=1]="Visits",t[t.Turns=2]="Turns",t[t.CountStartOnly=4]="CountStartOnly";})(n.CountFlags||(n.CountFlags={}));})(Mi||(Gi.Container=Mi={}));});var qe=E(zi=>{Object.defineProperty(zi,"__esModule",{value:true});zi.ControlCommand=void 0;var UP=at(),Ji=class n extends UP.InkObject{get commandType(){return this._commandType}constructor(e=n.CommandType.NotSet){super(),this._commandType=e;}Copy(){return new n(this.commandType)}static EvalStart(){return new n(n.CommandType.EvalStart)}static EvalOutput(){return new n(n.CommandType.EvalOutput)}static EvalEnd(){return new n(n.CommandType.EvalEnd)}static Duplicate(){return new n(n.CommandType.Duplicate)}static PopEvaluatedValue(){return new n(n.CommandType.PopEvaluatedValue)}static PopFunction(){return new n(n.CommandType.PopFunction)}static PopTunnel(){return new n(n.CommandType.PopTunnel)}static BeginString(){return new n(n.CommandType.BeginString)}static EndString(){return new n(n.CommandType.EndString)}static NoOp(){return new n(n.CommandType.NoOp)}static ChoiceCount(){return new n(n.CommandType.ChoiceCount)}static Turns(){return new n(n.CommandType.Turns)}static TurnsSince(){return new n(n.CommandType.TurnsSince)}static ReadCount(){return new n(n.CommandType.ReadCount)}static Random(){return new n(n.CommandType.Random)}static SeedRandom(){return new n(n.CommandType.SeedRandom)}static VisitIndex(){return new n(n.CommandType.VisitIndex)}static SequenceShuffleIndex(){return new n(n.CommandType.SequenceShuffleIndex)}static StartThread(){return new n(n.CommandType.StartThread)}static Done(){return new n(n.CommandType.Done)}static End(){return new n(n.CommandType.End)}static ListFromInt(){return new n(n.CommandType.ListFromInt)}static ListRange(){return new n(n.CommandType.ListRange)}static ListRandom(){return new n(n.CommandType.ListRandom)}static BeginTag(){return new n(n.CommandType.BeginTag)}static EndTag(){return new n(n.CommandType.EndTag)}toString(){return "ControlCommand "+this.commandType.toString()}};zi.ControlCommand=Ji;(function(n){(function(t){t[t.NotSet=-1]="NotSet",t[t.EvalStart=0]="EvalStart",t[t.EvalOutput=1]="EvalOutput",t[t.EvalEnd=2]="EvalEnd",t[t.Duplicate=3]="Duplicate",t[t.PopEvaluatedValue=4]="PopEvaluatedValue",t[t.PopFunction=5]="PopFunction",t[t.PopTunnel=6]="PopTunnel",t[t.BeginString=7]="BeginString",t[t.EndString=8]="EndString",t[t.NoOp=9]="NoOp",t[t.ChoiceCount=10]="ChoiceCount",t[t.Turns=11]="Turns",t[t.TurnsSince=12]="TurnsSince",t[t.ReadCount=13]="ReadCount",t[t.Random=14]="Random",t[t.SeedRandom=15]="SeedRandom",t[t.VisitIndex=16]="VisitIndex",t[t.SequenceShuffleIndex=17]="SequenceShuffleIndex",t[t.StartThread=18]="StartThread",t[t.Done=19]="Done",t[t.End=20]="End",t[t.ListFromInt=21]="ListFromInt",t[t.ListRange=22]="ListRange",t[t.ListRandom=23]="ListRandom",t[t.BeginTag=24]="BeginTag",t[t.EndTag=25]="EndTag",t[t.TOTAL_VALUES=26]="TOTAL_VALUES";})(n.CommandType||(n.CommandType={}));})(Ji||(zi.ControlCommand=Ji={}));});var Ct=E(Na=>{Object.defineProperty(Na,"__esModule",{value:true});Na.Expression=void 0;var hv=Ee(),Rh=qe(),KP=ye(),$h=class extends KP.ParsedObject{constructor(){super(...arguments),this._prototypeRuntimeConstantExpression=null,this.outputWhenComplete=false,this.GenerateRuntimeObject=()=>{let e=new hv.Container;return e.AddContent(Rh.ControlCommand.EvalStart()),this.GenerateIntoContainer(e),this.outputWhenComplete&&e.AddContent(Rh.ControlCommand.EvalOutput()),e.AddContent(Rh.ControlCommand.EvalEnd()),e},this.GenerateConstantIntoContainer=e=>{this._prototypeRuntimeConstantExpression===null&&(this._prototypeRuntimeConstantExpression=new hv.Container,this.GenerateIntoContainer(this._prototypeRuntimeConstantExpression));for(let t of this._prototypeRuntimeConstantExpression.content){let r=t.Copy();r&&e.AddContent(r);}},this.toString=()=>"No string value in JavaScript.";}get typeName(){return "Expression"}Equals(e){return false}};Na.Expression=$h;});var Un=E(Fa=>{Object.defineProperty(Fa,"__esModule",{value:true});Fa.Void=void 0;var XP=at(),jh=class extends XP.InkObject{toString(){return "Void"}};Fa.Void=jh;});var Wt=E(ka=>{Object.defineProperty(ka,"__esModule",{value:true});ka.NativeFunctionCall=void 0;var F=ve(),Hi=Bi(),YP=Un(),Ia=ut(),ZP=at(),bt=ae(),lt=Le(),U=class n extends ZP.InkObject{static CallWithName(e){return new n(e)}static CallExistsWithName(e){return this.GenerateNativeFunctionsIfNecessary(),this._nativeFunctions.get(e)}get name(){return this._name===null?(0, lt.throwNullException)("NativeFunctionCall._name"):this._name}set name(e){this._name=e,this._isPrototype||(n._nativeFunctions===null?(0, lt.throwNullException)("NativeFunctionCall._nativeFunctions"):this._prototype=n._nativeFunctions.get(this._name)||null);}get numberOfParameters(){return this._prototype?this._prototype.numberOfParameters:this._numberOfParameters}set numberOfParameters(e){this._numberOfParameters=e;}Call(e){if(this._prototype)return this._prototype.Call(e);if(this.numberOfParameters!=e.length)throw new Error("Unexpected number of parameters");let t=false;for(let a of e){if(a instanceof YP.Void)throw new Hi.StoryException("Attempting to perform "+this.name+' on a void value. Did you forget to "return" a value from a function you called here?');a instanceof F.ListValue&&(t=true);}if(e.length==2&&t)return this.CallBinaryListOperation(e);let r=this.CoerceValuesToSingleType(e),i=r[0].valueType;return i==F.ValueType.Int?this.CallType(r):i==F.ValueType.Float?this.CallType(r):i==F.ValueType.String?this.CallType(r):i==F.ValueType.DivertTarget?this.CallType(r):i==F.ValueType.List?this.CallType(r):null}CallType(e){let t=(0, bt.asOrThrows)(e[0],F.Value),r=t.valueType,i=t,a=e.length;if(a==2||a==1){if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let s=this._operationFuncs.get(r);if(!s){let o=F.ValueType[r];throw new Hi.StoryException("Cannot perform operation "+this.name+" on "+o)}if(a==2){let u=(0, bt.asOrThrows)(e[1],F.Value),l=s;if(i.value===null||u.value===null)return (0, lt.throwNullException)("NativeFunctionCall.Call BinaryOp values");let c=l(i.value,u.value);return F.Value.Create(c)}else {let o=s;if(i.value===null)return (0, lt.throwNullException)("NativeFunctionCall.Call UnaryOp value");let u=o(i.value);return this.name===n.Int?F.Value.Create(u,F.ValueType.Int):this.name===n.Float?F.Value.Create(u,F.ValueType.Float):F.Value.Create(u,t.valueType)}}else throw new Error("Unexpected number of parameters to NativeFunctionCall: "+e.length)}CallBinaryListOperation(e){if((this.name=="+"||this.name=="-")&&e[0]instanceof F.ListValue&&e[1]instanceof F.IntValue)return this.CallListIncrementOperation(e);let t=(0, bt.asOrThrows)(e[0],F.Value),r=(0, bt.asOrThrows)(e[1],F.Value);if((this.name=="&&"||this.name=="||")&&(t.valueType!=F.ValueType.List||r.valueType!=F.ValueType.List)){if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let i=this._operationFuncs.get(F.ValueType.Int);if(i===null)return (0, lt.throwNullException)("NativeFunctionCall.CallBinaryListOperation op");let a=(0, bt.asBooleanOrThrows)(i(t.isTruthy?1:0,r.isTruthy?1:0));return new F.BoolValue(a)}if(t.valueType==F.ValueType.List&&r.valueType==F.ValueType.List)return this.CallType([t,r]);throw new Hi.StoryException("Can not call use "+this.name+" operation on "+F.ValueType[t.valueType]+" and "+F.ValueType[r.valueType])}CallListIncrementOperation(e){let t=(0, bt.asOrThrows)(e[0],F.ListValue),r=(0, bt.asOrThrows)(e[1],F.IntValue),i=new Ia.InkList;if(t.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value");for(let[a,s]of t.value){let o=Ia.InkListItem.fromSerializedKey(a);if(this._operationFuncs===null)return (0, lt.throwNullException)("NativeFunctionCall._operationFuncs");let u=this._operationFuncs.get(F.ValueType.Int);if(r.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation intVal.value");let l=u(s,r.value),c=null;if(t.value.origins===null)return (0, lt.throwNullException)("NativeFunctionCall.CallListIncrementOperation listVal.value.origins");for(let h of t.value.origins)if(h.name==o.originName){c=h;break}if(c!=null){let h=c.TryGetItemWithValue(l,Ia.InkListItem.Null);h.exists&&i.Add(h.result,l);}}return new F.ListValue(i)}CoerceValuesToSingleType(e){let t=F.ValueType.Int,r=null;for(let a of e){let s=(0, bt.asOrThrows)(a,F.Value);s.valueType>t&&(t=s.valueType),s.valueType==F.ValueType.List&&(r=(0, bt.asOrNull)(s,F.ListValue));}let i=[];if(F.ValueType[t]==F.ValueType[F.ValueType.List])for(let a of e){let s=(0, bt.asOrThrows)(a,F.Value);if(s.valueType==F.ValueType.List)i.push(s);else if(s.valueType==F.ValueType.Int){let o=parseInt(s.valueObject);if(r=(0, bt.asOrThrows)(r,F.ListValue),r.value===null)return (0, lt.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType specialCaseList.value");let u=r.value.originOfMaxItem;if(u===null)return (0, lt.throwNullException)("NativeFunctionCall.CoerceValuesToSingleType list");let l=u.TryGetItemWithValue(o,Ia.InkListItem.Null);if(l.exists){let c=new F.ListValue(l.result,o);i.push(c);}else throw new Hi.StoryException("Could not find List item with the value "+o+" in "+u.name)}else {let o=F.ValueType[s.valueType];throw new Hi.StoryException("Cannot mix Lists and "+o+" values in this operation")}}else for(let a of e){let o=(0, bt.asOrThrows)(a,F.Value).Cast(t);i.push(o);}return i}constructor(){if(super(),this._name=null,this._numberOfParameters=0,this._prototype=null,this._isPrototype=false,this._operationFuncs=null,arguments.length===0)n.GenerateNativeFunctionsIfNecessary();else if(arguments.length===1){let e=arguments[0];n.GenerateNativeFunctionsIfNecessary(),this.name=e;}else if(arguments.length===2){let e=arguments[0],t=arguments[1];this._isPrototype=true,this.name=e,this.numberOfParameters=t;}}static Identity(e){return e}static GenerateNativeFunctionsIfNecessary(){if(this._nativeFunctions==null){this._nativeFunctions=new Map,this.AddIntBinaryOp(this.Add,(r,i)=>r+i),this.AddIntBinaryOp(this.Subtract,(r,i)=>r-i),this.AddIntBinaryOp(this.Multiply,(r,i)=>r*i),this.AddIntBinaryOp(this.Divide,(r,i)=>Math.floor(r/i)),this.AddIntBinaryOp(this.Mod,(r,i)=>r%i),this.AddIntUnaryOp(this.Negate,r=>-r),this.AddIntBinaryOp(this.Equal,(r,i)=>r==i),this.AddIntBinaryOp(this.Greater,(r,i)=>r>i),this.AddIntBinaryOp(this.Less,(r,i)=>r<i),this.AddIntBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddIntBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddIntBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddIntUnaryOp(this.Not,r=>r==0),this.AddIntBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddIntBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddIntBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddIntBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddIntBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddIntUnaryOp(this.Floor,n.Identity),this.AddIntUnaryOp(this.Ceiling,n.Identity),this.AddIntUnaryOp(this.Int,n.Identity),this.AddIntUnaryOp(this.Float,r=>r),this.AddFloatBinaryOp(this.Add,(r,i)=>r+i),this.AddFloatBinaryOp(this.Subtract,(r,i)=>r-i),this.AddFloatBinaryOp(this.Multiply,(r,i)=>r*i),this.AddFloatBinaryOp(this.Divide,(r,i)=>r/i),this.AddFloatBinaryOp(this.Mod,(r,i)=>r%i),this.AddFloatUnaryOp(this.Negate,r=>-r),this.AddFloatBinaryOp(this.Equal,(r,i)=>r==i),this.AddFloatBinaryOp(this.Greater,(r,i)=>r>i),this.AddFloatBinaryOp(this.Less,(r,i)=>r<i),this.AddFloatBinaryOp(this.GreaterThanOrEquals,(r,i)=>r>=i),this.AddFloatBinaryOp(this.LessThanOrEquals,(r,i)=>r<=i),this.AddFloatBinaryOp(this.NotEquals,(r,i)=>r!=i),this.AddFloatUnaryOp(this.Not,r=>r==0),this.AddFloatBinaryOp(this.And,(r,i)=>r!=0&&i!=0),this.AddFloatBinaryOp(this.Or,(r,i)=>r!=0||i!=0),this.AddFloatBinaryOp(this.Max,(r,i)=>Math.max(r,i)),this.AddFloatBinaryOp(this.Min,(r,i)=>Math.min(r,i)),this.AddFloatBinaryOp(this.Pow,(r,i)=>Math.pow(r,i)),this.AddFloatUnaryOp(this.Floor,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Ceiling,r=>Math.ceil(r)),this.AddFloatUnaryOp(this.Int,r=>Math.floor(r)),this.AddFloatUnaryOp(this.Float,n.Identity),this.AddStringBinaryOp(this.Add,(r,i)=>r+i),this.AddStringBinaryOp(this.Equal,(r,i)=>r===i),this.AddStringBinaryOp(this.NotEquals,(r,i)=>r!==i),this.AddStringBinaryOp(this.Has,(r,i)=>r.includes(i)),this.AddStringBinaryOp(this.Hasnt,(r,i)=>!r.includes(i)),this.AddListBinaryOp(this.Add,(r,i)=>r.Union(i)),this.AddListBinaryOp(this.Subtract,(r,i)=>r.Without(i)),this.AddListBinaryOp(this.Has,(r,i)=>r.Contains(i)),this.AddListBinaryOp(this.Hasnt,(r,i)=>!r.Contains(i)),this.AddListBinaryOp(this.Intersect,(r,i)=>r.Intersect(i)),this.AddListBinaryOp(this.Equal,(r,i)=>r.Equals(i)),this.AddListBinaryOp(this.Greater,(r,i)=>r.GreaterThan(i)),this.AddListBinaryOp(this.Less,(r,i)=>r.LessThan(i)),this.AddListBinaryOp(this.GreaterThanOrEquals,(r,i)=>r.GreaterThanOrEquals(i)),this.AddListBinaryOp(this.LessThanOrEquals,(r,i)=>r.LessThanOrEquals(i)),this.AddListBinaryOp(this.NotEquals,(r,i)=>!r.Equals(i)),this.AddListBinaryOp(this.And,(r,i)=>r.Count>0&&i.Count>0),this.AddListBinaryOp(this.Or,(r,i)=>r.Count>0||i.Count>0),this.AddListUnaryOp(this.Not,r=>r.Count==0?1:0),this.AddListUnaryOp(this.Invert,r=>r.inverse),this.AddListUnaryOp(this.All,r=>r.all),this.AddListUnaryOp(this.ListMin,r=>r.MinAsList()),this.AddListUnaryOp(this.ListMax,r=>r.MaxAsList()),this.AddListUnaryOp(this.Count,r=>r.Count),this.AddListUnaryOp(this.ValueOfList,r=>r.maxItem.Value);let e=(r,i)=>r.Equals(i),t=(r,i)=>!r.Equals(i);this.AddOpToNativeFunc(this.Equal,2,F.ValueType.DivertTarget,e),this.AddOpToNativeFunc(this.NotEquals,2,F.ValueType.DivertTarget,t);}}AddOpFuncForType(e,t){this._operationFuncs==null&&(this._operationFuncs=new Map),this._operationFuncs.set(e,t);}static AddOpToNativeFunc(e,t,r,i){if(this._nativeFunctions===null)return (0, lt.throwNullException)("NativeFunctionCall._nativeFunctions");let a=this._nativeFunctions.get(e);a||(a=new n(e,t),this._nativeFunctions.set(e,a)),a.AddOpFuncForType(r,i);}static AddIntBinaryOp(e,t){this.AddOpToNativeFunc(e,2,F.ValueType.Int,t);}static AddIntUnaryOp(e,t){this.AddOpToNativeFunc(e,1,F.ValueType.Int,t);}static AddFloatBinaryOp(e,t){this.AddOpToNativeFunc(e,2,F.ValueType.Float,t);}static AddFloatUnaryOp(e,t){this.AddOpToNativeFunc(e,1,F.ValueType.Float,t);}static AddStringBinaryOp(e,t){this.AddOpToNativeFunc(e,2,F.ValueType.String,t);}static AddListBinaryOp(e,t){this.AddOpToNativeFunc(e,2,F.ValueType.List,t);}static AddListUnaryOp(e,t){this.AddOpToNativeFunc(e,1,F.ValueType.List,t);}toString(){return 'Native "'+this.name+'"'}};ka.NativeFunctionCall=U;U.Add="+";U.Subtract="-";U.Divide="/";U.Multiply="*";U.Mod="%";U.Negate="_";U.Equal="==";U.Greater=">";U.Less="<";U.GreaterThanOrEquals=">=";U.LessThanOrEquals="<=";U.NotEquals="!=";U.Not="!";U.And="&&";U.Or="||";U.Min="MIN";U.Max="MAX";U.Pow="POW";U.Floor="FLOOR";U.Ceiling="CEILING";U.Int="INT";U.Float="FLOAT";U.Has="?";U.Hasnt="!?";U.Intersect="^";U.ListMin="LIST_MIN";U.ListMax="LIST_MAX";U.All="LIST_ALL";U.Count="LIST_COUNT";U.ValueOfList="LIST_VALUE";U.Invert="LIST_INVERT";U._nativeFunctions=null;});var Ra=E(Va=>{Object.defineProperty(Va,"__esModule",{value:true});Va.NumberExpression=void 0;var QP=Ct(),Lh=ve(),eO=ae(),qh=class n extends QP.Expression{constructor(e,t){if(super(),this.isInt=()=>this.subtype=="int",this.isFloat=()=>this.subtype=="float",this.isBool=()=>this.subtype=="bool",this.GenerateIntoContainer=r=>{this.isInt()?r.AddContent(new Lh.IntValue(this.value)):this.isFloat()?r.AddContent(new Lh.FloatValue(this.value)):this.isBool()&&r.AddContent(new Lh.BoolValue(this.value));},this.toString=()=>String(this.value),typeof e=="number"&&!Number.isNaN(e)||typeof e=="boolean")this.value=e,this.subtype=t;else throw new Error("Unexpected object type in NumberExpression.")}get typeName(){return "Number"}Equals(e){let t=(0, eO.asOrNull)(e,n);return t?t.subtype==this.subtype&&t.value==this.value:false}};Va.NumberExpression=qh;});var Bh=E($a=>{Object.defineProperty($a,"__esModule",{value:true});$a.UnaryExpression=void 0;var tO=Ct(),nO=Wt(),Rr=Ra(),rO=ae(),Ui=class extends tO.Expression{get nativeNameForOp(){return this.op==="-"?"_":this.op==="not"?"!":this.op}constructor(e,t){super(),this.op=t,this.GenerateIntoContainer=r=>{this.innerExpression.GenerateIntoContainer(r),r.AddContent(nO.NativeFunctionCall.CallWithName(this.nativeNameForOp));},this.toString=()=>this.nativeNameForOp+this.innerExpression,this.innerExpression=this.AddContent(e);}get typeName(){return "UnaryExpression"}};$a.UnaryExpression=Ui;Ui.WithInner=(n,e)=>{let t=(0, rO.asOrNull)(n,Rr.NumberExpression);if(t){if(e==="-"){if(t.isInt())return new Rr.NumberExpression(-t.value,"int");if(t.isFloat())return new Rr.NumberExpression(-t.value,"float")}else if(e=="!"||e=="not"){if(t.isInt())return new Rr.NumberExpression(t.value==0,"bool");if(t.isFloat())return new Rr.NumberExpression(t.value==0,"bool");if(t.isBool())return new Rr.NumberExpression(!t.value,"bool")}throw new Error("Unexpected operation or number type")}return new Ui(n,e)};});var Mh=E(ja=>{Object.defineProperty(ja,"__esModule",{value:true});ja.BinaryExpression=void 0;var iO=Ct(),sO=Wt(),aO=Bh(),oO=ae(),Wh=class extends iO.Expression{constructor(e,t,r){super(),this.opName=r,this.GenerateIntoContainer=i=>{this.leftExpression.GenerateIntoContainer(i),this.rightExpression.GenerateIntoContainer(i),this.opName=this.NativeNameForOp(this.opName),i.AddContent(sO.NativeFunctionCall.CallWithName(this.opName));},this.NativeNameForOp=i=>i==="and"?"&&":i==="or"?"||":i==="mod"?"%":i==="has"?"?":i==="hasnt"?"!?":i,this.toString=()=>`(${this.leftExpression} ${this.opName} ${this.rightExpression})`,this.leftExpression=this.AddContent(e),this.rightExpression=this.AddContent(t),this.opName=r;}get typeName(){return "BinaryExpression"}ResolveReferences(e){if(super.ResolveReferences(e),this.NativeNameForOp(this.opName)==="?"){let t=(0, oO.asOrNull)(this.leftExpression,aO.UnaryExpression);t!==null&&(t.op==="not"||t.op==="!")&&this.Error(`Using 'not' or '!' here negates '${t.innerExpression}' rather than the result of the '?' or 'has' operator. You need to add parentheses around the (A ? B) expression.`);}}};ja.BinaryExpression=Wh;});var Xi=E(La=>{Object.defineProperty(La,"__esModule",{value:true});La.CharacterSet=void 0;var Ki=class{constructor(e){this.set=new Set,this.Add=t=>this.set.add(t),this.AddRange=(t,r)=>{for(let i=t.charCodeAt(0);i<=r.charCodeAt(0);++i)this.Add(String.fromCharCode(i));return this},this.AddCharacters=t=>{if(typeof t=="string"||Array.isArray(t))for(let r of t)this.Add(r);else for(let r of t.set)this.Add(r);return this},e&&this.AddCharacters(e);}};La.CharacterSet=Ki;Ki.FromRange=(n,e)=>new Ki().AddRange(n,e);});var fv=E(qa=>{Object.defineProperty(qa,"__esModule",{value:true});qa.CharacterRange=void 0;var dv=Xi(),Yi=class{constructor(e,t,r=[]){if(this._start=e,this._end=t,this._correspondingCharSet=new dv.CharacterSet,this._excludes=new Set,this.ToCharacterSet=()=>{if(this._correspondingCharSet.set.size===0)for(let i=this.start.charCodeAt(0),a;i<=this.end.charCodeAt(0);i+=1)a=String.fromCharCode(i),this._excludes.has(a)||this._correspondingCharSet.AddCharacters(a);return this._correspondingCharSet},r instanceof dv.CharacterSet)this._excludes=r.set;else for(let i of r)this._excludes.add(i);}get start(){return this._start}get end(){return this._end}};qa.CharacterRange=Yi;Yi.Define=(n,e,t=[])=>new Yi(n,e,t);});var Wa=E(Ba=>{Object.defineProperty(Ba,"__esModule",{value:true});Ba.ChoicePoint=void 0;var uO=at(),lO=st(),Gh=Le(),Jh=class extends uO.InkObject{constructor(e=true){super(),this._pathOnChoice=null,this.hasCondition=false,this.hasStartContent=false,this.hasChoiceOnlyContent=false,this.isInvisibleDefault=false,this.onceOnly=true,this.onceOnly=e;}get pathOnChoice(){if(this._pathOnChoice!=null&&this._pathOnChoice.isRelative){let e=this.choiceTarget;e&&(this._pathOnChoice=e.path);}return this._pathOnChoice}set pathOnChoice(e){this._pathOnChoice=e;}get choiceTarget(){return this._pathOnChoice===null?(0, Gh.throwNullException)("ChoicePoint._pathOnChoice"):this.ResolvePath(this._pathOnChoice).container}get pathStringOnChoice(){return this.pathOnChoice===null?(0, Gh.throwNullException)("ChoicePoint.pathOnChoice"):this.CompactPathString(this.pathOnChoice)}set pathStringOnChoice(e){this.pathOnChoice=new lO.Path(e);}get flags(){let e=0;return this.hasCondition&&(e|=1),this.hasStartContent&&(e|=2),this.hasChoiceOnlyContent&&(e|=4),this.isInvisibleDefault&&(e|=8),this.onceOnly&&(e|=16),e}set flags(e){this.hasCondition=(e&1)>0,this.hasStartContent=(e&2)>0,this.hasChoiceOnlyContent=(e&4)>0,this.isInvisibleDefault=(e&8)>0,this.onceOnly=(e&16)>0;}toString(){if(this.pathOnChoice===null)return (0, Gh.throwNullException)("ChoicePoint.pathOnChoice");let t=this.pathOnChoice.toString();return "Choice: -> "+t}};Ba.ChoicePoint=Jh;});var Kn=E(Ma=>{Object.defineProperty(Ma,"__esModule",{value:true});Ma.PushPopType=void 0;var pv;(function(n){n[n.Tunnel=0]="Tunnel",n[n.Function=1]="Function",n[n.FunctionEvaluationFromGame=2]="FunctionEvaluationFromGame";})(pv||(Ma.PushPopType=pv={}));});var Zi=E(Ga=>{Object.defineProperty(Ga,"__esModule",{value:true});Ga.Pointer=void 0;var cO=st(),zh=class n{constructor(){this.container=null,this.index=-1,arguments.length===2&&(this.container=arguments[0],this.index=arguments[1]);}Resolve(){return this.index<0?this.container:this.container==null?null:this.container.content.length==0?this.container:this.index>=this.container.content.length?null:this.container.content[this.index]}get isNull(){return this.container==null}get path(){return this.isNull?null:this.index>=0?this.container.path.PathByAppendingComponent(new cO.Path.Component(this.index)):this.container.path}toString(){return this.container?"Ink Pointer -> "+this.container.path.toString()+" -- index "+this.index:"Ink Pointer (null)"}copy(){return new n(this.container,this.index)}static StartOf(e){return new n(e,0)}static get Null(){return new n(null,-1)}};Ga.Pointer=zh;});var Mt=E(za=>{Object.defineProperty(za,"__esModule",{value:true});za.Divert=void 0;var hO=st(),dO=Kn(),fO=zn(),pO=at(),Hh=Zi(),mv=Ee(),Ja=Le(),Uh=class n extends pO.InkObject{get targetPath(){if(this._targetPath!=null&&this._targetPath.isRelative){let e=this.targetPointer.Resolve();e&&(this._targetPath=e.path);}return this._targetPath}set targetPath(e){this._targetPath=e,this._targetPointer=Hh.Pointer.Null;}get targetPointer(){if(this._targetPointer.isNull){let e=this.ResolvePath(this._targetPath).obj;if(this._targetPath===null)return (0, Ja.throwNullException)("this._targetPath");if(this._targetPath.lastComponent===null)return (0, Ja.throwNullException)("this._targetPath.lastComponent");if(this._targetPath.lastComponent.isIndex){if(e===null)return (0, Ja.throwNullException)("targetObj");this._targetPointer.container=e.parent instanceof mv.Container?e.parent:null,this._targetPointer.index=this._targetPath.lastComponent.index;}else this._targetPointer=Hh.Pointer.StartOf(e instanceof mv.Container?e:null);}return this._targetPointer.copy()}get targetPathString(){return this.targetPath==null?null:this.CompactPathString(this.targetPath)}set targetPathString(e){e==null?this.targetPath=null:this.targetPath=new hO.Path(e);}get hasVariableTarget(){return this.variableDivertName!=null}constructor(e){super(),this._targetPath=null,this._targetPointer=Hh.Pointer.Null,this.variableDivertName=null,this.pushesToStack=false,this.stackPushType=0,this.isExternal=false,this.externalArgs=0,this.isConditional=false,this.pushesToStack=false,typeof e<"u"&&(this.pushesToStack=true,this.stackPushType=e);}Equals(e){let t=e;return t instanceof n&&this.hasVariableTarget==t.hasVariableTarget?this.hasVariableTarget?this.variableDivertName==t.variableDivertName:this.targetPath===null?(0, Ja.throwNullException)("this.targetPath"):this.targetPath.Equals(t.targetPath):false}toString(){if(this.hasVariableTarget)return "Divert(variable: "+this.variableDivertName+")";if(this.targetPath==null)return "Divert(null)";{let e=new fO.StringBuilder,t=this.targetPath.toString();return e.Append("Divert"),this.isConditional&&e.Append("?"),this.pushesToStack&&(this.stackPushType==dO.PushPopType.Function?e.Append(" function"):e.Append(" tunnel")),e.Append(" -> "),e.Append(this.targetPathString),e.Append(" ("),e.Append(t),e.Append(")"),e.toString()}}};za.Divert=Uh;});var nn=E(Ha=>{Object.defineProperty(Ha,"__esModule",{value:true});Ha.SymbolType=void 0;var gv;(function(n){n[n.Knot=0]="Knot",n[n.List=1]="List",n[n.ListItem=2]="ListItem",n[n.Var=3]="Var",n[n.SubFlowAndWeave=4]="SubFlowAndWeave",n[n.Arg=5]="Arg",n[n.Temp=6]="Temp";})(gv||(Ha.SymbolType=gv={}));});var bn=E(Ua=>{Object.defineProperty(Ua,"__esModule",{value:true});Ua.VariableAssignment=void 0;var mO=at(),Kh=class extends mO.InkObject{constructor(e,t){super(),this.variableName=e||null,this.isNewDeclaration=!!t,this.isGlobal=false;}toString(){return "VarAssign to "+this.variableName}};Ua.VariableAssignment=Kh;});var $r=E(Xa=>{Object.defineProperty(Xa,"__esModule",{value:true});Xa.Choice=void 0;var gO=Wa(),Ka=Ee(),_n=qe(),Xh=Mt(),yv=ve(),yO=ye(),vO=nn(),vv=bn(),Yh=class extends yO.ParsedObject{get runtimeChoice(){if(!this._runtimeChoice)throw new Error;return this._runtimeChoice}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get condition(){return this._condition}set condition(e){this._condition=e,e&&this.AddContent(e);}get runtimeContainer(){return this._innerContentContainer}get innerContentContainer(){return this._innerContentContainer}get containerForCounting(){return this._innerContentContainer}get runtimePath(){if(!this.innerContentContainer||!this.innerContentContainer.path)throw new Error;return this.innerContentContainer.path}constructor(e,t,r){super(),this._condition=null,this._innerContentContainer=null,this._outerContainer=null,this._runtimeChoice=null,this._returnToR1=null,this._returnToR2=null,this._r1Label=null,this._r2Label=null,this._divertToStartContentOuter=null,this._divertToStartContentInner=null,this._startContentRuntimeContainer=null,this.isInvisibleDefault=false,this.hasWeaveStyleInlineBrackets=false,this.GenerateRuntimeObject=()=>{if(this._outerContainer=new Ka.Container,this._runtimeChoice=new gO.ChoicePoint(this.onceOnly),this._runtimeChoice.isInvisibleDefault=this.isInvisibleDefault,(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(_n.ControlCommand.EvalStart()),this.startContent){this._returnToR1=new yv.DivertTargetValue,this._outerContainer.AddContent(this._returnToR1);let i=new vv.VariableAssignment("$r",true);this._outerContainer.AddContent(i),this._outerContainer.AddContent(_n.ControlCommand.BeginString()),this._divertToStartContentOuter=new Xh.Divert,this._outerContainer.AddContent(this._divertToStartContentOuter),this._startContentRuntimeContainer=this.startContent.GenerateRuntimeObject(),this._startContentRuntimeContainer.name="s";let a=new Xh.Divert;a.variableDivertName="$r",this._startContentRuntimeContainer.AddContent(a),this._outerContainer.AddToNamedContentOnly(this._startContentRuntimeContainer),this._r1Label=new Ka.Container,this._r1Label.name="$r1",this._outerContainer.AddContent(this._r1Label),this._outerContainer.AddContent(_n.ControlCommand.EndString()),this._runtimeChoice.hasStartContent=true;}if(this.choiceOnlyContent){this._outerContainer.AddContent(_n.ControlCommand.BeginString());let i=this.choiceOnlyContent.GenerateRuntimeObject();this._outerContainer.AddContentsOfContainer(i),this._outerContainer.AddContent(_n.ControlCommand.EndString()),this._runtimeChoice.hasChoiceOnlyContent=true;}if(this.condition&&(this.condition.GenerateIntoContainer(this._outerContainer),this._runtimeChoice.hasCondition=true),(this.startContent||this.choiceOnlyContent||this.condition)&&this._outerContainer.AddContent(_n.ControlCommand.EvalEnd()),this._outerContainer.AddContent(this._runtimeChoice),this._innerContentContainer=new Ka.Container,this.startContent){this._returnToR2=new yv.DivertTargetValue,this._innerContentContainer.AddContent(_n.ControlCommand.EvalStart()),this._innerContentContainer.AddContent(this._returnToR2),this._innerContentContainer.AddContent(_n.ControlCommand.EvalEnd());let i=new vv.VariableAssignment("$r",true);this._innerContentContainer.AddContent(i),this._divertToStartContentInner=new Xh.Divert,this._innerContentContainer.AddContent(this._divertToStartContentInner),this._r2Label=new Ka.Container,this._r2Label.name="$r2",this._innerContentContainer.AddContent(this._r2Label);}if(this.innerContent){let i=this.innerContent.GenerateRuntimeObject();this._innerContentContainer.AddContentsOfContainer(i);}return this.story.countAllVisits&&(this._innerContentContainer.visitsShouldBeCounted=true),this._innerContentContainer.countingAtStartOnly=true,this._outerContainer},this.toString=()=>this.choiceOnlyContent!==null?`* ${this.startContent}[${this.choiceOnlyContent}]...`:`* ${this.startContent}...`,this.startContent=e,this.choiceOnlyContent=t,this.innerContent=r,this.indentationDepth=1,e&&this.AddContent(this.startContent),t&&this.AddContent(this.choiceOnlyContent),r&&this.AddContent(this.innerContent),this.onceOnly=true;}get typeName(){return "Choice"}ResolveReferences(e){var t;if(this._innerContentContainer&&(this.runtimeChoice.pathOnChoice=this._innerContentContainer.path,this.onceOnly&&(this._innerContentContainer.visitsShouldBeCounted=true)),this._returnToR1){if(!this._r1Label)throw new Error;this._returnToR1.targetPath=this._r1Label.path;}if(this._returnToR2){if(!this._r2Label)throw new Error;this._returnToR2.targetPath=this._r2Label.path;}if(this._divertToStartContentOuter){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentOuter.targetPath=this._startContentRuntimeContainer.path;}if(this._divertToStartContentInner){if(!this._startContentRuntimeContainer)throw new Error;this._divertToStartContentInner.targetPath=this._startContentRuntimeContainer.path;}super.ResolveReferences(e),this.identifier&&(((t=this.identifier)===null||t===void 0?void 0:t.name)||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,vO.SymbolType.SubFlowAndWeave);}};Xa.Choice=Yh;});var Cv=E(Za=>{Object.defineProperty(Za,"__esModule",{value:true});Za.StringParserElement=void 0;var Ya=class n{constructor(){this.characterIndex=0,this.characterInLineIndex=0,this.lineIndex=0,this.reportedErrorInScope=false,this.uniqueId=0,this.customFlags=0,this.CopyFrom=e=>{n._uniqueIdCounter++,this.uniqueId=n._uniqueIdCounter,this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.customFlags=e.customFlags,this.reportedErrorInScope=false;},this.SquashFrom=e=>{this.characterIndex=e.characterIndex,this.characterInLineIndex=e.characterInLineIndex,this.lineIndex=e.lineIndex,this.reportedErrorInScope=e.reportedErrorInScope,this.customFlags=e.customFlags;};}};Za.StringParserElement=Ya;Ya._uniqueIdCounter=1e3;});var _v=E(Qa=>{Object.defineProperty(Qa,"__esModule",{value:true});Qa.StringParserState=void 0;var bv=Cv(),Zh=class{get currentElement(){return this._stack[this._numElements-1]}get lineIndex(){return this.currentElement.lineIndex}set lineIndex(e){this.currentElement.lineIndex=e;}get characterIndex(){return this.currentElement.characterIndex}set characterIndex(e){this.currentElement.characterIndex=e;}get characterInLineIndex(){return this.currentElement.characterInLineIndex}set characterInLineIndex(e){this.currentElement.characterInLineIndex=e;}get customFlags(){return this.currentElement.customFlags}set customFlags(e){this.currentElement.customFlags=e;}get errorReportedAlreadyInScope(){return this.currentElement.reportedErrorInScope}get stackHeight(){return this._numElements}constructor(){this._stack=[],this._numElements=0,this.StringParserState=()=>{this._stack=new Array(200);for(let r=0;r<200;++r)this._stack[r]=new bv.StringParserElement;this._numElements=1;},this.Push=()=>{if(this._numElements>=this._stack.length&&this._numElements>0)throw new Error("Stack overflow in parser state.");let t=this._stack[this._numElements-1],r=this._stack[this._numElements];return this._numElements++,r.CopyFrom(t),r.uniqueId},this.Pop=t=>{if(this._numElements==1)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Poping - do you have mismatched Begin/Succeed/Fail?");this._numElements-=1;},this.Peek=t=>{if(this.currentElement.uniqueId!=t)throw new Error("Mismatched rule IDs while Peeking - do you have mismatched Begin/Succeed/Fail?");return this._stack[this._numElements-1]},this.PeekPenultimate=()=>this._numElements>=2?this._stack[this._numElements-2]:null,this.Squash=()=>{if(this._numElements<2)throw new Error("Attempting to remove final stack element is illegal! Mismatched Begin/Succceed/Fail?");let t=this._stack[this._numElements-2],r=this._stack[this._numElements-1];t.SquashFrom(r),this._numElements-=1;},this.NoteErrorReported=()=>{for(let t of this._stack)t.reportedErrorInScope=true;};let e=200;for(let t=0;t<e;t++)this._stack[t]=new bv.StringParserElement;this._numElements=1;}};Qa.StringParserState=Zh;});var ed=E(Xn=>{Object.defineProperty(Xn,"__esModule",{value:true});Xn.StringParser=Xn.ParseSuccess=void 0;var Qh=Xi(),CO=_v();Xn.ParseSuccess=Symbol("ParseSuccessStruct");var Qi=class n{constructor(e){this.ParseRule=null,this.errorHandler=null,this.hadError=false,this.BeginRule=()=>this.state.Push(),this.FailRule=r=>(this.state.Pop(r),null),this.CancelRule=r=>{this.state.Pop(r);},this.SucceedRule=(r,i=null)=>{let a=this.state.Peek(r),s=this.state.PeekPenultimate();this.RuleDidSucceed&&this.RuleDidSucceed(i,s,a),this.state.Squash();let o=i;return o===null&&(o=n.ParseSuccess),o},this.Expect=(r,i=null,a=null)=>{let s=this.ParseObject(r);if(s===null){i===null&&(i=r.name);let o,u=this.LineRemainder();u===null||u.length===0?o="end of line":o=`'${u}'`,this.Error(`Expected ${i} but saw ${o}`),a!==null&&(s=a());}return s},this.Error=(r,i=false)=>{this.ErrorOnLine(r,this.lineIndex+1,i);},this.ErrorWithParsedObject=(r,i,a=false)=>{this.ErrorOnLine(r,i.debugMetadata?i.debugMetadata.startLineNumber:-1,a);},this.ErrorOnLine=(r,i,a)=>{if(!this.state.errorReportedAlreadyInScope){let s=a?"Warning":"Error";if(this.errorHandler)this.errorHandler(r,this.index,i-1,a);else throw new Error(`${s} on line ${i}: ${r}`);this.state.NoteErrorReported();}a||(this.hadError=true);},this.Warning=r=>this.Error(r,true),this.LineRemainder=()=>this.Peek(()=>this.ParseUntilCharactersFromString(`
12
12
  \r`)),this.SetFlag=(r,i)=>{i?this.state.customFlags|=r:this.state.customFlags&=~r;},this.GetFlag=r=>!!(this.state.customFlags&r),this.ParseObject=r=>{let i=this.BeginRule(),a=this.state.stackHeight,s=r();if(a!==this.state.stackHeight)throw new Error("Mismatched Begin/Fail/Succeed rules");return s===null?this.FailRule(i):(this.SucceedRule(i,s),s)},this.Parse=r=>{let i=this.BeginRule(),a=r();return a===null?(this.FailRule(i),null):(this.SucceedRule(i,a),a)},this.OneOf=r=>{for(let i of r){let a=this.ParseObject(i);if(a!==null)return a}return null},this.OneOrMore=r=>{let i=[],a=null;do a=this.ParseObject(r),a!==null&&i.push(a);while(a!==null);return i.length>0?i:null},this.Optional=r=>()=>{let i=this.ParseObject(r);return i===null?n.ParseSuccess:i},this.Exclude=r=>()=>this.ParseObject(r)&&n.ParseSuccess,this.OptionalExclude=r=>()=>(this.ParseObject(r),n.ParseSuccess),this.String=r=>()=>this.ParseString(r),this.TryAddResultToList=(r,i,a=true)=>{if(r!==n.ParseSuccess){if(a&&Array.isArray(r)){let s=r;if(s!==null){for(let o of s)i.push(o);return}}i.push(r);}},this.Interleave=(r,i,a=null,s=true)=>{let o=this.BeginRule(),u=[],l=this.ParseObject(r);if(l===null)return this.FailRule(o);this.TryAddResultToList(l,u,s);let c=null,h=null;do{if(a!==null&&this.Peek(a)!==null||(c=this.ParseObject(i),c===null))break;if(this.TryAddResultToList(c,u,s),h=null,c!==null){if(h=this.ParseObject(r),h===null)break;this.TryAddResultToList(h,u,s);}}while((c!==null||h!==null)&&!(c===n.ParseSuccess&&h==n.ParseSuccess)&&this.remainingLength>0);return u.length===0?this.FailRule(o):this.SucceedRule(o,u)},this.ParseString=r=>{if(r.length>this.remainingLength)return null;let i=this.BeginRule(),a=this.index,s=this.characterInLineIndex,o=this.lineIndex,u=true;for(let l=0;l<r.length;l+=1){let c=r[l];if(this._chars[a]!==c){u=false;break}c===`
13
13
  `&&(o++,s=-1),a++,s++;}return this.index=a,this.characterInLineIndex=s,this.lineIndex=o,u?this.SucceedRule(i,r):this.FailRule(i)},this.ParseSingleCharacter=()=>{if(this.remainingLength>0){let r=this._chars[this.index];return r===`
14
- `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1,r}return "0"},this.ParseUntilCharactersFromString=(r,i=-1)=>this.ParseCharactersFromString(r,false,i),this.ParseUntilCharactersFromCharSet=(r,i=-1)=>this.ParseCharactersFromCharSet(r,false,i),this.ParseCharactersFromString=(r,i=-1,a=-1)=>{let s=new Yh.CharacterSet(r);return typeof i=="number"?this.ParseCharactersFromCharSet(s,true,i):this.ParseCharactersFromCharSet(s,i,a)},this.ParseCharactersFromCharSet=(r,i=true,a=-1)=>{a===-1&&(a=Number.MAX_SAFE_INTEGER);let s=this.index,o=this.index,u=this.characterInLineIndex,l=this.lineIndex,c=0;for(;o<this._chars.length&&r.set.has(this._chars[o])===i&&c<a;)this._chars[o]===`
14
+ `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1,r}return "0"},this.ParseUntilCharactersFromString=(r,i=-1)=>this.ParseCharactersFromString(r,false,i),this.ParseUntilCharactersFromCharSet=(r,i=-1)=>this.ParseCharactersFromCharSet(r,false,i),this.ParseCharactersFromString=(r,i=-1,a=-1)=>{let s=new Qh.CharacterSet(r);return typeof i=="number"?this.ParseCharactersFromCharSet(s,true,i):this.ParseCharactersFromCharSet(s,i,a)},this.ParseCharactersFromCharSet=(r,i=true,a=-1)=>{a===-1&&(a=Number.MAX_SAFE_INTEGER);let s=this.index,o=this.index,u=this.characterInLineIndex,l=this.lineIndex,c=0;for(;o<this._chars.length&&r.set.has(this._chars[o])===i&&c<a;)this._chars[o]===`
15
15
  `&&(l+=1,u=-1),o+=1,u+=1,c+=1;return this.index=o,this.characterInLineIndex=u,this.lineIndex=l,this.index>s?this._chars.slice(s,this.index).join(""):null},this.Peek=r=>{let i=this.BeginRule(),a=r();return this.CancelRule(i),a},this.ParseInt=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseString("-")!==null;this.ParseCharactersFromString(" ");let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);if(s===null)return this.index=r,this.characterInLineIndex=i,null;let o;return Number.isNaN(Number(s))?(this.Error("Failed to read integer value: "+s+". Perhaps it's out of the range of acceptable numbers ink supports? ("+Number.MIN_SAFE_INTEGER+" to "+Number.MAX_SAFE_INTEGER+")"),null):(o=Number(s),a?-o:o)},this.ParseFloat=()=>{let r=this.index,i=this.characterInLineIndex,a=this.ParseInt();if(a!==null&&this.ParseString(".")!==null){let s=this.ParseCharactersFromCharSet(n.numbersCharacterSet);return +`${a}.${s}`}return this.index=r,this.characterInLineIndex=i,null},this.ParseNewline=()=>{let r=this.BeginRule();return this.ParseString("\r"),this.ParseString(`
16
16
  `)===null?this.FailRule(r):this.SucceedRule(r,`
17
- `)};let t=this.PreProcessInputString(e);this.state=new yO.StringParserState,e?this._chars=t.split(""):this._chars=[],this.inputString=t;}get currentCharacter(){return this.index>=0&&this.remainingLength>0?this._chars[this.index]:"0"}PreProcessInputString(e){return e}get endOfInput(){return this.index>=this._chars.length}get remainingString(){return this._chars.slice(this.index,this.index+this.remainingLength).join("")}get remainingLength(){return this._chars.length-this.index}get lineIndex(){return this.state.lineIndex}set lineIndex(e){this.state.lineIndex=e;}set characterInLineIndex(e){this.state.characterInLineIndex=e;}get characterInLineIndex(){return this.state.characterInLineIndex}get index(){return this.state.characterIndex}set index(e){this.state.characterIndex=e;}ParseUntil(e,t=null,r=null){let i=this.BeginRule(),a=new Yh.CharacterSet;t!==null&&(a.set=new Set([...a.set.values(),...t.set.values()])),r!==null&&(a.set=new Set([...a.set.values(),...r.set.values()]));let s="",o=null;do{let u=this.ParseUntilCharactersFromCharSet(a);if(u&&(s+=u),o=this.Peek(e),o!==null)break;{if(this.endOfInput)break;let l=this.currentCharacter;if(t!==null&&t.set.has(l)){s+=l,l===`
18
- `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1;continue}else break}}while(true);return s.length>0?this.SucceedRule(i,String(s)):this.FailRule(i)}};Xn.StringParser=Qi;Qi.ParseSuccess=Xn.ParseSuccess;Qi.numbersCharacterSet=new Yh.CharacterSet("0123456789");});var _v=E(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.CommentEliminator=void 0;var Qh=Xi(),vO=Zh(),ed=class extends vO.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new Qh.CharacterSet(`/\r
19
- `),this._commentBlockEndCharacter=new Qh.CharacterSet("*"),this._newlineCharacters=new Qh.CharacterSet(`
17
+ `)};let t=this.PreProcessInputString(e);this.state=new CO.StringParserState,e?this._chars=t.split(""):this._chars=[],this.inputString=t;}get currentCharacter(){return this.index>=0&&this.remainingLength>0?this._chars[this.index]:"0"}PreProcessInputString(e){return e}get endOfInput(){return this.index>=this._chars.length}get remainingString(){return this._chars.slice(this.index,this.index+this.remainingLength).join("")}get remainingLength(){return this._chars.length-this.index}get lineIndex(){return this.state.lineIndex}set lineIndex(e){this.state.lineIndex=e;}set characterInLineIndex(e){this.state.characterInLineIndex=e;}get characterInLineIndex(){return this.state.characterInLineIndex}get index(){return this.state.characterIndex}set index(e){this.state.characterIndex=e;}ParseUntil(e,t=null,r=null){let i=this.BeginRule(),a=new Qh.CharacterSet;t!==null&&(a.set=new Set([...a.set.values(),...t.set.values()])),r!==null&&(a.set=new Set([...a.set.values(),...r.set.values()]));let s="",o=null;do{let u=this.ParseUntilCharactersFromCharSet(a);if(u&&(s+=u),o=this.Peek(e),o!==null)break;{if(this.endOfInput)break;let l=this.currentCharacter;if(t!==null&&t.set.has(l)){s+=l,l===`
18
+ `&&(this.lineIndex+=1,this.characterInLineIndex=-1),this.index+=1,this.characterInLineIndex+=1;continue}else break}}while(true);return s.length>0?this.SucceedRule(i,String(s)):this.FailRule(i)}};Xn.StringParser=Qi;Qi.ParseSuccess=Xn.ParseSuccess;Qi.numbersCharacterSet=new Qh.CharacterSet("0123456789");});var Sv=E(eo=>{Object.defineProperty(eo,"__esModule",{value:true});eo.CommentEliminator=void 0;var td=Xi(),bO=ed(),nd=class extends bO.StringParser{constructor(){super(...arguments),this._commentOrNewlineStartCharacter=new td.CharacterSet(`/\r
19
+ `),this._commentBlockEndCharacter=new td.CharacterSet("*"),this._newlineCharacters=new td.CharacterSet(`
20
20
  \r`),this.Process=()=>{let e=this.Interleave(this.Optional(this.CommentsAndNewlines),this.Optional(this.MainInk));return e!==null?e.join(""):""},this.MainInk=()=>this.ParseUntil(this.CommentsAndNewlines,this._commentOrNewlineStartCharacter,null),this.CommentsAndNewlines=()=>{let e=this.Interleave(this.Optional(this.ParseNewline),this.Optional(this.ParseSingleComment));return e!==null?e.join(""):null},this.ParseSingleComment=()=>this.OneOf([this.EndOfLineComment,this.BlockComment]),this.EndOfLineComment=()=>this.ParseString("//")===null?null:(this.ParseUntilCharactersFromCharSet(this._newlineCharacters),""),this.BlockComment=()=>{if(this.ParseString("/*")===null)return null;let e=this.lineIndex,t=this.ParseUntil(this.String("*/"),this._commentBlockEndCharacter,null);return this.endOfInput||this.ParseString("*/"),t!=null?`
21
- `.repeat(this.lineIndex-e):null};}PreProcessInputString(e){return e}};eo.CommentEliminator=ed;});var no=E(to=>{Object.defineProperty(to,"__esModule",{value:true});to.Conditional=void 0;var CO=Ee(),Sv=qe(),bO=ye(),td=class extends bO.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new CO.Container;this.initialCondition&&r.AddContent(this.initialCondition.runtimeObject);for(let i of this.branches){let a=i.runtimeObject;r.AddContent(a);}return this.initialCondition!==null&&this.branches[0].ownExpression!==null&&!this.branches[this.branches.length-1].isElse&&r.AddContent(Sv.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=Sv.ControlCommand.NoOp(),r.AddContent(this._reJoinTarget),r},this.initialCondition&&this.AddContent(this.initialCondition),this.branches!==null&&this.AddContent(this.branches);}get typeName(){return "Conditional"}ResolveReferences(e){let t=this._reJoinTarget.path;for(let r of this.branches){if(!r.returnDivert)throw new Error;r.returnDivert.targetPath=t;}super.ResolveReferences(e);}};to.Conditional=td;});var Sn=E(ro=>{Object.defineProperty(ro,"__esModule",{value:true});ro.Text=void 0;var _O=ye(),SO=ve(),nd=class extends _O.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new SO.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};ro.Text=nd;});var so=E(io=>{Object.defineProperty(io,"__esModule",{value:true});io.ConstantDeclaration=void 0;var EO=ye(),wO=nn(),rd=class extends EO.ParsedObject{get constantName(){var e;return (e=this.constantIdentifier)===null||e===void 0?void 0:e.name}get expression(){if(!this._expression)throw new Error;return this._expression}constructor(e,t){super(),this._expression=null,this.GenerateRuntimeObject=()=>null,this.constantIdentifier=e,t&&(this._expression=this.AddContent(t));}get typeName(){return "CONST"}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.constantIdentifier,wO.SymbolType.Var);}};io.ConstantDeclaration=rd;});var jr=E(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.FlowLevel=void 0;var Ev;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(Ev||(ao.FlowLevel=Ev={}));});var es=E(oo=>{Object.defineProperty(oo,"__esModule",{value:true});oo.Gather=void 0;var DO=Ee(),AO=ye(),PO=nn(),id=class extends AO.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get runtimeContainer(){return this.runtimeObject}constructor(e,t){super(),this.indentationDepth=t,this.GenerateRuntimeObject=()=>{let r=new DO.Container;if(r.name=this.name,this.story.countAllVisits&&(r.visitsShouldBeCounted=true),r.countingAtStartOnly=true,this.content)for(let i of this.content)r.AddContent(i.runtimeObject);return r},this.toString=()=>{var r,i;return `- ${!((r=this.identifier)===null||r===void 0)&&r.name?"("+((i=this.identifier)===null||i===void 0?void 0:i.name)+")":"gather"}`},e&&(this.identifier=e);}get typeName(){return "Gather"}ResolveReferences(e){super.ResolveReferences(e),this.identifier&&(this.identifier.name||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,PO.SymbolType.SubFlowAndWeave);}};oo.Gather=id;});var Yn=E(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.Path=void 0;var uo=ae(),wv=Gt(),Lr=jr(),OO=Zn(),sd=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?Lr.FlowLevel.Story:this._baseTargetLevel}get baseLevelIsAmbiguous(){return !this._baseTargetLevel}get firstComponent(){return this.components==null||!this.components.length?null:this.components[0].name}get numberOfComponents(){return this.components?this.components.length:0}get dotSeparatedComponents(){return this._dotSeparatedComponents==null&&(this._dotSeparatedComponents=(this.components?this.components:[]).map(e=>e.name).filter(uo.filterUndef).join(".")),this._dotSeparatedComponents}constructor(e,t){this._dotSeparatedComponents=null,this.toString=()=>this.components===null||this.components.length===0?this.baseTargetLevel===Lr.FlowLevel.WeavePoint?"-> <next gather point>":"<invalid Path>":`-> ${this.dotSeparatedComponents}`,this.ResolveFromContext=r=>{if(this.components==null||this.components.length==0)return null;let i=this.ResolveBaseTarget(r);return i===null?null:this.components.length>1?this.ResolveTailComponents(i):i},this.ResolveBaseTarget=r=>{let i=this.firstComponent,a=r;for(;a;){let s=a===r,o=this.GetChildFromContext(a,i,null,s);if(o)return o;a=a.parent;}return null},this.ResolveTailComponents=r=>{let i=r;if(!this.components)return null;for(let a=1;a<this.components.length;++a){let s=this.components[a].name,o,u=(0, uo.asOrNull)(i,wv.FlowBase);if(u!==null?o=u.flowLevel+1:o=Lr.FlowLevel.WeavePoint,i=this.GetChildFromContext(i,s,o),i===null)break}return i},this.GetChildFromContext=(r,i,a,s=false)=>{let o=a===null,u=(0, uo.asOrNull)(r,OO.Weave);if(i&&u!==null&&(o||a===Lr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, uo.asOrNull)(r,wv.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===Lr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(Lr.FlowLevel).includes(e)?(this._baseTargetLevel=e,this.components=t||[]):Array.isArray(e)?(this._baseTargetLevel=null,this.components=e||[]):(this._baseTargetLevel=null,this.components=[e]);}get typeName(){return "Path"}};lo.Path=sd;});var ud=E(co=>{Object.defineProperty(co,"__esModule",{value:true});co.ReturnType=void 0;var xO=ye(),TO=Ee(),ad=qe(),NO=Un(),od=class extends xO.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new TO.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(ad.ControlCommand.EvalStart()),t.AddContent(new NO.Void),t.AddContent(ad.ControlCommand.EvalEnd())),t.AddContent(ad.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};co.ReturnType=od;});var ts=E(ho=>{Object.defineProperty(ho,"__esModule",{value:true});ho.ClosestFlowBase=void 0;function FO(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}ho.ClosestFlowBase=FO;});var po=E(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.Identifier=void 0;var ld=class n{constructor(e){this.debugMetadata=null,this.toString=()=>this.name||"undefined identifer",this.name=e;}get typeName(){return "Identifier"}static Done(){return new n("DONE")}};fo.Identifier=ld;});var Gt=E(mo=>{Object.defineProperty(mo,"__esModule",{value:true});mo.FlowBase=void 0;var IO=$r(),cd=Br(),kO=qr(),Jt=jr(),VO=es(),RO=ye(),$O=Yn(),jO=ud(),LO=Ee(),qO=Mt(),BO=bn(),hd=nn(),WO=Zn(),MO=ts(),GO=po(),Dv=ae(),dd=class n extends RO.ParsedObject{get hasParameters(){return this.args!==null&&this.args.length>0}get subFlowsByName(){return this._subFlowsByName}get typeName(){return this.isFunction?"Function":String(this.flowLevel)}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t=null,r=null,i=false,a=false){super(),this.isFunction=i,this._rootWeave=null,this._subFlowsByName=new Map,this._startingSubFlowDivert=null,this._startingSubFlowRuntime=null,this._firstChildFlow=null,this.variableDeclarations=new Map,this.identifier=null,this.args=null,this.iamFlowbase=()=>true,this.SplitWeaveAndSubFlowContent=(s,o)=>{var u,l;let c=[],h=[];this._subFlowsByName=new Map;for(let d of s){let m=(0, Dv.asOrNull)(d,n);m?(this._firstChildFlow===null&&(this._firstChildFlow=m),h.push(d),!((u=m.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=m.identifier)===null||l===void 0?void 0:l.name,m)):c.push(d);}o&&c.push(new VO.Gather(null,1),new cd.Divert(new $O.Path(GO.Identifier.Done())));let f=[];return c.length>0&&(this._rootWeave=new WO.Weave(c,0),f.push(this._rootWeave)),h.length>0&&f.push(...h),f},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, MO.ClosestFlowBase)(o);if(c){if(c.args!==null){for(let h of c.args)if(((u=h.identifier)===null||u===void 0?void 0:u.name)===s)return l.found=true,l.isArgument=true,l.ownerFlow=c,l}if(c!==this.story&&c.variableDeclarations.has(s))return l.found=true,l.ownerFlow=c,l.isTemporary=true,l}return this.story.variableDeclarations.has(s)?(l.found=true,l.ownerFlow=this.story,l.isGlobal=true,l):(l.found=false,l)},this.AddNewVariableDeclaration=s=>{let o=s.variableName;if(this.variableDeclarations.has(o)){let u=this.variableDeclarations.get(o),l="";u.debugMetadata&&(l=` (${u.debugMetadata})`),this.Error(`found declaration variable '${o}' that was already declared${l}`,s,false);return}this.variableDeclarations.set(s.variableName,s);},this.ResolveWeavePointNaming=()=>{this._rootWeave&&this._rootWeave.ResolveWeavePointNaming();for(let[,s]of this._subFlowsByName)s.hasOwnProperty("ResolveWeavePointNaming")&&s.ResolveWeavePointNaming();},this.GenerateRuntimeObject=()=>{var s;let o=null;this.isFunction?this.CheckForDisallowedFunctionFlowControl():(this.flowLevel===Jt.FlowLevel.Knot||this.flowLevel===Jt.FlowLevel.Stitch)&&(o=this.Find(jO.ReturnType)(),o!==null&&this.Error(`Return statements can only be used in knots that are declared as functions: == function ${this.identifier} ==`,o));let u=new LO.Container;u.name=(s=this.identifier)===null||s===void 0?void 0:s.name,this.story.countAllVisits&&(u.visitsShouldBeCounted=true),this.GenerateArgumentVariableAssignments(u);let l=0;for(;this.content!==null&&l<this.content.length;){let c=this.content[l];if(c instanceof n){let h=c,f=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===Jt.FlowLevel.Knot&&(this._startingSubFlowDivert=new qO.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=f);let d=f,m=u.namedContent.get(d.name)||null;if(m){let y=`${this.GetType()} already contains flow named '${d.name}' (at ${m.debugMetadata})`;this.Error(y,h);}u.AddToNamedContentOnly(d);}else c&&u.AddContent(c.runtimeObject);l+=1;}return this.flowLevel!==Jt.FlowLevel.Story&&!this.isFunction&&this._rootWeave!==null&&o===null&&this._rootWeave.ValidateTermination(this.WarningInTermination),u},this.GenerateArgumentVariableAssignments=s=>{var o;if(!(this.args===null||this.args.length===0))for(let u=this.args.length-1;u>=0;--u){let l=((o=this.args[u].identifier)===null||o===void 0?void 0:o.name)||null,c=new BO.VariableAssignment(l,true);s.AddContent(c);}},this.ContentWithNameAtLevel=(s,o=null,u=false)=>{var l;if((o===this.flowLevel||o===null)&&s===((l=this.identifier)===null||l===void 0?void 0:l.name))return this;if(o===Jt.FlowLevel.WeavePoint||o===null){let h=null;if(this._rootWeave&&(h=this._rootWeave.WeavePointNamed(s),h))return h;if(o===Jt.FlowLevel.WeavePoint)return u?this.DeepSearchForAnyLevelContent(s):null}if(o!==null&&o<this.flowLevel)return null;let c=this._subFlowsByName.get(s)||null;return c&&(o===null||o===c.flowLevel)?c:u?this.DeepSearchForAnyLevelContent(s):null},this.DeepSearchForAnyLevelContent=s=>{let o=this.ContentWithNameAtLevel(s,Jt.FlowLevel.WeavePoint,false);if(o)return o;for(let[,u]of this._subFlowsByName){let l=u.ContentWithNameAtLevel(s,null,true);if(l)return l}return null},this.CheckForDisallowedFunctionFlowControl=()=>{this.flowLevel!==Jt.FlowLevel.Knot&&this.Error("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than internal to another knot.");for(let[u,l]of this._subFlowsByName)this.Error(`Functions may not contain stitches, but saw '${u}' within the function '${this.identifier}'`,l);if(!this._rootWeave)throw new Error;let s=this._rootWeave.FindAll(cd.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof kO.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(IO.Choice)();for(let u of o)this.Error(`Functions may not contain choices, but saw '${u}'`,u);},this.WarningInTermination=s=>{let o="Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?";s.parent===this._rootWeave&&this._firstChildFlow&&(o=`${o} Note that if you intend to enter '${this._firstChildFlow.identifier}' next, you need to divert to it explicitly.`);let u=(0, Dv.asOrNull)(s,cd.Divert);u&&u.isTunnel&&(o+=` When final tunnel to '${u.target} ->' returns it won't have anywhere to go.`),this.Warning(o,s);},this.toString=()=>`${this.typeName} '${this.identifier}'`,this.identifier=e,this.args=r,t===null&&(t=[]),this.PreProcessTopLevelObjects(t),t=this.SplitWeaveAndSubFlowContent(t,this.GetType()=="Story"&&!a),this.AddContent(t);}PreProcessTopLevelObjects(e){}ResolveReferences(e){var t,r;if(this._startingSubFlowDivert){if(!this._startingSubFlowRuntime)throw new Error;this._startingSubFlowDivert.targetPath=this._startingSubFlowRuntime.path;}if(super.ResolveReferences(e),this.args!==null){for(let i of this.args)e.CheckForNamingCollisions(this,i.identifier,hd.SymbolType.Arg,"argument");for(let i=0;i<this.args.length;i+=1)for(let a=i+1;a<this.args.length;a+=1)((t=this.args[i].identifier)===null||t===void 0?void 0:t.name)==((r=this.args[a].identifier)===null||r===void 0?void 0:r.name)&&this.Error(`Multiple arguments with the same name: '${this.args[i].identifier}'`);}if(this.flowLevel!==Jt.FlowLevel.Story){let i=this.flowLevel===Jt.FlowLevel.Knot?hd.SymbolType.Knot:hd.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};mo.FlowBase=dd;});var yo=E(go=>{Object.defineProperty(go,"__esModule",{value:true});go.ContentList=void 0;var JO=Ee(),zO=ye(),HO=Sn(),UO=ae(),fd=class extends zO.ParsedObject{get runtimeContainer(){return this.runtimeObject}constructor(e,...t){super(),this.dontFlatten=false,this.TrimTrailingWhitespace=()=>{for(let r=this.content.length-1;r>=0;--r){let i=(0, UO.asOrNull)(this.content[r],HO.Text);if(i===null)break;if(i.text=i.text.replace(new RegExp(/[ \t]/g),""),i.text.length===0)this.content.splice(r,1);else break}},this.GenerateRuntimeObject=()=>{let r=new JO.Container;if(this.content!==null)for(let i of this.content){let a=i.runtimeObject;a&&r.AddContent(a);}return this.dontFlatten&&this.story.DontFlattenContainer(r),r},this.toString=()=>`ContentList(${this.content.join(", ")})`,e&&this.AddContent(e),t&&this.AddContent(t);}get typeName(){return "ContentList"}};go.ContentList=fd;});var Wr=E(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.VariableReference=void 0;var KO=at(),XO=st(),pd=class extends KO.InkObject{get containerForCount(){return this.pathForCount===null?null:this.ResolvePath(this.pathForCount).container}get pathStringForCount(){return this.pathForCount===null?null:this.CompactPathString(this.pathForCount)}set pathStringForCount(e){e===null?this.pathForCount=null:this.pathForCount=new XO.Path(e);}constructor(e=null){super(),this.pathForCount=null,this.name=e;}toString(){return this.name!=null?"var("+this.name+")":"read_count("+this.pathStringForCount+")"}};vo.VariableReference=pd;});var Mr=E(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.VariableReference=void 0;var YO=yo(),ZO=Ct(),Av=Gt(),QO=Yn(),ex=Wr(),tx=Zn(),nx=po(),Pv=ae(),md=class extends ZO.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(Pv.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new nx.Identifier(e)}get runtimeVarRef(){return this._runtimeVarRef}constructor(e){super(),this.pathIdentifiers=e,this._runtimeVarRef=null,this.isConstantReference=false,this.isListItemReference=false,this.GenerateIntoContainer=t=>{let r=this.story.constants.get(this.name);if(r){r.GenerateConstantIntoContainer(t),this.isConstantReference=true;return}if(this._runtimeVarRef=new ex.VariableReference(this.name),this.path.length===1||this.path.length===2){let i="",a="";this.path.length===1?i=this.path[0]:(a=this.path[0],i=this.path[1]),this.story.ResolveListItem(a,i,this)&&(this.isListItemReference=true);}t.AddContent(this._runtimeVarRef);},this.toString=()=>`{${this.path.join(".")}}`;}get typeName(){return "ref"}ResolveReferences(e){if(super.ResolveReferences(e),this.isConstantReference||this.isListItemReference)return;let t=new QO.Path(this.pathIdentifiers),r=t.ResolveFromContext(this);if(r){if(!r.containerForCounting)throw new Error;if(r.containerForCounting.visitsShouldBeCounted=true,this._runtimeVarRef===null)return;this._runtimeVarRef.pathForCount=r.runtimePath,this._runtimeVarRef.name=null;let i=(0, Pv.asOrNull)(r,Av.FlowBase);i&&i.isFunction&&(this.parent instanceof tx.Weave||this.parent instanceof YO.ContentList||this.parent instanceof Av.FlowBase)&&this.Warning(`'${i.identifier}' being used as read count rather than being called as function. Perhaps you intended to write ${i.identifier}()`);return}if(this.path.length>1){let i=`Could not find target for read count: ${t}`;this.path.length<=2&&(i+=`, or couldn't find list item with the name ${this.path.join(",")}`),this.Error(i);return}e.ResolveVariableWithName(this.name,this).found||this.Error(`Unresolved variable: ${this.name}`,this);}};Co.VariableReference=md;});var ns=E(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.FunctionCall=void 0;var zt=qe(),rx=Br(),ix=qr(),sx=Ct(),ax=ut(),ox=ve(),_o=Wt(),Ov=Ra(),ux=Yn(),lx=ve(),cx=Mr(),bo=ae(),So=class n extends sx.Expression{get proxyDivert(){return this._proxyDivert}get name(){return this._proxyDivert.target.firstComponent||""}get args(){return this._proxyDivert.args}get runtimeDivert(){return this._proxyDivert.runtimeDivert}get isChoiceCount(){return this.name==="CHOICE_COUNT"}get isTurns(){return this.name==="TURNS"}get isTurnsSince(){return this.name==="TURNS_SINCE"}get isRandom(){return this.name==="RANDOM"}get isSeedRandom(){return this.name==="SEED_RANDOM"}get isListRange(){return this.name==="LIST_RANGE"}get isListRandom(){return this.name==="LIST_RANDOM"}get isReadCount(){return this.name==="READ_COUNT"}constructor(e,t){super(),this._divertTargetToCount=null,this._variableReferenceToCount=null,this.shouldPopReturnedValue=false,this.GenerateIntoContainer=r=>{let i=this.story.ResolveList(this.name),a=false;if(this.isChoiceCount)this.args.length>0&&this.Error("The CHOICE_COUNT() function shouldn't take any arguments"),r.AddContent(zt.ControlCommand.ChoiceCount());else if(this.isTurns)this.args.length>0&&this.Error("The TURNS() function shouldn't take any arguments"),r.AddContent(zt.ControlCommand.Turns());else if(this.isTurnsSince||this.isReadCount){let s=(0, bo.asOrNull)(this.args[0],ix.DivertTarget),o=(0, bo.asOrNull)(this.args[0],cx.VariableReference);if(this.args.length!==1||s===null&&o===null){this.Error(`The ${this.name}() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)`);return}s?(this._divertTargetToCount=s,this.AddContent(this._divertTargetToCount),this._divertTargetToCount.GenerateIntoContainer(r)):o&&(this._variableReferenceToCount=o,this.AddContent(this._variableReferenceToCount),this._variableReferenceToCount.GenerateIntoContainer(r)),this.isTurnsSince?r.AddContent(zt.ControlCommand.TurnsSince()):r.AddContent(zt.ControlCommand.ReadCount());}else if(this.isRandom){this.args.length!==2&&this.Error("RANDOM should take 2 parameters: a minimum and a maximum integer");for(let s=0;s<this.args.length;s+=1){let o=(0, bo.asOrNull)(this.args[s],Ov.NumberExpression);if(o&&!o.isInt()){let u=s===0?"minimum":"maximum";this.Error(`RANDOM's ${u} parameter should be an integer`);}this.args[s].GenerateIntoContainer(r);}r.AddContent(zt.ControlCommand.Random());}else if(this.isSeedRandom){this.args.length!==1&&this.Error("SEED_RANDOM should take 1 parameter - an integer seed");let s=(0, bo.asOrNull)(this.args[0],Ov.NumberExpression);s&&!s.isInt()&&this.Error("SEED_RANDOM's parameter should be an integer seed"),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.SeedRandom());}else if(this.isListRange){this.args.length!==3&&this.Error("LIST_RANGE should take 3 parameters - a list, a min and a max");for(let s=0;s<this.args.length;s+=1)this.args[s].GenerateIntoContainer(r);r.AddContent(zt.ControlCommand.ListRange());}else if(this.isListRandom)this.args.length!==1&&this.Error("LIST_RANDOM should take 1 parameter - a list"),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.ListRandom());else if(_o.NativeFunctionCall.CallExistsWithName(this.name)){let s=_o.NativeFunctionCall.CallWithName(this.name);if(s.numberOfParameters!==this.args.length){let o=`${n.name} should take ${s.numberOfParameters} parameter`;s.numberOfParameters>1&&(o+="s"),this.Error(o);}for(let o=0;o<this.args.length;o+=1)this.args[o].GenerateIntoContainer(r);r.AddContent(_o.NativeFunctionCall.CallWithName(this.name));}else if(i!==null)if(this.args.length>1&&this.Error("Can currently only construct a list from one integer (or an empty list from a given list definition)"),this.args.length===1)r.AddContent(new lx.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.ListFromInt());else {let s=new ax.InkList;s.SetInitialOriginName(this.name),r.AddContent(new ox.ListValue(s));}else r.AddContent(this._proxyDivert.runtimeObject),a=true;a||this.content.splice(this.content.indexOf(this._proxyDivert),1),this.shouldPopReturnedValue&&r.AddContent(zt.ControlCommand.PopEvaluatedValue());},this.toString=()=>{let r=this.args.join(", ");return `${this.name}(${r})`},this._proxyDivert=new rx.Divert(new ux.Path(e),t),this._proxyDivert.isFunctionCall=true,this.AddContent(this._proxyDivert);}get typeName(){return "FunctionCall"}ResolveReferences(e){if(super.ResolveReferences(e),!this.content.includes(this._proxyDivert)&&this.args!==null)for(let t of this.args)t.ResolveReferences(e);if(this._divertTargetToCount){let t=this._divertTargetToCount.divert,r=t.runtimeDivert.variableDivertName!=null;if(r){this.Error(`When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE(${t.runtimeDivert.variableDivertName})`);return}let i=t.targetContent;if(i===null)r||this.Error(`Failed to find target for TURNS_SINCE: '${t.target}'`);else {if(!i.containerForCounting)throw new Error;i.containerForCounting.turnIndexShouldBeCounted=true;}}else if(this._variableReferenceToCount){let t=this._variableReferenceToCount.runtimeVarRef;if(!t)throw new Error;t.pathForCount!==null&&this.Error(`Should be '${n.name}'(-> '${this._variableReferenceToCount.name}). Usage without the '->' only makes sense for variable targets.`);}}};Eo.FunctionCall=So;So.IsBuiltIn=n=>_o.NativeFunctionCall.CallExistsWithName(n)?true:n==="CHOICE_COUNT"||n==="TURNS_SINCE"||n==="TURNS"||n==="RANDOM"||n==="SEED_RANDOM"||n==="LIST_VALUE"||n==="LIST_RANDOM"||n==="READ_COUNT";});var yd=E(wo=>{Object.defineProperty(wo,"__esModule",{value:true});wo.MultipleConditionExpression=void 0;var hx=Ct(),dx=Wt(),gd=class extends hx.Expression{get subExpressions(){return this.content}constructor(e){super(),this.GenerateIntoContainer=t=>{let r=true;for(let i of this.subExpressions)i.GenerateIntoContainer(t),r||t.AddContent(dx.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};wo.MultipleConditionExpression=gd;});var qr=E(Do=>{Object.defineProperty(Do,"__esModule",{value:true});Do.DivertTarget=void 0;var fx=Bh(),px=$r(),mx=no(),gx=_d(),yx=ve(),vd=Ct(),vx=Gt(),xv=ns(),Cx=yd(),Tv=Mr(),Cd=ae(),bd=class n extends vd.Expression{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}get runtimeDivertTargetValue(){if(!this._runtimeDivertTargetValue)throw new Error;return this._runtimeDivertTargetValue}constructor(e){super(),this._runtimeDivert=null,this._runtimeDivertTargetValue=null,this.GenerateIntoContainer=t=>{this.divert.GenerateRuntimeObject(),this._runtimeDivert=this.divert.runtimeDivert,this._runtimeDivertTargetValue=new yx.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, Cd.asOrNull)(t,n);if(!r||!this.divert.target||!r.divert.target)return false;let i=this.divert.target.dotSeparatedComponents,a=r.divert.target.dotSeparatedComponents;return i===a},this.divert=this.AddContent(e);}get typeName(){return "DivertTarget"}ResolveReferences(e){if(super.ResolveReferences(e),this.divert.isDone||this.divert.isEnd){this.Error("Can't use -> DONE or -> END as variable divert targets",this);return}let t=this;for(;t&&t instanceof vd.Expression;){let i=false,a=false,s=t.parent;if(s instanceof fx.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof Tv.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof Tv.VariableReference)||(i=true),a=true;}else if(s instanceof xv.FunctionCall){let o=s;!o.isTurnsSince&&!o.isReadCount&&(i=true),a=true;}else (s instanceof vd.Expression||s instanceof Cx.MultipleConditionExpression||s instanceof px.Choice&&s.condition===t||s instanceof mx.Conditional||s instanceof gx.ConditionalSingleBranch)&&(i=true,a=true);if(i&&this.Error(`Can't use a divert target like that. Did you intend to call '${this.divert.target}' as a function: likeThis(), or check the read count: likeThis, with no arrows?`,this),a)break;t=s;}if(this.runtimeDivert.hasVariableTarget){if(!this.divert.target)throw new Error;this.Error(`Since '${this.divert.target.dotSeparatedComponents}' is a variable, it shouldn't be preceded by '->' here.`);}this.runtimeDivert.targetPath&&(this.runtimeDivertTargetValue.targetPath=this.runtimeDivert.targetPath);let r=this.divert.targetContent;if(r!==null){let i=r.containerForCounting;if(i!==null){let s=(0, Cd.asOrNull)(this.parent,xv.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, Cd.asOrNull)(r,vx.FlowBase);if(a!=null&&a.args!==null)for(let s of a.args)s.isByReference&&this.Error(`Can't store a divert target to a knot or function that has by-reference arguments ('${a.identifier}' has 'ref ${s.identifier}').`);}}};Do.DivertTarget=bd;});var Br=E(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.Divert=void 0;var bx=Ee(),rs=qe(),_x=Mt(),Sd=qr(),Ed=Gt(),Sx=ns(),Ex=ye(),Nv=Yn(),wx=st(),Fv=Kn(),Dx=ve(),Iv=Mr(),Ax=ts(),is=ae(),wd=class extends Ex.ParsedObject{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}set runtimeDivert(e){this._runtimeDivert=e;}get isEnd(){return !!(this.target&&this.target.dotSeparatedComponents==="END")}get isDone(){return !!(this.target&&this.target.dotSeparatedComponents==="DONE")}constructor(e,t){super(),this.args=[],this.target=null,this.targetContent=null,this._runtimeDivert=null,this.isFunctionCall=false,this.isEmpty=false,this.isTunnel=false,this.isThread=false,this.GenerateRuntimeObject=()=>{if(this.isEnd)return rs.ControlCommand.End();if(this.isDone)return rs.ControlCommand.Done();this.runtimeDivert=new _x.Divert,this.ResolveTargetContent(),this.CheckArgumentValidity();let r=this.args!==null&&this.args.length>0;if(r||this.isFunctionCall||this.isTunnel||this.isThread){let i=new bx.Container;if(r){this.isFunctionCall||i.AddContent(rs.ControlCommand.EvalStart());let a=null;this.targetContent&&(a=this.targetContent.args);for(let s=0;s<this.args.length;++s){let o=this.args[s],u=null;if(a&&s<a.length&&(u=a[s]),u&&u.isByReference){let l=(0, is.asOrNull)(o,Iv.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new Nv.Path(l.pathIdentifiers);if(c.ResolveFromContext(this)){this.Error(`can't pass a read count by reference. '${c.dotSeparatedComponents}' is a knot/stitch/label, but '${this.target.dotSeparatedComponents}' requires the name of a VAR to be passed.`);break}let f=new Dx.VariablePointerValue(l.name);i.AddContent(f);}else o.GenerateIntoContainer(i);}this.isFunctionCall||i.AddContent(rs.ControlCommand.EvalEnd());}return this.isThread?i.AddContent(rs.ControlCommand.StartThread()):(this.isFunctionCall||this.isTunnel)&&(this.runtimeDivert.pushesToStack=true,this.runtimeDivert.stackPushType=this.isFunctionCall?Fv.PushPopType.Function:Fv.PushPopType.Tunnel),i.AddContent(this.runtimeDivert),i}return this.runtimeDivert},this.PathAsVariableName=()=>this.target?this.target.firstComponent:null,this.ResolveTargetContent=()=>{if(!(this.isEmpty||this.isEnd)&&this.targetContent===null){let r=this.PathAsVariableName();if(r!==null){let i=(0, is.asOrNull)((0, Ax.ClosestFlowBase)(this),Ed.FlowBase);if(i){let a=i.ResolveVariableWithName(r,this);if(a.found){if(a.isArgument&&a.ownerFlow&&a.ownerFlow.args){let s=a.ownerFlow.args.find(o=>{var u;return ((u=o.identifier)===null||u===void 0?void 0:u.name)==r});s&&!s.isDivertTarget&&this.Error(`Since '${s.identifier}' is used as a variable divert target (on ${this.debugMetadata}), it should be marked as: -> ${s.identifier}`,a.ownerFlow);}this.runtimeDivert.variableDivertName=r;return}}}if(!this.target)throw new Error;this.targetContent=this.target.ResolveFromContext(this);}},this.CheckArgumentValidity=()=>{if(this.isEmpty)return;let r=0;if(this.args!==null&&this.args.length>0&&(r=this.args.length),this.targetContent===null)return;let i=(0, is.asOrNull)(this.targetContent,Ed.FlowBase);if(r===0&&(i===null||!i.hasParameters))return;if(i===null&&r>0){this.Error("target needs to be a knot or stitch in order to pass arguments");return}else if(i!==null&&(i.args===null||!i.args&&r>0)){this.Error(`target (${i.name}) doesn't take parameters`);return}else if(this.parent instanceof Sd.DivertTarget){r>0&&this.Error("can't store arguments in a divert target variable");return}let a=i.args.length;if(a!==r){let s;r===0?s="but there weren't any passed to it":r<a?s=`but only got ${r}`:s=`but got ${r}`,this.Error(`to '${i.identifier}' requires ${a} arguments, ${s}`);return}for(let s=0;s<a;++s){let o=i.args[s],u=this.args[s];if(o.isDivertTarget){let l=(0, is.asOrNull)(u,Iv.VariableReference);if(!(u instanceof Sd.DivertTarget)&&l===null)this.Error(`Target '${i.identifier}' expects a divert target for the parameter named -> ${o.identifier} but saw ${u}`,u);else if(l){let c=new Nv.Path(l.pathIdentifiers);c.ResolveFromContext(l)&&this.Error(`Passing read count of '${c.dotSeparatedComponents}' instead of a divert target. You probably meant '${c}'`);}}}if(i===null){this.Error("Can't call as a function or with arguments unless it's a knot or stitch");return}},this.CheckExternalArgumentValidity=r=>{let i=this.target?this.target.firstComponent:null,a=r.externals.get(i);if(!a)throw new Error("external not found");let s=a.argumentNames.length,o=0;this.args&&(o=this.args.length),o!==s&&this.Error(`incorrect number of arguments sent to external function '${i}'. Expected ${s} but got ${o}`);},this.toString=()=>{let r="";if(this.target!==null)r+=this.target.toString();else return "-> <empty divert>";return this.isTunnel&&(r+=" ->"),this.isFunctionCall&&(r+=" ()"),r},e&&(this.target=e),t&&(this.args=t,this.AddContent(t));}get typeName(){return "Divert"}ResolveReferences(e){if(this.isEmpty||this.isEnd||this.isDone)return;if(!this.runtimeDivert)throw new Error;this.targetContent&&(this.runtimeDivert.targetPath=this.targetContent.runtimePath),super.ResolveReferences(e);let t=(0, is.asOrNull)(this.targetContent,Ed.FlowBase);t&&(!t.isFunction&&this.isFunctionCall?super.Error(`${t.identifier} hasn't been marked as a function, but it's being called as one. Do you need to declare the knot as '== function ${t.identifier} =='?`):t.isFunction&&!this.isFunctionCall&&!(this.parent instanceof Sd.DivertTarget)&&super.Error(t.identifier+" can't be diverted to. It can only be called as a function since it's been marked as such: '"+t.identifier+"(...)'"));let r=this.targetContent!==null,i=false,a=false;if(this.target){if(this.target.numberOfComponents===1){if(!this.target.firstComponent)throw new Error;if(i=Sx.FunctionCall.IsBuiltIn(this.target.firstComponent),a=e.IsExternal(this.target.firstComponent),i||a){this.isFunctionCall||super.Error(`${this.target.firstComponent} must be called as a function: ~ ${this.target.firstComponent}()`),a&&(this.runtimeDivert.isExternal=true,this.args!==null&&(this.runtimeDivert.externalArgs=this.args.length),this.runtimeDivert.pushesToStack=false,this.runtimeDivert.targetPath=new wx.Path(this.target.firstComponent),this.CheckExternalArgumentValidity(e));return}}}else throw new Error;this.runtimeDivert.variableDivertName==null&&!r&&!i&&!a&&this.Error(`target not found: '${this.target}'`);}Error(e,t=null,r=false){if(t!==this&&t){super.Error(e,t);return}this.isFunctionCall?super.Error(`Function call ${e}`,t,r):super.Error(`Divert ${e}`,t,r);}};Ao.Divert=wd;});var kv=E(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.GatherPointToResolve=void 0;var Dd=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};Po.GatherPointToResolve=Dd;});var Vv=E(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.SequenceDivertToResolve=void 0;var Ad=class{constructor(e,t){this.divert=e,this.targetContent=t;}};Oo.SequenceDivertToResolve=Ad;});var Pd=E(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.SequenceType=void 0;var Rv;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})(Rv||(xo.SequenceType=Rv={}));});var Td=E(Fo=>{Object.defineProperty(Fo,"__esModule",{value:true});Fo.Sequence=void 0;var $v=Ee(),Nt=qe(),Od=Mt(),ss=ve(),To=Wt(),Px=ye(),Ox=Vv(),No=Pd(),xx=Zn(),xd=class extends Px.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new $v.Container;r.visitsShouldBeCounted=true,r.countingAtStartOnly=true,this._sequenceDivertsToResolve=[],r.AddContent(Nt.ControlCommand.EvalStart()),r.AddContent(Nt.ControlCommand.VisitIndex());let i=(this.sequenceType&No.SequenceType.Once)>0,a=(this.sequenceType&No.SequenceType.Cycle)>0,s=(this.sequenceType&No.SequenceType.Stopping)>0,o=(this.sequenceType&No.SequenceType.Shuffle)>0,u=this.sequenceElements.length;if(i&&(u+=1),s||i?(r.AddContent(new ss.IntValue(u-1)),r.AddContent(To.NativeFunctionCall.CallWithName("MIN"))):a&&(r.AddContent(new ss.IntValue(this.sequenceElements.length)),r.AddContent(To.NativeFunctionCall.CallWithName("%"))),o){let c=Nt.ControlCommand.NoOp();if(i||s){let f=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(Nt.ControlCommand.Duplicate()),r.AddContent(new ss.IntValue(f)),r.AddContent(To.NativeFunctionCall.CallWithName("=="));let d=new Od.Divert;d.isConditional=true,r.AddContent(d),this.AddDivertToResolve(d,c);}let h=this.sequenceElements.length;s&&(h-=1),r.AddContent(new ss.IntValue(h)),r.AddContent(Nt.ControlCommand.SequenceShuffleIndex()),(i||s)&&r.AddContent(c);}r.AddContent(Nt.ControlCommand.EvalEnd());let l=Nt.ControlCommand.NoOp();for(let c=0;c<u;c+=1){r.AddContent(Nt.ControlCommand.EvalStart()),r.AddContent(Nt.ControlCommand.Duplicate()),r.AddContent(new ss.IntValue(c)),r.AddContent(To.NativeFunctionCall.CallWithName("==")),r.AddContent(Nt.ControlCommand.EvalEnd());let h=new Od.Divert;h.isConditional=true,r.AddContent(h);let f;c<this.sequenceElements.length?f=this.sequenceElements[c].runtimeObject:f=new $v.Container,f.name=`s${c}`,f.InsertContent(Nt.ControlCommand.PopEvaluatedValue(),0);let d=new Od.Divert;f.AddContent(d),r.AddToNamedContentOnly(f),this.AddDivertToResolve(h,f),this.AddDivertToResolve(d,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new Ox.SequenceDivertToResolve(r,i));},this.sequenceType=t,this.sequenceElements=[];for(let r of e){let i=r.content,a=null;i===null||i.length===0?a=r:a=new xx.Weave(i),this.sequenceElements.push(a),this.AddContent(a);}}get typeName(){return "Sequence"}ResolveReferences(e){super.ResolveReferences(e);for(let t of this._sequenceDivertsToResolve)t.divert.targetPath=t.targetContent.path;}};Fo.Sequence=xd;});var Fd=E(Io=>{Object.defineProperty(Io,"__esModule",{value:true});Io.TunnelOnwards=void 0;var Tx=Ee(),as=qe(),Nx=Mt(),Fx=ve(),Ix=ye(),kx=Un(),Vx=ae(),Rx=Wr(),Nd=class extends Ix.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new Tx.Container;if(e.AddContent(as.ControlCommand.EvalStart()),this.divertAfter){let t=this.divertAfter.GenerateRuntimeObject(),r=t;if(r){let a=this.divertAfter.args;if(a!==null&&a.length>0){let s=-1,o=-1;for(let u=0;u<r.content.length;u+=1){let l=r.content[u];l&&(s==-1&&l.commandType===as.ControlCommand.CommandType.EvalStart?s=u:l.commandType===as.ControlCommand.CommandType.EvalEnd&&(o=u));}for(let u=s+1;u<o;u+=1){let l=r.content[u];l.parent=null,e.AddContent(r.content[u]);}}}let i=(0, Vx.asOrNull)(t,Nx.Divert);if(i!=null&&i.hasVariableTarget){let a=new Rx.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new Fx.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new kx.Void);return e.AddContent(as.ControlCommand.EvalEnd()),e.AddContent(as.ControlCommand.PopTunnel()),e},this.toString=()=>` -> ${this._divertAfter}`;}get divertAfter(){return this._divertAfter}set divertAfter(e){this._divertAfter=e,this._divertAfter&&this.AddContent(this._divertAfter);}get typeName(){return "TunnelOnwards"}ResolveReferences(e){super.ResolveReferences(e),this.divertAfter&&this.divertAfter.targetContent&&(this._overrideDivertTarget.targetPath=this.divertAfter.targetContent.runtimePath);}};Io.TunnelOnwards=Nd;});var Vd=E(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.ListDefinition=void 0;var Id=ut(),kd=class{constructor(e,t){this._name=e||"",this._items=null,this._itemNameToValues=t||new Map;}get name(){return this._name}get items(){if(this._items==null){this._items=new Map;for(let[e,t]of this._itemNameToValues){let r=new Id.InkListItem(this.name,e);this._items.set(r.serialized(),t);}}return this._items}ValueForItem(e){if(!e.itemName)return 0;let t=this._itemNameToValues.get(e.itemName);return typeof t<"u"?t:0}ContainsItem(e){return !e.itemName||e.originName!=this.name?false:this._itemNameToValues.has(e.itemName)}ContainsItemWithName(e){return this._itemNameToValues.has(e)}TryGetItemWithValue(e,t){for(let[r,i]of this._itemNameToValues)if(i==e)return t=new Id.InkListItem(this.name,r),{result:t,exists:true};return t=Id.InkListItem.Null,{result:t,exists:false}}TryGetValueForItem(e,t){if(!e.itemName)return {result:0,exists:false};let r=this._itemNameToValues.get(e.itemName);return r?{result:r,exists:true}:{result:0,exists:false}}};ko.ListDefinition=kd;});var Ro=E(Vo=>{Object.defineProperty(Vo,"__esModule",{value:true});Vo.ListDefinition=void 0;var $x=ut(),jx=ut(),Lx=Vd(),qx=ve(),Bx=ye(),Wx=nn(),Rd=class extends Bx.ParsedObject{get typeName(){return "ListDefinition"}get runtimeListDefinition(){var e;let t=new Map;for(let r of this.itemDefinitions)t.has(r.name)?this.Error(`List '${this.identifier}' contains duplicate items called '${r.name}'`):t.set(r.name,r.seriesValue);return new Lx.ListDefinition(((e=this.identifier)===null||e===void 0?void 0:e.name)||"",t)}constructor(e){super(),this.itemDefinitions=e,this.identifier=null,this.variableAssignment=null,this._elementsByName=null,this.ItemNamed=r=>{if(this._elementsByName===null){this._elementsByName=new Map;for(let a of this.itemDefinitions)this._elementsByName.set(a.name,a);}return this._elementsByName.get(r)||null},this.GenerateRuntimeObject=()=>{var r,i;let a=new $x.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new jx.InkListItem(((r=this.identifier)===null||r===void 0?void 0:r.name)||null,s.name||null);a.Add(o,s.seriesValue);}return a.SetInitialOriginName(((i=this.identifier)===null||i===void 0?void 0:i.name)||""),new qx.ListValue(a)};let t=1;for(let r of this.itemDefinitions)r.explicitValue!==null&&(t=r.explicitValue),r.seriesValue=t,t+=1;this.AddContent(e);}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.identifier,Wx.SymbolType.List);}};Vo.ListDefinition=Rd;});var jd=E($o=>{Object.defineProperty($o,"__esModule",{value:true});$o.VariableAssignment=void 0;var Mx=Ee(),Gx=ts(),Jx=Ro(),zx=ye(),jv=nn(),Hx=bn(),Ux=Mr(),Kx=ae(),$d=class extends zx.ParsedObject{get variableName(){return this.variableIdentifier.name}get typeName(){return this.isNewTemporaryDeclaration?"temp":this.isGlobalDeclaration?this.listDefinition!==null?"LIST":"VAR":"variable assignment"}get isDeclaration(){return this.isGlobalDeclaration||this.isNewTemporaryDeclaration}constructor({assignedExpression:e,isGlobalDeclaration:t,isTemporaryNewDeclaration:r,listDef:i,variableIdentifier:a}){super(),this._runtimeAssignment=null,this.expression=null,this.listDefinition=null,this.GenerateRuntimeObject=()=>{let s=null;if(this.isGlobalDeclaration?s=this.story:this.isNewTemporaryDeclaration&&(s=(0, Gx.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new Mx.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new Hx.VariableAssignment(this.variableName,this.isNewTemporaryDeclaration),o.AddContent(this._runtimeAssignment),o},this.toString=()=>`${this.isGlobalDeclaration?"VAR":this.isNewTemporaryDeclaration?"~ temp":""} ${this.variableName}`,this.variableIdentifier=a,this.isGlobalDeclaration=!!t,this.isNewTemporaryDeclaration=!!r,i instanceof Jx.ListDefinition?(this.listDefinition=this.AddContent(i),this.listDefinition.variableAssignment=this,this.isGlobalDeclaration=true):e&&(this.expression=this.AddContent(e));}ResolveReferences(e){if(super.ResolveReferences(e),this.isDeclaration&&this.listDefinition===null&&e.CheckForNamingCollisions(this,this.variableIdentifier,this.isGlobalDeclaration?jv.SymbolType.Var:jv.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, Kx.asOrNull)(this.expression,Ux.VariableReference);t&&!t.isConstantReference&&!t.isListItemReference&&this.Error("global variable assignments cannot refer to other variables, only literal values, constants and list items");}if(!this.isNewTemporaryDeclaration){let t=e.ResolveVariableWithName(this.variableName,this);t.found||(this.variableName in this.story.constants?this.Error(`Can't re-assign to a constant (do you need to use VAR when declaring '${this.variableName}'?)`,this):this.Error(`Variable could not be found to assign to: '${this.variableName}'`,this)),this._runtimeAssignment&&(this._runtimeAssignment.isGlobal=t.isGlobal);}}};$o.VariableAssignment=$d;});var Zn=E(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.Weave=void 0;var Lv=ba(),_t=$r(),jo=no(),Xx=so(),Yx=Ee(),Lo=Br(),Zx=Mt(),Qx=qr(),eT=Gt(),Ht=es(),tT=kv(),nT=ye(),Ld=Td(),rT=Sn(),iT=Fd(),sT=jd(),St=ae(),qd=class n extends nT.ParsedObject{get rootContainer(){return this._rootContainer||(this._rootContainer=this.GenerateRuntimeObject()),this._rootContainer}get namedWeavePoints(){return this._namedWeavePoints}get lastParsedSignificantObject(){if(this.content.length===0)return null;let e=null;for(let r=this.content.length-1;r>=0;--r){e=this.content[r];let i=(0, St.asOrNull)(e,rT.Text);if(!(i&&i.text===`
22
- `)&&!this.IsGlobalDeclaration(e))break}let t=(0, St.asOrNull)(e,n);return t&&(e=t.lastParsedSignificantObject),e}constructor(e,t=-1){super(),this.previousWeavePoint=null,this.addContentToPreviousWeavePoint=false,this.hasSeenChoiceInSection=false,this.currentContainer=null,this._unnamedGatherCount=0,this._choiceCount=0,this._rootContainer=null,this._namedWeavePoints=new Map,this.looseEnds=[],this.gatherPointsToResolve=[],this.ResolveWeavePointNaming=()=>{var r,i,a;let s=[...this.FindAll(Ht.Gather)(o=>!(o.name===null||o.name===void 0)),...this.FindAll(_t.Choice)(o=>!(o.name===null||o.name===void 0))];this._namedWeavePoints=new Map;for(let o of s){let u=this.namedWeavePoints.get(((r=o.identifier)===null||r===void 0?void 0:r.name)||"");if(u){let l=u instanceof Ht.Gather?"gather":"choice",c=u;this.Error(`A ${l} with the same label name '${o.name}' already exists in this context on line ${c.debugMetadata?c.debugMetadata.startLineNumber:"NO DEBUG METADATA AVAILABLE"}`,o);}!((i=o.identifier)===null||i===void 0)&&i.name&&this.namedWeavePoints.set((a=o.identifier)===null||a===void 0?void 0:a.name,o);}},this.ConstructWeaveHierarchyFromIndentation=()=>{let r=0;for(;r<this.content.length;){let i=this.content[r];if(i instanceof _t.Choice||i instanceof Ht.Gather){let s=i.indentationDepth-1;if(s>this.baseIndentIndex){let o=r;for(;r<this.content.length;){let h=(0, St.asOrNull)(this.content[r],_t.Choice)||(0, St.asOrNull)(this.content[r],Ht.Gather);if(h!==null&&h.indentationDepth-1<=this.baseIndentIndex)break;r+=1;}let u=r-o,l=this.content.slice(o,o+u);this.content.splice(o,u);let c=new n(l,s);this.InsertContent(o,c),r=o;}}r+=1;}},this.DetermineBaseIndentationFromContent=r=>{for(let i of r)if(i instanceof _t.Choice||i instanceof Ht.Gather)return i.indentationDepth-1;return 0},this.GenerateRuntimeObject=()=>{this._rootContainer=new Yx.Container,this.currentContainer=this._rootContainer,this.looseEnds=[],this.gatherPointsToResolve=[];for(let r of this.content)if(r instanceof _t.Choice||r instanceof Ht.Gather)this.AddRuntimeForWeavePoint(r);else if(r instanceof n){let i=r;this.AddRuntimeForNestedWeave(i),this.gatherPointsToResolve.splice(0,0,...i.gatherPointsToResolve);}else this.AddGeneralRuntimeContent(r.runtimeObject);return this.PassLooseEndsToAncestors(),this._rootContainer},this.AddRuntimeForGather=r=>{let i=!this.hasSeenChoiceInSection;this.hasSeenChoiceInSection=false;let a=r.runtimeContainer;if(r.name||(a.name=`g-${this._unnamedGatherCount}`,this._unnamedGatherCount+=1),i){if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(a);}else this.rootContainer.AddToNamedContentOnly(a);for(let s of this.looseEnds){let o=s;if(o instanceof Ht.Gather&&o.indentationDepth==r.indentationDepth)continue;let u=null;if(o instanceof Lo.Divert)u=o.runtimeObject;else {u=new Zx.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new tT.GatherPointToResolve(u,a));}this.looseEnds=[],this.currentContainer=a;},this.AddRuntimeForWeavePoint=r=>{if(r instanceof Ht.Gather)this.AddRuntimeForGather(r);else if(r instanceof _t.Choice){if(!this.currentContainer)throw new Error;this.previousWeavePoint instanceof Ht.Gather&&this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1);let i=r;if(this.currentContainer.AddContent(i.runtimeObject),!i.innerContentContainer)throw new Error;i.innerContentContainer.name=`c-${this._choiceCount}`,this.currentContainer.AddToNamedContentOnly(i.innerContentContainer),this._choiceCount+=1,this.hasSeenChoiceInSection=true;}this.addContentToPreviousWeavePoint=false,this.WeavePointHasLooseEnd(r)&&(this.looseEnds.push(r),(0, St.asOrNull)(r,_t.Choice)&&(this.addContentToPreviousWeavePoint=true)),this.previousWeavePoint=r;},this.AddRuntimeForNestedWeave=r=>{this.AddGeneralRuntimeContent(r.rootContainer),this.previousWeavePoint!==null&&(this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1),this.addContentToPreviousWeavePoint=false);},this.AddGeneralRuntimeContent=r=>{if(r!==null)if(this.addContentToPreviousWeavePoint){if(!this.previousWeavePoint||!this.previousWeavePoint.runtimeContainer)throw new Error;this.previousWeavePoint.runtimeContainer.AddContent(r);}else {if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(r);}},this.PassLooseEndsToAncestors=()=>{if(this.looseEnds.length===0)return;let r=null,i=null,a=false;for(let s=this.parent;s!==null;s=s.parent){let o=(0, St.asOrNull)(s,n);o&&(!a&&r===null&&(r=o),a&&i===null&&(i=o)),(s instanceof Ld.Sequence||s instanceof jo.Conditional)&&(a=true);}if(!(r===null&&i===null))for(let s=this.looseEnds.length-1;s>=0;s-=1){let o=this.looseEnds[s],u=false;if(a){if(o instanceof _t.Choice&&r!==null)r.ReceiveLooseEnd(o),u=true;else if(!(o instanceof _t.Choice)){let l=r||i;l!==null&&(l.ReceiveLooseEnd(o),u=true);}}else r?.hasOwnProperty("ReceiveLooseEnd")&&r.ReceiveLooseEnd(o),u=true;u&&this.looseEnds.splice(s,1);}},this.ReceiveLooseEnd=r=>{this.looseEnds.push(r);},this.WeavePointNamed=r=>{if(!this.namedWeavePoints)return null;let i=this.namedWeavePoints.get(r);return i||null},this.IsGlobalDeclaration=r=>{let i=(0, St.asOrNull)(r,sT.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, St.asOrNull)(r,Xx.ConstantDeclaration))},this.ContentThatFollowsWeavePoint=r=>{let i=[],a=r;if(a.content!==null)for(let u of a.content)this.IsGlobalDeclaration(u)||i.push(u);let s=(0, St.asOrNull)(a.parent,n);if(s===null)throw new Error("Expected weave point parent to be weave?");let o=s.content.indexOf(a);for(let u=o+1;u<s.content.length;u+=1){let l=s.content[u];if(!this.IsGlobalDeclaration(l)){if(l instanceof _t.Choice||l instanceof Ht.Gather||l instanceof n)break;i.push(l);}}return i},this.ValidateTermination=r=>{if(this.lastParsedSignificantObject instanceof Lv.AuthorWarning)return;if(this.looseEnds!==null&&this.looseEnds.length>0)for(let a of this.looseEnds){let s=this.ContentThatFollowsWeavePoint(a);this.ValidateFlowOfObjectsTerminates(s,a,r);}else {for(let a of this.content)if(a instanceof _t.Choice||a instanceof Lo.Divert)return;this.ValidateFlowOfObjectsTerminates(this.content,this,r);}},this.BadNestedTerminationHandler=r=>{let i=null;for(let s=r.parent;s!==null;s=s.parent)if(s instanceof Ld.Sequence||s instanceof jo.Conditional){i=(0, St.asOrNull)(s,jo.Conditional);break}let a="Choices nested in conditionals or sequences need to explicitly divert afterwards.";i!==null&&i.FindAll(_t.Choice)().length===1&&(a=`Choices with conditions should be written: '* {condition} choice'. Otherwise, ${a.toLowerCase()}`),this.Error(a,r);},this.ValidateFlowOfObjectsTerminates=(r,i,a)=>{let s=false,o=i;for(let u of r){if(u.Find(Lo.Divert)(c=>!c.isThread&&!c.isTunnel&&!c.isFunctionCall&&!(c.parent instanceof Qx.DivertTarget))!==null&&(s=true),u.Find(iT.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof Lv.AuthorWarning)return;a(o);}},this.WeavePointHasLooseEnd=r=>{if(r.content===null)return true;for(let i=r.content.length-1;i>=0;--i){let a=(0, St.asOrNull)(r.content[i],Lo.Divert);if(a&&!(a.isThread||a.isTunnel||a.isFunctionCall))return false}return true},this.CheckForWeavePointNamingCollisions=()=>{if(!this.namedWeavePoints)return;let r=[];for(let i of this.ancestry){let a=(0, St.asOrNull)(i,eT.FlowBase);if(a)r.push(a);else break}for(let[i,a]of this.namedWeavePoints)for(let s of r){let o=s.ContentWithNameAtLevel(i);if(o&&o!==a){let u=`${a.GetType()} '${i}' has the same label name as a ${o.GetType()} (on ${o.debugMetadata})`;this.Error(u,a);}}},t==-1?this.baseIndentIndex=this.DetermineBaseIndentationFromContent(e):this.baseIndentIndex=t,this.AddContent(e),this.ConstructWeaveHierarchyFromIndentation();}get typeName(){return "Weave"}ResolveReferences(e){if(super.ResolveReferences(e),this.looseEnds!==null&&this.looseEnds.length>0){let t=false;for(let r=this.parent;r!==null;r=r.parent)if(r instanceof Ld.Sequence||r instanceof jo.Conditional){t=true;break}t&&this.ValidateTermination(this.BadNestedTerminationHandler);}for(let t of this.gatherPointsToResolve)t.divert.targetPath=t.targetRuntimeObj.path;this.CheckForWeavePointNamingCollisions();}};qo.Weave=qd;});var _d=E(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.ConditionalSingleBranch=void 0;var qv=Ee(),Bo=qe(),Bv=Mt(),aT=ye(),oT=Wt(),uT=ve(),lT=Sn(),cT=Zn(),hT=ae(),Bd=class extends aT.ParsedObject{get ownExpression(){return this._ownExpression}set ownExpression(e){this._ownExpression=e,this._ownExpression&&this.AddContent(this._ownExpression);}constructor(e){super(),this._contentContainer=null,this._conditionalDivert=null,this._ownExpression=null,this._innerWeave=null,this.isTrueBranch=false,this.matchingEquality=false,this.isElse=false,this.isInline=false,this.returnDivert=null,this.GenerateRuntimeObject=()=>{if(this._innerWeave)for(let i of this._innerWeave.content){let a=(0, hT.asOrNull)(i,lT.Text);a&&a.text.startsWith("else:")&&this.Warning("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?",a);}let t=new qv.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(Bo.ControlCommand.Duplicate()),this._conditionalDivert=new Bv.Divert,this._conditionalDivert.isConditional=!this.isElse,!this.isTrueBranch&&!this.isElse){let i=this.ownExpression!==null;i&&t.AddContent(Bo.ControlCommand.EvalStart()),this.ownExpression&&this.ownExpression.GenerateIntoContainer(t),this.matchingEquality&&t.AddContent(oT.NativeFunctionCall.CallWithName("==")),i&&t.AddContent(Bo.ControlCommand.EvalEnd());}return t.AddContent(this._conditionalDivert),this._contentContainer=this.GenerateRuntimeForContent(),this._contentContainer.name="b",this.isInline||this._contentContainer.InsertContent(new uT.StringValue(`
23
- `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(Bo.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new Bv.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new qv.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new cT.Weave(e),this.AddContent(this._innerWeave));}get typeName(){return "ConditionalSingleBranch"}ResolveReferences(e){if(!this._conditionalDivert||!this._contentContainer)throw new Error;this._conditionalDivert.targetPath=this._contentContainer.path,super.ResolveReferences(e);}};Wo.ConditionalSingleBranch=Bd;});var Mv=E(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.CustomFlags=void 0;var Wv;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(Wv||(Mo.CustomFlags=Wv={}));});var Gv=E(Go=>{Object.defineProperty(Go,"__esModule",{value:true});Go.DebugMetadata=void 0;var Wd=class n{constructor(){this.startLineNumber=0,this.endLineNumber=0,this.startCharacterNumber=0,this.endCharacterNumber=0,this.fileName=null,this.sourceName=null;}Merge(e){let t=new n;return t.fileName=this.fileName,t.sourceName=this.sourceName,this.startLineNumber<e.startLineNumber?(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=this.startCharacterNumber):this.startLineNumber>e.startLineNumber?(t.startLineNumber=e.startLineNumber,t.startCharacterNumber=e.startCharacterNumber):(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=Math.min(this.startCharacterNumber,e.startCharacterNumber)),this.endLineNumber>e.endLineNumber?(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=this.endCharacterNumber):this.endLineNumber<e.endLineNumber?(t.endLineNumber=e.endLineNumber,t.endCharacterNumber=e.endCharacterNumber):(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=Math.max(this.endCharacterNumber,e.endCharacterNumber)),t}toString(){return this.fileName!==null?`line ${this.startLineNumber} of ${this.fileName}"`:"line "+this.startLineNumber}};Go.DebugMetadata=Wd;});var Jv=E(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.ExternalDeclaration=void 0;var dT=ye(),Md=class extends dT.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t){super(),this.identifier=e,this.argumentNames=t,this.GenerateRuntimeObject=()=>(this.story.AddExternal(this),null);}get typeName(){return "EXTERNAL"}toString(){var e;return `EXTERNAL ${(e=this.identifier)===null||e===void 0?void 0:e.name}`}};Jo.ExternalDeclaration=Md;});var zv=E(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.FlowDecl=void 0;var Gd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};zo.FlowDecl=Gd;});var zd=E(Ho=>{Object.defineProperty(Ho,"__esModule",{value:true});Ho.Wrap=void 0;var fT=ye(),Jd=class extends fT.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Ho.Wrap=Jd;});var Hv=E(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.Glue=void 0;var pT=zd(),Hd=class extends pT.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};Uo.Glue=Hd;});var Xo=E(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.Glue=void 0;var mT=at(),Ud=class extends mT.InkObject{toString(){return "Glue"}};Ko.Glue=Ud;});var Kv=E(Yo=>{Object.defineProperty(Yo,"__esModule",{value:true});Yo.IncDecExpression=void 0;var gT=yo(),Uv=Ct(),yT=Gt(),vT=Wt(),CT=ve(),bT=bn(),_T=Wr(),ST=Zn(),Kd=class extends Uv.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new _T.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new CT.IntValue(1)),i.AddContent(vT.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new bT.VariableAssignment(((s=this.varIdentifier)===null||s===void 0?void 0:s.name)||null,false),i.AddContent(this._runtimeAssignment);},this.toString=()=>{var i,a;return this.expression?`${(i=this.varIdentifier)===null||i===void 0?void 0:i.name}${this.isInc?" += ":" -= "}${this.expression}`:`${(a=this.varIdentifier)===null||a===void 0?void 0:a.name}`+(this.isInc?"++":"--")},t instanceof Uv.Expression?(this.expression=t,this.AddContent(this.expression),this.isInc=!!r):this.isInc=t;}get typeName(){return "IncDecExpression"}ResolveReferences(e){var t;super.ResolveReferences(e);let r=e.ResolveVariableWithName(((t=this.varIdentifier)===null||t===void 0?void 0:t.name)||"",this);if(r.found||this.Error(`variable for ${this.incrementDecrementWord} could not be found: '${this.varIdentifier}' after searching: {this.descriptionOfScope}`),!this._runtimeAssignment)throw new Error;this._runtimeAssignment.isGlobal=r.isGlobal,!(this.parent instanceof ST.Weave)&&!(this.parent instanceof yT.FlowBase)&&!(this.parent instanceof gT.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};Yo.IncDecExpression=Kd;});var Yd=E(Zo=>{Object.defineProperty(Zo,"__esModule",{value:true});Zo.IncludedFile=void 0;var ET=ye(),Xd=class extends ET.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};Zo.IncludedFile=Xd;});var Xv=E(Qo=>{Object.defineProperty(Qo,"__esModule",{value:true});Qo.InfixOperator=void 0;var Zd=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Qo.InfixOperator=Zd;});var ef=E(eu=>{Object.defineProperty(eu,"__esModule",{value:true});eu.Knot=void 0;var wT=Gt(),Yv=jr(),Qd=class extends wT.FlowBase{get flowLevel(){return Yv.FlowLevel.Knot}constructor(e,t,r,i){super(e,t,r,i);}get typeName(){return this.isFunction?"Function":"Knot"}ResolveReferences(e){super.ResolveReferences(e);let t=this.story;for(let r in this.subFlowsByName){let i=t.ContentWithNameAtLevel(r,Yv.FlowLevel.Knot,false);if(i){let a=this.subFlowsByName.get(r),s=`Stitch '${a?a.name:"NO STITCH FOUND"}' has the same name as a knot (on ${i.debugMetadata})`;this.Error(s,a);}}}};eu.Knot=Qd;});var Zv=E(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.List=void 0;var DT=Ct(),AT=ut(),PT=ut(),OT=ve(),tf=class extends DT.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new AT.InkList;if(this.itemIdentifierList!=null)for(let s of this.itemIdentifierList){let o=((r=s?.name)===null||r===void 0?void 0:r.split("."))||[],u=null,l="";o.length>1?(u=o[0],l=o[1]):l=o[0];let c=this.story.ResolveListItem(u,l,this);if(c===null)u===null?this.Error(`Could not find list definition that contains item '${s}'`):this.Error(`Could not find list item ${s}`);else {if(c.parent==null){this.Error(`Could not find list definition for item ${s}`);return}u||(u=((i=c.parent.identifier)===null||i===void 0?void 0:i.name)||null);let h=new PT.InkListItem(u,c.name||null);a.has(h.serialized())?this.Warning(`Duplicate of item '${s}' in list.`):a.Add(h,c.seriesValue);}}t.AddContent(new OT.ListValue(a));};}get typeName(){return "List"}};tu.List=tf;});var rf=E(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.ListElementDefinition=void 0;var xT=ye(),TT=nn(),nf=class extends xT.ParsedObject{get fullName(){var e;let t=this.parent;if(t===null)throw new Error("Can't get full name without a parent list.");return `${(e=t.identifier)===null||e===void 0?void 0:e.name}.${this.name}`}get typeName(){return "ListElement"}get name(){var e;return ((e=this.indentifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t,r=null){super(),this.indentifier=e,this.inInitialList=t,this.explicitValue=r,this.seriesValue=0,this.parent=null,this.GenerateRuntimeObject=()=>{throw new Error("Not implemented.")},this.toString=()=>this.fullName,this.parent=this.parent;}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.indentifier,TT.SymbolType.ListItem);}};nu.ListElementDefinition=nf;});var sf=E(ru=>{Object.defineProperty(ru,"__esModule",{value:true});ru.StatementLevel=void 0;var Qv;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(Qv||(ru.StatementLevel=Qv={}));});var of=E(iu=>{Object.defineProperty(iu,"__esModule",{value:true});iu.Stitch=void 0;var NT=Gt(),FT=jr(),af=class extends NT.FlowBase{get flowLevel(){return FT.FlowLevel.Stitch}constructor(e,t,r,i){super(e,t,r,i),this.baseToString=this.toString,this.toString=()=>`${this.parent!==null?this.parent+" > ":""}${this.baseToString()}`;}get typeName(){return "Stitch"}};iu.Stitch=af;});var au=E(su=>{Object.defineProperty(su,"__esModule",{value:true});su.Tag=void 0;var IT=at(),uf=class extends IT.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};su.Tag=uf;});var cf=E(ou=>{Object.defineProperty(ou,"__esModule",{value:true});ou.Choice=void 0;var kT=st(),VT=Le(),RT=at(),lf=class n extends RT.InkObject{constructor(){super(...arguments),this.text="",this.index=0,this.threadAtGeneration=null,this.sourcePath="",this.targetPath=null,this.isInvisibleDefault=false,this.tags=null,this.originalThreadIndex=0;}get pathStringOnChoice(){return this.targetPath===null?(0, VT.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new kT.Path(e);}Clone(){let e=new n;return e.text=this.text,e.sourcePath=this.sourcePath,e.index=this.index,e.targetPath=this.targetPath,e.originalThreadIndex=this.originalThreadIndex,e.isInvisibleDefault=this.isInvisibleDefault,this.threadAtGeneration!==null&&(e.threadAtGeneration=this.threadAtGeneration.Copy()),e}};ou.Choice=lf;});var df=E(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.ListDefinitionsOrigin=void 0;var $T=ut(),jT=ve(),LT=Le(),hf=class{constructor(e){this._lists=new Map,this._allUnambiguousListValueCache=new Map;for(let t of e){this._lists.set(t.name,t);for(let[r,i]of t.items){let a=$T.InkListItem.fromSerializedKey(r),s=new jT.ListValue(a,i);if(!a.itemName)throw new Error("item.itemName is null or undefined.");this._allUnambiguousListValueCache.set(a.itemName,s),this._allUnambiguousListValueCache.set(a.fullName,s);}}}get lists(){let e=[];for(let[,t]of this._lists)e.push(t);return e}TryListGetDefinition(e,t){if(e===null)return {result:t,exists:false};let r=this._lists.get(e);return r?{result:r,exists:true}:{result:t,exists:false}}FindSingleItemListWithName(e){if(e===null)return (0, LT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};uu.ListDefinitionsOrigin=hf;});var Jr=E(du=>{Object.defineProperty(du,"__esModule",{value:true});du.JsonSerialisation=void 0;var lu=Ee(),ct=ve(),e0=Xo(),re=qe(),Gr=Kn(),t0=Mt(),n0=Wa(),ff=Wr(),r0=bn(),pf=Wt(),i0=Un(),s0=au(),qT=st(),a0=cf(),BT=Vd(),WT=df(),cu=ut(),we=ae(),Qn=Le(),hu=class n{static JArrayToRuntimeObjList(e,t=false){let r=e.length;t&&r--;let i=[];for(let a=0;a<r;a++){let s=e[a],o=this.JTokenToRuntimeObject(s);if(o===null)return (0, Qn.throwNullException)("runtimeObj");i.push(o);}return i}static WriteDictionaryRuntimeObjs(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WritePropertyStart(r),this.WriteRuntimeObject(e,i),e.WritePropertyEnd();e.WriteObjectEnd();}static WriteListRuntimeObjs(e,t){e.WriteArrayStart();for(let r of t)this.WriteRuntimeObject(e,r);e.WriteArrayEnd();}static WriteIntDictionary(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WriteIntProperty(r,i);e.WriteObjectEnd();}static WriteRuntimeObject(e,t){let r=(0, we.asOrNull)(t,lu.Container);if(r){this.WriteRuntimeContainer(e,r);return}let i=(0, we.asOrNull)(t,t0.Divert);if(i){let p="->";i.isExternal?p="x()":i.pushesToStack&&(i.stackPushType==Gr.PushPopType.Function?p="f()":i.stackPushType==Gr.PushPopType.Tunnel&&(p="->t->"));let C;i.hasVariableTarget?C=i.variableDivertName:C=i.targetPathString,e.WriteObjectStart(),e.WriteProperty(p,C),i.hasVariableTarget&&e.WriteProperty("var",true),i.isConditional&&e.WriteProperty("c",true),i.externalArgs>0&&e.WriteIntProperty("exArgs",i.externalArgs),e.WriteObjectEnd();return}let a=(0, we.asOrNull)(t,n0.ChoicePoint);if(a){e.WriteObjectStart(),e.WriteProperty("*",a.pathStringOnChoice),e.WriteIntProperty("flg",a.flags),e.WriteObjectEnd();return}let s=(0, we.asOrNull)(t,ct.BoolValue);if(s){e.WriteBool(s.value);return}let o=(0, we.asOrNull)(t,ct.IntValue);if(o){e.WriteInt(o.value);return}let u=(0, we.asOrNull)(t,ct.FloatValue);if(u){e.WriteFloat(u.value);return}let l=(0, we.asOrNull)(t,ct.StringValue);if(l){l.isNewline?e.Write(`
24
- `,false):(e.WriteStringStart(),e.WriteStringInner("^"),e.WriteStringInner(l.value),e.WriteStringEnd());return}let c=(0, we.asOrNull)(t,ct.ListValue);if(c){this.WriteInkList(e,c);return}let h=(0, we.asOrNull)(t,ct.DivertTargetValue);if(h){if(e.WriteObjectStart(),h.value===null)return (0, Qn.throwNullException)("divTargetVal.value");e.WriteProperty("^->",h.value.componentsString),e.WriteObjectEnd();return}let f=(0, we.asOrNull)(t,ct.VariablePointerValue);if(f){e.WriteObjectStart(),e.WriteProperty("^var",f.value),e.WriteIntProperty("ci",f.contextIndex),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,e0.Glue)){e.Write("<>");return}let m=(0, we.asOrNull)(t,re.ControlCommand);if(m){e.Write(n._controlCommandNames[m.commandType]);return}let y=(0, we.asOrNull)(t,pf.NativeFunctionCall);if(y){let p=y.name;p=="^"&&(p="L^"),e.Write(p);return}let _=(0, we.asOrNull)(t,ff.VariableReference);if(_){e.WriteObjectStart();let p=_.pathStringForCount;p!=null?e.WriteProperty("CNT?",p):e.WriteProperty("VAR?",_.name),e.WriteObjectEnd();return}let S=(0, we.asOrNull)(t,r0.VariableAssignment);if(S){e.WriteObjectStart();let p=S.isGlobal?"VAR=":"temp=";e.WriteProperty(p,S.variableName),S.isNewDeclaration||e.WriteProperty("re",true),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,i0.Void)){e.Write("void");return}let g=(0, we.asOrNull)(t,s0.Tag);if(g){e.WriteObjectStart(),e.WriteProperty("#",g.text),e.WriteObjectEnd();return}let v=(0, we.asOrNull)(t,a0.Choice);if(v){this.WriteChoice(e,v);return}throw new Error("Failed to convert runtime object to Json token: "+t)}static JObjectToDictionaryRuntimeObjs(e){let t=new Map;for(let r in e)if(e.hasOwnProperty(r)){let i=this.JTokenToRuntimeObject(e[r]);if(i===null)return (0, Qn.throwNullException)("inkObject");t.set(r,i);}return t}static JObjectToIntDictionary(e){let t=new Map;for(let r in e)e.hasOwnProperty(r)&&t.set(r,parseInt(e[r]));return t}static JTokenToRuntimeObject(e){if(typeof e=="number"&&!isNaN(e)||typeof e=="boolean")return ct.Value.Create(e);if(typeof e=="string"){let t=e.toString(),r=/^([0-9]+.[0-9]+f)$/.exec(t);if(r)return new ct.FloatValue(parseFloat(r[0]));let i=t[0];if(i=="^")return new ct.StringValue(t.substring(1));if(i==`
21
+ `.repeat(this.lineIndex-e):null};}PreProcessInputString(e){return e}};eo.CommentEliminator=nd;});var no=E(to=>{Object.defineProperty(to,"__esModule",{value:true});to.Conditional=void 0;var _O=Ee(),Ev=qe(),SO=ye(),rd=class extends SO.ParsedObject{constructor(e,t){super(),this.initialCondition=e,this.branches=t,this._reJoinTarget=null,this.GenerateRuntimeObject=()=>{let r=new _O.Container;this.initialCondition&&r.AddContent(this.initialCondition.runtimeObject);for(let i of this.branches){let a=i.runtimeObject;r.AddContent(a);}return this.initialCondition!==null&&this.branches[0].ownExpression!==null&&!this.branches[this.branches.length-1].isElse&&r.AddContent(Ev.ControlCommand.PopEvaluatedValue()),this._reJoinTarget=Ev.ControlCommand.NoOp(),r.AddContent(this._reJoinTarget),r},this.initialCondition&&this.AddContent(this.initialCondition),this.branches!==null&&this.AddContent(this.branches);}get typeName(){return "Conditional"}ResolveReferences(e){let t=this._reJoinTarget.path;for(let r of this.branches){if(!r.returnDivert)throw new Error;r.returnDivert.targetPath=t;}super.ResolveReferences(e);}};to.Conditional=rd;});var Sn=E(ro=>{Object.defineProperty(ro,"__esModule",{value:true});ro.Text=void 0;var EO=ye(),wO=ve(),id=class extends EO.ParsedObject{constructor(e){super(),this.text=e,this.GenerateRuntimeObject=()=>new wO.StringValue(this.text),this.toString=()=>this.text;}get typeName(){return "Text"}};ro.Text=id;});var so=E(io=>{Object.defineProperty(io,"__esModule",{value:true});io.ConstantDeclaration=void 0;var DO=ye(),AO=nn(),sd=class extends DO.ParsedObject{get constantName(){var e;return (e=this.constantIdentifier)===null||e===void 0?void 0:e.name}get expression(){if(!this._expression)throw new Error;return this._expression}constructor(e,t){super(),this._expression=null,this.GenerateRuntimeObject=()=>null,this.constantIdentifier=e,t&&(this._expression=this.AddContent(t));}get typeName(){return "CONST"}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.constantIdentifier,AO.SymbolType.Var);}};io.ConstantDeclaration=sd;});var jr=E(ao=>{Object.defineProperty(ao,"__esModule",{value:true});ao.FlowLevel=void 0;var wv;(function(n){n[n.Story=0]="Story",n[n.Knot=1]="Knot",n[n.Stitch=2]="Stitch",n[n.WeavePoint=3]="WeavePoint";})(wv||(ao.FlowLevel=wv={}));});var es=E(oo=>{Object.defineProperty(oo,"__esModule",{value:true});oo.Gather=void 0;var PO=Ee(),OO=ye(),xO=nn(),ad=class extends OO.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}get runtimeContainer(){return this.runtimeObject}constructor(e,t){super(),this.indentationDepth=t,this.GenerateRuntimeObject=()=>{let r=new PO.Container;if(r.name=this.name,this.story.countAllVisits&&(r.visitsShouldBeCounted=true),r.countingAtStartOnly=true,this.content)for(let i of this.content)r.AddContent(i.runtimeObject);return r},this.toString=()=>{var r,i;return `- ${!((r=this.identifier)===null||r===void 0)&&r.name?"("+((i=this.identifier)===null||i===void 0?void 0:i.name)+")":"gather"}`},e&&(this.identifier=e);}get typeName(){return "Gather"}ResolveReferences(e){super.ResolveReferences(e),this.identifier&&(this.identifier.name||"").length>0&&e.CheckForNamingCollisions(this,this.identifier,xO.SymbolType.SubFlowAndWeave);}};oo.Gather=ad;});var Yn=E(lo=>{Object.defineProperty(lo,"__esModule",{value:true});lo.Path=void 0;var uo=ae(),Dv=Gt(),Lr=jr(),TO=Zn(),od=class{get baseTargetLevel(){return this.baseLevelIsAmbiguous?Lr.FlowLevel.Story:this._baseTargetLevel}get baseLevelIsAmbiguous(){return !this._baseTargetLevel}get firstComponent(){return this.components==null||!this.components.length?null:this.components[0].name}get numberOfComponents(){return this.components?this.components.length:0}get dotSeparatedComponents(){return this._dotSeparatedComponents==null&&(this._dotSeparatedComponents=(this.components?this.components:[]).map(e=>e.name).filter(uo.filterUndef).join(".")),this._dotSeparatedComponents}constructor(e,t){this._dotSeparatedComponents=null,this.toString=()=>this.components===null||this.components.length===0?this.baseTargetLevel===Lr.FlowLevel.WeavePoint?"-> <next gather point>":"<invalid Path>":`-> ${this.dotSeparatedComponents}`,this.ResolveFromContext=r=>{if(this.components==null||this.components.length==0)return null;let i=this.ResolveBaseTarget(r);return i===null?null:this.components.length>1?this.ResolveTailComponents(i):i},this.ResolveBaseTarget=r=>{let i=this.firstComponent,a=r;for(;a;){let s=a===r,o=this.GetChildFromContext(a,i,null,s);if(o)return o;a=a.parent;}return null},this.ResolveTailComponents=r=>{let i=r;if(!this.components)return null;for(let a=1;a<this.components.length;++a){let s=this.components[a].name,o,u=(0, uo.asOrNull)(i,Dv.FlowBase);if(u!==null?o=u.flowLevel+1:o=Lr.FlowLevel.WeavePoint,i=this.GetChildFromContext(i,s,o),i===null)break}return i},this.GetChildFromContext=(r,i,a,s=false)=>{let o=a===null,u=(0, uo.asOrNull)(r,TO.Weave);if(i&&u!==null&&(o||a===Lr.FlowLevel.WeavePoint))return u.WeavePointNamed(i);let l=(0, uo.asOrNull)(r,Dv.FlowBase);if(i&&l!==null){let c=s||l.flowLevel===Lr.FlowLevel.Knot;return l.ContentWithNameAtLevel(i,a,c)}return null},Object.values(Lr.FlowLevel).includes(e)?(this._baseTargetLevel=e,this.components=t||[]):Array.isArray(e)?(this._baseTargetLevel=null,this.components=e||[]):(this._baseTargetLevel=null,this.components=[e]);}get typeName(){return "Path"}};lo.Path=od;});var cd=E(co=>{Object.defineProperty(co,"__esModule",{value:true});co.ReturnType=void 0;var NO=ye(),FO=Ee(),ud=qe(),IO=Un(),ld=class extends NO.ParsedObject{constructor(e=null){super(),this.returnedExpression=null,this.GenerateRuntimeObject=()=>{let t=new FO.Container;return this.returnedExpression?t.AddContent(this.returnedExpression.runtimeObject):(t.AddContent(ud.ControlCommand.EvalStart()),t.AddContent(new IO.Void),t.AddContent(ud.ControlCommand.EvalEnd())),t.AddContent(ud.ControlCommand.PopFunction()),t},e&&(this.returnedExpression=this.AddContent(e));}get typeName(){return "ReturnType"}};co.ReturnType=ld;});var ts=E(ho=>{Object.defineProperty(ho,"__esModule",{value:true});ho.ClosestFlowBase=void 0;function kO(n){let e=n.parent;for(;e;){if(e.hasOwnProperty("iamFlowbase")&&e.iamFlowbase())return e;e=e.parent;}return null}ho.ClosestFlowBase=kO;});var po=E(fo=>{Object.defineProperty(fo,"__esModule",{value:true});fo.Identifier=void 0;var hd=class n{constructor(e){this.debugMetadata=null,this.toString=()=>this.name||"undefined identifer",this.name=e;}get typeName(){return "Identifier"}static Done(){return new n("DONE")}};fo.Identifier=hd;});var Gt=E(mo=>{Object.defineProperty(mo,"__esModule",{value:true});mo.FlowBase=void 0;var VO=$r(),dd=Br(),RO=qr(),Jt=jr(),$O=es(),jO=ye(),LO=Yn(),qO=cd(),BO=Ee(),WO=Mt(),MO=bn(),fd=nn(),GO=Zn(),JO=ts(),zO=po(),Av=ae(),pd=class n extends jO.ParsedObject{get hasParameters(){return this.args!==null&&this.args.length>0}get subFlowsByName(){return this._subFlowsByName}get typeName(){return this.isFunction?"Function":String(this.flowLevel)}get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t=null,r=null,i=false,a=false){super(),this.isFunction=i,this._rootWeave=null,this._subFlowsByName=new Map,this._startingSubFlowDivert=null,this._startingSubFlowRuntime=null,this._firstChildFlow=null,this.variableDeclarations=new Map,this.identifier=null,this.args=null,this.iamFlowbase=()=>true,this.SplitWeaveAndSubFlowContent=(s,o)=>{var u,l;let c=[],h=[];this._subFlowsByName=new Map;for(let f of s){let g=(0, Av.asOrNull)(f,n);g?(this._firstChildFlow===null&&(this._firstChildFlow=g),h.push(f),!((u=g.identifier)===null||u===void 0)&&u.name&&this._subFlowsByName.set((l=g.identifier)===null||l===void 0?void 0:l.name,g)):c.push(f);}o&&c.push(new $O.Gather(null,1),new dd.Divert(new LO.Path(zO.Identifier.Done())));let p=[];return c.length>0&&(this._rootWeave=new GO.Weave(c,0),p.push(this._rootWeave)),h.length>0&&p.push(...h),p},this.ResolveVariableWithName=(s,o)=>{var u;let l={},c=o===null?this:(0, JO.ClosestFlowBase)(o);if(c){if(c.args!==null){for(let h of c.args)if(((u=h.identifier)===null||u===void 0?void 0:u.name)===s)return l.found=true,l.isArgument=true,l.ownerFlow=c,l}if(c!==this.story&&c.variableDeclarations.has(s))return l.found=true,l.ownerFlow=c,l.isTemporary=true,l}return this.story.variableDeclarations.has(s)?(l.found=true,l.ownerFlow=this.story,l.isGlobal=true,l):(l.found=false,l)},this.AddNewVariableDeclaration=s=>{let o=s.variableName;if(this.variableDeclarations.has(o)){let u=this.variableDeclarations.get(o),l="";u.debugMetadata&&(l=` (${u.debugMetadata})`),this.Error(`found declaration variable '${o}' that was already declared${l}`,s,false);return}this.variableDeclarations.set(s.variableName,s);},this.ResolveWeavePointNaming=()=>{this._rootWeave&&this._rootWeave.ResolveWeavePointNaming();for(let[,s]of this._subFlowsByName)s.hasOwnProperty("ResolveWeavePointNaming")&&s.ResolveWeavePointNaming();},this.GenerateRuntimeObject=()=>{var s;let o=null;this.isFunction?this.CheckForDisallowedFunctionFlowControl():(this.flowLevel===Jt.FlowLevel.Knot||this.flowLevel===Jt.FlowLevel.Stitch)&&(o=this.Find(qO.ReturnType)(),o!==null&&this.Error(`Return statements can only be used in knots that are declared as functions: == function ${this.identifier} ==`,o));let u=new BO.Container;u.name=(s=this.identifier)===null||s===void 0?void 0:s.name,this.story.countAllVisits&&(u.visitsShouldBeCounted=true),this.GenerateArgumentVariableAssignments(u);let l=0;for(;this.content!==null&&l<this.content.length;){let c=this.content[l];if(c instanceof n){let h=c,p=h.runtimeObject;l===0&&!h.hasParameters&&this.flowLevel===Jt.FlowLevel.Knot&&(this._startingSubFlowDivert=new WO.Divert,u.AddContent(this._startingSubFlowDivert),this._startingSubFlowRuntime=p);let f=p,g=u.namedContent.get(f.name)||null;if(g){let y=`${this.GetType()} already contains flow named '${f.name}' (at ${g.debugMetadata})`;this.Error(y,h);}u.AddToNamedContentOnly(f);}else c&&u.AddContent(c.runtimeObject);l+=1;}return this.flowLevel!==Jt.FlowLevel.Story&&!this.isFunction&&this._rootWeave!==null&&o===null&&this._rootWeave.ValidateTermination(this.WarningInTermination),u},this.GenerateArgumentVariableAssignments=s=>{var o;if(!(this.args===null||this.args.length===0))for(let u=this.args.length-1;u>=0;--u){let l=((o=this.args[u].identifier)===null||o===void 0?void 0:o.name)||null,c=new MO.VariableAssignment(l,true);s.AddContent(c);}},this.ContentWithNameAtLevel=(s,o=null,u=false)=>{var l;if((o===this.flowLevel||o===null)&&s===((l=this.identifier)===null||l===void 0?void 0:l.name))return this;if(o===Jt.FlowLevel.WeavePoint||o===null){let h=null;if(this._rootWeave&&(h=this._rootWeave.WeavePointNamed(s),h))return h;if(o===Jt.FlowLevel.WeavePoint)return u?this.DeepSearchForAnyLevelContent(s):null}if(o!==null&&o<this.flowLevel)return null;let c=this._subFlowsByName.get(s)||null;return c&&(o===null||o===c.flowLevel)?c:u?this.DeepSearchForAnyLevelContent(s):null},this.DeepSearchForAnyLevelContent=s=>{let o=this.ContentWithNameAtLevel(s,Jt.FlowLevel.WeavePoint,false);if(o)return o;for(let[,u]of this._subFlowsByName){let l=u.ContentWithNameAtLevel(s,null,true);if(l)return l}return null},this.CheckForDisallowedFunctionFlowControl=()=>{this.flowLevel!==Jt.FlowLevel.Knot&&this.Error("Functions cannot be stitches - i.e. they should be defined as '== function myFunc ==' rather than internal to another knot.");for(let[u,l]of this._subFlowsByName)this.Error(`Functions may not contain stitches, but saw '${u}' within the function '${this.identifier}'`,l);if(!this._rootWeave)throw new Error;let s=this._rootWeave.FindAll(dd.Divert)();for(let u of s)!u.isFunctionCall&&!(u.parent instanceof RO.DivertTarget)&&this.Error(`Functions may not contain diverts, but saw '${u}'`,u);let o=this._rootWeave.FindAll(VO.Choice)();for(let u of o)this.Error(`Functions may not contain choices, but saw '${u}'`,u);},this.WarningInTermination=s=>{let o="Apparent loose end exists where the flow runs out. Do you need a '-> DONE' statement, choice or divert?";s.parent===this._rootWeave&&this._firstChildFlow&&(o=`${o} Note that if you intend to enter '${this._firstChildFlow.identifier}' next, you need to divert to it explicitly.`);let u=(0, Av.asOrNull)(s,dd.Divert);u&&u.isTunnel&&(o+=` When final tunnel to '${u.target} ->' returns it won't have anywhere to go.`),this.Warning(o,s);},this.toString=()=>`${this.typeName} '${this.identifier}'`,this.identifier=e,this.args=r,t===null&&(t=[]),this.PreProcessTopLevelObjects(t),t=this.SplitWeaveAndSubFlowContent(t,this.GetType()=="Story"&&!a),this.AddContent(t);}PreProcessTopLevelObjects(e){}ResolveReferences(e){var t,r;if(this._startingSubFlowDivert){if(!this._startingSubFlowRuntime)throw new Error;this._startingSubFlowDivert.targetPath=this._startingSubFlowRuntime.path;}if(super.ResolveReferences(e),this.args!==null){for(let i of this.args)e.CheckForNamingCollisions(this,i.identifier,fd.SymbolType.Arg,"argument");for(let i=0;i<this.args.length;i+=1)for(let a=i+1;a<this.args.length;a+=1)((t=this.args[i].identifier)===null||t===void 0?void 0:t.name)==((r=this.args[a].identifier)===null||r===void 0?void 0:r.name)&&this.Error(`Multiple arguments with the same name: '${this.args[i].identifier}'`);}if(this.flowLevel!==Jt.FlowLevel.Story){let i=this.flowLevel===Jt.FlowLevel.Knot?fd.SymbolType.Knot:fd.SymbolType.SubFlowAndWeave;e.CheckForNamingCollisions(this,this.identifier,i);}}};mo.FlowBase=pd;});var yo=E(go=>{Object.defineProperty(go,"__esModule",{value:true});go.ContentList=void 0;var HO=Ee(),UO=ye(),KO=Sn(),XO=ae(),md=class extends UO.ParsedObject{get runtimeContainer(){return this.runtimeObject}constructor(e,...t){super(),this.dontFlatten=false,this.TrimTrailingWhitespace=()=>{for(let r=this.content.length-1;r>=0;--r){let i=(0, XO.asOrNull)(this.content[r],KO.Text);if(i===null)break;if(i.text=i.text.replace(new RegExp(/[ \t]/g),""),i.text.length===0)this.content.splice(r,1);else break}},this.GenerateRuntimeObject=()=>{let r=new HO.Container;if(this.content!==null)for(let i of this.content){let a=i.runtimeObject;a&&r.AddContent(a);}return this.dontFlatten&&this.story.DontFlattenContainer(r),r},this.toString=()=>`ContentList(${this.content.join(", ")})`,e&&this.AddContent(e),t&&this.AddContent(t);}get typeName(){return "ContentList"}};go.ContentList=md;});var Wr=E(vo=>{Object.defineProperty(vo,"__esModule",{value:true});vo.VariableReference=void 0;var YO=at(),ZO=st(),gd=class extends YO.InkObject{get containerForCount(){return this.pathForCount===null?null:this.ResolvePath(this.pathForCount).container}get pathStringForCount(){return this.pathForCount===null?null:this.CompactPathString(this.pathForCount)}set pathStringForCount(e){e===null?this.pathForCount=null:this.pathForCount=new ZO.Path(e);}constructor(e=null){super(),this.pathForCount=null,this.name=e;}toString(){return this.name!=null?"var("+this.name+")":"read_count("+this.pathStringForCount+")"}};vo.VariableReference=gd;});var Mr=E(Co=>{Object.defineProperty(Co,"__esModule",{value:true});Co.VariableReference=void 0;var QO=yo(),ex=Ct(),Pv=Gt(),tx=Yn(),nx=Wr(),rx=Zn(),ix=po(),Ov=ae(),yd=class extends ex.Expression{get name(){return this.path.join(".")}get path(){return this.pathIdentifiers.map(e=>e.name).filter(Ov.filterUndef)}get identifier(){if(!this.pathIdentifiers||this.pathIdentifiers.length==0)return null;let e=this.path.join(".");return new ix.Identifier(e)}get runtimeVarRef(){return this._runtimeVarRef}constructor(e){super(),this.pathIdentifiers=e,this._runtimeVarRef=null,this.isConstantReference=false,this.isListItemReference=false,this.GenerateIntoContainer=t=>{let r=this.story.constants.get(this.name);if(r){r.GenerateConstantIntoContainer(t),this.isConstantReference=true;return}if(this._runtimeVarRef=new nx.VariableReference(this.name),this.path.length===1||this.path.length===2){let i="",a="";this.path.length===1?i=this.path[0]:(a=this.path[0],i=this.path[1]),this.story.ResolveListItem(a,i,this)&&(this.isListItemReference=true);}t.AddContent(this._runtimeVarRef);},this.toString=()=>`{${this.path.join(".")}}`;}get typeName(){return "ref"}ResolveReferences(e){if(super.ResolveReferences(e),this.isConstantReference||this.isListItemReference)return;let t=new tx.Path(this.pathIdentifiers),r=t.ResolveFromContext(this);if(r){if(!r.containerForCounting)throw new Error;if(r.containerForCounting.visitsShouldBeCounted=true,this._runtimeVarRef===null)return;this._runtimeVarRef.pathForCount=r.runtimePath,this._runtimeVarRef.name=null;let i=(0, Ov.asOrNull)(r,Pv.FlowBase);i&&i.isFunction&&(this.parent instanceof rx.Weave||this.parent instanceof QO.ContentList||this.parent instanceof Pv.FlowBase)&&this.Warning(`'${i.identifier}' being used as read count rather than being called as function. Perhaps you intended to write ${i.identifier}()`);return}if(this.path.length>1){let i=`Could not find target for read count: ${t}`;this.path.length<=2&&(i+=`, or couldn't find list item with the name ${this.path.join(",")}`),this.Error(i);return}e.ResolveVariableWithName(this.name,this).found||this.Error(`Unresolved variable: ${this.name}`,this);}};Co.VariableReference=yd;});var ns=E(Eo=>{Object.defineProperty(Eo,"__esModule",{value:true});Eo.FunctionCall=void 0;var zt=qe(),sx=Br(),ax=qr(),ox=Ct(),ux=ut(),lx=ve(),_o=Wt(),xv=Ra(),cx=Yn(),hx=ve(),dx=Mr(),bo=ae(),So=class n extends ox.Expression{get proxyDivert(){return this._proxyDivert}get name(){return this._proxyDivert.target.firstComponent||""}get args(){return this._proxyDivert.args}get runtimeDivert(){return this._proxyDivert.runtimeDivert}get isChoiceCount(){return this.name==="CHOICE_COUNT"}get isTurns(){return this.name==="TURNS"}get isTurnsSince(){return this.name==="TURNS_SINCE"}get isRandom(){return this.name==="RANDOM"}get isSeedRandom(){return this.name==="SEED_RANDOM"}get isListRange(){return this.name==="LIST_RANGE"}get isListRandom(){return this.name==="LIST_RANDOM"}get isReadCount(){return this.name==="READ_COUNT"}constructor(e,t){super(),this._divertTargetToCount=null,this._variableReferenceToCount=null,this.shouldPopReturnedValue=false,this.GenerateIntoContainer=r=>{let i=this.story.ResolveList(this.name),a=false;if(this.isChoiceCount)this.args.length>0&&this.Error("The CHOICE_COUNT() function shouldn't take any arguments"),r.AddContent(zt.ControlCommand.ChoiceCount());else if(this.isTurns)this.args.length>0&&this.Error("The TURNS() function shouldn't take any arguments"),r.AddContent(zt.ControlCommand.Turns());else if(this.isTurnsSince||this.isReadCount){let s=(0, bo.asOrNull)(this.args[0],ax.DivertTarget),o=(0, bo.asOrNull)(this.args[0],dx.VariableReference);if(this.args.length!==1||s===null&&o===null){this.Error(`The ${this.name}() function should take one argument: a divert target to the target knot, stitch, gather or choice you want to check. e.g. TURNS_SINCE(-> myKnot)`);return}s?(this._divertTargetToCount=s,this.AddContent(this._divertTargetToCount),this._divertTargetToCount.GenerateIntoContainer(r)):o&&(this._variableReferenceToCount=o,this.AddContent(this._variableReferenceToCount),this._variableReferenceToCount.GenerateIntoContainer(r)),this.isTurnsSince?r.AddContent(zt.ControlCommand.TurnsSince()):r.AddContent(zt.ControlCommand.ReadCount());}else if(this.isRandom){this.args.length!==2&&this.Error("RANDOM should take 2 parameters: a minimum and a maximum integer");for(let s=0;s<this.args.length;s+=1){let o=(0, bo.asOrNull)(this.args[s],xv.NumberExpression);if(o&&!o.isInt()){let u=s===0?"minimum":"maximum";this.Error(`RANDOM's ${u} parameter should be an integer`);}this.args[s].GenerateIntoContainer(r);}r.AddContent(zt.ControlCommand.Random());}else if(this.isSeedRandom){this.args.length!==1&&this.Error("SEED_RANDOM should take 1 parameter - an integer seed");let s=(0, bo.asOrNull)(this.args[0],xv.NumberExpression);s&&!s.isInt()&&this.Error("SEED_RANDOM's parameter should be an integer seed"),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.SeedRandom());}else if(this.isListRange){this.args.length!==3&&this.Error("LIST_RANGE should take 3 parameters - a list, a min and a max");for(let s=0;s<this.args.length;s+=1)this.args[s].GenerateIntoContainer(r);r.AddContent(zt.ControlCommand.ListRange());}else if(this.isListRandom)this.args.length!==1&&this.Error("LIST_RANDOM should take 1 parameter - a list"),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.ListRandom());else if(_o.NativeFunctionCall.CallExistsWithName(this.name)){let s=_o.NativeFunctionCall.CallWithName(this.name);if(s.numberOfParameters!==this.args.length){let o=`${n.name} should take ${s.numberOfParameters} parameter`;s.numberOfParameters>1&&(o+="s"),this.Error(o);}for(let o=0;o<this.args.length;o+=1)this.args[o].GenerateIntoContainer(r);r.AddContent(_o.NativeFunctionCall.CallWithName(this.name));}else if(i!==null)if(this.args.length>1&&this.Error("Can currently only construct a list from one integer (or an empty list from a given list definition)"),this.args.length===1)r.AddContent(new hx.StringValue(this.name)),this.args[0].GenerateIntoContainer(r),r.AddContent(zt.ControlCommand.ListFromInt());else {let s=new ux.InkList;s.SetInitialOriginName(this.name),r.AddContent(new lx.ListValue(s));}else r.AddContent(this._proxyDivert.runtimeObject),a=true;a||this.content.splice(this.content.indexOf(this._proxyDivert),1),this.shouldPopReturnedValue&&r.AddContent(zt.ControlCommand.PopEvaluatedValue());},this.toString=()=>{let r=this.args.join(", ");return `${this.name}(${r})`},this._proxyDivert=new sx.Divert(new cx.Path(e),t),this._proxyDivert.isFunctionCall=true,this.AddContent(this._proxyDivert);}get typeName(){return "FunctionCall"}ResolveReferences(e){if(super.ResolveReferences(e),!this.content.includes(this._proxyDivert)&&this.args!==null)for(let t of this.args)t.ResolveReferences(e);if(this._divertTargetToCount){let t=this._divertTargetToCount.divert,r=t.runtimeDivert.variableDivertName!=null;if(r){this.Error(`When getting the TURNS_SINCE() of a variable target, remove the '->' - i.e. it should just be TURNS_SINCE(${t.runtimeDivert.variableDivertName})`);return}let i=t.targetContent;if(i===null)r||this.Error(`Failed to find target for TURNS_SINCE: '${t.target}'`);else {if(!i.containerForCounting)throw new Error;i.containerForCounting.turnIndexShouldBeCounted=true;}}else if(this._variableReferenceToCount){let t=this._variableReferenceToCount.runtimeVarRef;if(!t)throw new Error;t.pathForCount!==null&&this.Error(`Should be '${n.name}'(-> '${this._variableReferenceToCount.name}). Usage without the '->' only makes sense for variable targets.`);}}};Eo.FunctionCall=So;So.IsBuiltIn=n=>_o.NativeFunctionCall.CallExistsWithName(n)?true:n==="CHOICE_COUNT"||n==="TURNS_SINCE"||n==="TURNS"||n==="RANDOM"||n==="SEED_RANDOM"||n==="LIST_VALUE"||n==="LIST_RANDOM"||n==="READ_COUNT";});var Cd=E(wo=>{Object.defineProperty(wo,"__esModule",{value:true});wo.MultipleConditionExpression=void 0;var fx=Ct(),px=Wt(),vd=class extends fx.Expression{get subExpressions(){return this.content}constructor(e){super(),this.GenerateIntoContainer=t=>{let r=true;for(let i of this.subExpressions)i.GenerateIntoContainer(t),r||t.AddContent(px.NativeFunctionCall.CallWithName("&&")),r=false;},this.AddContent(e);}get typeName(){return "MultipleConditionExpression"}};wo.MultipleConditionExpression=vd;});var qr=E(Do=>{Object.defineProperty(Do,"__esModule",{value:true});Do.DivertTarget=void 0;var mx=Mh(),gx=$r(),yx=no(),vx=Ed(),Cx=ve(),bd=Ct(),bx=Gt(),Tv=ns(),_x=Cd(),Nv=Mr(),_d=ae(),Sd=class n extends bd.Expression{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}get runtimeDivertTargetValue(){if(!this._runtimeDivertTargetValue)throw new Error;return this._runtimeDivertTargetValue}constructor(e){super(),this._runtimeDivert=null,this._runtimeDivertTargetValue=null,this.GenerateIntoContainer=t=>{this.divert.GenerateRuntimeObject(),this._runtimeDivert=this.divert.runtimeDivert,this._runtimeDivertTargetValue=new Cx.DivertTargetValue,t.AddContent(this.runtimeDivertTargetValue);},this.Equals=t=>{let r=(0, _d.asOrNull)(t,n);if(!r||!this.divert.target||!r.divert.target)return false;let i=this.divert.target.dotSeparatedComponents,a=r.divert.target.dotSeparatedComponents;return i===a},this.divert=this.AddContent(e);}get typeName(){return "DivertTarget"}ResolveReferences(e){if(super.ResolveReferences(e),this.divert.isDone||this.divert.isEnd){this.Error("Can't use -> DONE or -> END as variable divert targets",this);return}let t=this;for(;t&&t instanceof bd.Expression;){let i=false,a=false,s=t.parent;if(s instanceof mx.BinaryExpression){let o=s;o.opName!=="=="&&o.opName!=="!="?i=true:(o.leftExpression instanceof n||o.leftExpression instanceof Nv.VariableReference)&&(o.rightExpression instanceof n||o.rightExpression instanceof Nv.VariableReference)||(i=true),a=true;}else if(s instanceof Tv.FunctionCall){let o=s;!o.isTurnsSince&&!o.isReadCount&&(i=true),a=true;}else (s instanceof bd.Expression||s instanceof _x.MultipleConditionExpression||s instanceof gx.Choice&&s.condition===t||s instanceof yx.Conditional||s instanceof vx.ConditionalSingleBranch)&&(i=true,a=true);if(i&&this.Error(`Can't use a divert target like that. Did you intend to call '${this.divert.target}' as a function: likeThis(), or check the read count: likeThis, with no arrows?`,this),a)break;t=s;}if(this.runtimeDivert.hasVariableTarget){if(!this.divert.target)throw new Error;this.Error(`Since '${this.divert.target.dotSeparatedComponents}' is a variable, it shouldn't be preceded by '->' here.`);}this.runtimeDivert.targetPath&&(this.runtimeDivertTargetValue.targetPath=this.runtimeDivert.targetPath);let r=this.divert.targetContent;if(r!==null){let i=r.containerForCounting;if(i!==null){let s=(0, _d.asOrNull)(this.parent,Tv.FunctionCall);s&&s.isTurnsSince||(i.visitsShouldBeCounted=true),i.turnIndexShouldBeCounted=true;}let a=(0, _d.asOrNull)(r,bx.FlowBase);if(a!=null&&a.args!==null)for(let s of a.args)s.isByReference&&this.Error(`Can't store a divert target to a knot or function that has by-reference arguments ('${a.identifier}' has 'ref ${s.identifier}').`);}}};Do.DivertTarget=Sd;});var Br=E(Ao=>{Object.defineProperty(Ao,"__esModule",{value:true});Ao.Divert=void 0;var Sx=Ee(),rs=qe(),Ex=Mt(),wd=qr(),Dd=Gt(),wx=ns(),Dx=ye(),Fv=Yn(),Ax=st(),Iv=Kn(),Px=ve(),kv=Mr(),Ox=ts(),is=ae(),Ad=class extends Dx.ParsedObject{get runtimeDivert(){if(!this._runtimeDivert)throw new Error;return this._runtimeDivert}set runtimeDivert(e){this._runtimeDivert=e;}get isEnd(){return !!(this.target&&this.target.dotSeparatedComponents==="END")}get isDone(){return !!(this.target&&this.target.dotSeparatedComponents==="DONE")}constructor(e,t){super(),this.args=[],this.target=null,this.targetContent=null,this._runtimeDivert=null,this.isFunctionCall=false,this.isEmpty=false,this.isTunnel=false,this.isThread=false,this.GenerateRuntimeObject=()=>{if(this.isEnd)return rs.ControlCommand.End();if(this.isDone)return rs.ControlCommand.Done();this.runtimeDivert=new Ex.Divert,this.ResolveTargetContent(),this.CheckArgumentValidity();let r=this.args!==null&&this.args.length>0;if(r||this.isFunctionCall||this.isTunnel||this.isThread){let i=new Sx.Container;if(r){this.isFunctionCall||i.AddContent(rs.ControlCommand.EvalStart());let a=null;this.targetContent&&(a=this.targetContent.args);for(let s=0;s<this.args.length;++s){let o=this.args[s],u=null;if(a&&s<a.length&&(u=a[s]),u&&u.isByReference){let l=(0, is.asOrNull)(o,kv.VariableReference);if(!l){this.Error(`Expected variable name to pass by reference to 'ref ${u.identifier}' but saw ${o}`);break}let c=new Fv.Path(l.pathIdentifiers);if(c.ResolveFromContext(this)){this.Error(`can't pass a read count by reference. '${c.dotSeparatedComponents}' is a knot/stitch/label, but '${this.target.dotSeparatedComponents}' requires the name of a VAR to be passed.`);break}let p=new Px.VariablePointerValue(l.name);i.AddContent(p);}else o.GenerateIntoContainer(i);}this.isFunctionCall||i.AddContent(rs.ControlCommand.EvalEnd());}return this.isThread?i.AddContent(rs.ControlCommand.StartThread()):(this.isFunctionCall||this.isTunnel)&&(this.runtimeDivert.pushesToStack=true,this.runtimeDivert.stackPushType=this.isFunctionCall?Iv.PushPopType.Function:Iv.PushPopType.Tunnel),i.AddContent(this.runtimeDivert),i}return this.runtimeDivert},this.PathAsVariableName=()=>this.target?this.target.firstComponent:null,this.ResolveTargetContent=()=>{if(!(this.isEmpty||this.isEnd)&&this.targetContent===null){let r=this.PathAsVariableName();if(r!==null){let i=(0, is.asOrNull)((0, Ox.ClosestFlowBase)(this),Dd.FlowBase);if(i){let a=i.ResolveVariableWithName(r,this);if(a.found){if(a.isArgument&&a.ownerFlow&&a.ownerFlow.args){let s=a.ownerFlow.args.find(o=>{var u;return ((u=o.identifier)===null||u===void 0?void 0:u.name)==r});s&&!s.isDivertTarget&&this.Error(`Since '${s.identifier}' is used as a variable divert target (on ${this.debugMetadata}), it should be marked as: -> ${s.identifier}`,a.ownerFlow);}this.runtimeDivert.variableDivertName=r;return}}}if(!this.target)throw new Error;this.targetContent=this.target.ResolveFromContext(this);}},this.CheckArgumentValidity=()=>{if(this.isEmpty)return;let r=0;if(this.args!==null&&this.args.length>0&&(r=this.args.length),this.targetContent===null)return;let i=(0, is.asOrNull)(this.targetContent,Dd.FlowBase);if(r===0&&(i===null||!i.hasParameters))return;if(i===null&&r>0){this.Error("target needs to be a knot or stitch in order to pass arguments");return}else if(i!==null&&(i.args===null||!i.args&&r>0)){this.Error(`target (${i.name}) doesn't take parameters`);return}else if(this.parent instanceof wd.DivertTarget){r>0&&this.Error("can't store arguments in a divert target variable");return}let a=i.args.length;if(a!==r){let s;r===0?s="but there weren't any passed to it":r<a?s=`but only got ${r}`:s=`but got ${r}`,this.Error(`to '${i.identifier}' requires ${a} arguments, ${s}`);return}for(let s=0;s<a;++s){let o=i.args[s],u=this.args[s];if(o.isDivertTarget){let l=(0, is.asOrNull)(u,kv.VariableReference);if(!(u instanceof wd.DivertTarget)&&l===null)this.Error(`Target '${i.identifier}' expects a divert target for the parameter named -> ${o.identifier} but saw ${u}`,u);else if(l){let c=new Fv.Path(l.pathIdentifiers);c.ResolveFromContext(l)&&this.Error(`Passing read count of '${c.dotSeparatedComponents}' instead of a divert target. You probably meant '${c}'`);}}}if(i===null){this.Error("Can't call as a function or with arguments unless it's a knot or stitch");return}},this.CheckExternalArgumentValidity=r=>{let i=this.target?this.target.firstComponent:null,a=r.externals.get(i);if(!a)throw new Error("external not found");let s=a.argumentNames.length,o=0;this.args&&(o=this.args.length),o!==s&&this.Error(`incorrect number of arguments sent to external function '${i}'. Expected ${s} but got ${o}`);},this.toString=()=>{let r="";if(this.target!==null)r+=this.target.toString();else return "-> <empty divert>";return this.isTunnel&&(r+=" ->"),this.isFunctionCall&&(r+=" ()"),r},e&&(this.target=e),t&&(this.args=t,this.AddContent(t));}get typeName(){return "Divert"}ResolveReferences(e){if(this.isEmpty||this.isEnd||this.isDone)return;if(!this.runtimeDivert)throw new Error;this.targetContent&&(this.runtimeDivert.targetPath=this.targetContent.runtimePath),super.ResolveReferences(e);let t=(0, is.asOrNull)(this.targetContent,Dd.FlowBase);t&&(!t.isFunction&&this.isFunctionCall?super.Error(`${t.identifier} hasn't been marked as a function, but it's being called as one. Do you need to declare the knot as '== function ${t.identifier} =='?`):t.isFunction&&!this.isFunctionCall&&!(this.parent instanceof wd.DivertTarget)&&super.Error(t.identifier+" can't be diverted to. It can only be called as a function since it's been marked as such: '"+t.identifier+"(...)'"));let r=this.targetContent!==null,i=false,a=false;if(this.target){if(this.target.numberOfComponents===1){if(!this.target.firstComponent)throw new Error;if(i=wx.FunctionCall.IsBuiltIn(this.target.firstComponent),a=e.IsExternal(this.target.firstComponent),i||a){this.isFunctionCall||super.Error(`${this.target.firstComponent} must be called as a function: ~ ${this.target.firstComponent}()`),a&&(this.runtimeDivert.isExternal=true,this.args!==null&&(this.runtimeDivert.externalArgs=this.args.length),this.runtimeDivert.pushesToStack=false,this.runtimeDivert.targetPath=new Ax.Path(this.target.firstComponent),this.CheckExternalArgumentValidity(e));return}}}else throw new Error;this.runtimeDivert.variableDivertName==null&&!r&&!i&&!a&&this.Error(`target not found: '${this.target}'`);}Error(e,t=null,r=false){if(t!==this&&t){super.Error(e,t);return}this.isFunctionCall?super.Error(`Function call ${e}`,t,r):super.Error(`Divert ${e}`,t,r);}};Ao.Divert=Ad;});var Vv=E(Po=>{Object.defineProperty(Po,"__esModule",{value:true});Po.GatherPointToResolve=void 0;var Pd=class{constructor(e,t){this.divert=e,this.targetRuntimeObj=t;}};Po.GatherPointToResolve=Pd;});var Rv=E(Oo=>{Object.defineProperty(Oo,"__esModule",{value:true});Oo.SequenceDivertToResolve=void 0;var Od=class{constructor(e,t){this.divert=e,this.targetContent=t;}};Oo.SequenceDivertToResolve=Od;});var xd=E(xo=>{Object.defineProperty(xo,"__esModule",{value:true});xo.SequenceType=void 0;var $v;(function(n){n[n.Stopping=1]="Stopping",n[n.Cycle=2]="Cycle",n[n.Shuffle=4]="Shuffle",n[n.Once=8]="Once";})($v||(xo.SequenceType=$v={}));});var Fd=E(Fo=>{Object.defineProperty(Fo,"__esModule",{value:true});Fo.Sequence=void 0;var jv=Ee(),Nt=qe(),Td=Mt(),ss=ve(),To=Wt(),xx=ye(),Tx=Rv(),No=xd(),Nx=Zn(),Nd=class extends xx.ParsedObject{constructor(e,t){super(),this.sequenceType=t,this._sequenceDivertsToResolve=[],this.GenerateRuntimeObject=()=>{let r=new jv.Container;r.visitsShouldBeCounted=true,r.countingAtStartOnly=true,this._sequenceDivertsToResolve=[],r.AddContent(Nt.ControlCommand.EvalStart()),r.AddContent(Nt.ControlCommand.VisitIndex());let i=(this.sequenceType&No.SequenceType.Once)>0,a=(this.sequenceType&No.SequenceType.Cycle)>0,s=(this.sequenceType&No.SequenceType.Stopping)>0,o=(this.sequenceType&No.SequenceType.Shuffle)>0,u=this.sequenceElements.length;if(i&&(u+=1),s||i?(r.AddContent(new ss.IntValue(u-1)),r.AddContent(To.NativeFunctionCall.CallWithName("MIN"))):a&&(r.AddContent(new ss.IntValue(this.sequenceElements.length)),r.AddContent(To.NativeFunctionCall.CallWithName("%"))),o){let c=Nt.ControlCommand.NoOp();if(i||s){let p=s?this.sequenceElements.length-1:this.sequenceElements.length;r.AddContent(Nt.ControlCommand.Duplicate()),r.AddContent(new ss.IntValue(p)),r.AddContent(To.NativeFunctionCall.CallWithName("=="));let f=new Td.Divert;f.isConditional=true,r.AddContent(f),this.AddDivertToResolve(f,c);}let h=this.sequenceElements.length;s&&(h-=1),r.AddContent(new ss.IntValue(h)),r.AddContent(Nt.ControlCommand.SequenceShuffleIndex()),(i||s)&&r.AddContent(c);}r.AddContent(Nt.ControlCommand.EvalEnd());let l=Nt.ControlCommand.NoOp();for(let c=0;c<u;c+=1){r.AddContent(Nt.ControlCommand.EvalStart()),r.AddContent(Nt.ControlCommand.Duplicate()),r.AddContent(new ss.IntValue(c)),r.AddContent(To.NativeFunctionCall.CallWithName("==")),r.AddContent(Nt.ControlCommand.EvalEnd());let h=new Td.Divert;h.isConditional=true,r.AddContent(h);let p;c<this.sequenceElements.length?p=this.sequenceElements[c].runtimeObject:p=new jv.Container,p.name=`s${c}`,p.InsertContent(Nt.ControlCommand.PopEvaluatedValue(),0);let f=new Td.Divert;p.AddContent(f),r.AddToNamedContentOnly(p),this.AddDivertToResolve(h,p),this.AddDivertToResolve(f,l);}return r.AddContent(l),r},this.AddDivertToResolve=(r,i)=>{this._sequenceDivertsToResolve.push(new Tx.SequenceDivertToResolve(r,i));},this.sequenceType=t,this.sequenceElements=[];for(let r of e){let i=r.content,a=null;i===null||i.length===0?a=r:a=new Nx.Weave(i),this.sequenceElements.push(a),this.AddContent(a);}}get typeName(){return "Sequence"}ResolveReferences(e){super.ResolveReferences(e);for(let t of this._sequenceDivertsToResolve)t.divert.targetPath=t.targetContent.path;}};Fo.Sequence=Nd;});var kd=E(Io=>{Object.defineProperty(Io,"__esModule",{value:true});Io.TunnelOnwards=void 0;var Fx=Ee(),as=qe(),Ix=Mt(),kx=ve(),Vx=ye(),Rx=Un(),$x=ae(),jx=Wr(),Id=class extends Vx.ParsedObject{constructor(){super(...arguments),this._overrideDivertTarget=null,this._divertAfter=null,this.GenerateRuntimeObject=()=>{let e=new Fx.Container;if(e.AddContent(as.ControlCommand.EvalStart()),this.divertAfter){let t=this.divertAfter.GenerateRuntimeObject(),r=t;if(r){let a=this.divertAfter.args;if(a!==null&&a.length>0){let s=-1,o=-1;for(let u=0;u<r.content.length;u+=1){let l=r.content[u];l&&(s==-1&&l.commandType===as.ControlCommand.CommandType.EvalStart?s=u:l.commandType===as.ControlCommand.CommandType.EvalEnd&&(o=u));}for(let u=s+1;u<o;u+=1){let l=r.content[u];l.parent=null,e.AddContent(r.content[u]);}}}let i=(0, $x.asOrNull)(t,Ix.Divert);if(i!=null&&i.hasVariableTarget){let a=new jx.VariableReference(i.variableDivertName);e.AddContent(a);}else this._overrideDivertTarget=new kx.DivertTargetValue,e.AddContent(this._overrideDivertTarget);}else e.AddContent(new Rx.Void);return e.AddContent(as.ControlCommand.EvalEnd()),e.AddContent(as.ControlCommand.PopTunnel()),e},this.toString=()=>` -> ${this._divertAfter}`;}get divertAfter(){return this._divertAfter}set divertAfter(e){this._divertAfter=e,this._divertAfter&&this.AddContent(this._divertAfter);}get typeName(){return "TunnelOnwards"}ResolveReferences(e){super.ResolveReferences(e),this.divertAfter&&this.divertAfter.targetContent&&(this._overrideDivertTarget.targetPath=this.divertAfter.targetContent.runtimePath);}};Io.TunnelOnwards=Id;});var $d=E(ko=>{Object.defineProperty(ko,"__esModule",{value:true});ko.ListDefinition=void 0;var Vd=ut(),Rd=class{constructor(e,t){this._name=e||"",this._items=null,this._itemNameToValues=t||new Map;}get name(){return this._name}get items(){if(this._items==null){this._items=new Map;for(let[e,t]of this._itemNameToValues){let r=new Vd.InkListItem(this.name,e);this._items.set(r.serialized(),t);}}return this._items}ValueForItem(e){if(!e.itemName)return 0;let t=this._itemNameToValues.get(e.itemName);return typeof t<"u"?t:0}ContainsItem(e){return !e.itemName||e.originName!=this.name?false:this._itemNameToValues.has(e.itemName)}ContainsItemWithName(e){return this._itemNameToValues.has(e)}TryGetItemWithValue(e,t){for(let[r,i]of this._itemNameToValues)if(i==e)return t=new Vd.InkListItem(this.name,r),{result:t,exists:true};return t=Vd.InkListItem.Null,{result:t,exists:false}}TryGetValueForItem(e,t){if(!e.itemName)return {result:0,exists:false};let r=this._itemNameToValues.get(e.itemName);return r?{result:r,exists:true}:{result:0,exists:false}}};ko.ListDefinition=Rd;});var Ro=E(Vo=>{Object.defineProperty(Vo,"__esModule",{value:true});Vo.ListDefinition=void 0;var Lx=ut(),qx=ut(),Bx=$d(),Wx=ve(),Mx=ye(),Gx=nn(),jd=class extends Mx.ParsedObject{get typeName(){return "ListDefinition"}get runtimeListDefinition(){var e;let t=new Map;for(let r of this.itemDefinitions)t.has(r.name)?this.Error(`List '${this.identifier}' contains duplicate items called '${r.name}'`):t.set(r.name,r.seriesValue);return new Bx.ListDefinition(((e=this.identifier)===null||e===void 0?void 0:e.name)||"",t)}constructor(e){super(),this.itemDefinitions=e,this.identifier=null,this.variableAssignment=null,this._elementsByName=null,this.ItemNamed=r=>{if(this._elementsByName===null){this._elementsByName=new Map;for(let a of this.itemDefinitions)this._elementsByName.set(a.name,a);}return this._elementsByName.get(r)||null},this.GenerateRuntimeObject=()=>{var r,i;let a=new Lx.InkList;for(let s of this.itemDefinitions)if(s.inInitialList){let o=new qx.InkListItem(((r=this.identifier)===null||r===void 0?void 0:r.name)||null,s.name||null);a.Add(o,s.seriesValue);}return a.SetInitialOriginName(((i=this.identifier)===null||i===void 0?void 0:i.name)||""),new Wx.ListValue(a)};let t=1;for(let r of this.itemDefinitions)r.explicitValue!==null&&(t=r.explicitValue),r.seriesValue=t,t+=1;this.AddContent(e);}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.identifier,Gx.SymbolType.List);}};Vo.ListDefinition=jd;});var qd=E($o=>{Object.defineProperty($o,"__esModule",{value:true});$o.VariableAssignment=void 0;var Jx=Ee(),zx=ts(),Hx=Ro(),Ux=ye(),Lv=nn(),Kx=bn(),Xx=Mr(),Yx=ae(),Ld=class extends Ux.ParsedObject{get variableName(){return this.variableIdentifier.name}get typeName(){return this.isNewTemporaryDeclaration?"temp":this.isGlobalDeclaration?this.listDefinition!==null?"LIST":"VAR":"variable assignment"}get isDeclaration(){return this.isGlobalDeclaration||this.isNewTemporaryDeclaration}constructor({assignedExpression:e,isGlobalDeclaration:t,isTemporaryNewDeclaration:r,listDef:i,variableIdentifier:a}){super(),this._runtimeAssignment=null,this.expression=null,this.listDefinition=null,this.GenerateRuntimeObject=()=>{let s=null;if(this.isGlobalDeclaration?s=this.story:this.isNewTemporaryDeclaration&&(s=(0, zx.ClosestFlowBase)(this)),s&&s.AddNewVariableDeclaration(this),this.isGlobalDeclaration)return null;let o=new Jx.Container;return this.expression?o.AddContent(this.expression.runtimeObject):this.listDefinition&&o.AddContent(this.listDefinition.runtimeObject),this._runtimeAssignment=new Kx.VariableAssignment(this.variableName,this.isNewTemporaryDeclaration),o.AddContent(this._runtimeAssignment),o},this.toString=()=>`${this.isGlobalDeclaration?"VAR":this.isNewTemporaryDeclaration?"~ temp":""} ${this.variableName}`,this.variableIdentifier=a,this.isGlobalDeclaration=!!t,this.isNewTemporaryDeclaration=!!r,i instanceof Hx.ListDefinition?(this.listDefinition=this.AddContent(i),this.listDefinition.variableAssignment=this,this.isGlobalDeclaration=true):e&&(this.expression=this.AddContent(e));}ResolveReferences(e){if(super.ResolveReferences(e),this.isDeclaration&&this.listDefinition===null&&e.CheckForNamingCollisions(this,this.variableIdentifier,this.isGlobalDeclaration?Lv.SymbolType.Var:Lv.SymbolType.Temp),this.isGlobalDeclaration){let t=(0, Yx.asOrNull)(this.expression,Xx.VariableReference);t&&!t.isConstantReference&&!t.isListItemReference&&this.Error("global variable assignments cannot refer to other variables, only literal values, constants and list items");}if(!this.isNewTemporaryDeclaration){let t=e.ResolveVariableWithName(this.variableName,this);t.found||(this.variableName in this.story.constants?this.Error(`Can't re-assign to a constant (do you need to use VAR when declaring '${this.variableName}'?)`,this):this.Error(`Variable could not be found to assign to: '${this.variableName}'`,this)),this._runtimeAssignment&&(this._runtimeAssignment.isGlobal=t.isGlobal);}}};$o.VariableAssignment=Ld;});var Zn=E(qo=>{Object.defineProperty(qo,"__esModule",{value:true});qo.Weave=void 0;var qv=ba(),_t=$r(),jo=no(),Zx=so(),Qx=Ee(),Lo=Br(),eT=Mt(),tT=qr(),nT=Gt(),Ht=es(),rT=Vv(),iT=ye(),Bd=Fd(),sT=Sn(),aT=kd(),oT=qd(),St=ae(),Wd=class n extends iT.ParsedObject{get rootContainer(){return this._rootContainer||(this._rootContainer=this.GenerateRuntimeObject()),this._rootContainer}get namedWeavePoints(){return this._namedWeavePoints}get lastParsedSignificantObject(){if(this.content.length===0)return null;let e=null;for(let r=this.content.length-1;r>=0;--r){e=this.content[r];let i=(0, St.asOrNull)(e,sT.Text);if(!(i&&i.text===`
22
+ `)&&!this.IsGlobalDeclaration(e))break}let t=(0, St.asOrNull)(e,n);return t&&(e=t.lastParsedSignificantObject),e}constructor(e,t=-1){super(),this.previousWeavePoint=null,this.addContentToPreviousWeavePoint=false,this.hasSeenChoiceInSection=false,this.currentContainer=null,this._unnamedGatherCount=0,this._choiceCount=0,this._rootContainer=null,this._namedWeavePoints=new Map,this.looseEnds=[],this.gatherPointsToResolve=[],this.ResolveWeavePointNaming=()=>{var r,i,a;let s=[...this.FindAll(Ht.Gather)(o=>!(o.name===null||o.name===void 0)),...this.FindAll(_t.Choice)(o=>!(o.name===null||o.name===void 0))];this._namedWeavePoints=new Map;for(let o of s){let u=this.namedWeavePoints.get(((r=o.identifier)===null||r===void 0?void 0:r.name)||"");if(u){let l=u instanceof Ht.Gather?"gather":"choice",c=u;this.Error(`A ${l} with the same label name '${o.name}' already exists in this context on line ${c.debugMetadata?c.debugMetadata.startLineNumber:"NO DEBUG METADATA AVAILABLE"}`,o);}!((i=o.identifier)===null||i===void 0)&&i.name&&this.namedWeavePoints.set((a=o.identifier)===null||a===void 0?void 0:a.name,o);}},this.ConstructWeaveHierarchyFromIndentation=()=>{let r=0;for(;r<this.content.length;){let i=this.content[r];if(i instanceof _t.Choice||i instanceof Ht.Gather){let s=i.indentationDepth-1;if(s>this.baseIndentIndex){let o=r;for(;r<this.content.length;){let h=(0, St.asOrNull)(this.content[r],_t.Choice)||(0, St.asOrNull)(this.content[r],Ht.Gather);if(h!==null&&h.indentationDepth-1<=this.baseIndentIndex)break;r+=1;}let u=r-o,l=this.content.slice(o,o+u);this.content.splice(o,u);let c=new n(l,s);this.InsertContent(o,c),r=o;}}r+=1;}},this.DetermineBaseIndentationFromContent=r=>{for(let i of r)if(i instanceof _t.Choice||i instanceof Ht.Gather)return i.indentationDepth-1;return 0},this.GenerateRuntimeObject=()=>{this._rootContainer=new Qx.Container,this.currentContainer=this._rootContainer,this.looseEnds=[],this.gatherPointsToResolve=[];for(let r of this.content)if(r instanceof _t.Choice||r instanceof Ht.Gather)this.AddRuntimeForWeavePoint(r);else if(r instanceof n){let i=r;this.AddRuntimeForNestedWeave(i),this.gatherPointsToResolve.splice(0,0,...i.gatherPointsToResolve);}else this.AddGeneralRuntimeContent(r.runtimeObject);return this.PassLooseEndsToAncestors(),this._rootContainer},this.AddRuntimeForGather=r=>{let i=!this.hasSeenChoiceInSection;this.hasSeenChoiceInSection=false;let a=r.runtimeContainer;if(r.name||(a.name=`g-${this._unnamedGatherCount}`,this._unnamedGatherCount+=1),i){if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(a);}else this.rootContainer.AddToNamedContentOnly(a);for(let s of this.looseEnds){let o=s;if(o instanceof Ht.Gather&&o.indentationDepth==r.indentationDepth)continue;let u=null;if(o instanceof Lo.Divert)u=o.runtimeObject;else {u=new eT.Divert;let l=o;if(!l.runtimeContainer)throw new Error;l.runtimeContainer.AddContent(u);}this.gatherPointsToResolve.push(new rT.GatherPointToResolve(u,a));}this.looseEnds=[],this.currentContainer=a;},this.AddRuntimeForWeavePoint=r=>{if(r instanceof Ht.Gather)this.AddRuntimeForGather(r);else if(r instanceof _t.Choice){if(!this.currentContainer)throw new Error;this.previousWeavePoint instanceof Ht.Gather&&this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1);let i=r;if(this.currentContainer.AddContent(i.runtimeObject),!i.innerContentContainer)throw new Error;i.innerContentContainer.name=`c-${this._choiceCount}`,this.currentContainer.AddToNamedContentOnly(i.innerContentContainer),this._choiceCount+=1,this.hasSeenChoiceInSection=true;}this.addContentToPreviousWeavePoint=false,this.WeavePointHasLooseEnd(r)&&(this.looseEnds.push(r),(0, St.asOrNull)(r,_t.Choice)&&(this.addContentToPreviousWeavePoint=true)),this.previousWeavePoint=r;},this.AddRuntimeForNestedWeave=r=>{this.AddGeneralRuntimeContent(r.rootContainer),this.previousWeavePoint!==null&&(this.looseEnds.splice(this.looseEnds.indexOf(this.previousWeavePoint),1),this.addContentToPreviousWeavePoint=false);},this.AddGeneralRuntimeContent=r=>{if(r!==null)if(this.addContentToPreviousWeavePoint){if(!this.previousWeavePoint||!this.previousWeavePoint.runtimeContainer)throw new Error;this.previousWeavePoint.runtimeContainer.AddContent(r);}else {if(!this.currentContainer)throw new Error;this.currentContainer.AddContent(r);}},this.PassLooseEndsToAncestors=()=>{if(this.looseEnds.length===0)return;let r=null,i=null,a=false;for(let s=this.parent;s!==null;s=s.parent){let o=(0, St.asOrNull)(s,n);o&&(!a&&r===null&&(r=o),a&&i===null&&(i=o)),(s instanceof Bd.Sequence||s instanceof jo.Conditional)&&(a=true);}if(!(r===null&&i===null))for(let s=this.looseEnds.length-1;s>=0;s-=1){let o=this.looseEnds[s],u=false;if(a){if(o instanceof _t.Choice&&r!==null)r.ReceiveLooseEnd(o),u=true;else if(!(o instanceof _t.Choice)){let l=r||i;l!==null&&(l.ReceiveLooseEnd(o),u=true);}}else r?.hasOwnProperty("ReceiveLooseEnd")&&r.ReceiveLooseEnd(o),u=true;u&&this.looseEnds.splice(s,1);}},this.ReceiveLooseEnd=r=>{this.looseEnds.push(r);},this.WeavePointNamed=r=>{if(!this.namedWeavePoints)return null;let i=this.namedWeavePoints.get(r);return i||null},this.IsGlobalDeclaration=r=>{let i=(0, St.asOrNull)(r,oT.VariableAssignment);return !!(i&&i.isGlobalDeclaration&&i.isDeclaration||(0, St.asOrNull)(r,Zx.ConstantDeclaration))},this.ContentThatFollowsWeavePoint=r=>{let i=[],a=r;if(a.content!==null)for(let u of a.content)this.IsGlobalDeclaration(u)||i.push(u);let s=(0, St.asOrNull)(a.parent,n);if(s===null)throw new Error("Expected weave point parent to be weave?");let o=s.content.indexOf(a);for(let u=o+1;u<s.content.length;u+=1){let l=s.content[u];if(!this.IsGlobalDeclaration(l)){if(l instanceof _t.Choice||l instanceof Ht.Gather||l instanceof n)break;i.push(l);}}return i},this.ValidateTermination=r=>{if(this.lastParsedSignificantObject instanceof qv.AuthorWarning)return;if(this.looseEnds!==null&&this.looseEnds.length>0)for(let a of this.looseEnds){let s=this.ContentThatFollowsWeavePoint(a);this.ValidateFlowOfObjectsTerminates(s,a,r);}else {for(let a of this.content)if(a instanceof _t.Choice||a instanceof Lo.Divert)return;this.ValidateFlowOfObjectsTerminates(this.content,this,r);}},this.BadNestedTerminationHandler=r=>{let i=null;for(let s=r.parent;s!==null;s=s.parent)if(s instanceof Bd.Sequence||s instanceof jo.Conditional){i=(0, St.asOrNull)(s,jo.Conditional);break}let a="Choices nested in conditionals or sequences need to explicitly divert afterwards.";i!==null&&i.FindAll(_t.Choice)().length===1&&(a=`Choices with conditions should be written: '* {condition} choice'. Otherwise, ${a.toLowerCase()}`),this.Error(a,r);},this.ValidateFlowOfObjectsTerminates=(r,i,a)=>{let s=false,o=i;for(let u of r){if(u.Find(Lo.Divert)(c=>!c.isThread&&!c.isTunnel&&!c.isFunctionCall&&!(c.parent instanceof tT.DivertTarget))!==null&&(s=true),u.Find(aT.TunnelOnwards)()!=null){s=true;break}o=u;}if(!s){if(o instanceof qv.AuthorWarning)return;a(o);}},this.WeavePointHasLooseEnd=r=>{if(r.content===null)return true;for(let i=r.content.length-1;i>=0;--i){let a=(0, St.asOrNull)(r.content[i],Lo.Divert);if(a&&!(a.isThread||a.isTunnel||a.isFunctionCall))return false}return true},this.CheckForWeavePointNamingCollisions=()=>{if(!this.namedWeavePoints)return;let r=[];for(let i of this.ancestry){let a=(0, St.asOrNull)(i,nT.FlowBase);if(a)r.push(a);else break}for(let[i,a]of this.namedWeavePoints)for(let s of r){let o=s.ContentWithNameAtLevel(i);if(o&&o!==a){let u=`${a.GetType()} '${i}' has the same label name as a ${o.GetType()} (on ${o.debugMetadata})`;this.Error(u,a);}}},t==-1?this.baseIndentIndex=this.DetermineBaseIndentationFromContent(e):this.baseIndentIndex=t,this.AddContent(e),this.ConstructWeaveHierarchyFromIndentation();}get typeName(){return "Weave"}ResolveReferences(e){if(super.ResolveReferences(e),this.looseEnds!==null&&this.looseEnds.length>0){let t=false;for(let r=this.parent;r!==null;r=r.parent)if(r instanceof Bd.Sequence||r instanceof jo.Conditional){t=true;break}t&&this.ValidateTermination(this.BadNestedTerminationHandler);}for(let t of this.gatherPointsToResolve)t.divert.targetPath=t.targetRuntimeObj.path;this.CheckForWeavePointNamingCollisions();}};qo.Weave=Wd;});var Ed=E(Wo=>{Object.defineProperty(Wo,"__esModule",{value:true});Wo.ConditionalSingleBranch=void 0;var Bv=Ee(),Bo=qe(),Wv=Mt(),uT=ye(),lT=Wt(),cT=ve(),hT=Sn(),dT=Zn(),fT=ae(),Md=class extends uT.ParsedObject{get ownExpression(){return this._ownExpression}set ownExpression(e){this._ownExpression=e,this._ownExpression&&this.AddContent(this._ownExpression);}constructor(e){super(),this._contentContainer=null,this._conditionalDivert=null,this._ownExpression=null,this._innerWeave=null,this.isTrueBranch=false,this.matchingEquality=false,this.isElse=false,this.isInline=false,this.returnDivert=null,this.GenerateRuntimeObject=()=>{if(this._innerWeave)for(let i of this._innerWeave.content){let a=(0, fT.asOrNull)(i,hT.Text);a&&a.text.startsWith("else:")&&this.Warning("Saw the text 'else:' which is being treated as content. Did you mean '- else:'?",a);}let t=new Bv.Container,r=this.matchingEquality&&!this.isElse;if(r&&t.AddContent(Bo.ControlCommand.Duplicate()),this._conditionalDivert=new Wv.Divert,this._conditionalDivert.isConditional=!this.isElse,!this.isTrueBranch&&!this.isElse){let i=this.ownExpression!==null;i&&t.AddContent(Bo.ControlCommand.EvalStart()),this.ownExpression&&this.ownExpression.GenerateIntoContainer(t),this.matchingEquality&&t.AddContent(lT.NativeFunctionCall.CallWithName("==")),i&&t.AddContent(Bo.ControlCommand.EvalEnd());}return t.AddContent(this._conditionalDivert),this._contentContainer=this.GenerateRuntimeForContent(),this._contentContainer.name="b",this.isInline||this._contentContainer.InsertContent(new cT.StringValue(`
23
+ `),0),(r||this.isElse&&this.matchingEquality)&&this._contentContainer.InsertContent(Bo.ControlCommand.PopEvaluatedValue(),0),t.AddToNamedContentOnly(this._contentContainer),this.returnDivert=new Wv.Divert,this._contentContainer.AddContent(this.returnDivert),t},this.GenerateRuntimeForContent=()=>this._innerWeave===null?new Bv.Container:this._innerWeave.rootContainer,e&&(this._innerWeave=new dT.Weave(e),this.AddContent(this._innerWeave));}get typeName(){return "ConditionalSingleBranch"}ResolveReferences(e){if(!this._conditionalDivert||!this._contentContainer)throw new Error;this._conditionalDivert.targetPath=this._contentContainer.path,super.ResolveReferences(e);}};Wo.ConditionalSingleBranch=Md;});var Gv=E(Mo=>{Object.defineProperty(Mo,"__esModule",{value:true});Mo.CustomFlags=void 0;var Mv;(function(n){n[n.ParsingString=1]="ParsingString",n[n.TagActive=2]="TagActive";})(Mv||(Mo.CustomFlags=Mv={}));});var Jv=E(Go=>{Object.defineProperty(Go,"__esModule",{value:true});Go.DebugMetadata=void 0;var Gd=class n{constructor(){this.startLineNumber=0,this.endLineNumber=0,this.startCharacterNumber=0,this.endCharacterNumber=0,this.fileName=null,this.sourceName=null;}Merge(e){let t=new n;return t.fileName=this.fileName,t.sourceName=this.sourceName,this.startLineNumber<e.startLineNumber?(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=this.startCharacterNumber):this.startLineNumber>e.startLineNumber?(t.startLineNumber=e.startLineNumber,t.startCharacterNumber=e.startCharacterNumber):(t.startLineNumber=this.startLineNumber,t.startCharacterNumber=Math.min(this.startCharacterNumber,e.startCharacterNumber)),this.endLineNumber>e.endLineNumber?(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=this.endCharacterNumber):this.endLineNumber<e.endLineNumber?(t.endLineNumber=e.endLineNumber,t.endCharacterNumber=e.endCharacterNumber):(t.endLineNumber=this.endLineNumber,t.endCharacterNumber=Math.max(this.endCharacterNumber,e.endCharacterNumber)),t}toString(){return this.fileName!==null?`line ${this.startLineNumber} of ${this.fileName}"`:"line "+this.startLineNumber}};Go.DebugMetadata=Gd;});var zv=E(Jo=>{Object.defineProperty(Jo,"__esModule",{value:true});Jo.ExternalDeclaration=void 0;var pT=ye(),Jd=class extends pT.ParsedObject{get name(){var e;return ((e=this.identifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t){super(),this.identifier=e,this.argumentNames=t,this.GenerateRuntimeObject=()=>(this.story.AddExternal(this),null);}get typeName(){return "EXTERNAL"}toString(){var e;return `EXTERNAL ${(e=this.identifier)===null||e===void 0?void 0:e.name}`}};Jo.ExternalDeclaration=Jd;});var Hv=E(zo=>{Object.defineProperty(zo,"__esModule",{value:true});zo.FlowDecl=void 0;var zd=class{constructor(e,t,r){this.name=e,this.args=t,this.isFunction=r;}};zo.FlowDecl=zd;});var Ud=E(Ho=>{Object.defineProperty(Ho,"__esModule",{value:true});Ho.Wrap=void 0;var mT=ye(),Hd=class extends mT.ParsedObject{constructor(e){super(),this._objToWrap=e,this.GenerateRuntimeObject=()=>this._objToWrap;}};Ho.Wrap=Hd;});var Uv=E(Uo=>{Object.defineProperty(Uo,"__esModule",{value:true});Uo.Glue=void 0;var gT=Ud(),Kd=class extends gT.Wrap{constructor(e){super(e);}get typeName(){return "Glue"}};Uo.Glue=Kd;});var Xo=E(Ko=>{Object.defineProperty(Ko,"__esModule",{value:true});Ko.Glue=void 0;var yT=at(),Xd=class extends yT.InkObject{toString(){return "Glue"}};Ko.Glue=Xd;});var Xv=E(Yo=>{Object.defineProperty(Yo,"__esModule",{value:true});Yo.IncDecExpression=void 0;var vT=yo(),Kv=Ct(),CT=Gt(),bT=Wt(),_T=ve(),ST=bn(),ET=Wr(),wT=Zn(),Yd=class extends Kv.Expression{constructor(e,t,r){super(),this.varIdentifier=e,this._runtimeAssignment=null,this.expression=null,this.GenerateIntoContainer=i=>{var a,s;i.AddContent(new ET.VariableReference(((a=this.varIdentifier)===null||a===void 0?void 0:a.name)||null)),this.expression?this.expression.GenerateIntoContainer(i):i.AddContent(new _T.IntValue(1)),i.AddContent(bT.NativeFunctionCall.CallWithName(this.isInc?"+":"-")),this._runtimeAssignment=new ST.VariableAssignment(((s=this.varIdentifier)===null||s===void 0?void 0:s.name)||null,false),i.AddContent(this._runtimeAssignment);},this.toString=()=>{var i,a;return this.expression?`${(i=this.varIdentifier)===null||i===void 0?void 0:i.name}${this.isInc?" += ":" -= "}${this.expression}`:`${(a=this.varIdentifier)===null||a===void 0?void 0:a.name}`+(this.isInc?"++":"--")},t instanceof Kv.Expression?(this.expression=t,this.AddContent(this.expression),this.isInc=!!r):this.isInc=t;}get typeName(){return "IncDecExpression"}ResolveReferences(e){var t;super.ResolveReferences(e);let r=e.ResolveVariableWithName(((t=this.varIdentifier)===null||t===void 0?void 0:t.name)||"",this);if(r.found||this.Error(`variable for ${this.incrementDecrementWord} could not be found: '${this.varIdentifier}' after searching: {this.descriptionOfScope}`),!this._runtimeAssignment)throw new Error;this._runtimeAssignment.isGlobal=r.isGlobal,!(this.parent instanceof wT.Weave)&&!(this.parent instanceof CT.FlowBase)&&!(this.parent instanceof vT.ContentList)&&this.Error(`Can't use ${this.incrementDecrementWord} as sub-expression`);}get incrementDecrementWord(){return this.isInc?"increment":"decrement"}};Yo.IncDecExpression=Yd;});var Qd=E(Zo=>{Object.defineProperty(Zo,"__esModule",{value:true});Zo.IncludedFile=void 0;var DT=ye(),Zd=class extends DT.ParsedObject{constructor(e){super(),this.includedStory=e,this.GenerateRuntimeObject=()=>null;}get typeName(){return "IncludedFile"}};Zo.IncludedFile=Zd;});var Yv=E(Qo=>{Object.defineProperty(Qo,"__esModule",{value:true});Qo.InfixOperator=void 0;var ef=class{constructor(e,t,r){this.type=e,this.precedence=t,this.requireWhitespace=r,this.toString=()=>this.type;}};Qo.InfixOperator=ef;});var nf=E(eu=>{Object.defineProperty(eu,"__esModule",{value:true});eu.Knot=void 0;var AT=Gt(),Zv=jr(),tf=class extends AT.FlowBase{get flowLevel(){return Zv.FlowLevel.Knot}constructor(e,t,r,i){super(e,t,r,i);}get typeName(){return this.isFunction?"Function":"Knot"}ResolveReferences(e){super.ResolveReferences(e);let t=this.story;for(let r in this.subFlowsByName){let i=t.ContentWithNameAtLevel(r,Zv.FlowLevel.Knot,false);if(i){let a=this.subFlowsByName.get(r),s=`Stitch '${a?a.name:"NO STITCH FOUND"}' has the same name as a knot (on ${i.debugMetadata})`;this.Error(s,a);}}}};eu.Knot=tf;});var Qv=E(tu=>{Object.defineProperty(tu,"__esModule",{value:true});tu.List=void 0;var PT=Ct(),OT=ut(),xT=ut(),TT=ve(),rf=class extends PT.Expression{constructor(e){super(),this.itemIdentifierList=e,this.GenerateIntoContainer=t=>{var r,i;let a=new OT.InkList;if(this.itemIdentifierList!=null)for(let s of this.itemIdentifierList){let o=((r=s?.name)===null||r===void 0?void 0:r.split("."))||[],u=null,l="";o.length>1?(u=o[0],l=o[1]):l=o[0];let c=this.story.ResolveListItem(u,l,this);if(c===null)u===null?this.Error(`Could not find list definition that contains item '${s}'`):this.Error(`Could not find list item ${s}`);else {if(c.parent==null){this.Error(`Could not find list definition for item ${s}`);return}u||(u=((i=c.parent.identifier)===null||i===void 0?void 0:i.name)||null);let h=new xT.InkListItem(u,c.name||null);a.has(h.serialized())?this.Warning(`Duplicate of item '${s}' in list.`):a.Add(h,c.seriesValue);}}t.AddContent(new TT.ListValue(a));};}get typeName(){return "List"}};tu.List=rf;});var af=E(nu=>{Object.defineProperty(nu,"__esModule",{value:true});nu.ListElementDefinition=void 0;var NT=ye(),FT=nn(),sf=class extends NT.ParsedObject{get fullName(){var e;let t=this.parent;if(t===null)throw new Error("Can't get full name without a parent list.");return `${(e=t.identifier)===null||e===void 0?void 0:e.name}.${this.name}`}get typeName(){return "ListElement"}get name(){var e;return ((e=this.indentifier)===null||e===void 0?void 0:e.name)||null}constructor(e,t,r=null){super(),this.indentifier=e,this.inInitialList=t,this.explicitValue=r,this.seriesValue=0,this.parent=null,this.GenerateRuntimeObject=()=>{throw new Error("Not implemented.")},this.toString=()=>this.fullName,this.parent=this.parent;}ResolveReferences(e){super.ResolveReferences(e),e.CheckForNamingCollisions(this,this.indentifier,FT.SymbolType.ListItem);}};nu.ListElementDefinition=sf;});var of=E(ru=>{Object.defineProperty(ru,"__esModule",{value:true});ru.StatementLevel=void 0;var e0;(function(n){n[n.InnerBlock=0]="InnerBlock",n[n.Stitch=1]="Stitch",n[n.Knot=2]="Knot",n[n.Top=3]="Top";})(e0||(ru.StatementLevel=e0={}));});var lf=E(iu=>{Object.defineProperty(iu,"__esModule",{value:true});iu.Stitch=void 0;var IT=Gt(),kT=jr(),uf=class extends IT.FlowBase{get flowLevel(){return kT.FlowLevel.Stitch}constructor(e,t,r,i){super(e,t,r,i),this.baseToString=this.toString,this.toString=()=>`${this.parent!==null?this.parent+" > ":""}${this.baseToString()}`;}get typeName(){return "Stitch"}};iu.Stitch=uf;});var au=E(su=>{Object.defineProperty(su,"__esModule",{value:true});su.Tag=void 0;var VT=at(),cf=class extends VT.InkObject{constructor(e){super(),this.text=e.toString()||"";}toString(){return "# "+this.text}};su.Tag=cf;});var df=E(ou=>{Object.defineProperty(ou,"__esModule",{value:true});ou.Choice=void 0;var RT=st(),$T=Le(),jT=at(),hf=class n extends jT.InkObject{constructor(){super(...arguments),this.text="",this.index=0,this.threadAtGeneration=null,this.sourcePath="",this.targetPath=null,this.isInvisibleDefault=false,this.tags=null,this.originalThreadIndex=0;}get pathStringOnChoice(){return this.targetPath===null?(0, $T.throwNullException)("Choice.targetPath"):this.targetPath.toString()}set pathStringOnChoice(e){this.targetPath=new RT.Path(e);}Clone(){let e=new n;return e.text=this.text,e.sourcePath=this.sourcePath,e.index=this.index,e.targetPath=this.targetPath,e.originalThreadIndex=this.originalThreadIndex,e.isInvisibleDefault=this.isInvisibleDefault,this.threadAtGeneration!==null&&(e.threadAtGeneration=this.threadAtGeneration.Copy()),e}};ou.Choice=hf;});var pf=E(uu=>{Object.defineProperty(uu,"__esModule",{value:true});uu.ListDefinitionsOrigin=void 0;var LT=ut(),qT=ve(),BT=Le(),ff=class{constructor(e){this._lists=new Map,this._allUnambiguousListValueCache=new Map;for(let t of e){this._lists.set(t.name,t);for(let[r,i]of t.items){let a=LT.InkListItem.fromSerializedKey(r),s=new qT.ListValue(a,i);if(!a.itemName)throw new Error("item.itemName is null or undefined.");this._allUnambiguousListValueCache.set(a.itemName,s),this._allUnambiguousListValueCache.set(a.fullName,s);}}}get lists(){let e=[];for(let[,t]of this._lists)e.push(t);return e}TryListGetDefinition(e,t){if(e===null)return {result:t,exists:false};let r=this._lists.get(e);return r?{result:r,exists:true}:{result:t,exists:false}}FindSingleItemListWithName(e){if(e===null)return (0, BT.throwNullException)("name");let t=this._allUnambiguousListValueCache.get(e);return typeof t<"u"?t:null}};uu.ListDefinitionsOrigin=ff;});var Jr=E(du=>{Object.defineProperty(du,"__esModule",{value:true});du.JsonSerialisation=void 0;var lu=Ee(),ct=ve(),t0=Xo(),ne=qe(),Gr=Kn(),n0=Mt(),r0=Wa(),mf=Wr(),i0=bn(),gf=Wt(),s0=Un(),a0=au(),WT=st(),o0=df(),MT=$d(),GT=pf(),cu=ut(),we=ae(),Qn=Le(),hu=class n{static JArrayToRuntimeObjList(e,t=false){let r=e.length;t&&r--;let i=[];for(let a=0;a<r;a++){let s=e[a],o=this.JTokenToRuntimeObject(s);if(o===null)return (0, Qn.throwNullException)("runtimeObj");i.push(o);}return i}static WriteDictionaryRuntimeObjs(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WritePropertyStart(r),this.WriteRuntimeObject(e,i),e.WritePropertyEnd();e.WriteObjectEnd();}static WriteListRuntimeObjs(e,t){e.WriteArrayStart();for(let r of t)this.WriteRuntimeObject(e,r);e.WriteArrayEnd();}static WriteIntDictionary(e,t){e.WriteObjectStart();for(let[r,i]of t)e.WriteIntProperty(r,i);e.WriteObjectEnd();}static WriteRuntimeObject(e,t){let r=(0, we.asOrNull)(t,lu.Container);if(r){this.WriteRuntimeContainer(e,r);return}let i=(0, we.asOrNull)(t,n0.Divert);if(i){let m="->";i.isExternal?m="x()":i.pushesToStack&&(i.stackPushType==Gr.PushPopType.Function?m="f()":i.stackPushType==Gr.PushPopType.Tunnel&&(m="->t->"));let b;i.hasVariableTarget?b=i.variableDivertName:b=i.targetPathString,e.WriteObjectStart(),e.WriteProperty(m,b),i.hasVariableTarget&&e.WriteProperty("var",true),i.isConditional&&e.WriteProperty("c",true),i.externalArgs>0&&e.WriteIntProperty("exArgs",i.externalArgs),e.WriteObjectEnd();return}let a=(0, we.asOrNull)(t,r0.ChoicePoint);if(a){e.WriteObjectStart(),e.WriteProperty("*",a.pathStringOnChoice),e.WriteIntProperty("flg",a.flags),e.WriteObjectEnd();return}let s=(0, we.asOrNull)(t,ct.BoolValue);if(s){e.WriteBool(s.value);return}let o=(0, we.asOrNull)(t,ct.IntValue);if(o){e.WriteInt(o.value);return}let u=(0, we.asOrNull)(t,ct.FloatValue);if(u){e.WriteFloat(u.value);return}let l=(0, we.asOrNull)(t,ct.StringValue);if(l){l.isNewline?e.Write(`
24
+ `,false):(e.WriteStringStart(),e.WriteStringInner("^"),e.WriteStringInner(l.value),e.WriteStringEnd());return}let c=(0, we.asOrNull)(t,ct.ListValue);if(c){this.WriteInkList(e,c);return}let h=(0, we.asOrNull)(t,ct.DivertTargetValue);if(h){if(e.WriteObjectStart(),h.value===null)return (0, Qn.throwNullException)("divTargetVal.value");e.WriteProperty("^->",h.value.componentsString),e.WriteObjectEnd();return}let p=(0, we.asOrNull)(t,ct.VariablePointerValue);if(p){e.WriteObjectStart(),e.WriteProperty("^var",p.value),e.WriteIntProperty("ci",p.contextIndex),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,t0.Glue)){e.Write("<>");return}let g=(0, we.asOrNull)(t,ne.ControlCommand);if(g){e.Write(n._controlCommandNames[g.commandType]);return}let y=(0, we.asOrNull)(t,gf.NativeFunctionCall);if(y){let m=y.name;m=="^"&&(m="L^"),e.Write(m);return}let C=(0, we.asOrNull)(t,mf.VariableReference);if(C){e.WriteObjectStart();let m=C.pathStringForCount;m!=null?e.WriteProperty("CNT?",m):e.WriteProperty("VAR?",C.name),e.WriteObjectEnd();return}let _=(0, we.asOrNull)(t,i0.VariableAssignment);if(_){e.WriteObjectStart();let m=_.isGlobal?"VAR=":"temp=";e.WriteProperty(m,_.variableName),_.isNewDeclaration||e.WriteProperty("re",true),e.WriteObjectEnd();return}if((0, we.asOrNull)(t,s0.Void)){e.Write("void");return}let d=(0, we.asOrNull)(t,a0.Tag);if(d){e.WriteObjectStart(),e.WriteProperty("#",d.text),e.WriteObjectEnd();return}let S=(0, we.asOrNull)(t,o0.Choice);if(S){this.WriteChoice(e,S);return}throw new Error("Failed to convert runtime object to Json token: "+t)}static JObjectToDictionaryRuntimeObjs(e){let t=new Map;for(let r in e)if(e.hasOwnProperty(r)){let i=this.JTokenToRuntimeObject(e[r]);if(i===null)return (0, Qn.throwNullException)("inkObject");t.set(r,i);}return t}static JObjectToIntDictionary(e){let t=new Map;for(let r in e)e.hasOwnProperty(r)&&t.set(r,parseInt(e[r]));return t}static JTokenToRuntimeObject(e){if(typeof e=="number"&&!isNaN(e)||typeof e=="boolean")return ct.Value.Create(e);if(typeof e=="string"){let t=e.toString(),r=/^([0-9]+.[0-9]+f)$/.exec(t);if(r)return new ct.FloatValue(parseFloat(r[0]));let i=t[0];if(i=="^")return new ct.StringValue(t.substring(1));if(i==`
25
25
  `&&t.length==1)return new ct.StringValue(`
26
- `);if(t=="<>")return new e0.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new re.ControlCommand(a)}if(t=="L^"&&(t="^"),pf.NativeFunctionCall.CallExistsWithName(t))return pf.NativeFunctionCall.CallWithName(t);if(t=="->->")return re.ControlCommand.PopTunnel();if(t=="~ret")return re.ControlCommand.PopFunction();if(t=="void")return new i0.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ct.DivertTargetValue(new qT.Path(r.toString()));if(t["^var"]){r=t["^var"];let c=new ct.VariablePointerValue(r.toString());return "ci"in t&&(r=t.ci,c.contextIndex=parseInt(r)),c}let i=false,a=false,s=Gr.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=Gr.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=Gr.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=Gr.PushPopType.Function),i){let c=new t0.Divert;c.pushesToStack=a,c.stackPushType=s,c.isExternal=o;let h=r.toString();return (r=t.var)?c.variableDivertName=h:c.targetPathString=h,c.isConditional=!!t.c,o&&(r=t.exArgs)&&(c.externalArgs=parseInt(r)),c}if(r=t["*"]){let c=new n0.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new ff.VariableReference(r.toString());if(r=t["CNT?"]){let c=new ff.VariableReference;return c.pathStringForCount=r.toString(),c}let u=false,l=false;if((r=t["VAR="])?(u=true,l=true):(r=t["temp="])&&(u=true,l=false),u){let c=r.toString(),h=!t.re,f=new r0.VariableAssignment(c,h);return f.isGlobal=l,f}if(t["#"]!==void 0)return r=t["#"],new s0.Tag(r.toString());if(r=t.list){let c=r,h=new cu.InkList;if(r=t.origins){let f=r;h.SetInitialOriginNames(f);}for(let f in c)if(c.hasOwnProperty(f)){let d=c[f],m=new cu.InkListItem(f),y=parseInt(d);h.Add(m,y);}return new ct.ListValue(h)}if(t.originalChoicePath!=null)return this.JObjectToChoice(t)}if(Array.isArray(e))return this.JArrayToContainer(e);if(e==null)return null;throw new Error("Failed to convert token to runtime object: "+this.toJson(e,["parent"]))}static toJson(e,t,r){return JSON.stringify(e,(i,a)=>t?.some(s=>s===i)?void 0:a,r)}static WriteRuntimeContainer(e,t,r=false){if(e.WriteArrayStart(),t===null)return (0, Qn.throwNullException)("container");for(let u of t.content)this.WriteRuntimeObject(e,u);let i=t.namedOnlyContent,a=t.countFlags,s=t.name!=null&&!r,o=i!=null||a>0||s;if(o&&e.WriteObjectStart(),i!=null)for(let[u,l]of i){let c=u,h=(0, we.asOrNull)(l,lu.Container);e.WritePropertyStart(c),this.WriteRuntimeContainer(e,h,true),e.WritePropertyEnd();}a>0&&e.WriteIntProperty("#f",a),s&&e.WriteProperty("#n",t.name),o?e.WriteObjectEnd():e.WriteNull(),e.WriteArrayEnd();}static JArrayToContainer(e){let t=new lu.Container;t.content=this.JArrayToRuntimeObjList(e,true);let r=e[e.length-1];if(r!=null){let i=new Map;for(let a in r)if(a=="#f")t.countFlags=parseInt(r[a]);else if(a=="#n")t.name=r[a].toString();else {let s=this.JTokenToRuntimeObject(r[a]),o=(0, we.asOrNull)(s,lu.Container);o&&(o.name=a),i.set(a,s);}t.namedOnlyContent=i;}return t}static JObjectToChoice(e){let t=new a0.Choice;return t.text=e.text.toString(),t.index=parseInt(e.index),t.sourcePath=e.originalChoicePath.toString(),t.originalThreadIndex=parseInt(e.originalThreadIndex),t.pathStringOnChoice=e.targetPath.toString(),t.tags=this.JArrayToTags(e),t.isInvisibleDefault=!!e.isInvisibleDefault,t}static JArrayToTags(e){return e.tags?e.tags:null}static WriteChoice(e,t){e.WriteObjectStart(),e.WriteProperty("text",t.text),e.WriteIntProperty("index",t.index),e.WriteProperty("originalChoicePath",t.sourcePath),e.WriteIntProperty("originalThreadIndex",t.originalThreadIndex),e.WriteProperty("targetPath",t.pathStringOnChoice),e.WriteProperty("isInvisibleDefault",t.isInvisibleDefault),this.WriteChoiceTags(e,t),e.WriteObjectEnd();}static WriteChoiceTags(e,t){if(t.tags&&t.tags.length>0){e.WritePropertyStart("tags"),e.WriteArrayStart();for(let r of t.tags)e.Write(r);e.WriteArrayEnd(),e.WritePropertyEnd();}}static WriteInkList(e,t){let r=t.value;if(r===null)return (0, Qn.throwNullException)("rawList");e.WriteObjectStart(),e.WritePropertyStart("list"),e.WriteObjectStart();for(let[i,a]of r){let s=cu.InkListItem.fromSerializedKey(i),o=a;if(s.itemName===null)return (0, Qn.throwNullException)("item.itemName");e.WritePropertyNameStart(),e.WritePropertyNameInner(s.originName?s.originName:"?"),e.WritePropertyNameInner("."),e.WritePropertyNameInner(s.itemName),e.WritePropertyNameEnd(),e.Write(o),e.WritePropertyEnd();}if(e.WriteObjectEnd(),e.WritePropertyEnd(),r.Count==0&&r.originNames!=null&&r.originNames.length>0){e.WritePropertyStart("origins"),e.WriteArrayStart();for(let i of r.originNames)e.Write(i);e.WriteArrayEnd(),e.WritePropertyEnd();}e.WriteObjectEnd();}static ListDefinitionsToJToken(e){let t={};for(let r of e.lists){let i={};for(let[a,s]of r.items){let o=cu.InkListItem.fromSerializedKey(a);if(o.itemName===null)return (0, Qn.throwNullException)("item.itemName");i[o.itemName]=s;}t[r.name]=i;}return t}static JTokenToListDefinitions(e){let t=e,r=[];for(let i in t)if(t.hasOwnProperty(i)){let a=i.toString(),s=t[i],o=new Map;for(let l in s)if(t.hasOwnProperty(i)){let c=s[l];o.set(l,parseInt(c));}let u=new BT.ListDefinition(a,o);r.push(u);}return new WT.ListDefinitionsOrigin(r)}};du.JsonSerialisation=hu;hu._controlCommandNames=(()=>{let n=[];n[re.ControlCommand.CommandType.EvalStart]="ev",n[re.ControlCommand.CommandType.EvalOutput]="out",n[re.ControlCommand.CommandType.EvalEnd]="/ev",n[re.ControlCommand.CommandType.Duplicate]="du",n[re.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[re.ControlCommand.CommandType.PopFunction]="~ret",n[re.ControlCommand.CommandType.PopTunnel]="->->",n[re.ControlCommand.CommandType.BeginString]="str",n[re.ControlCommand.CommandType.EndString]="/str",n[re.ControlCommand.CommandType.NoOp]="nop",n[re.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[re.ControlCommand.CommandType.Turns]="turn",n[re.ControlCommand.CommandType.TurnsSince]="turns",n[re.ControlCommand.CommandType.ReadCount]="readc",n[re.ControlCommand.CommandType.Random]="rnd",n[re.ControlCommand.CommandType.SeedRandom]="srnd",n[re.ControlCommand.CommandType.VisitIndex]="visit",n[re.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[re.ControlCommand.CommandType.StartThread]="thread",n[re.ControlCommand.CommandType.Done]="done",n[re.ControlCommand.CommandType.End]="end",n[re.ControlCommand.CommandType.ListFromInt]="listInt",n[re.ControlCommand.CommandType.ListRange]="range",n[re.ControlCommand.CommandType.ListRandom]="lrnd",n[re.ControlCommand.CommandType.BeginTag]="#",n[re.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<re.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var yf=E(ls=>{Object.defineProperty(ls,"__esModule",{value:true});ls.CallStack=void 0;var mf=Kn(),o0=st(),MT=cs(),u0=Jr(),GT=ve(),JT=zn(),os=Zi(),zT=Li(),l0=Ir(),gf=Le(),us=class n{get elements(){return this.callStack}get depth(){return this.elements.length}get currentElement(){let t=this._threads[this._threads.length-1].callstack;return t[t.length-1]}get currentElementIndex(){return this.callStack.length-1}get currentThread(){return this._threads[this._threads.length-1]}set currentThread(e){zT.Debug.Assert(this._threads.length==1,"Shouldn't be directly setting the current thread when we have a stack of them"),this._threads.length=0,this._threads.push(e);}get canPop(){return this.callStack.length>1}constructor(){if(this._threadCounter=0,this._startOfRoot=os.Pointer.Null,arguments[0]instanceof MT.Story){let e=arguments[0];this._startOfRoot=os.Pointer.StartOf(e.rootContentContainer),this.Reset();}else {let e=arguments[0];this._threads=[];for(let t of e._threads)this._threads.push(t.Copy());this._threadCounter=e._threadCounter,this._startOfRoot=e._startOfRoot.copy();}}Reset(){this._threads=[],this._threads.push(new n.Thread),this._threads[0].callstack.push(new n.Element(mf.PushPopType.Tunnel,this._startOfRoot));}SetJsonToken(e,t){this._threads.length=0;let r=e.threads;for(let i of r){let a=i,s=new n.Thread(a,t);this._threads.push(s);}this._threadCounter=parseInt(e.threadCounter),this._startOfRoot=os.Pointer.StartOf(t.rootContentContainer);}WriteJson(e){e.WriteObject(t=>{t.WritePropertyStart("threads"),t.WriteArrayStart();for(let r of this._threads)r.WriteJson(t);t.WriteArrayEnd(),t.WritePropertyEnd(),t.WritePropertyStart("threadCounter"),t.WriteInt(this._threadCounter),t.WritePropertyEnd();});}PushThread(){let e=this.currentThread.Copy();this._threadCounter++,e.threadIndex=this._threadCounter,this._threads.push(e);}ForkThread(){let e=this.currentThread.Copy();return this._threadCounter++,e.threadIndex=this._threadCounter,e}PopThread(){if(this.canPopThread)this._threads.splice(this._threads.indexOf(this.currentThread),1);else throw new Error("Can't pop thread")}get canPopThread(){return this._threads.length>1&&!this.elementIsEvaluateFromGame}get elementIsEvaluateFromGame(){return this.currentElement.type==mf.PushPopType.FunctionEvaluationFromGame}Push(e,t=0,r=0){let i=new n.Element(e,this.currentElement.currentPointer,false);i.evaluationStackHeightWhenPushed=t,i.functionStartInOutputStream=r,this.callStack.push(i);}CanPop(e=null){return this.canPop?e==null?true:this.currentElement.type==e:false}Pop(e=null){if(this.CanPop(e)){this.callStack.pop();return}else throw new Error("Mismatched push/pop in Callstack")}GetTemporaryVariableWithName(e,t=-1){t==-1&&(t=this.currentElementIndex+1);let r=this.callStack[t-1],i=(0, l0.tryGetValueFromMap)(r.temporaryVariables,e,null);return i.exists?i.result:null}SetTemporaryVariable(e,t,r,i=-1){i==-1&&(i=this.currentElementIndex+1);let a=this.callStack[i-1];if(!r&&!a.temporaryVariables.get(e))throw new Error("Could not find temporary variable to set: "+e);let s=(0, l0.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&GT.ListValue.RetainListOriginsForAssignment(s.result,t),a.temporaryVariables.set(e,t);}ContextForVariableNamed(e){return this.currentElement.temporaryVariables.get(e)?this.currentElementIndex+1:0}ThreadWithIndex(e){let t=this._threads.filter(r=>{if(r.threadIndex==e)return r});return t.length>0?t[0]:null}get callStack(){return this.currentThread.callstack}get callStackTrace(){let e=new JT.StringBuilder;for(let t=0;t<this._threads.length;t++){let r=this._threads[t],i=t==this._threads.length-1;e.AppendFormat(`=== THREAD {0}/{1} {2}===
27
- `,t+1,this._threads.length,i?"(current) ":"");for(let a=0;a<r.callstack.length;a++){r.callstack[a].type==mf.PushPopType.Function?e.Append(" [FUNCTION] "):e.Append(" [TUNNEL] ");let s=r.callstack[a].currentPointer;if(!s.isNull){if(e.Append("<SOMEWHERE IN "),s.container===null)return (0, gf.throwNullException)("pointer.container");e.Append(s.container.path.toString()),e.AppendLine(">");}}}return e.toString()}};ls.CallStack=us;(function(n){class e{constructor(i,a,s=false){this.evaluationStackHeightWhenPushed=0,this.functionStartInOutputStream=0,this.currentPointer=a.copy(),this.inExpressionEvaluation=s,this.temporaryVariables=new Map,this.type=i;}Copy(){let i=new e(this.type,this.currentPointer,this.inExpressionEvaluation);return i.temporaryVariables=new Map(this.temporaryVariables),i.evaluationStackHeightWhenPushed=this.evaluationStackHeightWhenPushed,i.functionStartInOutputStream=this.functionStartInOutputStream,i}}n.Element=e;class t{constructor(){if(this.threadIndex=0,this.previousPointer=os.Pointer.Null,this.callstack=[],arguments[0]&&arguments[1]){let i=arguments[0],a=arguments[1];this.threadIndex=parseInt(i.threadIndex);let s=i.callstack;for(let u of s){let l=u,c=parseInt(l.type),h=os.Pointer.Null,f,d=l.cPath;if(typeof d<"u"){f=d.toString();let S=a.ContentAtPath(new o0.Path(f));if(h.container=S.container,h.index=parseInt(l.idx),S.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+f+". Has the story changed since this save data was created?");S.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"', so it was approximated to '"+h.container.path.toString()+"' to recover. Has the story changed since this save data was created?"):a.Warning("When loading state, exact internal story location couldn't be found: '"+f+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let m=!!l.exp,y=new e(c,h,m),_=l.temp;typeof _<"u"?y.temporaryVariables=u0.JsonSerialisation.JObjectToDictionaryRuntimeObjs(_):y.temporaryVariables.clear(),this.callstack.push(y);}let o=i.previousContentObject;if(typeof o<"u"){let u=new o0.Path(o.toString());this.previousPointer=a.PointerAtPath(u);}}}Copy(){let i=new t;i.threadIndex=this.threadIndex;for(let a of this.callstack)i.callstack.push(a.Copy());return i.previousPointer=this.previousPointer.copy(),i}WriteJson(i){i.WriteObjectStart(),i.WritePropertyStart("callstack"),i.WriteArrayStart();for(let a of this.callstack){if(i.WriteObjectStart(),!a.currentPointer.isNull){if(a.currentPointer.container===null)return (0, gf.throwNullException)("el.currentPointer.container");i.WriteProperty("cPath",a.currentPointer.container.path.componentsString),i.WriteIntProperty("idx",a.currentPointer.index);}i.WriteProperty("exp",a.inExpressionEvaluation),i.WriteIntProperty("type",a.type),a.temporaryVariables.size>0&&(i.WritePropertyStart("temp"),u0.JsonSerialisation.WriteDictionaryRuntimeObjs(i,a.temporaryVariables),i.WritePropertyEnd()),i.WriteObjectEnd();}if(i.WriteArrayEnd(),i.WritePropertyEnd(),i.WriteIntProperty("threadIndex",this.threadIndex),!this.previousPointer.isNull){let a=this.previousPointer.Resolve();if(a===null)return (0, gf.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(us||(ls.CallStack=us={}));});var h0=E(pu=>{Object.defineProperty(pu,"__esModule",{value:true});pu.VariablesState=void 0;var ke=ve(),HT=Bi(),c0=Jr(),Be=ae(),hs=Ir(),En=Le();function UT(){return class{}}var fu=class n extends UT(){variableChangedEvent(e,t){for(let r of this.variableChangedEventCallbacks)r(e,t);}StartVariableObservation(){this._batchObservingVariableChanges=true,this._changedVariablesForBatchObs=new Set;}CompleteVariableObservation(){this._batchObservingVariableChanges=false;let e=new Map;if(this._changedVariablesForBatchObs!=null)for(let t of this._changedVariablesForBatchObs){let r=this._globalVariables.get(t);this.variableChangedEvent(t,r);}if(this.patch!=null)for(let t of this.patch.changedVariables){let r=this.patch.TryGetGlobal(t,null);r.exists&&e.set(t,r);}return this._changedVariablesForBatchObs=null,e}NotifyObservers(e){for(let[t,r]of e)this.variableChangedEvent(t,r);}get callStack(){return this._callStack}set callStack(e){this._callStack=e;}$(e,t){if(typeof t>"u"){let r=null;return this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists)?r.result.valueObject:(r=this._globalVariables.get(e),typeof r>"u"&&(r=this._defaultGlobalVariables.get(e)),typeof r<"u"?r.valueObject:null)}else {if(typeof this._defaultGlobalVariables.get(e)>"u")throw new HT.StoryException("Cannot assign to a variable ("+e+") that hasn't been declared in the story");let r=ke.Value.Create(t);if(r==null)throw t==null?new Error("Cannot pass null to VariableState"):new Error("Invalid value passed to VariableState: "+t.toString());this.SetGlobal(e,r);}}constructor(e,t){super(),this.variableChangedEventCallbacks=[],this.patch=null,this._defaultGlobalVariables=new Map,this._changedVariablesForBatchObs=new Set,this._batchObservingVariableChanges=false,this._globalVariables=new Map,this._callStack=e,this._listDefsOrigin=t;try{return new Proxy(this,{get(i,a){return a in i?i[a]:i.$(a)},set(i,a,s){return a in i?i[a]=s:i.$(a,s),!0},ownKeys(i){return [...new Set([...i._defaultGlobalVariables.keys(),...i._globalVariables.keys()])]},getOwnPropertyDescriptor(i,a){return {enumerable:!0,configurable:!0,value:i.$(a)}}})}catch{}}ApplyPatch(){if(this.patch===null)return (0, En.throwNullException)("this.patch");for(let[e,t]of this.patch.globals)this._globalVariables.set(e,t);if(this._changedVariablesForBatchObs!==null)for(let e of this.patch.changedVariables)this._changedVariablesForBatchObs.add(e);this.patch=null;}SetJsonToken(e){this._globalVariables.clear();for(let[t,r]of this._defaultGlobalVariables){let i=e[t];if(typeof i<"u"){let a=c0.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, En.throwNullException)("tokenInkObject");this._globalVariables.set(t,a);}else this._globalVariables.set(t,r);}}WriteJson(e){e.WriteObjectStart();for(let[t,r]of this._globalVariables){let i=t,a=r;if(n.dontSaveDefaultValues&&this._defaultGlobalVariables.has(i)){let s=this._defaultGlobalVariables.get(i);if(this.RuntimeObjectsEqual(a,s))continue}e.WritePropertyStart(i),c0.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, En.throwNullException)("obj1");if(t===null)return (0, En.throwNullException)("obj2");if(e.constructor!==t.constructor)return false;let r=(0, Be.asOrNull)(e,ke.BoolValue);if(r!==null)return r.value===(0, Be.asOrThrows)(t,ke.BoolValue).value;let i=(0, Be.asOrNull)(e,ke.IntValue);if(i!==null)return i.value===(0, Be.asOrThrows)(t,ke.IntValue).value;let a=(0, Be.asOrNull)(e,ke.FloatValue);if(a!==null)return a.value===(0, Be.asOrThrows)(t,ke.FloatValue).value;let s=(0, Be.asOrNull)(e,ke.Value),o=(0, Be.asOrNull)(t,ke.Value);if(s!==null&&o!==null)return (0, Be.isEquatable)(s.valueObject)&&(0, Be.isEquatable)(o.valueObject)?s.valueObject.Equals(o.valueObject):s.valueObject===o.valueObject;throw new Error("FastRoughDefinitelyEquals: Unsupported runtime object type: "+e.constructor.name)}GetVariableWithName(e,t=-1){let r=this.GetRawVariableWithName(e,t),i=(0, Be.asOrNull)(r,ke.VariablePointerValue);return i!==null&&(r=this.ValueAtVariablePointer(i)),r}TryGetDefaultVariableValue(e){let t=(0, hs.tryGetValueFromMap)(this._defaultGlobalVariables,e,null);return t.exists?t.result:null}GlobalVariableExistsWithName(e){return this._globalVariables.has(e)||this._defaultGlobalVariables!==null&&this._defaultGlobalVariables.has(e)}GetRawVariableWithName(e,t){let r=null;if(t==0||t==-1){let i=null;if(this.patch!==null&&(i=this.patch.TryGetGlobal(e,null),i.exists)||(i=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null),i.exists)||this._defaultGlobalVariables!==null&&(i=(0, hs.tryGetValueFromMap)(this._defaultGlobalVariables,e,null),i.exists))return i.result;if(this._listDefsOrigin===null)return (0, En.throwNullException)("VariablesState._listDefsOrigin");let a=this._listDefsOrigin.FindSingleItemListWithName(e);if(a)return a}return r=this._callStack.GetTemporaryVariableWithName(e,t),r}ValueAtVariablePointer(e){return this.GetVariableWithName(e.variableName,e.contextIndex)}Assign(e,t){let r=e.variableName;if(r===null)return (0, En.throwNullException)("name");let i=-1,a=false;if(e.isNewDeclaration?a=e.isGlobal:a=this.GlobalVariableExistsWithName(r),e.isNewDeclaration){let s=(0, Be.asOrNull)(t,ke.VariablePointerValue);s!==null&&(t=this.ResolveVariablePointer(s));}else {let s=null;do s=(0, Be.asOrNull)(this.GetRawVariableWithName(r,i),ke.VariablePointerValue),s!=null&&(r=s.variableName,i=s.contextIndex,a=i==0);while(s!=null)}a?this.SetGlobal(r,t):this._callStack.SetTemporaryVariable(r,t,e.isNewDeclaration,i);}SnapshotDefaultGlobals(){this._defaultGlobalVariables=new Map(this._globalVariables);}RetainListOriginsForAssignment(e,t){let r=(0, Be.asOrThrows)(e,ke.ListValue),i=(0, Be.asOrThrows)(t,ke.ListValue);r.value&&i.value&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}SetGlobal(e,t){let r=null;if(this.patch===null&&(r=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null)),this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists||(r=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null))),ke.ListValue.RetainListOriginsForAssignment(r.result,t),e===null)return (0, En.throwNullException)("variableName");if(this.patch!==null?this.patch.SetGlobal(e,t):this._globalVariables.set(e,t),this.variableChangedEvent!==null&&r!==null&&t!==r.result)if(this._batchObservingVariableChanges){if(this._changedVariablesForBatchObs===null)return (0, En.throwNullException)("this._changedVariablesForBatchObs");this.patch!==null?this.patch.AddChangedVariable(e):this._changedVariablesForBatchObs!==null&&this._changedVariablesForBatchObs.add(e);}else this.variableChangedEvent(e,t);}ResolveVariablePointer(e){let t=e.contextIndex;t==-1&&(t=this.GetContextIndexOfVariableNamed(e.variableName));let r=this.GetRawVariableWithName(e.variableName,t),i=(0, Be.asOrNull)(r,ke.VariablePointerValue);return i??new ke.VariablePointerValue(e.variableName,t)}GetContextIndexOfVariableNamed(e){return this.GlobalVariableExistsWithName(e)?0:this._callStack.currentElementIndex}ObserveVariableChange(e){this.variableChangedEventCallbacks.push(e);}};pu.VariablesState=fu;fu.dontSaveDefaultValues=true;});var Cf=E(mu=>{Object.defineProperty(mu,"__esModule",{value:true});mu.PRNG=void 0;var vf=class{constructor(e){this.seed=e%2147483647,this.seed<=0&&(this.seed+=2147483646);}next(){return this.seed=this.seed*48271%2147483647}nextFloat(){return (this.next()-1)/2147483646}};mu.PRNG=vf;});var d0=E(gu=>{Object.defineProperty(gu,"__esModule",{value:true});gu.StatePatch=void 0;var bf=class{get globals(){return this._globals}get changedVariables(){return this._changedVariables}get visitCounts(){return this._visitCounts}get turnIndices(){return this._turnIndices}constructor(){if(this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map,arguments.length===1&&arguments[0]!==null){let e=arguments[0];this._globals=new Map(e._globals),this._changedVariables=new Set(e._changedVariables),this._visitCounts=new Map(e._visitCounts),this._turnIndices=new Map(e._turnIndices);}else this._globals=new Map,this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map;}TryGetGlobal(e,t){return e!==null&&this._globals.has(e)?{result:this._globals.get(e),exists:true}:{result:t,exists:false}}SetGlobal(e,t){this._globals.set(e,t);}AddChangedVariable(e){return this._changedVariables.add(e)}TryGetVisitCount(e,t){return this._visitCounts.has(e)?{result:this._visitCounts.get(e),exists:true}:{result:t,exists:false}}SetVisitCount(e,t){this._visitCounts.set(e,t);}SetTurnIndex(e,t){this._turnIndices.set(e,t);}TryGetTurnIndex(e,t){return this._turnIndices.has(e)?{result:this._turnIndices.get(e),exists:true}:{result:t,exists:false}}};gu.StatePatch=bf;});var _f=E(fs=>{Object.defineProperty(fs,"__esModule",{value:true});fs.SimpleJson=void 0;var ds=class n{static TextToDictionary(e){return new n.Reader(e).ToDictionary()}static TextToArray(e){return new n.Reader(e).ToArray()}};fs.SimpleJson=ds;(function(n){class e{constructor(i){if(JSON.parse("0",(s,o,u)=>u!=null)){let s=(o,u,l)=>Number.isInteger(u)&&l.source.endsWith(".0")?l.source+"f":u;this._rootObject=JSON.parse(i,s);}else {let s=i.replace(/(,\s*)([0-9]+\.[0]+)([,]*)/g,'$1"$2f"$3');this._rootObject=JSON.parse(s);}}ToDictionary(){return this._rootObject}ToArray(){return this._rootObject}}n.Reader=e;class t{constructor(){this._currentPropertyName=null,this._currentString=null,this._stateStack=[],this._collectionStack=[],this._propertyNameStack=[],this._jsonObject=null;}WriteObject(i){this.WriteObjectStart(),i(this),this.WriteObjectEnd();}WriteObjectStart(){this.StartNewObject(true);let i={};if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Object));}WriteObjectEnd(){this.Assert(this.state===n.Writer.State.Object),this._collectionStack.pop(),this._stateStack.pop();}WriteProperty(i,a){if(this.WritePropertyStart(i),arguments[1]instanceof Function){let s=arguments[1];s(this);}else {let s=arguments[1];this.Write(s);}this.WritePropertyEnd();}WriteIntProperty(i,a){this.WritePropertyStart(i),this.WriteInt(a),this.WritePropertyEnd();}WriteFloatProperty(i,a){this.WritePropertyStart(i),this.WriteFloat(a),this.WritePropertyEnd();}WritePropertyStart(i){this.Assert(this.state===n.Writer.State.Object),this._propertyNameStack.push(i),this.IncrementChildCount(),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property));}WritePropertyEnd(){this.Assert(this.state===n.Writer.State.Property),this.Assert(this.childCount===1),this._stateStack.pop();}WritePropertyNameStart(){this.Assert(this.state===n.Writer.State.Object),this.IncrementChildCount(),this._currentPropertyName="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property)),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.PropertyName));}WritePropertyNameEnd(){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._propertyNameStack.push(this._currentPropertyName),this._currentPropertyName=null,this._stateStack.pop();}WritePropertyNameInner(i){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._currentPropertyName+=i;}WriteArrayStart(){this.StartNewObject(true);let i=[];if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Array));}WriteArrayEnd(){this.Assert(this.state===n.Writer.State.Array),this._collectionStack.pop(),this._stateStack.pop();}Write(i,a=true){if(i===null){console.error("Warning: trying to write a null value");return}this.StartNewObject(false),this._addToCurrentObject(i);}WriteBool(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(i));}WriteInt(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(Math.floor(i)));}WriteFloat(i){i!==null&&(this.StartNewObject(false),i==Number.POSITIVE_INFINITY?this._addToCurrentObject(34e37):i==Number.NEGATIVE_INFINITY?this._addToCurrentObject(-34e37):isNaN(i)?this._addToCurrentObject(0):this._addToCurrentObject(i));}WriteNull(){this.StartNewObject(false),this._addToCurrentObject(null);}WriteStringStart(){this.StartNewObject(false),this._currentString="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.String));}WriteStringEnd(){this.Assert(this.state==n.Writer.State.String),this._stateStack.pop(),this._addToCurrentObject(this._currentString),this._currentString=null;}WriteStringInner(i,a=true){if(this.Assert(this.state===n.Writer.State.String),i===null){console.error("Warning: trying to write a null string");return}this._currentString+=i;}toString(){return this._jsonObject===null?"":JSON.stringify(this._jsonObject)}StartNewObject(i){i?this.Assert(this.state===n.Writer.State.None||this.state===n.Writer.State.Property||this.state===n.Writer.State.Array):this.Assert(this.state===n.Writer.State.Property||this.state===n.Writer.State.Array),this.state===n.Writer.State.Property&&this.Assert(this.childCount===0),(this.state===n.Writer.State.Array||this.state===n.Writer.State.Property)&&this.IncrementChildCount();}get state(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].type:n.Writer.State.None}get childCount(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].childCount:0}get currentCollection(){return this._collectionStack.length>0?this._collectionStack[this._collectionStack.length-1]:null}get currentPropertyName(){return this._propertyNameStack.length>0?this._propertyNameStack[this._propertyNameStack.length-1]:null}IncrementChildCount(){this.Assert(this._stateStack.length>0);let i=this._stateStack.pop();i.childCount++,this._stateStack.push(i);}Assert(i){if(!i)throw Error("Assert failed while writing JSON")}_addToCurrentObject(i){this.Assert(this.currentCollection!==null),this.state===n.Writer.State.Array?(this.Assert(Array.isArray(this.currentCollection)),this.currentCollection.push(i)):this.state===n.Writer.State.Property&&(this.Assert(!Array.isArray(this.currentCollection)),this.Assert(this.currentPropertyName!==null),this.currentCollection[this.currentPropertyName]=i,this._propertyNameStack.pop());}}n.Writer=t,(function(r){(function(s){s[s.None=0]="None",s[s.Object=1]="Object",s[s.Array=2]="Array",s[s.Property=3]="Property",s[s.PropertyName=4]="PropertyName",s[s.String=5]="String";})(r.State||(r.State={}));class a{constructor(o){this.type=n.Writer.State.None,this.childCount=0,this.type=o;}}r.StateElement=a;})(t=n.Writer||(n.Writer={}));})(ds||(fs.SimpleJson=ds={}));});var p0=E(vu=>{Object.defineProperty(vu,"__esModule",{value:true});vu.Flow=void 0;var f0=yf(),yu=Jr(),KT=Le(),Sf=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new f0.CallStack(t),arguments[2]){let r=arguments[2];this.callStack.SetJsonToken(r.callstack,t),this.outputStream=yu.JsonSerialisation.JArrayToRuntimeObjList(r.outputStream),this.currentChoices=yu.JsonSerialisation.JArrayToRuntimeObjList(r.currentChoices);let i=r.choiceThreads;typeof i<"u"&&this.LoadFlowChoiceThreads(i,t);}else this.outputStream=[],this.currentChoices=[];}WriteJson(e){e.WriteObjectStart(),e.WriteProperty("callstack",r=>this.callStack.WriteJson(r)),e.WriteProperty("outputStream",r=>yu.JsonSerialisation.WriteListRuntimeObjs(r,this.outputStream));let t=false;for(let r of this.currentChoices){if(r.threadAtGeneration===null)return (0, KT.throwNullException)("c.threadAtGeneration");r.originalThreadIndex=r.threadAtGeneration.threadIndex,this.callStack.ThreadWithIndex(r.originalThreadIndex)===null&&(t||(t=true,e.WritePropertyStart("choiceThreads"),e.WriteObjectStart()),e.WritePropertyStart(r.originalThreadIndex),r.threadAtGeneration.WriteJson(e),e.WritePropertyEnd());}t&&(e.WriteObjectEnd(),e.WritePropertyEnd()),e.WriteProperty("currentChoices",r=>{r.WriteArrayStart();for(let i of this.currentChoices)yu.JsonSerialisation.WriteChoice(r,i);r.WriteArrayEnd();}),e.WriteObjectEnd();}LoadFlowChoiceThreads(e,t){for(let r of this.currentChoices){let i=this.callStack.ThreadWithIndex(r.originalThreadIndex);if(i!==null)r.threadAtGeneration=i.Copy();else {let a=e[`${r.originalThreadIndex}`];r.threadAtGeneration=new f0.CallStack.Thread(a,t);}}}};vu.Flow=Sf;});var y0=E(bu=>{Object.defineProperty(bu,"__esModule",{value:true});bu.StoryState=void 0;var XT=yf(),YT=h0(),xe=ve(),wn=Kn(),ZT=au(),Ef=Xo(),m0=st(),Ke=qe(),wf=zn(),Dn=Jr(),QT=Cf(),e1=Un(),zr=Zi(),ps=Ir(),De=ae(),t1=Li(),Et=Le(),n1=cs(),r1=d0(),g0=_f(),Cu=p0(),i1=ut(),Df=class n{ToJson(e=false){let t=new g0.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=g0.SimpleJson.TextToDictionary(e);this.LoadJsonObj(t),this.onDidLoadState!==null&&this.onDidLoadState();}VisitCountAtPathString(e){let t;if(this._patch!==null){let r=this.story.ContentAtPath(new m0.Path(e)).container;if(r===null)throw new Error("Content at path not found: "+e);if(t=this._patch.TryGetVisitCount(r,0),t.exists)return t.result}return t=(0, ps.tryGetValueFromMap)(this._visitCounts,e,null),t.exists?t.result:0}VisitCountForContainer(e){if(e===null)return (0, Et.throwNullException)("container");if(!e.visitsShouldBeCounted)return this.story.Error("Read count for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),0;if(this._patch!==null){let i=this._patch.TryGetVisitCount(e,0);if(i.exists)return i.result}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._visitCounts,t,null);return r.exists?r.result:0}IncrementVisitCountForContainer(e){if(this._patch!==null){let i=this.VisitCountForContainer(e);i++,this._patch.SetVisitCount(e,i);return}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._visitCounts,t,null);r.exists?this._visitCounts.set(t,r.result+1):this._visitCounts.set(t,1);}RecordTurnIndexVisitToContainer(e){if(this._patch!==null){this._patch.SetTurnIndex(e,this.currentTurnIndex);return}let t=e.path.toString();this._turnIndices.set(t,this.currentTurnIndex);}TurnsSinceForContainer(e){if(e.turnIndexShouldBeCounted||this.story.Error("TURNS_SINCE() for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),this._patch!==null){let i=this._patch.TryGetTurnIndex(e,0);if(i.exists)return this.currentTurnIndex-i.result}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._turnIndices,t,0);return r.exists?this.currentTurnIndex-r.result:-1}get callstackDepth(){return this.callStack.depth}get outputStream(){return this._currentFlow.outputStream}get currentChoices(){return this.canContinue?[]:this._currentFlow.currentChoices}get generatedChoices(){return this._currentFlow.currentChoices}get currentErrors(){return this._currentErrors}get currentWarnings(){return this._currentWarnings}get variablesState(){return this._variablesState}set variablesState(e){this._variablesState=e;}get callStack(){return this._currentFlow.callStack}get evaluationStack(){return this._evaluationStack}get currentTurnIndex(){return this._currentTurnIndex}set currentTurnIndex(e){this._currentTurnIndex=e;}get currentPathString(){let e=this.currentPointer;return e.isNull?null:e.path===null?(0, Et.throwNullException)("pointer.path"):e.path.toString()}get previousPathString(){let e=this.previousPointer;return e.isNull?null:e.path===null?(0, Et.throwNullException)("previousPointer.path"):e.path.toString()}get currentPointer(){return this.callStack.currentElement.currentPointer.copy()}set currentPointer(e){this.callStack.currentElement.currentPointer=e.copy();}get previousPointer(){return this.callStack.currentThread.previousPointer.copy()}set previousPointer(e){this.callStack.currentThread.previousPointer=e.copy();}get canContinue(){return !this.currentPointer.isNull&&!this.hasError}get hasError(){return this.currentErrors!=null&&this.currentErrors.length>0}get hasWarning(){return this.currentWarnings!=null&&this.currentWarnings.length>0}get currentText(){if(this._outputStreamTextDirty){let e=new wf.StringBuilder,t=false;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,xe.StringValue);if(!t&&i!==null)e.Append(i.value);else {let a=(0, De.asOrNull)(r,Ke.ControlCommand);a!==null&&(a.commandType==Ke.ControlCommand.CommandType.BeginTag?t=true:a.commandType==Ke.ControlCommand.CommandType.EndTag&&(t=false));}}this._currentText=this.CleanOutputWhitespace(e.toString()),this._outputStreamTextDirty=false;}return this._currentText}CleanOutputWhitespace(e){let t=new wf.StringBuilder,r=-1,i=0;for(let a=0;a<e.length;a++){let s=e.charAt(a),o=s==" "||s==" ";o&&r==-1&&(r=a),o||(s!=`
26
+ `);if(t=="<>")return new t0.Glue;for(let a=0;a<n._controlCommandNames.length;++a){let s=n._controlCommandNames[a];if(t==s)return new ne.ControlCommand(a)}if(t=="L^"&&(t="^"),gf.NativeFunctionCall.CallExistsWithName(t))return gf.NativeFunctionCall.CallWithName(t);if(t=="->->")return ne.ControlCommand.PopTunnel();if(t=="~ret")return ne.ControlCommand.PopFunction();if(t=="void")return new s0.Void}if(typeof e=="object"&&!Array.isArray(e)){let t=e,r;if(t["^->"])return r=t["^->"],new ct.DivertTargetValue(new WT.Path(r.toString()));if(t["^var"]){r=t["^var"];let c=new ct.VariablePointerValue(r.toString());return "ci"in t&&(r=t.ci,c.contextIndex=parseInt(r)),c}let i=false,a=false,s=Gr.PushPopType.Function,o=false;if((r=t["->"])?i=true:(r=t["f()"])?(i=true,a=true,s=Gr.PushPopType.Function):(r=t["->t->"])?(i=true,a=true,s=Gr.PushPopType.Tunnel):(r=t["x()"])&&(i=true,o=true,a=false,s=Gr.PushPopType.Function),i){let c=new n0.Divert;c.pushesToStack=a,c.stackPushType=s,c.isExternal=o;let h=r.toString();return (r=t.var)?c.variableDivertName=h:c.targetPathString=h,c.isConditional=!!t.c,o&&(r=t.exArgs)&&(c.externalArgs=parseInt(r)),c}if(r=t["*"]){let c=new r0.ChoicePoint;return c.pathStringOnChoice=r.toString(),(r=t.flg)&&(c.flags=parseInt(r)),c}if(r=t["VAR?"])return new mf.VariableReference(r.toString());if(r=t["CNT?"]){let c=new mf.VariableReference;return c.pathStringForCount=r.toString(),c}let u=false,l=false;if((r=t["VAR="])?(u=true,l=true):(r=t["temp="])&&(u=true,l=false),u){let c=r.toString(),h=!t.re,p=new i0.VariableAssignment(c,h);return p.isGlobal=l,p}if(t["#"]!==void 0)return r=t["#"],new a0.Tag(r.toString());if(r=t.list){let c=r,h=new cu.InkList;if(r=t.origins){let p=r;h.SetInitialOriginNames(p);}for(let p in c)if(c.hasOwnProperty(p)){let f=c[p],g=new cu.InkListItem(p),y=parseInt(f);h.Add(g,y);}return new ct.ListValue(h)}if(t.originalChoicePath!=null)return this.JObjectToChoice(t)}if(Array.isArray(e))return this.JArrayToContainer(e);if(e==null)return null;throw new Error("Failed to convert token to runtime object: "+this.toJson(e,["parent"]))}static toJson(e,t,r){return JSON.stringify(e,(i,a)=>t?.some(s=>s===i)?void 0:a,r)}static WriteRuntimeContainer(e,t,r=false){if(e.WriteArrayStart(),t===null)return (0, Qn.throwNullException)("container");for(let u of t.content)this.WriteRuntimeObject(e,u);let i=t.namedOnlyContent,a=t.countFlags,s=t.name!=null&&!r,o=i!=null||a>0||s;if(o&&e.WriteObjectStart(),i!=null)for(let[u,l]of i){let c=u,h=(0, we.asOrNull)(l,lu.Container);e.WritePropertyStart(c),this.WriteRuntimeContainer(e,h,true),e.WritePropertyEnd();}a>0&&e.WriteIntProperty("#f",a),s&&e.WriteProperty("#n",t.name),o?e.WriteObjectEnd():e.WriteNull(),e.WriteArrayEnd();}static JArrayToContainer(e){let t=new lu.Container;t.content=this.JArrayToRuntimeObjList(e,true);let r=e[e.length-1];if(r!=null){let i=new Map;for(let a in r)if(a=="#f")t.countFlags=parseInt(r[a]);else if(a=="#n")t.name=r[a].toString();else {let s=this.JTokenToRuntimeObject(r[a]),o=(0, we.asOrNull)(s,lu.Container);o&&(o.name=a),i.set(a,s);}t.namedOnlyContent=i;}return t}static JObjectToChoice(e){let t=new o0.Choice;return t.text=e.text.toString(),t.index=parseInt(e.index),t.sourcePath=e.originalChoicePath.toString(),t.originalThreadIndex=parseInt(e.originalThreadIndex),t.pathStringOnChoice=e.targetPath.toString(),t.tags=this.JArrayToTags(e),t.isInvisibleDefault=!!e.isInvisibleDefault,t}static JArrayToTags(e){return e.tags?e.tags:null}static WriteChoice(e,t){e.WriteObjectStart(),e.WriteProperty("text",t.text),e.WriteIntProperty("index",t.index),e.WriteProperty("originalChoicePath",t.sourcePath),e.WriteIntProperty("originalThreadIndex",t.originalThreadIndex),e.WriteProperty("targetPath",t.pathStringOnChoice),e.WriteProperty("isInvisibleDefault",t.isInvisibleDefault),this.WriteChoiceTags(e,t),e.WriteObjectEnd();}static WriteChoiceTags(e,t){if(t.tags&&t.tags.length>0){e.WritePropertyStart("tags"),e.WriteArrayStart();for(let r of t.tags)e.Write(r);e.WriteArrayEnd(),e.WritePropertyEnd();}}static WriteInkList(e,t){let r=t.value;if(r===null)return (0, Qn.throwNullException)("rawList");e.WriteObjectStart(),e.WritePropertyStart("list"),e.WriteObjectStart();for(let[i,a]of r){let s=cu.InkListItem.fromSerializedKey(i),o=a;if(s.itemName===null)return (0, Qn.throwNullException)("item.itemName");e.WritePropertyNameStart(),e.WritePropertyNameInner(s.originName?s.originName:"?"),e.WritePropertyNameInner("."),e.WritePropertyNameInner(s.itemName),e.WritePropertyNameEnd(),e.Write(o),e.WritePropertyEnd();}if(e.WriteObjectEnd(),e.WritePropertyEnd(),r.Count==0&&r.originNames!=null&&r.originNames.length>0){e.WritePropertyStart("origins"),e.WriteArrayStart();for(let i of r.originNames)e.Write(i);e.WriteArrayEnd(),e.WritePropertyEnd();}e.WriteObjectEnd();}static ListDefinitionsToJToken(e){let t={};for(let r of e.lists){let i={};for(let[a,s]of r.items){let o=cu.InkListItem.fromSerializedKey(a);if(o.itemName===null)return (0, Qn.throwNullException)("item.itemName");i[o.itemName]=s;}t[r.name]=i;}return t}static JTokenToListDefinitions(e){let t=e,r=[];for(let i in t)if(t.hasOwnProperty(i)){let a=i.toString(),s=t[i],o=new Map;for(let l in s)if(t.hasOwnProperty(i)){let c=s[l];o.set(l,parseInt(c));}let u=new MT.ListDefinition(a,o);r.push(u);}return new GT.ListDefinitionsOrigin(r)}};du.JsonSerialisation=hu;hu._controlCommandNames=(()=>{let n=[];n[ne.ControlCommand.CommandType.EvalStart]="ev",n[ne.ControlCommand.CommandType.EvalOutput]="out",n[ne.ControlCommand.CommandType.EvalEnd]="/ev",n[ne.ControlCommand.CommandType.Duplicate]="du",n[ne.ControlCommand.CommandType.PopEvaluatedValue]="pop",n[ne.ControlCommand.CommandType.PopFunction]="~ret",n[ne.ControlCommand.CommandType.PopTunnel]="->->",n[ne.ControlCommand.CommandType.BeginString]="str",n[ne.ControlCommand.CommandType.EndString]="/str",n[ne.ControlCommand.CommandType.NoOp]="nop",n[ne.ControlCommand.CommandType.ChoiceCount]="choiceCnt",n[ne.ControlCommand.CommandType.Turns]="turn",n[ne.ControlCommand.CommandType.TurnsSince]="turns",n[ne.ControlCommand.CommandType.ReadCount]="readc",n[ne.ControlCommand.CommandType.Random]="rnd",n[ne.ControlCommand.CommandType.SeedRandom]="srnd",n[ne.ControlCommand.CommandType.VisitIndex]="visit",n[ne.ControlCommand.CommandType.SequenceShuffleIndex]="seq",n[ne.ControlCommand.CommandType.StartThread]="thread",n[ne.ControlCommand.CommandType.Done]="done",n[ne.ControlCommand.CommandType.End]="end",n[ne.ControlCommand.CommandType.ListFromInt]="listInt",n[ne.ControlCommand.CommandType.ListRange]="range",n[ne.ControlCommand.CommandType.ListRandom]="lrnd",n[ne.ControlCommand.CommandType.BeginTag]="#",n[ne.ControlCommand.CommandType.EndTag]="/#";for(let e=0;e<ne.ControlCommand.CommandType.TOTAL_VALUES;++e)if(n[e]==null)throw new Error("Control command not accounted for in serialisation");return n})();});var Cf=E(ls=>{Object.defineProperty(ls,"__esModule",{value:true});ls.CallStack=void 0;var yf=Kn(),u0=st(),JT=cs(),l0=Jr(),zT=ve(),HT=zn(),os=Zi(),UT=Li(),c0=Ir(),vf=Le(),us=class n{get elements(){return this.callStack}get depth(){return this.elements.length}get currentElement(){let t=this._threads[this._threads.length-1].callstack;return t[t.length-1]}get currentElementIndex(){return this.callStack.length-1}get currentThread(){return this._threads[this._threads.length-1]}set currentThread(e){UT.Debug.Assert(this._threads.length==1,"Shouldn't be directly setting the current thread when we have a stack of them"),this._threads.length=0,this._threads.push(e);}get canPop(){return this.callStack.length>1}constructor(){if(this._threadCounter=0,this._startOfRoot=os.Pointer.Null,arguments[0]instanceof JT.Story){let e=arguments[0];this._startOfRoot=os.Pointer.StartOf(e.rootContentContainer),this.Reset();}else {let e=arguments[0];this._threads=[];for(let t of e._threads)this._threads.push(t.Copy());this._threadCounter=e._threadCounter,this._startOfRoot=e._startOfRoot.copy();}}Reset(){this._threads=[],this._threads.push(new n.Thread),this._threads[0].callstack.push(new n.Element(yf.PushPopType.Tunnel,this._startOfRoot));}SetJsonToken(e,t){this._threads.length=0;let r=e.threads;for(let i of r){let a=i,s=new n.Thread(a,t);this._threads.push(s);}this._threadCounter=parseInt(e.threadCounter),this._startOfRoot=os.Pointer.StartOf(t.rootContentContainer);}WriteJson(e){e.WriteObject(t=>{t.WritePropertyStart("threads"),t.WriteArrayStart();for(let r of this._threads)r.WriteJson(t);t.WriteArrayEnd(),t.WritePropertyEnd(),t.WritePropertyStart("threadCounter"),t.WriteInt(this._threadCounter),t.WritePropertyEnd();});}PushThread(){let e=this.currentThread.Copy();this._threadCounter++,e.threadIndex=this._threadCounter,this._threads.push(e);}ForkThread(){let e=this.currentThread.Copy();return this._threadCounter++,e.threadIndex=this._threadCounter,e}PopThread(){if(this.canPopThread)this._threads.splice(this._threads.indexOf(this.currentThread),1);else throw new Error("Can't pop thread")}get canPopThread(){return this._threads.length>1&&!this.elementIsEvaluateFromGame}get elementIsEvaluateFromGame(){return this.currentElement.type==yf.PushPopType.FunctionEvaluationFromGame}Push(e,t=0,r=0){let i=new n.Element(e,this.currentElement.currentPointer,false);i.evaluationStackHeightWhenPushed=t,i.functionStartInOutputStream=r,this.callStack.push(i);}CanPop(e=null){return this.canPop?e==null?true:this.currentElement.type==e:false}Pop(e=null){if(this.CanPop(e)){this.callStack.pop();return}else throw new Error("Mismatched push/pop in Callstack")}GetTemporaryVariableWithName(e,t=-1){t==-1&&(t=this.currentElementIndex+1);let r=this.callStack[t-1],i=(0, c0.tryGetValueFromMap)(r.temporaryVariables,e,null);return i.exists?i.result:null}SetTemporaryVariable(e,t,r,i=-1){i==-1&&(i=this.currentElementIndex+1);let a=this.callStack[i-1];if(!r&&!a.temporaryVariables.get(e))throw new Error("Could not find temporary variable to set: "+e);let s=(0, c0.tryGetValueFromMap)(a.temporaryVariables,e,null);s.exists&&zT.ListValue.RetainListOriginsForAssignment(s.result,t),a.temporaryVariables.set(e,t);}ContextForVariableNamed(e){return this.currentElement.temporaryVariables.get(e)?this.currentElementIndex+1:0}ThreadWithIndex(e){let t=this._threads.filter(r=>{if(r.threadIndex==e)return r});return t.length>0?t[0]:null}get callStack(){return this.currentThread.callstack}get callStackTrace(){let e=new HT.StringBuilder;for(let t=0;t<this._threads.length;t++){let r=this._threads[t],i=t==this._threads.length-1;e.AppendFormat(`=== THREAD {0}/{1} {2}===
27
+ `,t+1,this._threads.length,i?"(current) ":"");for(let a=0;a<r.callstack.length;a++){r.callstack[a].type==yf.PushPopType.Function?e.Append(" [FUNCTION] "):e.Append(" [TUNNEL] ");let s=r.callstack[a].currentPointer;if(!s.isNull){if(e.Append("<SOMEWHERE IN "),s.container===null)return (0, vf.throwNullException)("pointer.container");e.Append(s.container.path.toString()),e.AppendLine(">");}}}return e.toString()}};ls.CallStack=us;(function(n){class e{constructor(i,a,s=false){this.evaluationStackHeightWhenPushed=0,this.functionStartInOutputStream=0,this.currentPointer=a.copy(),this.inExpressionEvaluation=s,this.temporaryVariables=new Map,this.type=i;}Copy(){let i=new e(this.type,this.currentPointer,this.inExpressionEvaluation);return i.temporaryVariables=new Map(this.temporaryVariables),i.evaluationStackHeightWhenPushed=this.evaluationStackHeightWhenPushed,i.functionStartInOutputStream=this.functionStartInOutputStream,i}}n.Element=e;class t{constructor(){if(this.threadIndex=0,this.previousPointer=os.Pointer.Null,this.callstack=[],arguments[0]&&arguments[1]){let i=arguments[0],a=arguments[1];this.threadIndex=parseInt(i.threadIndex);let s=i.callstack;for(let u of s){let l=u,c=parseInt(l.type),h=os.Pointer.Null,p,f=l.cPath;if(typeof f<"u"){p=f.toString();let _=a.ContentAtPath(new u0.Path(p));if(h.container=_.container,h.index=parseInt(l.idx),_.obj==null)throw new Error("When loading state, internal story location couldn't be found: "+p+". Has the story changed since this save data was created?");_.approximate&&(h.container!==null?a.Warning("When loading state, exact internal story location couldn't be found: '"+p+"', so it was approximated to '"+h.container.path.toString()+"' to recover. Has the story changed since this save data was created?"):a.Warning("When loading state, exact internal story location couldn't be found: '"+p+"' and it may not be recoverable. Has the story changed since this save data was created?"));}let g=!!l.exp,y=new e(c,h,g),C=l.temp;typeof C<"u"?y.temporaryVariables=l0.JsonSerialisation.JObjectToDictionaryRuntimeObjs(C):y.temporaryVariables.clear(),this.callstack.push(y);}let o=i.previousContentObject;if(typeof o<"u"){let u=new u0.Path(o.toString());this.previousPointer=a.PointerAtPath(u);}}}Copy(){let i=new t;i.threadIndex=this.threadIndex;for(let a of this.callstack)i.callstack.push(a.Copy());return i.previousPointer=this.previousPointer.copy(),i}WriteJson(i){i.WriteObjectStart(),i.WritePropertyStart("callstack"),i.WriteArrayStart();for(let a of this.callstack){if(i.WriteObjectStart(),!a.currentPointer.isNull){if(a.currentPointer.container===null)return (0, vf.throwNullException)("el.currentPointer.container");i.WriteProperty("cPath",a.currentPointer.container.path.componentsString),i.WriteIntProperty("idx",a.currentPointer.index);}i.WriteProperty("exp",a.inExpressionEvaluation),i.WriteIntProperty("type",a.type),a.temporaryVariables.size>0&&(i.WritePropertyStart("temp"),l0.JsonSerialisation.WriteDictionaryRuntimeObjs(i,a.temporaryVariables),i.WritePropertyEnd()),i.WriteObjectEnd();}if(i.WriteArrayEnd(),i.WritePropertyEnd(),i.WriteIntProperty("threadIndex",this.threadIndex),!this.previousPointer.isNull){let a=this.previousPointer.Resolve();if(a===null)return (0, vf.throwNullException)("this.previousPointer.Resolve()");i.WriteProperty("previousContentObject",a.path.toString());}i.WriteObjectEnd();}}n.Thread=t;})(us||(ls.CallStack=us={}));});var d0=E(pu=>{Object.defineProperty(pu,"__esModule",{value:true});pu.VariablesState=void 0;var ke=ve(),KT=Bi(),h0=Jr(),Be=ae(),hs=Ir(),En=Le();function XT(){return class{}}var fu=class n extends XT(){variableChangedEvent(e,t){for(let r of this.variableChangedEventCallbacks)r(e,t);}StartVariableObservation(){this._batchObservingVariableChanges=true,this._changedVariablesForBatchObs=new Set;}CompleteVariableObservation(){this._batchObservingVariableChanges=false;let e=new Map;if(this._changedVariablesForBatchObs!=null)for(let t of this._changedVariablesForBatchObs){let r=this._globalVariables.get(t);this.variableChangedEvent(t,r);}if(this.patch!=null)for(let t of this.patch.changedVariables){let r=this.patch.TryGetGlobal(t,null);r.exists&&e.set(t,r);}return this._changedVariablesForBatchObs=null,e}NotifyObservers(e){for(let[t,r]of e)this.variableChangedEvent(t,r);}get callStack(){return this._callStack}set callStack(e){this._callStack=e;}$(e,t){if(typeof t>"u"){let r=null;return this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists)?r.result.valueObject:(r=this._globalVariables.get(e),typeof r>"u"&&(r=this._defaultGlobalVariables.get(e)),typeof r<"u"?r.valueObject:null)}else {if(typeof this._defaultGlobalVariables.get(e)>"u")throw new KT.StoryException("Cannot assign to a variable ("+e+") that hasn't been declared in the story");let r=ke.Value.Create(t);if(r==null)throw t==null?new Error("Cannot pass null to VariableState"):new Error("Invalid value passed to VariableState: "+t.toString());this.SetGlobal(e,r);}}constructor(e,t){super(),this.variableChangedEventCallbacks=[],this.patch=null,this._defaultGlobalVariables=new Map,this._changedVariablesForBatchObs=new Set,this._batchObservingVariableChanges=false,this._globalVariables=new Map,this._callStack=e,this._listDefsOrigin=t;try{return new Proxy(this,{get(i,a){return a in i?i[a]:i.$(a)},set(i,a,s){return a in i?i[a]=s:i.$(a,s),!0},ownKeys(i){return [...new Set([...i._defaultGlobalVariables.keys(),...i._globalVariables.keys()])]},getOwnPropertyDescriptor(i,a){return {enumerable:!0,configurable:!0,value:i.$(a)}}})}catch{}}ApplyPatch(){if(this.patch===null)return (0, En.throwNullException)("this.patch");for(let[e,t]of this.patch.globals)this._globalVariables.set(e,t);if(this._changedVariablesForBatchObs!==null)for(let e of this.patch.changedVariables)this._changedVariablesForBatchObs.add(e);this.patch=null;}SetJsonToken(e){this._globalVariables.clear();for(let[t,r]of this._defaultGlobalVariables){let i=e[t];if(typeof i<"u"){let a=h0.JsonSerialisation.JTokenToRuntimeObject(i);if(a===null)return (0, En.throwNullException)("tokenInkObject");this._globalVariables.set(t,a);}else this._globalVariables.set(t,r);}}WriteJson(e){e.WriteObjectStart();for(let[t,r]of this._globalVariables){let i=t,a=r;if(n.dontSaveDefaultValues&&this._defaultGlobalVariables.has(i)){let s=this._defaultGlobalVariables.get(i);if(this.RuntimeObjectsEqual(a,s))continue}e.WritePropertyStart(i),h0.JsonSerialisation.WriteRuntimeObject(e,a),e.WritePropertyEnd();}e.WriteObjectEnd();}RuntimeObjectsEqual(e,t){if(e===null)return (0, En.throwNullException)("obj1");if(t===null)return (0, En.throwNullException)("obj2");if(e.constructor!==t.constructor)return false;let r=(0, Be.asOrNull)(e,ke.BoolValue);if(r!==null)return r.value===(0, Be.asOrThrows)(t,ke.BoolValue).value;let i=(0, Be.asOrNull)(e,ke.IntValue);if(i!==null)return i.value===(0, Be.asOrThrows)(t,ke.IntValue).value;let a=(0, Be.asOrNull)(e,ke.FloatValue);if(a!==null)return a.value===(0, Be.asOrThrows)(t,ke.FloatValue).value;let s=(0, Be.asOrNull)(e,ke.Value),o=(0, Be.asOrNull)(t,ke.Value);if(s!==null&&o!==null)return (0, Be.isEquatable)(s.valueObject)&&(0, Be.isEquatable)(o.valueObject)?s.valueObject.Equals(o.valueObject):s.valueObject===o.valueObject;throw new Error("FastRoughDefinitelyEquals: Unsupported runtime object type: "+e.constructor.name)}GetVariableWithName(e,t=-1){let r=this.GetRawVariableWithName(e,t),i=(0, Be.asOrNull)(r,ke.VariablePointerValue);return i!==null&&(r=this.ValueAtVariablePointer(i)),r}TryGetDefaultVariableValue(e){let t=(0, hs.tryGetValueFromMap)(this._defaultGlobalVariables,e,null);return t.exists?t.result:null}GlobalVariableExistsWithName(e){return this._globalVariables.has(e)||this._defaultGlobalVariables!==null&&this._defaultGlobalVariables.has(e)}GetRawVariableWithName(e,t){let r=null;if(t==0||t==-1){let i=null;if(this.patch!==null&&(i=this.patch.TryGetGlobal(e,null),i.exists)||(i=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null),i.exists)||this._defaultGlobalVariables!==null&&(i=(0, hs.tryGetValueFromMap)(this._defaultGlobalVariables,e,null),i.exists))return i.result;if(this._listDefsOrigin===null)return (0, En.throwNullException)("VariablesState._listDefsOrigin");let a=this._listDefsOrigin.FindSingleItemListWithName(e);if(a)return a}return r=this._callStack.GetTemporaryVariableWithName(e,t),r}ValueAtVariablePointer(e){return this.GetVariableWithName(e.variableName,e.contextIndex)}Assign(e,t){let r=e.variableName;if(r===null)return (0, En.throwNullException)("name");let i=-1,a=false;if(e.isNewDeclaration?a=e.isGlobal:a=this.GlobalVariableExistsWithName(r),e.isNewDeclaration){let s=(0, Be.asOrNull)(t,ke.VariablePointerValue);s!==null&&(t=this.ResolveVariablePointer(s));}else {let s=null;do s=(0, Be.asOrNull)(this.GetRawVariableWithName(r,i),ke.VariablePointerValue),s!=null&&(r=s.variableName,i=s.contextIndex,a=i==0);while(s!=null)}a?this.SetGlobal(r,t):this._callStack.SetTemporaryVariable(r,t,e.isNewDeclaration,i);}SnapshotDefaultGlobals(){this._defaultGlobalVariables=new Map(this._globalVariables);}RetainListOriginsForAssignment(e,t){let r=(0, Be.asOrThrows)(e,ke.ListValue),i=(0, Be.asOrThrows)(t,ke.ListValue);r.value&&i.value&&i.value.Count==0&&i.value.SetInitialOriginNames(r.value.originNames);}SetGlobal(e,t){let r=null;if(this.patch===null&&(r=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null)),this.patch!==null&&(r=this.patch.TryGetGlobal(e,null),r.exists||(r=(0, hs.tryGetValueFromMap)(this._globalVariables,e,null))),ke.ListValue.RetainListOriginsForAssignment(r.result,t),e===null)return (0, En.throwNullException)("variableName");if(this.patch!==null?this.patch.SetGlobal(e,t):this._globalVariables.set(e,t),this.variableChangedEvent!==null&&r!==null&&t!==r.result)if(this._batchObservingVariableChanges){if(this._changedVariablesForBatchObs===null)return (0, En.throwNullException)("this._changedVariablesForBatchObs");this.patch!==null?this.patch.AddChangedVariable(e):this._changedVariablesForBatchObs!==null&&this._changedVariablesForBatchObs.add(e);}else this.variableChangedEvent(e,t);}ResolveVariablePointer(e){let t=e.contextIndex;t==-1&&(t=this.GetContextIndexOfVariableNamed(e.variableName));let r=this.GetRawVariableWithName(e.variableName,t),i=(0, Be.asOrNull)(r,ke.VariablePointerValue);return i??new ke.VariablePointerValue(e.variableName,t)}GetContextIndexOfVariableNamed(e){return this.GlobalVariableExistsWithName(e)?0:this._callStack.currentElementIndex}ObserveVariableChange(e){this.variableChangedEventCallbacks.push(e);}};pu.VariablesState=fu;fu.dontSaveDefaultValues=true;});var _f=E(mu=>{Object.defineProperty(mu,"__esModule",{value:true});mu.PRNG=void 0;var bf=class{constructor(e){this.seed=e%2147483647,this.seed<=0&&(this.seed+=2147483646);}next(){return this.seed=this.seed*48271%2147483647}nextFloat(){return (this.next()-1)/2147483646}};mu.PRNG=bf;});var f0=E(gu=>{Object.defineProperty(gu,"__esModule",{value:true});gu.StatePatch=void 0;var Sf=class{get globals(){return this._globals}get changedVariables(){return this._changedVariables}get visitCounts(){return this._visitCounts}get turnIndices(){return this._turnIndices}constructor(){if(this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map,arguments.length===1&&arguments[0]!==null){let e=arguments[0];this._globals=new Map(e._globals),this._changedVariables=new Set(e._changedVariables),this._visitCounts=new Map(e._visitCounts),this._turnIndices=new Map(e._turnIndices);}else this._globals=new Map,this._changedVariables=new Set,this._visitCounts=new Map,this._turnIndices=new Map;}TryGetGlobal(e,t){return e!==null&&this._globals.has(e)?{result:this._globals.get(e),exists:true}:{result:t,exists:false}}SetGlobal(e,t){this._globals.set(e,t);}AddChangedVariable(e){return this._changedVariables.add(e)}TryGetVisitCount(e,t){return this._visitCounts.has(e)?{result:this._visitCounts.get(e),exists:true}:{result:t,exists:false}}SetVisitCount(e,t){this._visitCounts.set(e,t);}SetTurnIndex(e,t){this._turnIndices.set(e,t);}TryGetTurnIndex(e,t){return this._turnIndices.has(e)?{result:this._turnIndices.get(e),exists:true}:{result:t,exists:false}}};gu.StatePatch=Sf;});var Ef=E(fs=>{Object.defineProperty(fs,"__esModule",{value:true});fs.SimpleJson=void 0;var ds=class n{static TextToDictionary(e){return new n.Reader(e).ToDictionary()}static TextToArray(e){return new n.Reader(e).ToArray()}};fs.SimpleJson=ds;(function(n){class e{constructor(i){if(JSON.parse("0",(s,o,u)=>u!=null)){let s=(o,u,l)=>Number.isInteger(u)&&l.source.endsWith(".0")?l.source+"f":u;this._rootObject=JSON.parse(i,s);}else {let s=i.replace(/(,\s*)([0-9]+\.[0]+)([,]*)/g,'$1"$2f"$3');this._rootObject=JSON.parse(s);}}ToDictionary(){return this._rootObject}ToArray(){return this._rootObject}}n.Reader=e;class t{constructor(){this._currentPropertyName=null,this._currentString=null,this._stateStack=[],this._collectionStack=[],this._propertyNameStack=[],this._jsonObject=null;}WriteObject(i){this.WriteObjectStart(),i(this),this.WriteObjectEnd();}WriteObjectStart(){this.StartNewObject(true);let i={};if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Object));}WriteObjectEnd(){this.Assert(this.state===n.Writer.State.Object),this._collectionStack.pop(),this._stateStack.pop();}WriteProperty(i,a){if(this.WritePropertyStart(i),arguments[1]instanceof Function){let s=arguments[1];s(this);}else {let s=arguments[1];this.Write(s);}this.WritePropertyEnd();}WriteIntProperty(i,a){this.WritePropertyStart(i),this.WriteInt(a),this.WritePropertyEnd();}WriteFloatProperty(i,a){this.WritePropertyStart(i),this.WriteFloat(a),this.WritePropertyEnd();}WritePropertyStart(i){this.Assert(this.state===n.Writer.State.Object),this._propertyNameStack.push(i),this.IncrementChildCount(),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property));}WritePropertyEnd(){this.Assert(this.state===n.Writer.State.Property),this.Assert(this.childCount===1),this._stateStack.pop();}WritePropertyNameStart(){this.Assert(this.state===n.Writer.State.Object),this.IncrementChildCount(),this._currentPropertyName="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Property)),this._stateStack.push(new n.Writer.StateElement(n.Writer.State.PropertyName));}WritePropertyNameEnd(){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._propertyNameStack.push(this._currentPropertyName),this._currentPropertyName=null,this._stateStack.pop();}WritePropertyNameInner(i){this.Assert(this.state===n.Writer.State.PropertyName),this.Assert(this._currentPropertyName!==null),this._currentPropertyName+=i;}WriteArrayStart(){this.StartNewObject(true);let i=[];if(this.state===n.Writer.State.Property){this.Assert(this.currentCollection!==null),this.Assert(this.currentPropertyName!==null);let a=this._propertyNameStack.pop();this.currentCollection[a]=i,this._collectionStack.push(i);}else this.state===n.Writer.State.Array?(this.Assert(this.currentCollection!==null),this.currentCollection.push(i),this._collectionStack.push(i)):(this.Assert(this.state===n.Writer.State.None),this._jsonObject=i,this._collectionStack.push(i));this._stateStack.push(new n.Writer.StateElement(n.Writer.State.Array));}WriteArrayEnd(){this.Assert(this.state===n.Writer.State.Array),this._collectionStack.pop(),this._stateStack.pop();}Write(i,a=true){if(i===null){console.error("Warning: trying to write a null value");return}this.StartNewObject(false),this._addToCurrentObject(i);}WriteBool(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(i));}WriteInt(i){i!==null&&(this.StartNewObject(false),this._addToCurrentObject(Math.floor(i)));}WriteFloat(i){i!==null&&(this.StartNewObject(false),i==Number.POSITIVE_INFINITY?this._addToCurrentObject(34e37):i==Number.NEGATIVE_INFINITY?this._addToCurrentObject(-34e37):isNaN(i)?this._addToCurrentObject(0):this._addToCurrentObject(i));}WriteNull(){this.StartNewObject(false),this._addToCurrentObject(null);}WriteStringStart(){this.StartNewObject(false),this._currentString="",this._stateStack.push(new n.Writer.StateElement(n.Writer.State.String));}WriteStringEnd(){this.Assert(this.state==n.Writer.State.String),this._stateStack.pop(),this._addToCurrentObject(this._currentString),this._currentString=null;}WriteStringInner(i,a=true){if(this.Assert(this.state===n.Writer.State.String),i===null){console.error("Warning: trying to write a null string");return}this._currentString+=i;}toString(){return this._jsonObject===null?"":JSON.stringify(this._jsonObject)}StartNewObject(i){i?this.Assert(this.state===n.Writer.State.None||this.state===n.Writer.State.Property||this.state===n.Writer.State.Array):this.Assert(this.state===n.Writer.State.Property||this.state===n.Writer.State.Array),this.state===n.Writer.State.Property&&this.Assert(this.childCount===0),(this.state===n.Writer.State.Array||this.state===n.Writer.State.Property)&&this.IncrementChildCount();}get state(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].type:n.Writer.State.None}get childCount(){return this._stateStack.length>0?this._stateStack[this._stateStack.length-1].childCount:0}get currentCollection(){return this._collectionStack.length>0?this._collectionStack[this._collectionStack.length-1]:null}get currentPropertyName(){return this._propertyNameStack.length>0?this._propertyNameStack[this._propertyNameStack.length-1]:null}IncrementChildCount(){this.Assert(this._stateStack.length>0);let i=this._stateStack.pop();i.childCount++,this._stateStack.push(i);}Assert(i){if(!i)throw Error("Assert failed while writing JSON")}_addToCurrentObject(i){this.Assert(this.currentCollection!==null),this.state===n.Writer.State.Array?(this.Assert(Array.isArray(this.currentCollection)),this.currentCollection.push(i)):this.state===n.Writer.State.Property&&(this.Assert(!Array.isArray(this.currentCollection)),this.Assert(this.currentPropertyName!==null),this.currentCollection[this.currentPropertyName]=i,this._propertyNameStack.pop());}}n.Writer=t,(function(r){(function(s){s[s.None=0]="None",s[s.Object=1]="Object",s[s.Array=2]="Array",s[s.Property=3]="Property",s[s.PropertyName=4]="PropertyName",s[s.String=5]="String";})(r.State||(r.State={}));class a{constructor(o){this.type=n.Writer.State.None,this.childCount=0,this.type=o;}}r.StateElement=a;})(t=n.Writer||(n.Writer={}));})(ds||(fs.SimpleJson=ds={}));});var m0=E(vu=>{Object.defineProperty(vu,"__esModule",{value:true});vu.Flow=void 0;var p0=Cf(),yu=Jr(),YT=Le(),wf=class{constructor(){let e=arguments[0],t=arguments[1];if(this.name=e,this.callStack=new p0.CallStack(t),arguments[2]){let r=arguments[2];this.callStack.SetJsonToken(r.callstack,t),this.outputStream=yu.JsonSerialisation.JArrayToRuntimeObjList(r.outputStream),this.currentChoices=yu.JsonSerialisation.JArrayToRuntimeObjList(r.currentChoices);let i=r.choiceThreads;typeof i<"u"&&this.LoadFlowChoiceThreads(i,t);}else this.outputStream=[],this.currentChoices=[];}WriteJson(e){e.WriteObjectStart(),e.WriteProperty("callstack",r=>this.callStack.WriteJson(r)),e.WriteProperty("outputStream",r=>yu.JsonSerialisation.WriteListRuntimeObjs(r,this.outputStream));let t=false;for(let r of this.currentChoices){if(r.threadAtGeneration===null)return (0, YT.throwNullException)("c.threadAtGeneration");r.originalThreadIndex=r.threadAtGeneration.threadIndex,this.callStack.ThreadWithIndex(r.originalThreadIndex)===null&&(t||(t=true,e.WritePropertyStart("choiceThreads"),e.WriteObjectStart()),e.WritePropertyStart(r.originalThreadIndex),r.threadAtGeneration.WriteJson(e),e.WritePropertyEnd());}t&&(e.WriteObjectEnd(),e.WritePropertyEnd()),e.WriteProperty("currentChoices",r=>{r.WriteArrayStart();for(let i of this.currentChoices)yu.JsonSerialisation.WriteChoice(r,i);r.WriteArrayEnd();}),e.WriteObjectEnd();}LoadFlowChoiceThreads(e,t){for(let r of this.currentChoices){let i=this.callStack.ThreadWithIndex(r.originalThreadIndex);if(i!==null)r.threadAtGeneration=i.Copy();else {let a=e[`${r.originalThreadIndex}`];r.threadAtGeneration=new p0.CallStack.Thread(a,t);}}}};vu.Flow=wf;});var v0=E(bu=>{Object.defineProperty(bu,"__esModule",{value:true});bu.StoryState=void 0;var ZT=Cf(),QT=d0(),xe=ve(),wn=Kn(),e1=au(),Df=Xo(),g0=st(),Ke=qe(),Af=zn(),Dn=Jr(),t1=_f(),n1=Un(),zr=Zi(),ps=Ir(),De=ae(),r1=Li(),Et=Le(),i1=cs(),s1=f0(),y0=Ef(),Cu=m0(),a1=ut(),Pf=class n{ToJson(e=false){let t=new y0.SimpleJson.Writer;return this.WriteJson(t),t.toString()}toJson(e=false){return this.ToJson(e)}LoadJson(e){let t=y0.SimpleJson.TextToDictionary(e);this.LoadJsonObj(t),this.onDidLoadState!==null&&this.onDidLoadState();}VisitCountAtPathString(e){let t;if(this._patch!==null){let r=this.story.ContentAtPath(new g0.Path(e)).container;if(r===null)throw new Error("Content at path not found: "+e);if(t=this._patch.TryGetVisitCount(r,0),t.exists)return t.result}return t=(0, ps.tryGetValueFromMap)(this._visitCounts,e,null),t.exists?t.result:0}VisitCountForContainer(e){if(e===null)return (0, Et.throwNullException)("container");if(!e.visitsShouldBeCounted)return this.story.Error("Read count for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),0;if(this._patch!==null){let i=this._patch.TryGetVisitCount(e,0);if(i.exists)return i.result}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._visitCounts,t,null);return r.exists?r.result:0}IncrementVisitCountForContainer(e){if(this._patch!==null){let i=this.VisitCountForContainer(e);i++,this._patch.SetVisitCount(e,i);return}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._visitCounts,t,null);r.exists?this._visitCounts.set(t,r.result+1):this._visitCounts.set(t,1);}RecordTurnIndexVisitToContainer(e){if(this._patch!==null){this._patch.SetTurnIndex(e,this.currentTurnIndex);return}let t=e.path.toString();this._turnIndices.set(t,this.currentTurnIndex);}TurnsSinceForContainer(e){if(e.turnIndexShouldBeCounted||this.story.Error("TURNS_SINCE() for target ("+e.name+" - on "+e.debugMetadata+") unknown. The story may need to be compiled with countAllVisits flag (-c)."),this._patch!==null){let i=this._patch.TryGetTurnIndex(e,0);if(i.exists)return this.currentTurnIndex-i.result}let t=e.path.toString(),r=(0, ps.tryGetValueFromMap)(this._turnIndices,t,0);return r.exists?this.currentTurnIndex-r.result:-1}get callstackDepth(){return this.callStack.depth}get outputStream(){return this._currentFlow.outputStream}get currentChoices(){return this.canContinue?[]:this._currentFlow.currentChoices}get generatedChoices(){return this._currentFlow.currentChoices}get currentErrors(){return this._currentErrors}get currentWarnings(){return this._currentWarnings}get variablesState(){return this._variablesState}set variablesState(e){this._variablesState=e;}get callStack(){return this._currentFlow.callStack}get evaluationStack(){return this._evaluationStack}get currentTurnIndex(){return this._currentTurnIndex}set currentTurnIndex(e){this._currentTurnIndex=e;}get currentPathString(){let e=this.currentPointer;return e.isNull?null:e.path===null?(0, Et.throwNullException)("pointer.path"):e.path.toString()}get previousPathString(){let e=this.previousPointer;return e.isNull?null:e.path===null?(0, Et.throwNullException)("previousPointer.path"):e.path.toString()}get currentPointer(){return this.callStack.currentElement.currentPointer.copy()}set currentPointer(e){this.callStack.currentElement.currentPointer=e.copy();}get previousPointer(){return this.callStack.currentThread.previousPointer.copy()}set previousPointer(e){this.callStack.currentThread.previousPointer=e.copy();}get canContinue(){return !this.currentPointer.isNull&&!this.hasError}get hasError(){return this.currentErrors!=null&&this.currentErrors.length>0}get hasWarning(){return this.currentWarnings!=null&&this.currentWarnings.length>0}get currentText(){if(this._outputStreamTextDirty){let e=new Af.StringBuilder,t=false;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,xe.StringValue);if(!t&&i!==null)e.Append(i.value);else {let a=(0, De.asOrNull)(r,Ke.ControlCommand);a!==null&&(a.commandType==Ke.ControlCommand.CommandType.BeginTag?t=true:a.commandType==Ke.ControlCommand.CommandType.EndTag&&(t=false));}}this._currentText=this.CleanOutputWhitespace(e.toString()),this._outputStreamTextDirty=false;}return this._currentText}CleanOutputWhitespace(e){let t=new Af.StringBuilder,r=-1,i=0;for(let a=0;a<e.length;a++){let s=e.charAt(a),o=s==" "||s==" ";o&&r==-1&&(r=a),o||(s!=`
28
28
  `&&r>0&&r!=i&&t.Append(" "),r=-1),s==`
29
- `&&(i=a+1),o||t.Append(s);}return t.toString()}get currentTags(){if(this._outputStreamTagsDirty){this._currentTags=[];let e=false,t=new wf.StringBuilder;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,Ke.ControlCommand);if(i!=null){if(i.commandType==Ke.ControlCommand.CommandType.BeginTag){if(e&&t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=true;}else if(i.commandType==Ke.ControlCommand.CommandType.EndTag){if(t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=false;}}else if(e){let a=(0, De.asOrNull)(r,xe.StringValue);a!==null&&t.Append(a.value);}else {let a=(0, De.asOrNull)(r,ZT.Tag);a!=null&&a.text!=null&&a.text.length>0&&this._currentTags.push(a.text);}}if(t.Length>0){let r=this.CleanOutputWhitespace(t.toString());this._currentTags.push(r),t.Clear();}this._outputStreamTagsDirty=false;}return this._currentTags}get currentFlowName(){return this._currentFlow.name}get currentFlowIsDefaultFlow(){return this._currentFlow.name==this.kDefaultFlowName}get aliveFlowNames(){if(this._aliveFlowNamesDirty){if(this._aliveFlowNames=[],this._namedFlows!=null)for(let e of this._namedFlows.keys())e!=this.kDefaultFlowName&&this._aliveFlowNames.push(e);this._aliveFlowNamesDirty=false;}return this._aliveFlowNames}get inExpressionEvaluation(){return this.callStack.currentElement.inExpressionEvaluation}set inExpressionEvaluation(e){this.callStack.currentElement.inExpressionEvaluation=e;}constructor(e){this.kInkSaveStateVersion=10,this.kMinCompatibleLoadVersion=8,this.onDidLoadState=null,this._currentErrors=null,this._currentWarnings=null,this.divertedPointer=zr.Pointer.Null,this._currentTurnIndex=0,this.storySeed=0,this.previousRandom=0,this.didSafeExit=false,this._currentText=null,this._currentTags=null,this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true,this._patch=null,this._aliveFlowNames=null,this._namedFlows=null,this.kDefaultFlowName="DEFAULT_FLOW",this._aliveFlowNamesDirty=true,this.story=e,this._currentFlow=new Cu.Flow(this.kDefaultFlowName,e),this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this._evaluationStack=[],this._variablesState=new YT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new QT.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=zr.Pointer.StartOf(this.story.mainContentContainer);}SwitchFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.SwitchFlow");if(this._namedFlows===null&&(this._namedFlows=new Map,this._namedFlows.set(this.kDefaultFlowName,this._currentFlow)),e===this._currentFlow.name)return;let t,r=(0, ps.tryGetValueFromMap)(this._namedFlows,e,null);r.exists?t=r.result:(t=new Cu.Flow(e,this.story),this._namedFlows.set(e,t),this._aliveFlowNamesDirty=true),this._currentFlow=t,this.variablesState.callStack=this._currentFlow.callStack,this.OutputStreamDirty();}SwitchToDefaultFlow_Internal(){this._namedFlows!==null&&this.SwitchFlow_Internal(this.kDefaultFlowName);}RemoveFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.DestroyFlow");if(e===this.kDefaultFlowName)throw new Error("Cannot destroy default flow");if(this._currentFlow.name===e&&this.SwitchToDefaultFlow_Internal(),this._namedFlows===null)return (0, Et.throwNullException)("this._namedFlows");this._namedFlows.delete(e),this._aliveFlowNamesDirty=true;}CopyAndStartPatching(e){let t=new n(this.story);if(t._patch=new r1.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new XT.CallStack(this._currentFlow.callStack),t._currentFlow.outputStream.push(...this._currentFlow.outputStream),t.OutputStreamDirty(),e)for(let r of this._currentFlow.currentChoices)t._currentFlow.currentChoices.push(r.Clone());else t._currentFlow.currentChoices.push(...this._currentFlow.currentChoices);if(this._namedFlows!==null){t._namedFlows=new Map;for(let[r,i]of this._namedFlows)t._namedFlows.set(r,i),t._aliveFlowNamesDirty=true;t._namedFlows.set(this._currentFlow.name,t._currentFlow);}return this.hasError&&(t._currentErrors=[],t._currentErrors.push(...this.currentErrors||[])),this.hasWarning&&(t._currentWarnings=[],t._currentWarnings.push(...this.currentWarnings||[])),t.variablesState=this.variablesState,t.variablesState.callStack=t.callStack,t.variablesState.patch=t._patch,t.evaluationStack.push(...this.evaluationStack),this.divertedPointer.isNull||(t.divertedPointer=this.divertedPointer.copy()),t.previousPointer=this.previousPointer.copy(),t._visitCounts=this._visitCounts,t._turnIndices=this._turnIndices,t.currentTurnIndex=this.currentTurnIndex,t.storySeed=this.storySeed,t.previousRandom=this.previousRandom,t.didSafeExit=this.didSafeExit,t}RestoreAfterPatch(){this.variablesState.callStack=this.callStack,this.variablesState.patch=this._patch;}ApplyAnyPatch(){if(this._patch!==null){this.variablesState.ApplyPatch();for(let[e,t]of this._patch.visitCounts)this.ApplyCountChanges(e,t,true);for(let[e,t]of this._patch.turnIndices)this.ApplyCountChanges(e,t,false);this._patch=null;}}ApplyCountChanges(e,t,r){(r?this._visitCounts:this._turnIndices).set(e.path.toString(),t);}WriteJson(e){if(e.WriteObjectStart(),e.WritePropertyStart("flows"),e.WriteObjectStart(),this._namedFlows!==null)for(let[t,r]of this._namedFlows)e.WriteProperty(t,i=>r.WriteJson(i));else e.WriteProperty(this._currentFlow.name,t=>this._currentFlow.WriteJson(t));if(e.WriteObjectEnd(),e.WritePropertyEnd(),e.WriteProperty("currentFlowName",this._currentFlow.name),e.WriteProperty("variablesState",t=>this.variablesState.WriteJson(t)),e.WriteProperty("evalStack",t=>Dn.JsonSerialisation.WriteListRuntimeObjs(t,this.evaluationStack)),!this.divertedPointer.isNull){if(this.divertedPointer.path===null)return (0, Et.throwNullException)("divertedPointer");e.WriteProperty("currentDivertTarget",this.divertedPointer.path.componentsString);}e.WriteProperty("visitCounts",t=>Dn.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>Dn.JsonSerialisation.WriteIntDictionary(t,this._turnIndices)),e.WriteIntProperty("turnIdx",this.currentTurnIndex),e.WriteIntProperty("storySeed",this.storySeed),e.WriteIntProperty("previousRandom",this.previousRandom),e.WriteIntProperty("inkSaveVersion",this.kInkSaveStateVersion),e.WriteIntProperty("inkFormatVersion",n1.Story.inkVersionCurrent),e.WriteObjectEnd();}LoadJsonObj(e){let t=e,r=t.inkSaveVersion;if(r==null)throw new Error("ink save format incorrect, can't load.");if(parseInt(r)<this.kMinCompatibleLoadVersion)throw new Error("Ink save format isn't compatible with the current version (saw '"+r+"', but minimum is "+this.kMinCompatibleLoadVersion+"), so can't load.");let i=t.flows;if(i!=null){let s=i;Object.keys(s).length===1?this._namedFlows=null:this._namedFlows===null?this._namedFlows=new Map:this._namedFlows.clear();let o=Object.entries(s);for(let[u,l]of o){let c=u,h=l,f=new Cu.Flow(c,this.story,h);if(Object.keys(s).length===1)this._currentFlow=new Cu.Flow(c,this.story,h);else {if(this._namedFlows===null)return (0, Et.throwNullException)("this._namedFlows");this._namedFlows.set(c,f);}}if(this._namedFlows!=null&&this._namedFlows.size>1){let u=t.currentFlowName;this._currentFlow=this._namedFlows.get(u);}}else {this._namedFlows=null,this._currentFlow.name=this.kDefaultFlowName,this._currentFlow.callStack.SetJsonToken(t.callstackThreads,this.story),this._currentFlow.outputStream=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.currentChoices);let s=t.choiceThreads;this._currentFlow.LoadFlowChoiceThreads(s,this.story);}this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this.variablesState.SetJsonToken(t.variablesState),this.variablesState.callStack=this._currentFlow.callStack,this._evaluationStack=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new m0.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=Dn.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=Dn.JsonSerialisation.JObjectToIntDictionary(t.turnIndices),this.currentTurnIndex=parseInt(t.turnIdx),this.storySeed=parseInt(t.storySeed),this.previousRandom=parseInt(t.previousRandom);}ResetErrors(){this._currentErrors=null,this._currentWarnings=null;}ResetOutput(e=null){this.outputStream.length=0,e!==null&&this.outputStream.push(...e),this.OutputStreamDirty();}PushToOutputStream(e){let t=(0, De.asOrNull)(e,xe.StringValue);if(t!==null){let r=this.TrySplittingHeadTailWhitespace(t);if(r!==null){for(let i of r)this.PushToOutputStreamIndividual(i);this.OutputStreamDirty();return}}this.PushToOutputStreamIndividual(e),this.OutputStreamDirty();}PopFromOutputStream(e){this.outputStream.splice(this.outputStream.length-e,e),this.OutputStreamDirty();}TrySplittingHeadTailWhitespace(e){let t=e.value;if(t===null)return (0, Et.throwNullException)("single.value");let r=-1,i=-1;for(let c=0;c<t.length;c++){let h=t[c];if(h==`
29
+ `&&(i=a+1),o||t.Append(s);}return t.toString()}get currentTags(){if(this._outputStreamTagsDirty){this._currentTags=[];let e=false,t=new Af.StringBuilder;for(let r of this.outputStream){let i=(0, De.asOrNull)(r,Ke.ControlCommand);if(i!=null){if(i.commandType==Ke.ControlCommand.CommandType.BeginTag){if(e&&t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=true;}else if(i.commandType==Ke.ControlCommand.CommandType.EndTag){if(t.Length>0){let a=this.CleanOutputWhitespace(t.toString());this._currentTags.push(a),t.Clear();}e=false;}}else if(e){let a=(0, De.asOrNull)(r,xe.StringValue);a!==null&&t.Append(a.value);}else {let a=(0, De.asOrNull)(r,e1.Tag);a!=null&&a.text!=null&&a.text.length>0&&this._currentTags.push(a.text);}}if(t.Length>0){let r=this.CleanOutputWhitespace(t.toString());this._currentTags.push(r),t.Clear();}this._outputStreamTagsDirty=false;}return this._currentTags}get currentFlowName(){return this._currentFlow.name}get currentFlowIsDefaultFlow(){return this._currentFlow.name==this.kDefaultFlowName}get aliveFlowNames(){if(this._aliveFlowNamesDirty){if(this._aliveFlowNames=[],this._namedFlows!=null)for(let e of this._namedFlows.keys())e!=this.kDefaultFlowName&&this._aliveFlowNames.push(e);this._aliveFlowNamesDirty=false;}return this._aliveFlowNames}get inExpressionEvaluation(){return this.callStack.currentElement.inExpressionEvaluation}set inExpressionEvaluation(e){this.callStack.currentElement.inExpressionEvaluation=e;}constructor(e){this.kInkSaveStateVersion=10,this.kMinCompatibleLoadVersion=8,this.onDidLoadState=null,this._currentErrors=null,this._currentWarnings=null,this.divertedPointer=zr.Pointer.Null,this._currentTurnIndex=0,this.storySeed=0,this.previousRandom=0,this.didSafeExit=false,this._currentText=null,this._currentTags=null,this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true,this._patch=null,this._aliveFlowNames=null,this._namedFlows=null,this.kDefaultFlowName="DEFAULT_FLOW",this._aliveFlowNamesDirty=true,this.story=e,this._currentFlow=new Cu.Flow(this.kDefaultFlowName,e),this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this._evaluationStack=[],this._variablesState=new QT.VariablesState(this.callStack,e.listDefinitions),this._visitCounts=new Map,this._turnIndices=new Map,this.currentTurnIndex=-1;let t=new Date().getTime();this.storySeed=new t1.PRNG(t).next()%100,this.previousRandom=0,this.GoToStart();}GoToStart(){this.callStack.currentElement.currentPointer=zr.Pointer.StartOf(this.story.mainContentContainer);}SwitchFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.SwitchFlow");if(this._namedFlows===null&&(this._namedFlows=new Map,this._namedFlows.set(this.kDefaultFlowName,this._currentFlow)),e===this._currentFlow.name)return;let t,r=(0, ps.tryGetValueFromMap)(this._namedFlows,e,null);r.exists?t=r.result:(t=new Cu.Flow(e,this.story),this._namedFlows.set(e,t),this._aliveFlowNamesDirty=true),this._currentFlow=t,this.variablesState.callStack=this._currentFlow.callStack,this.OutputStreamDirty();}SwitchToDefaultFlow_Internal(){this._namedFlows!==null&&this.SwitchFlow_Internal(this.kDefaultFlowName);}RemoveFlow_Internal(e){if(e===null)throw new Error("Must pass a non-null string to Story.DestroyFlow");if(e===this.kDefaultFlowName)throw new Error("Cannot destroy default flow");if(this._currentFlow.name===e&&this.SwitchToDefaultFlow_Internal(),this._namedFlows===null)return (0, Et.throwNullException)("this._namedFlows");this._namedFlows.delete(e),this._aliveFlowNamesDirty=true;}CopyAndStartPatching(e){let t=new n(this.story);if(t._patch=new s1.StatePatch(this._patch),t._currentFlow.name=this._currentFlow.name,t._currentFlow.callStack=new ZT.CallStack(this._currentFlow.callStack),t._currentFlow.outputStream.push(...this._currentFlow.outputStream),t.OutputStreamDirty(),e)for(let r of this._currentFlow.currentChoices)t._currentFlow.currentChoices.push(r.Clone());else t._currentFlow.currentChoices.push(...this._currentFlow.currentChoices);if(this._namedFlows!==null){t._namedFlows=new Map;for(let[r,i]of this._namedFlows)t._namedFlows.set(r,i),t._aliveFlowNamesDirty=true;t._namedFlows.set(this._currentFlow.name,t._currentFlow);}return this.hasError&&(t._currentErrors=[],t._currentErrors.push(...this.currentErrors||[])),this.hasWarning&&(t._currentWarnings=[],t._currentWarnings.push(...this.currentWarnings||[])),t.variablesState=this.variablesState,t.variablesState.callStack=t.callStack,t.variablesState.patch=t._patch,t.evaluationStack.push(...this.evaluationStack),this.divertedPointer.isNull||(t.divertedPointer=this.divertedPointer.copy()),t.previousPointer=this.previousPointer.copy(),t._visitCounts=this._visitCounts,t._turnIndices=this._turnIndices,t.currentTurnIndex=this.currentTurnIndex,t.storySeed=this.storySeed,t.previousRandom=this.previousRandom,t.didSafeExit=this.didSafeExit,t}RestoreAfterPatch(){this.variablesState.callStack=this.callStack,this.variablesState.patch=this._patch;}ApplyAnyPatch(){if(this._patch!==null){this.variablesState.ApplyPatch();for(let[e,t]of this._patch.visitCounts)this.ApplyCountChanges(e,t,true);for(let[e,t]of this._patch.turnIndices)this.ApplyCountChanges(e,t,false);this._patch=null;}}ApplyCountChanges(e,t,r){(r?this._visitCounts:this._turnIndices).set(e.path.toString(),t);}WriteJson(e){if(e.WriteObjectStart(),e.WritePropertyStart("flows"),e.WriteObjectStart(),this._namedFlows!==null)for(let[t,r]of this._namedFlows)e.WriteProperty(t,i=>r.WriteJson(i));else e.WriteProperty(this._currentFlow.name,t=>this._currentFlow.WriteJson(t));if(e.WriteObjectEnd(),e.WritePropertyEnd(),e.WriteProperty("currentFlowName",this._currentFlow.name),e.WriteProperty("variablesState",t=>this.variablesState.WriteJson(t)),e.WriteProperty("evalStack",t=>Dn.JsonSerialisation.WriteListRuntimeObjs(t,this.evaluationStack)),!this.divertedPointer.isNull){if(this.divertedPointer.path===null)return (0, Et.throwNullException)("divertedPointer");e.WriteProperty("currentDivertTarget",this.divertedPointer.path.componentsString);}e.WriteProperty("visitCounts",t=>Dn.JsonSerialisation.WriteIntDictionary(t,this._visitCounts)),e.WriteProperty("turnIndices",t=>Dn.JsonSerialisation.WriteIntDictionary(t,this._turnIndices)),e.WriteIntProperty("turnIdx",this.currentTurnIndex),e.WriteIntProperty("storySeed",this.storySeed),e.WriteIntProperty("previousRandom",this.previousRandom),e.WriteIntProperty("inkSaveVersion",this.kInkSaveStateVersion),e.WriteIntProperty("inkFormatVersion",i1.Story.inkVersionCurrent),e.WriteObjectEnd();}LoadJsonObj(e){let t=e,r=t.inkSaveVersion;if(r==null)throw new Error("ink save format incorrect, can't load.");if(parseInt(r)<this.kMinCompatibleLoadVersion)throw new Error("Ink save format isn't compatible with the current version (saw '"+r+"', but minimum is "+this.kMinCompatibleLoadVersion+"), so can't load.");let i=t.flows;if(i!=null){let s=i;Object.keys(s).length===1?this._namedFlows=null:this._namedFlows===null?this._namedFlows=new Map:this._namedFlows.clear();let o=Object.entries(s);for(let[u,l]of o){let c=u,h=l,p=new Cu.Flow(c,this.story,h);if(Object.keys(s).length===1)this._currentFlow=new Cu.Flow(c,this.story,h);else {if(this._namedFlows===null)return (0, Et.throwNullException)("this._namedFlows");this._namedFlows.set(c,p);}}if(this._namedFlows!=null&&this._namedFlows.size>1){let u=t.currentFlowName;this._currentFlow=this._namedFlows.get(u);}}else {this._namedFlows=null,this._currentFlow.name=this.kDefaultFlowName,this._currentFlow.callStack.SetJsonToken(t.callstackThreads,this.story),this._currentFlow.outputStream=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.outputStream),this._currentFlow.currentChoices=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.currentChoices);let s=t.choiceThreads;this._currentFlow.LoadFlowChoiceThreads(s,this.story);}this.OutputStreamDirty(),this._aliveFlowNamesDirty=true,this.variablesState.SetJsonToken(t.variablesState),this.variablesState.callStack=this._currentFlow.callStack,this._evaluationStack=Dn.JsonSerialisation.JArrayToRuntimeObjList(t.evalStack);let a=t.currentDivertTarget;if(a!=null){let s=new g0.Path(a.toString());this.divertedPointer=this.story.PointerAtPath(s);}this._visitCounts=Dn.JsonSerialisation.JObjectToIntDictionary(t.visitCounts),this._turnIndices=Dn.JsonSerialisation.JObjectToIntDictionary(t.turnIndices),this.currentTurnIndex=parseInt(t.turnIdx),this.storySeed=parseInt(t.storySeed),this.previousRandom=parseInt(t.previousRandom);}ResetErrors(){this._currentErrors=null,this._currentWarnings=null;}ResetOutput(e=null){this.outputStream.length=0,e!==null&&this.outputStream.push(...e),this.OutputStreamDirty();}PushToOutputStream(e){let t=(0, De.asOrNull)(e,xe.StringValue);if(t!==null){let r=this.TrySplittingHeadTailWhitespace(t);if(r!==null){for(let i of r)this.PushToOutputStreamIndividual(i);this.OutputStreamDirty();return}}this.PushToOutputStreamIndividual(e),this.OutputStreamDirty();}PopFromOutputStream(e){this.outputStream.splice(this.outputStream.length-e,e),this.OutputStreamDirty();}TrySplittingHeadTailWhitespace(e){let t=e.value;if(t===null)return (0, Et.throwNullException)("single.value");let r=-1,i=-1;for(let c=0;c<t.length;c++){let h=t[c];if(h==`
30
30
  `)r==-1&&(r=c),i=c;else {if(h==" "||h==" ")continue;break}}let a=-1,s=-1;for(let c=t.length-1;c>=0;c--){let h=t[c];if(h==`
31
31
  `)a==-1&&(a=c),s=c;else {if(h==" "||h==" ")continue;break}}if(r==-1&&a==-1)return null;let o=[],u=0,l=t.length;if(r!=-1){if(r>0){let c=new xe.StringValue(t.substring(0,r));o.push(c);}o.push(new xe.StringValue(`
32
32
  `)),u=i+1;}if(a!=-1&&(l=s),l>u){let c=t.substring(u,l);o.push(new xe.StringValue(c));}if(a!=-1&&s>i&&(o.push(new xe.StringValue(`
33
- `)),a<t.length-1)){let c=t.length-a-1,h=new xe.StringValue(t.substring(a+1,a+1+c));o.push(h);}return o}PushToOutputStreamIndividual(e){let t=(0, De.asOrNull)(e,Ef.Glue),r=(0, De.asOrNull)(e,xe.StringValue),i=true;if(t)this.TrimNewlinesFromOutputStream(),i=true;else if(r){let a=-1,s=this.callStack.currentElement;s.type==wn.PushPopType.Function&&(a=s.functionStartInOutputStream);let o=-1;for(let l=this.outputStream.length-1;l>=0;l--){let c=this.outputStream[l],h=c instanceof Ke.ControlCommand?c:null;if((c instanceof Ef.Glue?c:null)!=null){o=l;break}else if(h!=null&&h.commandType==Ke.ControlCommand.CommandType.BeginString){l>=a&&(a=-1);break}}let u=-1;if(o!=-1&&a!=-1?u=Math.min(a,o):o!=-1?u=o:u=a,u!=-1){if(r.isNewline)i=false;else if(r.isNonWhitespace&&(o>-1&&this.RemoveExistingGlue(),a>-1)){let l=this.callStack.elements;for(let c=l.length-1;c>=0;c--){let h=l[c];if(h.type==wn.PushPopType.Function)h.functionStartInOutputStream=-1;else break}}}else r.isNewline&&(this.outputStreamEndsInNewline||!this.outputStreamContainsContent)&&(i=false);}if(i){if(e===null)return (0, Et.throwNullException)("obj");this.outputStream.push(e),this.OutputStreamDirty();}}TrimNewlinesFromOutputStream(){let e=-1,t=this.outputStream.length-1;for(;t>=0;){let r=this.outputStream[t],i=(0, De.asOrNull)(r,Ke.ControlCommand),a=(0, De.asOrNull)(r,xe.StringValue);if(i!=null||a!=null&&a.isNonWhitespace)break;a!=null&&a.isNewline&&(e=t),t--;}if(e>=0)for(t=e;t<this.outputStream.length;)(0, De.asOrNull)(this.outputStream[t],xe.StringValue)?this.outputStream.splice(t,1):t++;this.OutputStreamDirty();}RemoveExistingGlue(){for(let e=this.outputStream.length-1;e>=0;e--){let t=this.outputStream[e];if(t instanceof Ef.Glue)this.outputStream.splice(e,1);else if(t instanceof Ke.ControlCommand)break}this.OutputStreamDirty();}get outputStreamEndsInNewline(){if(this.outputStream.length>0)for(let e=this.outputStream.length-1;e>=0&&!(this.outputStream[e]instanceof Ke.ControlCommand);e--){let r=this.outputStream[e];if(r instanceof xe.StringValue){if(r.isNewline)return true;if(r.isNonWhitespace)break}}return false}get outputStreamContainsContent(){for(let e of this.outputStream)if(e instanceof xe.StringValue)return true;return false}get inStringEvaluation(){for(let e=this.outputStream.length-1;e>=0;e--){let t=(0, De.asOrNull)(this.outputStream[e],Ke.ControlCommand);if(t instanceof Ke.ControlCommand&&t.commandType==Ke.ControlCommand.CommandType.BeginString)return true}return false}PushEvaluationStack(e){let t=(0, De.asOrNull)(e,xe.ListValue);if(t){let r=t.value;if(r===null)return (0, Et.throwNullException)("rawList");if(r.originNames!=null){r.origins||(r.origins=[]),r.origins.length=0;for(let i of r.originNames){if(this.story.listDefinitions===null)return (0, Et.throwNullException)("StoryState.story.listDefinitions");let a=this.story.listDefinitions.TryListGetDefinition(i,null);if(a.result===null)return (0, Et.throwNullException)("StoryState def.result");r.origins.indexOf(a.result)<0&&r.origins.push(a.result);}}}if(e===null)return (0, Et.throwNullException)("obj");this.evaluationStack.push(e);}PopEvaluationStack(e){if(typeof e>"u"){let t=this.evaluationStack.pop();return (0, De.nullIfUndefined)(t)}else {if(e>this.evaluationStack.length)throw new Error("trying to pop too many objects");let t=this.evaluationStack.splice(this.evaluationStack.length-e,e);return (0, De.nullIfUndefined)(t)}}PeekEvaluationStack(){return this.evaluationStack[this.evaluationStack.length-1]}ForceEnd(){this.callStack.Reset(),this._currentFlow.currentChoices.length=0,this.currentPointer=zr.Pointer.Null,this.previousPointer=zr.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){t1.Debug.Assert(this.callStack.currentElement.type==wn.PushPopType.Function);let e=this.callStack.currentElement.functionStartInOutputStream;e==-1&&(e=0);for(let t=this.outputStream.length-1;t>=e;t--){let r=this.outputStream[t],i=(0, De.asOrNull)(r,xe.StringValue),a=(0, De.asOrNull)(r,Ke.ControlCommand);if(i!=null){if(a)break;if(i.isNewline||i.isInlineWhitespace)this.outputStream.splice(t,1),this.OutputStreamDirty();else break}}}PopCallStack(e=null){this.callStack.currentElement.type==wn.PushPopType.Function&&this.TrimWhitespaceFromFunctionEnd(),this.callStack.Pop(e);}SetChosenPath(e,t){this._currentFlow.currentChoices.length=0;let r=this.story.PointerAtPath(e);!r.isNull&&r.index==-1&&(r.index=0),this.currentPointer=r,t&&this.currentTurnIndex++;}StartFunctionEvaluationFromGame(e,t){this.callStack.Push(wn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=zr.Pointer.StartOf(e),this.PassArgumentsToEvaluationStack(t);}PassArgumentsToEvaluationStack(e){if(e!==null)for(let t=0;t<e.length;t++){if(!(typeof e[t]=="number"||typeof e[t]=="string"||typeof e[t]=="boolean"||e[t]instanceof i1.InkList))throw new Error("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must benumber, string, bool or InkList. Argument was "+((0, De.nullIfUndefined)(e[t])===null?"null":e[t].constructor.name));this.PushEvaluationStack(xe.Value.Create(e[t]));}}TryExitFunctionEvaluationFromGame(){return this.callStack.currentElement.type==wn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=zr.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=wn.PushPopType.FunctionEvaluationFromGame)throw new Error("Expected external function evaluation to be complete. Stack trace: "+this.callStack.callStackTrace);let e=this.callStack.currentElement.evaluationStackHeightWhenPushed,t=null;for(;this.evaluationStack.length>e;){let r=this.PopEvaluationStack();t===null&&(t=r);}if(this.PopCallStack(wn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof e1.Void)return null;let r=(0, De.asOrThrows)(t,xe.Value);return r.valueType==xe.ValueType.DivertTarget?"-> "+r.valueObject.toString():r.valueObject}return null}AddError(e,t){t?(this._currentWarnings==null&&(this._currentWarnings=[]),this._currentWarnings.push(e)):(this._currentErrors==null&&(this._currentErrors=[]),this._currentErrors.push(e));}OutputStreamDirty(){this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true;}};bu.StoryState=Df;});var v0=E(_u=>{Object.defineProperty(_u,"__esModule",{value:true});_u.Stopwatch=void 0;var Af=class{constructor(){this.startTime=void 0;}get ElapsedMilliseconds(){return typeof this.startTime>"u"?0:new Date().getTime()-this.startTime}Start(){this.startTime=new Date().getTime();}Stop(){this.startTime=void 0;}};_u.Stopwatch=Af;});var b0=E(Su=>{Object.defineProperty(Su,"__esModule",{value:true});Su.ErrorType=void 0;var C0;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(C0||(Su.ErrorType=C0={}));});var cs=E(nr=>{Object.defineProperty(nr,"__esModule",{value:true});nr.Story=nr.InkList=void 0;var We=Ee(),Pf=at(),Of=Jr(),s1=y0(),B=qe(),wt=Kn(),a1=Wa(),o1=cf(),_0=Mt(),k=ve(),xf=st(),ms=Un(),Eu=au(),u1=bn(),l1=Wr(),c1=Wt(),er=Bi(),Tf=Cf(),tr=zn(),h1=df(),d1=v0(),An=Zi(),gs=ut(),G=ae(),ie=Le(),S0=_f(),E0=b0(),f1=ut();Object.defineProperty(nr,"InkList",{enumerable:true,get:function(){return f1.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Hr=class n extends Pf.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, ie.throwNullException)("this._state");for(let t of this._state.currentChoices)t.isInvisibleDefault||(t.index=e.length,e.push(t));return e}get currentText(){return this.IfAsyncWeCant("call currentText since it's a work in progress"),this.state.currentText}get currentTags(){return this.IfAsyncWeCant("call currentTags since it's a work in progress"),this.state.currentTags}get currentErrors(){return this.state.currentErrors}get currentWarnings(){return this.state.currentWarnings}get currentFlowName(){return this.state.currentFlowName}get currentFlowIsDefaultFlow(){return this.state.currentFlowIsDefaultFlow}get aliveFlowNames(){return this.state.aliveFlowNames}get hasError(){return this.state.hasError}get hasWarning(){return this.state.hasWarning}get variablesState(){return this.state.variablesState}get listDefinitions(){return this._listDefinitions}get state(){return this._state}StartProfiling(){}EndProfiling(){}constructor(){super(),this.inkVersionMinimumCompatible=18,this.onError=null,this.onDidContinue=null,this.onMakeChoice=null,this.onEvaluateFunction=null,this.onCompleteEvaluateFunction=null,this.onChoosePathString=null,this._prevContainers=[],this.allowExternalFunctionFallbacks=false,this._listDefinitions=null,this._variableObservers=null,this._hasValidatedExternals=false,this._temporaryEvaluationContainer=null,this._asyncContinueActive=false,this._stateSnapshotAtLastNewline=null,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount=0,this._asyncSaving=false,this._profiler=null;let e,t=null,r=null;if(arguments[0]instanceof We.Container)e=arguments[0],typeof arguments[1]<"u"&&(t=arguments[1]),this._mainContentContainer=e;else if(typeof arguments[0]=="string"){let i=arguments[0];r=S0.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new h1.ListDefinitionsOrigin(t)),this._externals=new Map,r!==null){let i=r,a=i.inkVersion;if(a==null)throw new Error("ink version number not found. Are you sure it's a valid .ink.json file?");let s=parseInt(a);if(s>n.inkVersionCurrent)throw new Error("Version of ink used to build story was newer than the current version of the engine");if(s<this.inkVersionMinimumCompatible)throw new Error("Version of ink used to build story is too old to be loaded by this version of the engine");s!=n.inkVersionCurrent&&console.warn(`WARNING: Version of ink ${n.inkVersionCurrent} used to build story doesn't match current version of engine (${s}). Non-critical, but recommend synchronising.`);let o=i.root;if(o==null)throw new Error("Root node for ink not found. Are you sure it's a valid .ink.json file?");let u;(u=i.listDefs)&&(this._listDefinitions=Of.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, G.asOrThrows)(Of.JsonSerialisation.JTokenToRuntimeObject(o),We.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new S0.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>Of.JsonSerialisation.WriteRuntimeContainer(r,this._mainContentContainer)),this._listDefinitions!=null){e.WritePropertyStart("listDefs"),e.WriteObjectStart();for(let r of this._listDefinitions.lists){e.WritePropertyStart(r.name),e.WriteObjectStart();for(let[i,a]of r.items){let s=gs.InkListItem.fromSerializedKey(i),o=a;e.WriteIntProperty(s.itemName,o);}e.WriteObjectEnd(),e.WritePropertyEnd();}e.WriteObjectEnd(),e.WritePropertyEnd();}if(e.WriteObjectEnd(),t)return e.toString()}ResetState(){this.IfAsyncWeCant("ResetState"),this._state=new s1.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, ie.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, ie.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new xf.Path("global decl"),false),this.ContinueInternal(),this.state.currentPointer=e;}this.state.variablesState.SnapshotDefaultGlobals();}SwitchFlow(e){if(this.IfAsyncWeCant("switch flow"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't switch flow to "+e);this.state.SwitchFlow_Internal(e);}RemoveFlow(e){this.state.RemoveFlow_Internal(e);}SwitchToDefaultFlow(){this.state.SwitchToDefaultFlow_Internal();}Continue(){return this.ContinueAsync(0),this.currentText}get canContinue(){return this.state.canContinue}get asyncContinueComplete(){return !this._asyncContinueActive}ContinueAsync(e){this._hasValidatedExternals||this.ValidateExternalBindings(),this.ContinueInternal(e);}ContinueInternal(e=0){this._profiler!=null&&this._profiler.PreContinue();let t=e>0;if(this._recursiveContinueCount++,this._asyncContinueActive)this._asyncContinueActive&&!t&&(this._asyncContinueActive=false);else {if(this._asyncContinueActive=t,!this.canContinue)throw new Error("Can't continue - should check canContinue before calling Continue");this._state.didSafeExit=false,this._state.ResetOutput(),this._recursiveContinueCount==1&&this._state.variablesState.StartVariableObservation();}let r=new d1.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof er.StoryException))throw s;this.AddError(s.message,void 0,s.useEndLineNumber);break}if(i||this._asyncContinueActive&&r.ElapsedMilliseconds>e)break}while(this.canContinue);r.Stop();let a=null;if((i||!this.canContinue)&&(this._stateSnapshotAtLastNewline!==null&&this.RestoreStateSnapshot(),this.canContinue||(this.state.callStack.canPopThread&&this.AddError("Thread available to pop, threads should always be flat by the end of evaluation?"),this.state.generatedChoices.length==0&&!this.state.didSafeExit&&this._temporaryEvaluationContainer==null&&(this.state.callStack.CanPop(wt.PushPopType.Tunnel)?this.AddError("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"):this.state.callStack.CanPop(wt.PushPopType.Function)?this.AddError("unexpectedly reached end of content. Do you need a '~ return'?"):this.state.callStack.canPop?this.AddError("unexpectedly reached end of content for unknown reason. Please debug compiler!"):this.AddError("ran out of content. Do you need a '-> DONE' or '-> END'?"))),this.state.didSafeExit=false,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount==1&&(a=this._state.variablesState.CompleteVariableObservation()),this._asyncContinueActive=false,this.onDidContinue!==null&&this.onDidContinue()),this._recursiveContinueCount--,this._profiler!=null&&this._profiler.PostContinue(),this.state.hasError||this.state.hasWarning)if(this.onError!==null){if(this.state.hasError)for(let s of this.state.currentErrors)this.onError(s,E0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,E0.ErrorType.Warning);this.ResetErrors();}else {let s=new tr.StringBuilder;throw s.Append("Ink had "),this.state.hasError&&(s.Append(`${this.state.currentErrors.length}`),s.Append(this.state.currentErrors.length==1?" error":" errors"),this.state.hasWarning&&s.Append(" and ")),this.state.hasWarning&&(s.Append(`${this.state.currentWarnings.length}`),s.Append(this.state.currentWarnings.length==1?" warning":" warnings"),this.state.hasWarning&&s.Append(" and ")),s.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "),s.Append(this.state.hasError?this.state.currentErrors[0]:this.state.currentWarnings[0]),new er.StoryException(s.toString())}a!=null&&Object.keys(a).length>0&&this._state.variablesState.NotifyObservers(a);}ContinueSingleStep(){if(this._profiler!=null&&this._profiler.PreStep(),this.Step(),this._profiler!=null&&this._profiler.PostStep(),!this.canContinue&&!this.state.callStack.elementIsEvaluateFromGame&&this.TryFollowDefaultInvisibleChoice(),this._profiler!=null&&this._profiler.PreSnapshot(),!this.state.inStringEvaluation){if(this._stateSnapshotAtLastNewline!==null){if(this._stateSnapshotAtLastNewline.currentTags===null)return (0, ie.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, ie.throwNullException)("this.state.currentTags");let e=this.CalculateNewlineOutputStateChange(this._stateSnapshotAtLastNewline.currentText,this.state.currentText,this._stateSnapshotAtLastNewline.currentTags.length,this.state.currentTags.length);if(e==n.OutputStateChange.ExtendedBeyondNewline||this._sawLookaheadUnsafeFunctionAfterNewline)return this.RestoreStateSnapshot(),true;e==n.OutputStateChange.NewlineRemoved&&this.DiscardSnapshot();}this.state.outputStreamEndsInNewline&&(this.canContinue?this._stateSnapshotAtLastNewline==null&&this.StateSnapshot():this.DiscardSnapshot());}return this._profiler!=null&&this._profiler.PostSnapshot(),false}CalculateNewlineOutputStateChange(e,t,r,i){if(e===null)return (0, ie.throwNullException)("prevText");if(t===null)return (0, ie.throwNullException)("currText");let a=t.length>=e.length&&e.length>0&&t.charAt(e.length-1)==`
34
- `;if(r==i&&e.length==t.length&&a)return n.OutputStateChange.NoChange;if(!a)return n.OutputStateChange.NewlineRemoved;if(i>r)return n.OutputStateChange.ExtendedBeyondNewline;for(let s=e.length;s<t.length;s++){let o=t.charAt(s);if(o!=" "&&o!=" ")return n.OutputStateChange.ExtendedBeyondNewline}return n.OutputStateChange.NoChange}ContinueMaximally(){this.IfAsyncWeCant("ContinueMaximally");let e=new tr.StringBuilder;for(;this.canContinue;)e.Append(this.Continue());return e.toString()}ContentAtPath(e){return this.mainContentContainer.ContentAtPath(e)}KnotContainerWithName(e){let t=this.mainContentContainer.namedContent.get(e);return t instanceof We.Container?t:null}PointerAtPath(e){if(e.length==0)return An.Pointer.Null;let t=new An.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, ie.throwNullException)("path.lastComponent"):(e.lastComponent.isIndex?(r=e.length-1,i=this.mainContentContainer.ContentAtPath(e,void 0,r),t.container=i.container,t.index=e.lastComponent.index):(i=this.mainContentContainer.ContentAtPath(e),t.container=i.container,t.index=-1),i.obj==null||i.obj==this.mainContentContainer&&r>0?this.Error("Failed to find content at path '"+e+"', and no approximation of it was possible."):i.approximate&&this.Warning("Failed to find content at path '"+e+"', so it was approximated to: '"+i.obj.path+"'."),t)}StateSnapshot(){this._stateSnapshotAtLastNewline=this._state,this._state=this._state.CopyAndStartPatching(false);}RestoreStateSnapshot(){this._stateSnapshotAtLastNewline===null&&(0, ie.throwNullException)("_stateSnapshotAtLastNewline"),this._stateSnapshotAtLastNewline.RestoreAfterPatch(),this._state=this._stateSnapshotAtLastNewline,this._stateSnapshotAtLastNewline=null,this._asyncSaving||this._state.ApplyAnyPatch();}DiscardSnapshot(){this._asyncSaving||this._state.ApplyAnyPatch(),this._stateSnapshotAtLastNewline=null;}CopyStateForBackgroundThreadSave(){if(this.IfAsyncWeCant("start saving on a background thread"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!");let e=this._state;return this._state=this._state.CopyAndStartPatching(true),this._asyncSaving=true,e}BackgroundSaveComplete(){this._stateSnapshotAtLastNewline===null&&this._state.ApplyAnyPatch(),this._asyncSaving=false;}Step(){let e=true,t=this.state.currentPointer.copy();if(t.isNull)return;let r=(0, G.asOrNull)(t.Resolve(),We.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=An.Pointer.StartOf(r),r=(0, G.asOrNull)(t.Resolve(),We.Container);this.state.currentPointer=t.copy(),this._profiler!=null&&this._profiler.Step(this.state.callStack);let i=t.Resolve(),a=this.PerformLogicAndFlowControl(i);if(this.state.currentPointer.isNull)return;a&&(e=false);let s=(0, G.asOrNull)(i,a1.ChoicePoint);if(s){let u=this.ProcessChoice(s);u&&this.state.generatedChoices.push(u),i=null,e=false;}if(i instanceof We.Container&&(e=false),e){let u=(0, G.asOrNull)(i,k.VariablePointerValue);if(u&&u.contextIndex==-1){let l=this.state.callStack.ContextForVariableNamed(u.variableName);i=new k.VariablePointerValue(u.variableName,l);}this.state.inExpressionEvaluation?this.state.PushEvaluationStack(i):this.state.PushToOutputStream(i);}this.NextContent();let o=(0, G.asOrNull)(i,B.ControlCommand);o&&o.commandType==B.ControlCommand.CommandType.StartThread&&this.state.callStack.PushThread();}VisitContainer(e,t){(!e.countingAtStartOnly||t)&&(e.visitsShouldBeCounted&&this.state.IncrementVisitCountForContainer(e),e.turnIndexShouldBeCounted&&this.state.RecordTurnIndexVisitToContainer(e));}VisitChangedContainersDueToDivert(){let e=this.state.previousPointer.copy(),t=this.state.currentPointer.copy();if(t.isNull||t.index==-1)return;if(this._prevContainers.length=0,!e.isNull){let s=e.Resolve(),o=(0, G.asOrNull)(s,We.Container)||(0, G.asOrNull)(e.container,We.Container);for(;o;)this._prevContainers.push(o),o=(0, G.asOrNull)(o.parent,We.Container);}let r=t.Resolve();if(r==null)return;let i=(0, G.asOrNull)(r.parent,We.Container),a=true;for(;i&&(this._prevContainers.indexOf(i)<0||i.countingAtStartOnly);){let s=i.content.length>0&&r==i.content[0]&&a;s||(a=false),this.VisitContainer(i,s),r=i,i=(0, G.asOrNull)(i.parent,We.Container);}}PopChoiceStringAndTags(e){let t=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.StringValue);for(;this.state.evaluationStack.length>0&&(0, G.asOrNull)(this.state.PeekEvaluationStack(),Eu.Tag)!=null;){let r=(0, G.asOrNull)(this.state.PopEvaluationStack(),Eu.Tag);r&&e.push(r.text);}return t.value}ProcessChoice(e){let t=true;if(e.hasCondition){let o=this.state.PopEvaluationStack();this.IsTruthy(o)||(t=false);}let r="",i="",a=[];if(e.hasChoiceOnlyContent&&(i=this.PopChoiceStringAndTags(a)||""),e.hasStartContent&&(r=this.PopChoiceStringAndTags(a)||""),e.onceOnly&&this.state.VisitCountForContainer(e.choiceTarget)>0&&(t=false),!t)return null;let s=new o1.Choice;return s.targetPath=e.pathOnChoice,s.sourcePath=e.path.toString(),s.isInvisibleDefault=e.isInvisibleDefault,s.threadAtGeneration=this.state.callStack.ForkThread(),s.tags=a.reverse(),s.text=(r+i).replace(/^[ \t]+|[ \t]+$/g,""),s}IsTruthy(e){let t=false;if(e instanceof k.Value){let r=e;if(r instanceof k.DivertTargetValue){let i=r;return this.Error("Shouldn't use a divert target (to "+i.targetPath+") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"),false}return r.isTruthy}return t}PerformLogicAndFlowControl(e){if(e==null)return false;if(e instanceof _0.Divert){let t=e;if(t.isConditional){let r=this.state.PopEvaluationStack();if(!this.IsTruthy(r))return true}if(t.hasVariableTarget){let r=t.variableDivertName,i=this.state.variablesState.GetVariableWithName(r);if(i==null)this.Error("Tried to divert using a target from a variable that could not be found ("+r+")");else if(!(i instanceof k.DivertTargetValue)){let s=(0, G.asOrNull)(i,k.IntValue),o="Tried to divert to a target from a variable, but the variable ("+r+") didn't contain a divert target, it ";s instanceof k.IntValue&&s.value==0?o+="was empty/null (the value 0).":o+="contained '"+i+"'.",this.Error(o);}let a=(0, G.asOrThrows)(i,k.DivertTargetValue);this.state.divertedPointer=this.PointerAtPath(a.targetPath);}else {if(t.isExternal)return this.CallExternalFunction(t.targetPathString,t.externalArgs),true;this.state.divertedPointer=t.targetPointer.copy();}return t.pushesToStack&&this.state.callStack.Push(t.stackPushType,void 0,this.state.outputStream.length),this.state.divertedPointer.isNull&&!t.isExternal&&(t&&t.debugMetadata&&t.debugMetadata.sourceName!=null?this.Error("Divert target doesn't exist: "+t.debugMetadata.sourceName):this.Error("Divert resolution failed: "+t)),true}else if(e instanceof B.ControlCommand){let t=e;switch(t.commandType){case B.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case B.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.EvalOutput:if(this.state.evaluationStack.length>0){let p=this.state.PopEvaluationStack();if(!(p instanceof ms.Void)){let C=new k.StringValue(p.toString());this.state.PushToOutputStream(C);}}break;case B.ControlCommand.CommandType.NoOp:break;case B.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case B.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case B.ControlCommand.CommandType.PopFunction:case B.ControlCommand.CommandType.PopTunnel:let r=t.commandType==B.ControlCommand.CommandType.PopFunction?wt.PushPopType.Function:wt.PushPopType.Tunnel,i=null;if(r==wt.PushPopType.Tunnel){let p=this.state.PopEvaluationStack();i=(0, G.asOrNull)(p,k.DivertTargetValue),i===null&&this.Assert(p instanceof ms.Void,"Expected void if ->-> doesn't override target");}if(this.state.TryExitFunctionEvaluationFromGame())break;if(this.state.callStack.currentElement.type!=r||!this.state.callStack.canPop){let p=new Map;p.set(wt.PushPopType.Function,"function return statement (~ return)"),p.set(wt.PushPopType.Tunnel,"tunnel onwards statement (->->)");let C=p.get(this.state.callStack.currentElement.type);this.state.callStack.canPop||(C="end of flow (-> END or choice)");let w="Found "+p.get(r)+", when expected "+C;this.Error(w);}else this.state.PopCallStack(),i&&(this.state.divertedPointer=this.PointerAtPath(i.targetPath));break;case B.ControlCommand.CommandType.BeginString:this.state.PushToOutputStream(t),this.Assert(this.state.inExpressionEvaluation===true,"Expected to be in an expression when evaluating a string"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case B.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let p=[],C=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let N=this.state.outputStream[A];C++;let J=(0, G.asOrNull)(N,B.ControlCommand);if(J!=null){if(J.commandType==B.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}N instanceof k.StringValue&&p.push(N);}this.state.PopFromOutputStream(C);let w=new tr.StringBuilder;for(let A of p.reverse())w.Append(A.toString());let O=new Eu.Tag(this.state.CleanOutputWhitespace(w.toString()));this.state.PushEvaluationStack(O);}else this.state.PushToOutputStream(t);break}case B.ControlCommand.CommandType.EndString:{let p=[],C=[],w=0;for(let A=this.state.outputStream.length-1;A>=0;--A){let N=this.state.outputStream[A];w++;let J=(0, G.asOrNull)(N,B.ControlCommand);if(J&&J.commandType==B.ControlCommand.CommandType.BeginString)break;N instanceof Eu.Tag&&C.push(N),N instanceof k.StringValue&&p.push(N);}this.state.PopFromOutputStream(w);for(let A of C)this.state.PushToOutputStream(A);p=p.reverse();let O=new tr.StringBuilder;for(let A of p)O.Append(A.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new k.StringValue(O.toString()));break}case B.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new k.IntValue(a));break;case B.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new k.IntValue(this.state.currentTurnIndex+1));break;case B.ControlCommand.CommandType.TurnsSince:case B.ControlCommand.CommandType.ReadCount:let s=this.state.PopEvaluationStack();if(!(s instanceof k.DivertTargetValue)){let p="";s instanceof k.IntValue&&(p=". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"),this.Error("TURNS_SINCE / READ_COUNT expected a divert target (knot, stitch, label name), but saw "+s+p);break}let o=(0, G.asOrThrows)(s,k.DivertTargetValue),u=(0, G.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,We.Container),l;u!=null?t.commandType==B.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==B.ControlCommand.CommandType.TurnsSince?l=-1:l=0,this.Warning("Failed to find container for "+t.toString()+" lookup at "+o.targetPath.toString())),this.state.PushEvaluationStack(new k.IntValue(l));break;case B.ControlCommand.CommandType.Random:{let p=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue),C=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(C==null||!(C instanceof k.IntValue))return this.Error("Invalid value for minimum parameter of RANDOM(min, max)");if(p==null||!(p instanceof k.IntValue))return this.Error("Invalid value for maximum parameter of RANDOM(min, max)");if(p.value===null)return (0, ie.throwNullException)("maxInt.value");if(C.value===null)return (0, ie.throwNullException)("minInt.value");let w=p.value-C.value+1;(!isFinite(w)||w>Number.MAX_SAFE_INTEGER)&&(w=Number.MAX_SAFE_INTEGER,this.Error("RANDOM was called with a range that exceeds the size that ink numbers can use.")),w<=0&&this.Error("RANDOM was called with minimum as "+C.value+" and maximum as "+p.value+". The maximum must be larger");let O=this.state.storySeed+this.state.previousRandom,N=new Tf.PRNG(O).next(),J=N%w+C.value;this.state.PushEvaluationStack(new k.IntValue(J)),this.state.previousRandom=N;break}case B.ControlCommand.CommandType.SeedRandom:let c=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(c==null||!(c instanceof k.IntValue))return this.Error("Invalid value passed to SEED_RANDOM");if(c.value===null)return (0, ie.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new ms.Void);break;case B.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new k.IntValue(h));break;case B.ControlCommand.CommandType.SequenceShuffleIndex:let f=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new k.IntValue(f));break;case B.ControlCommand.CommandType.StartThread:break;case B.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=An.Pointer.Null);break;case B.ControlCommand.CommandType.End:this.state.ForceEnd();break;case B.ControlCommand.CommandType.ListFromInt:let d=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue),m=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.StringValue);if(d===null)throw new er.StoryException("Passed non-integer when creating a list element from a numerical value.");let y=null;if(this.listDefinitions===null)return (0, ie.throwNullException)("this.listDefinitions");let _=this.listDefinitions.TryListGetDefinition(m.value,null);if(_.exists){if(d.value===null)return (0, ie.throwNullException)("minInt.value");let p=_.result.TryGetItemWithValue(d.value,gs.InkListItem.Null);p.exists&&(y=new k.ListValue(p.result,d.value));}else throw new er.StoryException("Failed to find LIST called "+m.value);y==null&&(y=new k.ListValue),this.state.PushEvaluationStack(y);break;case B.ControlCommand.CommandType.ListRange:let S=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.Value),b=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.Value),g=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.ListValue);if(g===null||b===null||S===null)throw new er.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(g.value===null)return (0, ie.throwNullException)("targetList.value");let v=g.value.ListWithSubRange(b.valueObject,S.valueObject);this.state.PushEvaluationStack(new k.ListValue(v));break;case B.ControlCommand.CommandType.ListRandom:{let p=this.state.PopEvaluationStack();if(p===null)throw new er.StoryException("Expected list for LIST_RANDOM");let C=p.value,w=null;if(C===null)throw (0, ie.throwNullException)("list");if(C.Count==0)w=new gs.InkList;else {let O=this.state.storySeed+this.state.previousRandom,N=new Tf.PRNG(O).next(),J=N%C.Count,Z=C.entries();for(let Qr=0;Qr<=J-1;Qr++)Z.next();let ue=Z.next().value,an={Key:gs.InkListItem.fromSerializedKey(ue[0]),Value:ue[1]};if(an.Key.originName===null)return (0, ie.throwNullException)("randomItem.Key.originName");w=new gs.InkList(an.Key.originName,this),w.Add(an.Key,an.Value),this.state.previousRandom=N;}this.state.PushEvaluationStack(new k.ListValue(w));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof u1.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof l1.VariableReference){let t=e,r=null;if(t.pathForCount!=null){let i=t.containerForCount,a=this.state.VisitCountForContainer(i);r=new k.IntValue(a);}else r=this.state.variablesState.GetVariableWithName(t.name),r==null&&(this.Warning("Variable not found: '"+t.name+"'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."),r=new k.IntValue(0));return this.state.PushEvaluationStack(r),true}else if(e instanceof c1.NativeFunctionCall){let t=e,r=this.state.PopEvaluationStack(t.numberOfParameters),i=t.Call(r);return this.state.PushEvaluationStack(i),true}return false}ChoosePathString(e,t=true,r=[]){if(this.IfAsyncWeCant("call ChoosePathString right now"),this.onChoosePathString!==null&&this.onChoosePathString(e,r),t)this.ResetCallstack();else if(this.state.callStack.currentElement.type==wt.PushPopType.Function){let i="",a=this.state.callStack.currentElement.currentPointer.container;throw a!=null&&(i="("+a.path.toString()+") "),new Error("Story was running a function "+i+"when you called ChoosePathString("+e+`) - this is almost certainly not not what you want! Full stack trace:
35
- `+this.state.callStack.callStackTrace)}this.state.PassArgumentsToEvaluationStack(r),this.ChoosePath(new xf.Path(e));}IfAsyncWeCant(e){if(this._asyncContinueActive)throw new Error("Can't "+e+". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand.")}ChoosePath(e,t=true){this.state.SetChosenPath(e,t),this.VisitChangedContainersDueToDivert();}ChooseChoiceIndex(e){e=e;let t=this.currentChoices;this.Assert(e>=0&&e<t.length,"choice out of range");let r=t[e];if(this.onMakeChoice!==null&&this.onMakeChoice(r),r.threadAtGeneration===null)return (0, ie.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, ie.throwNullException)("choiceToChoose.targetPath");this.state.callStack.currentThread=r.threadAtGeneration,this.ChoosePath(r.targetPath);}HasFunction(e){try{return this.KnotContainerWithName(e)!=null}catch{return false}}EvaluateFunction(e,t=[],r=false){if(this.onEvaluateFunction!==null&&this.onEvaluateFunction(e,t),this.IfAsyncWeCant("evaluate a function"),e==null)throw new Error("Function is null");if(e==""||e.trim()=="")throw new Error("Function is empty or white space.");let i=this.KnotContainerWithName(e);if(i==null)throw new Error("Function doesn't exist: '"+e+"'");let a=[];a.push(...this.state.outputStream),this._state.ResetOutput(),this.state.StartFunctionEvaluationFromGame(i,t);let s=new tr.StringBuilder;for(;this.canContinue;)s.Append(this.Continue());let o=s.toString();this._state.ResetOutput(a);let u=this.state.CompleteFunctionEvaluationFromGame();return this.onCompleteEvaluateFunction!=null&&this.onCompleteEvaluateFunction(e,t,o,u),r?{returned:u,output:o}:u}EvaluateExpression(e){let t=this.state.callStack.elements.length;this.state.callStack.Push(wt.PushPopType.Tunnel),this._temporaryEvaluationContainer=e,this.state.GoToStart();let r=this.state.evaluationStack.length;return this.Continue(),this._temporaryEvaluationContainer=null,this.state.callStack.elements.length>t&&this.state.PopCallStack(),this.state.evaluationStack.length>r?this.state.PopEvaluationStack():null}CallExternalFunction(e,t){if(e===null)return (0, ie.throwNullException)("funcName");let r=this._externals.get(e),i=null,a=typeof r<"u";if(a&&!r.lookAheadSafe&&this._state.inStringEvaluation&&this.Error("External function "+e+` could not be called because 1) it wasn't marked as lookaheadSafe when BindExternalFunction was called and 2) the story is in the middle of string generation, either because choice text is being generated, or because you have ink like "hello {func()}". You can work around this by generating the result of your function into a temporary variable before the string or choice gets generated: ~ temp x = `+e+"()"),a&&!r.lookAheadSafe&&this._stateSnapshotAtLastNewline!==null){this._sawLookaheadUnsafeFunctionAfterNewline=true;return}if(!a)if(this.allowExternalFunctionFallbacks){i=this.KnotContainerWithName(e),this.Assert(i!==null,"Trying to call EXTERNAL function '"+e+"' which has not been bound, and fallback ink function could not be found."),this.state.callStack.Push(wt.PushPopType.Function,void 0,this.state.outputStream.length),this.state.divertedPointer=An.Pointer.StartOf(i);return}else this.Assert(false,"Trying to call EXTERNAL function '"+e+"' which has not been bound (and ink fallbacks disabled).");let s=[];for(let l=0;l<t;++l){let h=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.Value).valueObject;s.push(h);}s.reverse();let o=r.function(s),u=null;o!=null?(u=k.Value.Create(o),this.Assert(u!==null,"Could not create ink value from returned object of type "+typeof o)):u=new ms.Void,this.state.PushEvaluationStack(u);}BindExternalFunctionGeneral(e,t,r=true){this.IfAsyncWeCant("bind an external function"),this.Assert(!this._externals.has(e),"Function '"+e+"' has already been bound."),this._externals.set(e,{function:t,lookAheadSafe:r});}TryCoerce(e){return e}BindExternalFunction(e,t,r=false){this.Assert(t!=null,"Can't bind a null function"),this.BindExternalFunctionGeneral(e,i=>{this.Assert(i.length>=t.length,"External function expected "+t.length+" arguments");let a=[];for(let s=0,o=i.length;s<o;s++)a[s]=this.TryCoerce(i[s]);return t.apply(null,a)},r);}UnbindExternalFunction(e){this.IfAsyncWeCant("unbind an external a function"),this.Assert(this._externals.has(e),"Function '"+e+"' has not been bound."),this._externals.delete(e);}ValidateExternalBindings(){let e=null,t=null,r=arguments[1]||new Set;if(arguments[0]instanceof We.Container&&(e=arguments[0]),arguments[0]instanceof Pf.InkObject&&(t=arguments[0]),e===null&&t===null)if(this.ValidateExternalBindings(this._mainContentContainer,r),this._hasValidatedExternals=true,r.size==0)this._hasValidatedExternals=true;else {let i="Error: Missing function binding for external";i+=r.size>1?"s":"",i+=": '",i+=Array.from(r).join("', '"),i+="' ",i+=this.allowExternalFunctionFallbacks?", and no fallback ink function found.":" (ink fallbacks disabled)",this.Error(i);}else if(e!=null){for(let i of e.content){let a=i;(a==null||!a.hasValidName)&&this.ValidateExternalBindings(i,r);}for(let[,i]of e.namedContent)this.ValidateExternalBindings((0, G.asOrNull)(i,Pf.InkObject),r);}else if(t!=null){let i=(0, G.asOrNull)(t,_0.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, ie.throwNullException)("name");this._externals.has(a)||this.allowExternalFunctionFallbacks&&this.mainContentContainer.namedContent.has(a)||r.add(a);}}}ObserveVariable(e,t){if(this.IfAsyncWeCant("observe a new variable"),this._variableObservers===null&&(this._variableObservers=new Map),!this.state.variablesState.GlobalVariableExistsWithName(e))throw new Error("Cannot observe variable '"+e+"' because it wasn't declared in the ink story.");this._variableObservers.has(e)?this._variableObservers.get(e).push(t):this._variableObservers.set(e,[t]);}ObserveVariables(e,t){for(let r=0,i=e.length;r<i;r++)this.ObserveVariable(e[r],t[r]);}RemoveVariableObserver(e,t){if(this.IfAsyncWeCant("remove a variable observer"),this._variableObservers!==null){if(t!=null){if(this._variableObservers.has(t))if(e!=null){let r=this._variableObservers.get(t);r!=null&&(r.splice(r.indexOf(e),1),r.length===0&&this._variableObservers.delete(t));}else this._variableObservers.delete(t);}else if(e!=null){let r=this._variableObservers.keys();for(let i of r){let a=this._variableObservers.get(i);a!=null&&(a.splice(a.indexOf(e),1),a.length===0&&this._variableObservers.delete(i));}}}}VariableStateDidChangeEvent(e,t){if(this._variableObservers===null)return;let r=this._variableObservers.get(e);if(typeof r<"u"){if(!(t instanceof k.Value))throw new Error("Tried to get the value of a variable that isn't a standard type");let i=(0, G.asOrThrows)(t,k.Value);for(let a of r)a(e,i.valueObject);}}get globalTags(){return this.TagsAtStartOfFlowContainerWithPathString("")}TagsForContentAtPath(e){return this.TagsAtStartOfFlowContainerWithPathString(e)}TagsAtStartOfFlowContainerWithPathString(e){let t=new xf.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, ie.throwNullException)("flowContainer");for(;;){let s=r.content[0];if(s instanceof We.Container)r=s;else break}let i=false,a=null;for(let s of r.content){let o=(0, G.asOrNull)(s,B.ControlCommand);if(o!=null)o.commandType==B.ControlCommand.CommandType.BeginTag?i=true:o.commandType==B.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, G.asOrNull)(s,k.StringValue);u!==null?(a===null&&(a=[]),u.value!==null&&a.push(u.value)):this.Error("Tag contained non-text content. Only plain text is allowed when using globalTags or TagsAtContentPath. If you want to evaluate dynamic content, you need to use story.Continue().");}else break}return a}BuildStringOfHierarchy(){let e=new tr.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new tr.StringBuilder;return e.BuildStringOfHierarchy(t,0,this.state.currentPointer.Resolve()),t.toString()}NextContent(){if(this.state.previousPointer=this.state.currentPointer.copy(),!this.state.divertedPointer.isNull&&(this.state.currentPointer=this.state.divertedPointer.copy(),this.state.divertedPointer=An.Pointer.Null,this.VisitChangedContainersDueToDivert(),!this.state.currentPointer.isNull))return;if(!this.IncrementContentPointer()){let t=false;this.state.callStack.CanPop(wt.PushPopType.Function)?(this.state.PopCallStack(wt.PushPopType.Function),this.state.inExpressionEvaluation&&this.state.PushEvaluationStack(new ms.Void),t=true):this.state.callStack.canPopThread?(this.state.callStack.PopThread(),t=true):this.state.TryExitFunctionEvaluationFromGame(),t&&!this.state.currentPointer.isNull&&this.NextContent();}}IncrementContentPointer(){let e=true,t=this.state.callStack.currentElement.currentPointer.copy();if(t.index++,t.container===null)return (0, ie.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, G.asOrNull)(t.container.parent,We.Container);if(!(r instanceof We.Container))break;let i=r.content.indexOf(t.container);if(i==-1)break;if(t=new An.Pointer(r,i),t.index++,e=true,t.container===null)return (0, ie.throwNullException)("pointer.container")}return e||(t=An.Pointer.Null),this.state.callStack.currentElement.currentPointer=t.copy(),e}TryFollowDefaultInvisibleChoice(){let e=this._state.currentChoices,t=e.filter(i=>i.isInvisibleDefault);if(t.length==0||e.length>t.length)return false;let r=t[0];return r.targetPath===null?(0, ie.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, ie.throwNullException)("choice.threadAtGeneration"):(this.state.callStack.currentThread=r.threadAtGeneration,this._stateSnapshotAtLastNewline!==null&&(this.state.callStack.currentThread=this.state.callStack.ForkThread()),this.ChoosePath(r.targetPath,false),true)}NextSequenceShuffleIndex(){let e=(0, G.asOrNull)(this.state.PopEvaluationStack(),k.IntValue);if(!(e instanceof k.IntValue))return this.Error("expected number of elements in sequence for shuffle index"),0;let t=this.state.currentPointer.container;if(t===null)return (0, ie.throwNullException)("seqContainer");if(e.value===null)return (0, ie.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, G.asOrThrows)(this.state.PopEvaluationStack(),k.IntValue).value;if(a===null)return (0, ie.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let d=0,m=u.length;d<m;d++)l+=u.charCodeAt(d)||0;let c=l+s+this.state.storySeed,h=new Tf.PRNG(Math.floor(c)),f=[];for(let d=0;d<r;++d)f.push(d);for(let d=0;d<=o;++d){let m=h.next()%f.length,y=f[m];if(f.splice(m,1),d==o)return y}throw new Error("Should never reach here")}Error(e,t=false){let r=new er.StoryException(e);throw r.useEndLineNumber=t,r}Warning(e){this.AddError(e,true);}AddError(e,t=false,r=false){let i=this.currentDebugMetadata,a=t?"WARNING":"ERROR";if(i!=null){let s=r?i.endLineNumber:i.startLineNumber;e="RUNTIME "+a+": '"+i.fileName+"' line "+s+": "+e;}else this.state.currentPointer.isNull?e="RUNTIME "+a+": "+e:e="RUNTIME "+a+": ("+this.state.currentPointer+"): "+e;this.state.AddError(e,t),t||this.state.ForceEnd();}Assert(e,t=null){if(e==false)throw t==null&&(t="Story assert"),new Error(t+" "+this.currentDebugMetadata)}get currentDebugMetadata(){let e,t=this.state.currentPointer;if(!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.callStack.elements.length-1;r>=0;--r)if(t=this.state.callStack.elements[r].currentPointer,!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.outputStream.length-1;r>=0;--r)if(e=this.state.outputStream[r].debugMetadata,e!==null)return e;return null}get mainContentContainer(){return this._temporaryEvaluationContainer?this._temporaryEvaluationContainer:this._mainContentContainer}};nr.Story=Hr;Hr.inkVersionCurrent=21;(function(n){(function(t){t[t.NoChange=0]="NoChange",t[t.ExtendedBeyondNewline=1]="ExtendedBeyondNewline",t[t.NewlineRemoved=2]="NewlineRemoved";})(n.OutputStateChange||(n.OutputStateChange={}));})(Hr||(nr.Story=Hr={}));});var D0=E(Ou=>{Object.defineProperty(Ou,"__esModule",{value:true});Ou.Story=void 0;var p1=ba(),m1=so(),wu=Ee(),Du=qe(),ys=Pr(),Au=Gt(),w0=jr(),g1=Yd(),y1=Ro(),v1=rf(),C1=cs(),Ur=nn(),b1=Sn(),_1=bn(),vs=ae(),S1=ts(),E1=ns(),w1=Yn(),Pu=class n extends Au.FlowBase{get flowLevel(){return w0.FlowLevel.Story}get hadError(){return this._hadError}get hadWarning(){return this._hadWarning}constructor(e,t=false){super(null,e,null,false,t),this._errorHandler=null,this._hadError=false,this._hadWarning=false,this._dontFlattenContainers=new Set,this._listDefs=new Map,this.constants=new Map,this.externals=new Map,this.countAllVisits=false,this.ExportRuntime=(r=null)=>{var i,a;this._errorHandler=r,this.constants=new Map;for(let c of this.FindAll(m1.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let f=`CONST '${c.constantName}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on ${h.debugMetadata}.`;this.Error(f,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(y1.ListDefinition)())!((i=c.identifier)===null||i===void 0)&&i.name&&this._listDefs.set((a=c.identifier)===null||a===void 0?void 0:a.name,c);this.externals=new Map,this.ResolveWeavePointNaming();let s=this.runtimeObject,o=new wu.Container;o.AddContent(Du.ControlCommand.EvalStart());let u=[];for(let[c,h]of this.variableDeclarations)if(h.isGlobalDeclaration){if(h.listDefinition)this._listDefs.set(c,h.listDefinition),o.AddContent(h.listDefinition.runtimeObject),u.push(h.listDefinition.runtimeListDefinition);else {if(!h.expression)throw new Error;h.expression.GenerateIntoContainer(o);}let f=new _1.VariableAssignment(c,true);f.isGlobal=true,o.AddContent(f);}o.AddContent(Du.ControlCommand.EvalEnd()),o.AddContent(Du.ControlCommand.End()),this.variableDeclarations.size>0&&(o.name="global decl",s.AddToNamedContentOnly(o)),s.AddContent(Du.ControlCommand.Done());let l=new C1.Story(s,u);return this.runtimeObject=l,this.hadError||(this.FlattenContainersIn(s),this.ResolveReferences(this),this.hadError)?null:(l.ResetState(),l)},this.ResolveList=r=>{let i=this._listDefs.get(r);return i||null},this.ResolveListItem=(r,i,a=null)=>{let s=null;if(r)return (s=this._listDefs.get(r))?s.ItemNamed(i):null;{let o=null,u=null;for(let[,l]of this._listDefs.entries()){let c=l.ItemNamed(i);c&&(o?this.Error(`Ambiguous item name '${i}' found in multiple sets, including ${u.identifier} and ${l.identifier}`,a,false):(o=c,u=l));}return o}},this.FlattenContainersIn=r=>{let i=new Set;if(r.content)for(let a of r.content){let s=(0, vs.asOrNull)(a,wu.Container);s&&i.add(s);}if(r.namedContent)for(let[,a]of r.namedContent){let s=(0, vs.asOrNull)(a,wu.Container);s&&i.add(s);}for(let a of i)this.TryFlattenContainer(a),this.FlattenContainersIn(a);},this.TryFlattenContainer=r=>{if(r.namedContent&&r.namedContent.size>0||r.hasValidName||this._dontFlattenContainers.has(r))return;let i=(0, vs.asOrNull)(r.parent,wu.Container);if(i){let a=i.content.indexOf(r);i.content.splice(a,1);let s=r.ownDebugMetadata;if(r.content)for(let o of r.content)o.parent=null,s!==null&&o.ownDebugMetadata===null&&(o.debugMetadata=s),i.InsertContent(o,a),a+=1;}},this.Error=(r,i,a)=>{let s=a?ys.ErrorType.Warning:ys.ErrorType.Error,o="";if(i instanceof p1.AuthorWarning?(o+="TODO: ",s=ys.ErrorType.Author):a?o+="WARNING: ":o+="ERROR: ",i&&i.debugMetadata!==null&&i.debugMetadata.startLineNumber>=1&&(i.debugMetadata.fileName!=null&&(o+=`'${i.debugMetadata.fileName}' `),o+=`line ${i.debugMetadata.startLineNumber}: `),o+=r,r=o,this._errorHandler!==null)this._errorHandler(r,s);else throw new Error(r);this._hadError=s===ys.ErrorType.Error,this._hadWarning=s===ys.ErrorType.Warning;},this.ResetError=()=>{this._hadError=false,this._hadWarning=false;},this.IsExternal=r=>this.externals.has(r),this.AddExternal=r=>{this.externals.has(r.name)?this.Error(`Duplicate EXTERNAL definition of '${r.name}'`,r,false):r.name&&this.externals.set(r.name,r);},this.DontFlattenContainer=r=>{this._dontFlattenContainers.add(r);},this.NameConflictError=(r,i,a,s)=>{r.Error(`${s} '${i}': name has already been used for a ${a.typeName.toLowerCase()} on ${a.debugMetadata}`);},this.CheckForNamingCollisions=(r,i,a,s="")=>{var o;let u=s||r.typeName;if(n.IsReservedKeyword(i?.name)){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a reserved keyword`);return}else if(E1.FunctionCall.IsBuiltIn(i?.name||"")){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a built in function`);return}let l=this.ContentWithNameAtLevel(i?.name||"",w0.FlowLevel.Knot),c=(0, vs.asOrNull)(l,Au.FlowBase);if(c&&(c!==r||a===Ur.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<Ur.SymbolType.List)return;for(let[m,y]of this._listDefs)if(i?.name===m&&r!==y&&y.variableAssignment!==r&&this.NameConflictError(r,i?.name,y,u),!(r instanceof v1.ListElementDefinition))for(let _ of y.itemDefinitions)i?.name===_.name&&this.NameConflictError(r,i?.name||"",_,u);if(a<=Ur.SymbolType.Var)return;let h=i?.name&&this.variableDeclarations.get(i?.name)||null;if(h&&h!==r&&h.isGlobalDeclaration&&h.listDefinition==null&&this.NameConflictError(r,i?.name||"",h,u),a<Ur.SymbolType.SubFlowAndWeave)return;let d=new w1.Path(i).ResolveFromContext(r);if(d&&d!==r){this.NameConflictError(r,i?.name||"",d,u);return}if(!(a<Ur.SymbolType.Arg)&&a!==Ur.SymbolType.Arg){let m=(0, vs.asOrNull)(r,Au.FlowBase);if(m||(m=(0, S1.ClosestFlowBase)(r)),m&&m.hasParameters&&m.args){for(let y of m.args)if(((o=y.identifier)===null||o===void 0?void 0:o.name)===i?.name){r.Error(`${u} '${i}': name has already been used for a argument to ${m.identifier} on ${m.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof g1.IncludedFile){let i=r,a=e.indexOf(r);if(e.splice(a,1),i.includedStory){let s=[],o=i.includedStory;if(o.content!=null){for(let u of o.content)u instanceof Au.FlowBase?t.push(u):s.push(u);s.push(new b1.Text(`
36
- `)),e.splice(a,0,...s);}}continue}e.splice(0,0,...t);}};Ou.Story=Pu;Pu.IsReservedKeyword=n=>{switch(n){case "true":case "false":case "not":case "return":case "else":case "VAR":case "CONST":case "temp":case "LIST":case "function":return true}return false};});var P0=E(xu=>{Object.defineProperty(xu,"__esModule",{value:true});xu.StringExpression=void 0;var A0=qe(),D1=Ct(),A1=Sn(),P1=ae(),Nf=class n extends D1.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof A1.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(A0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(A0.ControlCommand.EndString());},this.toString=()=>{let t="";for(let r of this.content)t+=r;return t},this.AddContent(e);}get typeName(){return "String"}Equals(e){let t=(0, P1.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};xu.StringExpression=Nf;});var x0=E(Kr=>{Object.defineProperty(Kr,"__esModule",{value:true});Kr.LegacyTag=Kr.Tag=void 0;var O1=ye(),O0=qe(),Ff=class extends O1.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?O0.ControlCommand.BeginTag():O0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Kr.Tag=Ff;var x1=zd(),If=class extends x1.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Kr.LegacyTag=If;});var T0=E(Tu=>{Object.defineProperty(Tu,"__esModule",{value:true});Tu.DefaultFileHandler=void 0;var kf=class{constructor(e){this.rootPath=e,this.ResolveInkFilename=()=>{throw Error("Can't resolve filename because no FileHandler was provided when instantiating the parser / compiler.")},this.LoadInkFileContents=()=>{throw Error("Can't load ink content because no FileHandler was provided when instantiating the parser / compiler.")};}};Tu.DefaultFileHandler=kf;});var jf=E(ku=>{Object.defineProperty(ku,"__esModule",{value:true});ku.InkParser=void 0;var T1=Qy(),N1=ba(),F1=Bh(),Ft=dv(),Ne=Xi(),I1=$r(),k1=_v(),V1=no(),Cs=_d(),ht=yo(),R1=so(),Nu=Mv(),$1=Gv(),rr=Br(),Vf=qr(),j1=Ct(),L1=Jv(),N0=zv(),Fu=ns(),q1=es(),B1=Hv(),W1=Xo(),Iu=Kv(),F0=Yd(),M1=Xv(),G1=ef(),I0=Zv(),J1=Ro(),z1=rf(),H1=yd(),k0=ye(),U1=Yn(),V0=ud(),R0=Td(),Te=Pd(),Xe=sf(),K1=of(),$0=D0(),bs=P0(),rn=Zh(),Xr=x0(),sn=Sn(),j0=Fd(),Rf=jd(),$f=Mr(),X1=Lh(),Pn=ae(),_s=po(),Yr=Ra(),L0=Pr(),Y1=T0(),ce=class n extends rn.StringParser{get fileHandler(){if(!this._fileHandler)throw new Error("No FileHandler defined");return this._fileHandler}set fileHandler(e){this._fileHandler=e;}constructor(e,t=null,r=null,i=null,a=null){if(super(e),this.ParseStory=()=>{let s=this.StatementsAtLevel(Xe.StatementLevel.Top);return new $0.Story(s,this._rootParser!==this)},this.SeparatedList=(s,o)=>{let u=this.Parse(s);if(u===null)return null;let l=[];l.push(u);do{let c=this.BeginRule();if(o()===null){this.FailRule(c);break}let f=this.Parse(s);if(f===null){this.FailRule(c);break}this.SucceedRule(c),l.push(f);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new $1.DebugMetadata;return u.startLineNumber=(s?.lineIndex||0)+1,u.endLineNumber=o.lineIndex+1,u.startCharacterNumber=(s?.characterInLineIndex||0)+1,u.endCharacterNumber=o.characterInLineIndex+1,u.fileName=this._filename,u},this.RuleDidSucceed=(s,o,u)=>{let l=(0, Pn.asOrNull)(s,k0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let f of c)(0, Pn.asOrNull)(f,k0.ParsedObject)&&(f.hasOwnDebugMetadata||(f.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, Pn.asOrNull)(s,_s.Identifier);h!=null&&(h.debugMetadata=this.CreateDebugMetadata(o,u));},this.OnStringParserError=(s,o,u=0,l=false)=>{let h=l?"WARNING:":"ERROR:";if(this._filename!==null&&(h+=` '${this._filename}'`),h+=` line ${u+1}: ${s}`,this._externalErrorHandler!==null)this._externalErrorHandler(h,l?L0.ErrorType.Warning:L0.ErrorType.Error);else throw new Error(h)},this.AuthorWarning=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!=="TODO")return null;this.Whitespace(),this.ParseString(":"),this.Whitespace();let o=this.ParseUntilCharactersFromString(`
37
- \r`);return o?new N1.AuthorWarning(o):null},this.ExtendIdentifierCharacterRanges=s=>{let o=n.ListAllCharacterRanges();for(let u of o)s.AddCharacters(u.ToCharacterSet());},this._parsingChoice=false,this.Choice=()=>{let s=true,o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("*"));if(!o){if(o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("+")),o===null)return null;s=false;}let u=this.Parse(this.BracketedName);this.Whitespace(),u!=null&&this.Newline();let l=this.Parse(this.ChoiceCondition);if(this.Whitespace(),this._parsingChoice)throw new Error("Already parsing a choice - shouldn't have nested choices");this._parsingChoice=true;let c=null,h=this.Parse(this.MixedTextAndLogic);h&&(c=new ht.ContentList(h));let f=null,d=null,m=this.ParseString("[")!==null;if(m){this.EndTagIfNecessary(c);let b=this.Parse(this.MixedTextAndLogic);b!==null&&(f=new ht.ContentList(b)),this.Expect(this.String("]"),"closing ']' for weave-style option"),this.EndTagIfNecessary(f);let g=this.Parse(this.MixedTextAndLogic);g!==null&&(d=new ht.ContentList(g));}this.Whitespace(),this.EndTagIfNecessary(d??c);let y=this.Parse(this.MultiDivert);this._parsingChoice=false,this.Whitespace();let _=!c&&!d&&!f;if(_&&y===null&&this.Warning("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"),!c&&m&&!f&&this.Warning("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"),d||(d=new ht.ContentList),this.EndTagIfNecessary(d),y!==null)for(let b of y){let g=(0, Pn.asOrNull)(b,rr.Divert);g&&g.isEmpty||d.AddContent(b);}d.AddContent(new sn.Text(`
38
- `));let S=new I1.Choice(c,f,d);return u&&(S.identifier=u),S.indentationDepth=o.length,S.hasWeaveStyleInlineBrackets=m,S.condition=l,S.onceOnly=s,S.isInvisibleDefault=_,S},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new H1.MultipleConditionExpression(s)},this.ChoiceConditionsSpace=()=>(this.Newline(),this.Whitespace(),rn.ParseSuccess),this.ChoiceSingleCondition=()=>{if(this.ParseString("{")===null)return null;let s=this.Expect(this.Expression,"choice condition inside { }");return this.DisallowIncrement(s),this.Expect(this.String("}"),"closing '}' for choice condition"),s},this.Gather=()=>{let s=this.Parse(this.GatherDashes);if(s===null)return null;let o=Number(s),u=this.Parse(this.BracketedName),l=new q1.Gather(u,o);return this.Newline(),l},this.GatherDashes=()=>{this.Whitespace();let s=0;for(;this.ParseDashNotArrow()!==null;)s+=1,this.Whitespace();return s===0?null:s},this.ParseDashNotArrow=()=>{let s=this.BeginRule();return this.ParseString("->")===null&&this.ParseSingleCharacter()==="-"?this.SucceedRule(s):this.FailRule(s)},this.BracketedName=()=>{if(this.ParseString("(")===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing ')' for bracketed name"),s)},this.InnerConditionalContent=s=>{if(s===void 0){let h=this.Parse(this.ConditionExpression),f=this.Parse(()=>this.InnerConditionalContent(h));return f===null?null:f}let o,u=s!==null,l=this.Parse(this.Newline)===null;if(l&&!u)return null;if(l)o=this.InlineConditionalBranches();else {if(o=this.MultilineConditionalBranches(),o===null){if(s){let h=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);if(h!==null){o=[new Cs.ConditionalSingleBranch(h)];let d=this.Parse(this.SingleMultilineCondition);d&&(d.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",d),d.isElse=true),o.push(d));}}if(o===null)return null}else if(o.length===1&&o[0].isElse&&s){let h=new Cs.ConditionalSingleBranch(null);h.isTrueBranch=true,o.unshift(h);}if(s){let h=false;for(let f=0;f<o.length;++f){let d=o[f],m=f===o.length-1;d.ownExpression?(d.matchingEquality=true,h=true):h&&m?(d.matchingEquality=true,d.isElse=true):!m&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",d):f===0?d.isTrueBranch=true:d.isElse=true;}}else {for(let h=0;h<o.length;++h){let f=o[h],d=h===o.length-1;if(f.ownExpression===null)if(d)f.isElse=true;else if(f.isElse){let m=o[o.length-1];m.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",m):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",f);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",f);}o.length===1&&o[0].ownExpression===null&&this.ErrorWithParsedObject("Condition block with no conditions",o[0]);}}if(o===null)return null;for(let h of o)h.isInline=l;return new V1.Conditional(s,o)},this.InlineConditionalBranches=()=>{let s=this.Interleave(this.MixedTextAndLogic,this.Exclude(this.String("|")),null,false);if(s===null||s.length===0)return null;let o=[];if(s.length>2)this.Error("Expected one or two alternatives separated by '|' in inline conditional");else {let u=new Cs.ConditionalSingleBranch(s[0]);if(u.isTrueBranch=true,o.push(u),s.length>1){let l=new Cs.ConditionalSingleBranch(s[1]);l.isElse=true,o.push(l);}}return o},this.MultilineConditionalBranches=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineCondition);return s===null?null:(this.MultilineWhitespace(),s)},this.SingleMultilineCondition=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=null,o=this.Parse(this.ElseExpression)!==null;o||(s=this.Parse(this.ConditionExpression));let u=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);s===null&&u===null&&(this.Error("expected content for the conditional branch following '-'"),u=[new sn.Text("")]),this.MultilineWhitespace();let l=new Cs.ConditionalSingleBranch(u);return l.ownExpression=s,l.isElse=o,l},this.ConditionExpression=()=>{let s=this.Parse(this.Expression);return s===null||(this.DisallowIncrement(s),this.Whitespace(),this.ParseString(":")===null)?null:s},this.ElseExpression=()=>this.ParseString("else")===null||(this.Whitespace(),this.ParseString(":")===null)?null:rn.ParseSuccess,this._nonTextPauseCharacters=null,this._nonTextEndCharacters=null,this._notTextEndCharactersChoice=null,this._notTextEndCharactersString=null,this.TrimEndWhitespace=(s,o)=>{if(s.length>0){let u=s.length-1,l=s[u];if(l instanceof sn.Text){let c=l;c.text=c.text.replace(new RegExp(/[ \t]+$/g),""),o?c.text+=" ":c.text.length===0&&(s.splice(u,1),this.TrimEndWhitespace(s,false));}}},this.LineOfMixedTextAndLogic=()=>{this.Parse(this.Whitespace);let s=this.Parse(this.MixedTextAndLogic);if(!s||!s.length)return null;let o=s[0];return o&&o.text&&o.text.startsWith("return")&&this.Warning("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"),s.length===0?null:(s[s.length-1]instanceof rr.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof Xr.Tag&&s[0].isStart||s.push(new sn.Text(`
33
+ `)),a<t.length-1)){let c=t.length-a-1,h=new xe.StringValue(t.substring(a+1,a+1+c));o.push(h);}return o}PushToOutputStreamIndividual(e){let t=(0, De.asOrNull)(e,Df.Glue),r=(0, De.asOrNull)(e,xe.StringValue),i=true;if(t)this.TrimNewlinesFromOutputStream(),i=true;else if(r){let a=-1,s=this.callStack.currentElement;s.type==wn.PushPopType.Function&&(a=s.functionStartInOutputStream);let o=-1;for(let l=this.outputStream.length-1;l>=0;l--){let c=this.outputStream[l],h=c instanceof Ke.ControlCommand?c:null;if((c instanceof Df.Glue?c:null)!=null){o=l;break}else if(h!=null&&h.commandType==Ke.ControlCommand.CommandType.BeginString){l>=a&&(a=-1);break}}let u=-1;if(o!=-1&&a!=-1?u=Math.min(a,o):o!=-1?u=o:u=a,u!=-1){if(r.isNewline)i=false;else if(r.isNonWhitespace&&(o>-1&&this.RemoveExistingGlue(),a>-1)){let l=this.callStack.elements;for(let c=l.length-1;c>=0;c--){let h=l[c];if(h.type==wn.PushPopType.Function)h.functionStartInOutputStream=-1;else break}}}else r.isNewline&&(this.outputStreamEndsInNewline||!this.outputStreamContainsContent)&&(i=false);}if(i){if(e===null)return (0, Et.throwNullException)("obj");this.outputStream.push(e),this.OutputStreamDirty();}}TrimNewlinesFromOutputStream(){let e=-1,t=this.outputStream.length-1;for(;t>=0;){let r=this.outputStream[t],i=(0, De.asOrNull)(r,Ke.ControlCommand),a=(0, De.asOrNull)(r,xe.StringValue);if(i!=null||a!=null&&a.isNonWhitespace)break;a!=null&&a.isNewline&&(e=t),t--;}if(e>=0)for(t=e;t<this.outputStream.length;)(0, De.asOrNull)(this.outputStream[t],xe.StringValue)?this.outputStream.splice(t,1):t++;this.OutputStreamDirty();}RemoveExistingGlue(){for(let e=this.outputStream.length-1;e>=0;e--){let t=this.outputStream[e];if(t instanceof Df.Glue)this.outputStream.splice(e,1);else if(t instanceof Ke.ControlCommand)break}this.OutputStreamDirty();}get outputStreamEndsInNewline(){if(this.outputStream.length>0)for(let e=this.outputStream.length-1;e>=0&&!(this.outputStream[e]instanceof Ke.ControlCommand);e--){let r=this.outputStream[e];if(r instanceof xe.StringValue){if(r.isNewline)return true;if(r.isNonWhitespace)break}}return false}get outputStreamContainsContent(){for(let e of this.outputStream)if(e instanceof xe.StringValue)return true;return false}get inStringEvaluation(){for(let e=this.outputStream.length-1;e>=0;e--){let t=(0, De.asOrNull)(this.outputStream[e],Ke.ControlCommand);if(t instanceof Ke.ControlCommand&&t.commandType==Ke.ControlCommand.CommandType.BeginString)return true}return false}PushEvaluationStack(e){let t=(0, De.asOrNull)(e,xe.ListValue);if(t){let r=t.value;if(r===null)return (0, Et.throwNullException)("rawList");if(r.originNames!=null){r.origins||(r.origins=[]),r.origins.length=0;for(let i of r.originNames){if(this.story.listDefinitions===null)return (0, Et.throwNullException)("StoryState.story.listDefinitions");let a=this.story.listDefinitions.TryListGetDefinition(i,null);if(a.result===null)return (0, Et.throwNullException)("StoryState def.result");r.origins.indexOf(a.result)<0&&r.origins.push(a.result);}}}if(e===null)return (0, Et.throwNullException)("obj");this.evaluationStack.push(e);}PopEvaluationStack(e){if(typeof e>"u"){let t=this.evaluationStack.pop();return (0, De.nullIfUndefined)(t)}else {if(e>this.evaluationStack.length)throw new Error("trying to pop too many objects");let t=this.evaluationStack.splice(this.evaluationStack.length-e,e);return (0, De.nullIfUndefined)(t)}}PeekEvaluationStack(){return this.evaluationStack[this.evaluationStack.length-1]}ForceEnd(){this.callStack.Reset(),this._currentFlow.currentChoices.length=0,this.currentPointer=zr.Pointer.Null,this.previousPointer=zr.Pointer.Null,this.didSafeExit=true;}TrimWhitespaceFromFunctionEnd(){r1.Debug.Assert(this.callStack.currentElement.type==wn.PushPopType.Function);let e=this.callStack.currentElement.functionStartInOutputStream;e==-1&&(e=0);for(let t=this.outputStream.length-1;t>=e;t--){let r=this.outputStream[t],i=(0, De.asOrNull)(r,xe.StringValue),a=(0, De.asOrNull)(r,Ke.ControlCommand);if(i!=null){if(a)break;if(i.isNewline||i.isInlineWhitespace)this.outputStream.splice(t,1),this.OutputStreamDirty();else break}}}PopCallStack(e=null){this.callStack.currentElement.type==wn.PushPopType.Function&&this.TrimWhitespaceFromFunctionEnd(),this.callStack.Pop(e);}SetChosenPath(e,t){this._currentFlow.currentChoices.length=0;let r=this.story.PointerAtPath(e);!r.isNull&&r.index==-1&&(r.index=0),this.currentPointer=r,t&&this.currentTurnIndex++;}StartFunctionEvaluationFromGame(e,t){this.callStack.Push(wn.PushPopType.FunctionEvaluationFromGame,this.evaluationStack.length),this.callStack.currentElement.currentPointer=zr.Pointer.StartOf(e),this.PassArgumentsToEvaluationStack(t);}PassArgumentsToEvaluationStack(e){if(e!==null)for(let t=0;t<e.length;t++){if(!(typeof e[t]=="number"||typeof e[t]=="string"||typeof e[t]=="boolean"||e[t]instanceof a1.InkList))throw new Error("ink arguments when calling EvaluateFunction / ChoosePathStringWithParameters must benumber, string, bool or InkList. Argument was "+((0, De.nullIfUndefined)(e[t])===null?"null":e[t].constructor.name));this.PushEvaluationStack(xe.Value.Create(e[t]));}}TryExitFunctionEvaluationFromGame(){return this.callStack.currentElement.type==wn.PushPopType.FunctionEvaluationFromGame?(this.currentPointer=zr.Pointer.Null,this.didSafeExit=true,true):false}CompleteFunctionEvaluationFromGame(){if(this.callStack.currentElement.type!=wn.PushPopType.FunctionEvaluationFromGame)throw new Error("Expected external function evaluation to be complete. Stack trace: "+this.callStack.callStackTrace);let e=this.callStack.currentElement.evaluationStackHeightWhenPushed,t=null;for(;this.evaluationStack.length>e;){let r=this.PopEvaluationStack();t===null&&(t=r);}if(this.PopCallStack(wn.PushPopType.FunctionEvaluationFromGame),t){if(t instanceof n1.Void)return null;let r=(0, De.asOrThrows)(t,xe.Value);return r.valueType==xe.ValueType.DivertTarget?"-> "+r.valueObject.toString():r.valueObject}return null}AddError(e,t){t?(this._currentWarnings==null&&(this._currentWarnings=[]),this._currentWarnings.push(e)):(this._currentErrors==null&&(this._currentErrors=[]),this._currentErrors.push(e));}OutputStreamDirty(){this._outputStreamTextDirty=true,this._outputStreamTagsDirty=true;}};bu.StoryState=Pf;});var C0=E(_u=>{Object.defineProperty(_u,"__esModule",{value:true});_u.Stopwatch=void 0;var Of=class{constructor(){this.startTime=void 0;}get ElapsedMilliseconds(){return typeof this.startTime>"u"?0:new Date().getTime()-this.startTime}Start(){this.startTime=new Date().getTime();}Stop(){this.startTime=void 0;}};_u.Stopwatch=Of;});var _0=E(Su=>{Object.defineProperty(Su,"__esModule",{value:true});Su.ErrorType=void 0;var b0;(function(n){n[n.Author=0]="Author",n[n.Warning=1]="Warning",n[n.Error=2]="Error";})(b0||(Su.ErrorType=b0={}));});var cs=E(nr=>{Object.defineProperty(nr,"__esModule",{value:true});nr.Story=nr.InkList=void 0;var We=Ee(),xf=at(),Tf=Jr(),o1=v0(),B=qe(),wt=Kn(),u1=Wa(),l1=df(),S0=Mt(),I=ve(),Nf=st(),ms=Un(),Eu=au(),c1=bn(),h1=Wr(),d1=Wt(),er=Bi(),Ff=_f(),tr=zn(),f1=pf(),p1=C0(),An=Zi(),gs=ut(),G=ae(),re=Le(),E0=Ef(),w0=_0(),m1=ut();Object.defineProperty(nr,"InkList",{enumerable:true,get:function(){return m1.InkList}});Number.isInteger||(Number.isInteger=function(e){return typeof e=="number"&&isFinite(e)&&e>-9007199254740992&&e<9007199254740992&&Math.floor(e)===e});var Hr=class n extends xf.InkObject{get currentChoices(){let e=[];if(this._state===null)return (0, re.throwNullException)("this._state");for(let t of this._state.currentChoices)t.isInvisibleDefault||(t.index=e.length,e.push(t));return e}get currentText(){return this.IfAsyncWeCant("call currentText since it's a work in progress"),this.state.currentText}get currentTags(){return this.IfAsyncWeCant("call currentTags since it's a work in progress"),this.state.currentTags}get currentErrors(){return this.state.currentErrors}get currentWarnings(){return this.state.currentWarnings}get currentFlowName(){return this.state.currentFlowName}get currentFlowIsDefaultFlow(){return this.state.currentFlowIsDefaultFlow}get aliveFlowNames(){return this.state.aliveFlowNames}get hasError(){return this.state.hasError}get hasWarning(){return this.state.hasWarning}get variablesState(){return this.state.variablesState}get listDefinitions(){return this._listDefinitions}get state(){return this._state}StartProfiling(){}EndProfiling(){}constructor(){super(),this.inkVersionMinimumCompatible=18,this.onError=null,this.onDidContinue=null,this.onMakeChoice=null,this.onEvaluateFunction=null,this.onCompleteEvaluateFunction=null,this.onChoosePathString=null,this._prevContainers=[],this.allowExternalFunctionFallbacks=false,this._listDefinitions=null,this._variableObservers=null,this._hasValidatedExternals=false,this._temporaryEvaluationContainer=null,this._asyncContinueActive=false,this._stateSnapshotAtLastNewline=null,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount=0,this._asyncSaving=false,this._profiler=null;let e,t=null,r=null;if(arguments[0]instanceof We.Container)e=arguments[0],typeof arguments[1]<"u"&&(t=arguments[1]),this._mainContentContainer=e;else if(typeof arguments[0]=="string"){let i=arguments[0];r=E0.SimpleJson.TextToDictionary(i);}else r=arguments[0];if(t!=null&&(this._listDefinitions=new f1.ListDefinitionsOrigin(t)),this._externals=new Map,r!==null){let i=r,a=i.inkVersion;if(a==null)throw new Error("ink version number not found. Are you sure it's a valid .ink.json file?");let s=parseInt(a);if(s>n.inkVersionCurrent)throw new Error("Version of ink used to build story was newer than the current version of the engine");if(s<this.inkVersionMinimumCompatible)throw new Error("Version of ink used to build story is too old to be loaded by this version of the engine");s!=n.inkVersionCurrent&&console.warn(`WARNING: Version of ink ${n.inkVersionCurrent} used to build story doesn't match current version of engine (${s}). Non-critical, but recommend synchronising.`);let o=i.root;if(o==null)throw new Error("Root node for ink not found. Are you sure it's a valid .ink.json file?");let u;(u=i.listDefs)&&(this._listDefinitions=Tf.JsonSerialisation.JTokenToListDefinitions(u)),this._mainContentContainer=(0, G.asOrThrows)(Tf.JsonSerialisation.JTokenToRuntimeObject(o),We.Container),this.ResetState();}}ToJson(e){let t=false;if(e||(t=true,e=new E0.SimpleJson.Writer),e.WriteObjectStart(),e.WriteIntProperty("inkVersion",n.inkVersionCurrent),e.WriteProperty("root",r=>Tf.JsonSerialisation.WriteRuntimeContainer(r,this._mainContentContainer)),this._listDefinitions!=null){e.WritePropertyStart("listDefs"),e.WriteObjectStart();for(let r of this._listDefinitions.lists){e.WritePropertyStart(r.name),e.WriteObjectStart();for(let[i,a]of r.items){let s=gs.InkListItem.fromSerializedKey(i),o=a;e.WriteIntProperty(s.itemName,o);}e.WriteObjectEnd(),e.WritePropertyEnd();}e.WriteObjectEnd(),e.WritePropertyEnd();}if(e.WriteObjectEnd(),t)return e.toString()}ResetState(){this.IfAsyncWeCant("ResetState"),this._state=new o1.StoryState(this),this._state.variablesState.ObserveVariableChange(this.VariableStateDidChangeEvent.bind(this)),this.ResetGlobals();}ResetErrors(){if(this._state===null)return (0, re.throwNullException)("this._state");this._state.ResetErrors();}ResetCallstack(){if(this.IfAsyncWeCant("ResetCallstack"),this._state===null)return (0, re.throwNullException)("this._state");this._state.ForceEnd();}ResetGlobals(){if(this._mainContentContainer.namedContent.get("global decl")){let e=this.state.currentPointer.copy();this.ChoosePath(new Nf.Path("global decl"),false),this.ContinueInternal(),this.state.currentPointer=e;}this.state.variablesState.SnapshotDefaultGlobals();}SwitchFlow(e){if(this.IfAsyncWeCant("switch flow"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't switch flow to "+e);this.state.SwitchFlow_Internal(e);}RemoveFlow(e){this.state.RemoveFlow_Internal(e);}SwitchToDefaultFlow(){this.state.SwitchToDefaultFlow_Internal();}Continue(){return this.ContinueAsync(0),this.currentText}get canContinue(){return this.state.canContinue}get asyncContinueComplete(){return !this._asyncContinueActive}ContinueAsync(e){this._hasValidatedExternals||this.ValidateExternalBindings(),this.ContinueInternal(e);}ContinueInternal(e=0){this._profiler!=null&&this._profiler.PreContinue();let t=e>0;if(this._recursiveContinueCount++,this._asyncContinueActive)this._asyncContinueActive&&!t&&(this._asyncContinueActive=false);else {if(this._asyncContinueActive=t,!this.canContinue)throw new Error("Can't continue - should check canContinue before calling Continue");this._state.didSafeExit=false,this._state.ResetOutput(),this._recursiveContinueCount==1&&this._state.variablesState.StartVariableObservation();}let r=new p1.Stopwatch;r.Start();let i=false;this._sawLookaheadUnsafeFunctionAfterNewline=false;do{try{i=this.ContinueSingleStep();}catch(s){if(!(s instanceof er.StoryException))throw s;this.AddError(s.message,void 0,s.useEndLineNumber);break}if(i||this._asyncContinueActive&&r.ElapsedMilliseconds>e)break}while(this.canContinue);r.Stop();let a=null;if((i||!this.canContinue)&&(this._stateSnapshotAtLastNewline!==null&&this.RestoreStateSnapshot(),this.canContinue||(this.state.callStack.canPopThread&&this.AddError("Thread available to pop, threads should always be flat by the end of evaluation?"),this.state.generatedChoices.length==0&&!this.state.didSafeExit&&this._temporaryEvaluationContainer==null&&(this.state.callStack.CanPop(wt.PushPopType.Tunnel)?this.AddError("unexpectedly reached end of content. Do you need a '->->' to return from a tunnel?"):this.state.callStack.CanPop(wt.PushPopType.Function)?this.AddError("unexpectedly reached end of content. Do you need a '~ return'?"):this.state.callStack.canPop?this.AddError("unexpectedly reached end of content for unknown reason. Please debug compiler!"):this.AddError("ran out of content. Do you need a '-> DONE' or '-> END'?"))),this.state.didSafeExit=false,this._sawLookaheadUnsafeFunctionAfterNewline=false,this._recursiveContinueCount==1&&(a=this._state.variablesState.CompleteVariableObservation()),this._asyncContinueActive=false,this.onDidContinue!==null&&this.onDidContinue()),this._recursiveContinueCount--,this._profiler!=null&&this._profiler.PostContinue(),this.state.hasError||this.state.hasWarning)if(this.onError!==null){if(this.state.hasError)for(let s of this.state.currentErrors)this.onError(s,w0.ErrorType.Error);if(this.state.hasWarning)for(let s of this.state.currentWarnings)this.onError(s,w0.ErrorType.Warning);this.ResetErrors();}else {let s=new tr.StringBuilder;throw s.Append("Ink had "),this.state.hasError&&(s.Append(`${this.state.currentErrors.length}`),s.Append(this.state.currentErrors.length==1?" error":" errors"),this.state.hasWarning&&s.Append(" and ")),this.state.hasWarning&&(s.Append(`${this.state.currentWarnings.length}`),s.Append(this.state.currentWarnings.length==1?" warning":" warnings"),this.state.hasWarning&&s.Append(" and ")),s.Append(". It is strongly suggested that you assign an error handler to story.onError. The first issue was: "),s.Append(this.state.hasError?this.state.currentErrors[0]:this.state.currentWarnings[0]),new er.StoryException(s.toString())}a!=null&&Object.keys(a).length>0&&this._state.variablesState.NotifyObservers(a);}ContinueSingleStep(){if(this._profiler!=null&&this._profiler.PreStep(),this.Step(),this._profiler!=null&&this._profiler.PostStep(),!this.canContinue&&!this.state.callStack.elementIsEvaluateFromGame&&this.TryFollowDefaultInvisibleChoice(),this._profiler!=null&&this._profiler.PreSnapshot(),!this.state.inStringEvaluation){if(this._stateSnapshotAtLastNewline!==null){if(this._stateSnapshotAtLastNewline.currentTags===null)return (0, re.throwNullException)("this._stateAtLastNewline.currentTags");if(this.state.currentTags===null)return (0, re.throwNullException)("this.state.currentTags");let e=this.CalculateNewlineOutputStateChange(this._stateSnapshotAtLastNewline.currentText,this.state.currentText,this._stateSnapshotAtLastNewline.currentTags.length,this.state.currentTags.length);if(e==n.OutputStateChange.ExtendedBeyondNewline||this._sawLookaheadUnsafeFunctionAfterNewline)return this.RestoreStateSnapshot(),true;e==n.OutputStateChange.NewlineRemoved&&this.DiscardSnapshot();}this.state.outputStreamEndsInNewline&&(this.canContinue?this._stateSnapshotAtLastNewline==null&&this.StateSnapshot():this.DiscardSnapshot());}return this._profiler!=null&&this._profiler.PostSnapshot(),false}CalculateNewlineOutputStateChange(e,t,r,i){if(e===null)return (0, re.throwNullException)("prevText");if(t===null)return (0, re.throwNullException)("currText");let a=t.length>=e.length&&e.length>0&&t.charAt(e.length-1)==`
34
+ `;if(r==i&&e.length==t.length&&a)return n.OutputStateChange.NoChange;if(!a)return n.OutputStateChange.NewlineRemoved;if(i>r)return n.OutputStateChange.ExtendedBeyondNewline;for(let s=e.length;s<t.length;s++){let o=t.charAt(s);if(o!=" "&&o!=" ")return n.OutputStateChange.ExtendedBeyondNewline}return n.OutputStateChange.NoChange}ContinueMaximally(){this.IfAsyncWeCant("ContinueMaximally");let e=new tr.StringBuilder;for(;this.canContinue;)e.Append(this.Continue());return e.toString()}ContentAtPath(e){return this.mainContentContainer.ContentAtPath(e)}KnotContainerWithName(e){let t=this.mainContentContainer.namedContent.get(e);return t instanceof We.Container?t:null}PointerAtPath(e){if(e.length==0)return An.Pointer.Null;let t=new An.Pointer,r=e.length,i=null;return e.lastComponent===null?(0, re.throwNullException)("path.lastComponent"):(e.lastComponent.isIndex?(r=e.length-1,i=this.mainContentContainer.ContentAtPath(e,void 0,r),t.container=i.container,t.index=e.lastComponent.index):(i=this.mainContentContainer.ContentAtPath(e),t.container=i.container,t.index=-1),i.obj==null||i.obj==this.mainContentContainer&&r>0?this.Error("Failed to find content at path '"+e+"', and no approximation of it was possible."):i.approximate&&this.Warning("Failed to find content at path '"+e+"', so it was approximated to: '"+i.obj.path+"'."),t)}StateSnapshot(){this._stateSnapshotAtLastNewline=this._state,this._state=this._state.CopyAndStartPatching(false);}RestoreStateSnapshot(){this._stateSnapshotAtLastNewline===null&&(0, re.throwNullException)("_stateSnapshotAtLastNewline"),this._stateSnapshotAtLastNewline.RestoreAfterPatch(),this._state=this._stateSnapshotAtLastNewline,this._stateSnapshotAtLastNewline=null,this._asyncSaving||this._state.ApplyAnyPatch();}DiscardSnapshot(){this._asyncSaving||this._state.ApplyAnyPatch(),this._stateSnapshotAtLastNewline=null;}CopyStateForBackgroundThreadSave(){if(this.IfAsyncWeCant("start saving on a background thread"),this._asyncSaving)throw new Error("Story is already in background saving mode, can't call CopyStateForBackgroundThreadSave again!");let e=this._state;return this._state=this._state.CopyAndStartPatching(true),this._asyncSaving=true,e}BackgroundSaveComplete(){this._stateSnapshotAtLastNewline===null&&this._state.ApplyAnyPatch(),this._asyncSaving=false;}Step(){let e=true,t=this.state.currentPointer.copy();if(t.isNull)return;let r=(0, G.asOrNull)(t.Resolve(),We.Container);for(;r&&(this.VisitContainer(r,true),r.content.length!=0);)t=An.Pointer.StartOf(r),r=(0, G.asOrNull)(t.Resolve(),We.Container);this.state.currentPointer=t.copy(),this._profiler!=null&&this._profiler.Step(this.state.callStack);let i=t.Resolve(),a=this.PerformLogicAndFlowControl(i);if(this.state.currentPointer.isNull)return;a&&(e=false);let s=(0, G.asOrNull)(i,u1.ChoicePoint);if(s){let u=this.ProcessChoice(s);u&&this.state.generatedChoices.push(u),i=null,e=false;}if(i instanceof We.Container&&(e=false),e){let u=(0, G.asOrNull)(i,I.VariablePointerValue);if(u&&u.contextIndex==-1){let l=this.state.callStack.ContextForVariableNamed(u.variableName);i=new I.VariablePointerValue(u.variableName,l);}this.state.inExpressionEvaluation?this.state.PushEvaluationStack(i):this.state.PushToOutputStream(i);}this.NextContent();let o=(0, G.asOrNull)(i,B.ControlCommand);o&&o.commandType==B.ControlCommand.CommandType.StartThread&&this.state.callStack.PushThread();}VisitContainer(e,t){(!e.countingAtStartOnly||t)&&(e.visitsShouldBeCounted&&this.state.IncrementVisitCountForContainer(e),e.turnIndexShouldBeCounted&&this.state.RecordTurnIndexVisitToContainer(e));}VisitChangedContainersDueToDivert(){let e=this.state.previousPointer.copy(),t=this.state.currentPointer.copy();if(t.isNull||t.index==-1)return;if(this._prevContainers.length=0,!e.isNull){let s=e.Resolve(),o=(0, G.asOrNull)(s,We.Container)||(0, G.asOrNull)(e.container,We.Container);for(;o;)this._prevContainers.push(o),o=(0, G.asOrNull)(o.parent,We.Container);}let r=t.Resolve();if(r==null)return;let i=(0, G.asOrNull)(r.parent,We.Container),a=true;for(;i&&(this._prevContainers.indexOf(i)<0||i.countingAtStartOnly);){let s=i.content.length>0&&r==i.content[0]&&a;s||(a=false),this.VisitContainer(i,s),r=i,i=(0, G.asOrNull)(i.parent,We.Container);}}PopChoiceStringAndTags(e){let t=(0, G.asOrThrows)(this.state.PopEvaluationStack(),I.StringValue);for(;this.state.evaluationStack.length>0&&(0, G.asOrNull)(this.state.PeekEvaluationStack(),Eu.Tag)!=null;){let r=(0, G.asOrNull)(this.state.PopEvaluationStack(),Eu.Tag);r&&e.push(r.text);}return t.value}ProcessChoice(e){let t=true;if(e.hasCondition){let o=this.state.PopEvaluationStack();this.IsTruthy(o)||(t=false);}let r="",i="",a=[];if(e.hasChoiceOnlyContent&&(i=this.PopChoiceStringAndTags(a)||""),e.hasStartContent&&(r=this.PopChoiceStringAndTags(a)||""),e.onceOnly&&this.state.VisitCountForContainer(e.choiceTarget)>0&&(t=false),!t)return null;let s=new l1.Choice;return s.targetPath=e.pathOnChoice,s.sourcePath=e.path.toString(),s.isInvisibleDefault=e.isInvisibleDefault,s.threadAtGeneration=this.state.callStack.ForkThread(),s.tags=a.reverse(),s.text=(r+i).replace(/^[ \t]+|[ \t]+$/g,""),s}IsTruthy(e){let t=false;if(e instanceof I.Value){let r=e;if(r instanceof I.DivertTargetValue){let i=r;return this.Error("Shouldn't use a divert target (to "+i.targetPath+") as a conditional value. Did you intend a function call 'likeThis()' or a read count check 'likeThis'? (no arrows)"),false}return r.isTruthy}return t}PerformLogicAndFlowControl(e){if(e==null)return false;if(e instanceof S0.Divert){let t=e;if(t.isConditional){let r=this.state.PopEvaluationStack();if(!this.IsTruthy(r))return true}if(t.hasVariableTarget){let r=t.variableDivertName,i=this.state.variablesState.GetVariableWithName(r);if(i==null)this.Error("Tried to divert using a target from a variable that could not be found ("+r+")");else if(!(i instanceof I.DivertTargetValue)){let s=(0, G.asOrNull)(i,I.IntValue),o="Tried to divert to a target from a variable, but the variable ("+r+") didn't contain a divert target, it ";s instanceof I.IntValue&&s.value==0?o+="was empty/null (the value 0).":o+="contained '"+i+"'.",this.Error(o);}let a=(0, G.asOrThrows)(i,I.DivertTargetValue);this.state.divertedPointer=this.PointerAtPath(a.targetPath);}else {if(t.isExternal)return this.CallExternalFunction(t.targetPathString,t.externalArgs),true;this.state.divertedPointer=t.targetPointer.copy();}return t.pushesToStack&&this.state.callStack.Push(t.stackPushType,void 0,this.state.outputStream.length),this.state.divertedPointer.isNull&&!t.isExternal&&(t&&t.debugMetadata&&t.debugMetadata.sourceName!=null?this.Error("Divert target doesn't exist: "+t.debugMetadata.sourceName):this.Error("Divert resolution failed: "+t)),true}else if(e instanceof B.ControlCommand){let t=e;switch(t.commandType){case B.ControlCommand.CommandType.EvalStart:this.Assert(this.state.inExpressionEvaluation===false,"Already in expression evaluation?"),this.state.inExpressionEvaluation=true;break;case B.ControlCommand.CommandType.EvalEnd:this.Assert(this.state.inExpressionEvaluation===true,"Not in expression evaluation mode"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.EvalOutput:if(this.state.evaluationStack.length>0){let m=this.state.PopEvaluationStack();if(!(m instanceof ms.Void)){let b=new I.StringValue(m.toString());this.state.PushToOutputStream(b);}}break;case B.ControlCommand.CommandType.NoOp:break;case B.ControlCommand.CommandType.Duplicate:this.state.PushEvaluationStack(this.state.PeekEvaluationStack());break;case B.ControlCommand.CommandType.PopEvaluatedValue:this.state.PopEvaluationStack();break;case B.ControlCommand.CommandType.PopFunction:case B.ControlCommand.CommandType.PopTunnel:let r=t.commandType==B.ControlCommand.CommandType.PopFunction?wt.PushPopType.Function:wt.PushPopType.Tunnel,i=null;if(r==wt.PushPopType.Tunnel){let m=this.state.PopEvaluationStack();i=(0, G.asOrNull)(m,I.DivertTargetValue),i===null&&this.Assert(m instanceof ms.Void,"Expected void if ->-> doesn't override target");}if(this.state.TryExitFunctionEvaluationFromGame())break;if(this.state.callStack.currentElement.type!=r||!this.state.callStack.canPop){let m=new Map;m.set(wt.PushPopType.Function,"function return statement (~ return)"),m.set(wt.PushPopType.Tunnel,"tunnel onwards statement (->->)");let b=m.get(this.state.callStack.currentElement.type);this.state.callStack.canPop||(b="end of flow (-> END or choice)");let w="Found "+m.get(r)+", when expected "+b;this.Error(w);}else this.state.PopCallStack(),i&&(this.state.divertedPointer=this.PointerAtPath(i.targetPath));break;case B.ControlCommand.CommandType.BeginString:this.state.PushToOutputStream(t),this.Assert(this.state.inExpressionEvaluation===true,"Expected to be in an expression when evaluating a string"),this.state.inExpressionEvaluation=false;break;case B.ControlCommand.CommandType.BeginTag:this.state.PushToOutputStream(t);break;case B.ControlCommand.CommandType.EndTag:{if(this.state.inStringEvaluation){let m=[],b=0;for(let O=this.state.outputStream.length-1;O>=0;--O){let k=this.state.outputStream[O];b++;let J=(0, G.asOrNull)(k,B.ControlCommand);if(J!=null){if(J.commandType==B.ControlCommand.CommandType.BeginTag)break;this.Error("Unexpected ControlCommand while extracting tag from choice");break}k instanceof I.StringValue&&m.push(k);}this.state.PopFromOutputStream(b);let w=new tr.StringBuilder;for(let O of m.reverse())w.Append(O.toString());let P=new Eu.Tag(this.state.CleanOutputWhitespace(w.toString()));this.state.PushEvaluationStack(P);}else this.state.PushToOutputStream(t);break}case B.ControlCommand.CommandType.EndString:{let m=[],b=[],w=0;for(let O=this.state.outputStream.length-1;O>=0;--O){let k=this.state.outputStream[O];w++;let J=(0, G.asOrNull)(k,B.ControlCommand);if(J&&J.commandType==B.ControlCommand.CommandType.BeginString)break;k instanceof Eu.Tag&&b.push(k),k instanceof I.StringValue&&m.push(k);}this.state.PopFromOutputStream(w);for(let O of b)this.state.PushToOutputStream(O);m=m.reverse();let P=new tr.StringBuilder;for(let O of m)P.Append(O.toString());this.state.inExpressionEvaluation=true,this.state.PushEvaluationStack(new I.StringValue(P.toString()));break}case B.ControlCommand.CommandType.ChoiceCount:let a=this.state.generatedChoices.length;this.state.PushEvaluationStack(new I.IntValue(a));break;case B.ControlCommand.CommandType.Turns:this.state.PushEvaluationStack(new I.IntValue(this.state.currentTurnIndex+1));break;case B.ControlCommand.CommandType.TurnsSince:case B.ControlCommand.CommandType.ReadCount:let s=this.state.PopEvaluationStack();if(!(s instanceof I.DivertTargetValue)){let m="";s instanceof I.IntValue&&(m=". Did you accidentally pass a read count ('knot_name') instead of a target ('-> knot_name')?"),this.Error("TURNS_SINCE / READ_COUNT expected a divert target (knot, stitch, label name), but saw "+s+m);break}let o=(0, G.asOrThrows)(s,I.DivertTargetValue),u=(0, G.asOrNull)(this.ContentAtPath(o.targetPath).correctObj,We.Container),l;u!=null?t.commandType==B.ControlCommand.CommandType.TurnsSince?l=this.state.TurnsSinceForContainer(u):l=this.state.VisitCountForContainer(u):(t.commandType==B.ControlCommand.CommandType.TurnsSince?l=-1:l=0,this.Warning("Failed to find container for "+t.toString()+" lookup at "+o.targetPath.toString())),this.state.PushEvaluationStack(new I.IntValue(l));break;case B.ControlCommand.CommandType.Random:{let m=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.IntValue),b=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.IntValue);if(b==null||!(b instanceof I.IntValue))return this.Error("Invalid value for minimum parameter of RANDOM(min, max)");if(m==null||!(m instanceof I.IntValue))return this.Error("Invalid value for maximum parameter of RANDOM(min, max)");if(m.value===null)return (0, re.throwNullException)("maxInt.value");if(b.value===null)return (0, re.throwNullException)("minInt.value");let w=m.value-b.value+1;(!isFinite(w)||w>Number.MAX_SAFE_INTEGER)&&(w=Number.MAX_SAFE_INTEGER,this.Error("RANDOM was called with a range that exceeds the size that ink numbers can use.")),w<=0&&this.Error("RANDOM was called with minimum as "+b.value+" and maximum as "+m.value+". The maximum must be larger");let P=this.state.storySeed+this.state.previousRandom,k=new Ff.PRNG(P).next(),J=k%w+b.value;this.state.PushEvaluationStack(new I.IntValue(J)),this.state.previousRandom=k;break}case B.ControlCommand.CommandType.SeedRandom:let c=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.IntValue);if(c==null||!(c instanceof I.IntValue))return this.Error("Invalid value passed to SEED_RANDOM");if(c.value===null)return (0, re.throwNullException)("minInt.value");this.state.storySeed=c.value,this.state.previousRandom=0,this.state.PushEvaluationStack(new ms.Void);break;case B.ControlCommand.CommandType.VisitIndex:let h=this.state.VisitCountForContainer(this.state.currentPointer.container)-1;this.state.PushEvaluationStack(new I.IntValue(h));break;case B.ControlCommand.CommandType.SequenceShuffleIndex:let p=this.NextSequenceShuffleIndex();this.state.PushEvaluationStack(new I.IntValue(p));break;case B.ControlCommand.CommandType.StartThread:break;case B.ControlCommand.CommandType.Done:this.state.callStack.canPopThread?this.state.callStack.PopThread():(this.state.didSafeExit=true,this.state.currentPointer=An.Pointer.Null);break;case B.ControlCommand.CommandType.End:this.state.ForceEnd();break;case B.ControlCommand.CommandType.ListFromInt:let f=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.IntValue),g=(0, G.asOrThrows)(this.state.PopEvaluationStack(),I.StringValue);if(f===null)throw new er.StoryException("Passed non-integer when creating a list element from a numerical value.");let y=null;if(this.listDefinitions===null)return (0, re.throwNullException)("this.listDefinitions");let C=this.listDefinitions.TryListGetDefinition(g.value,null);if(C.exists){if(f.value===null)return (0, re.throwNullException)("minInt.value");let m=C.result.TryGetItemWithValue(f.value,gs.InkListItem.Null);m.exists&&(y=new I.ListValue(m.result,f.value));}else throw new er.StoryException("Failed to find LIST called "+g.value);y==null&&(y=new I.ListValue),this.state.PushEvaluationStack(y);break;case B.ControlCommand.CommandType.ListRange:let _=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.Value),v=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.Value),d=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.ListValue);if(d===null||v===null||_===null)throw new er.StoryException("Expected list, minimum and maximum for LIST_RANGE");if(d.value===null)return (0, re.throwNullException)("targetList.value");let S=d.value.ListWithSubRange(v.valueObject,_.valueObject);this.state.PushEvaluationStack(new I.ListValue(S));break;case B.ControlCommand.CommandType.ListRandom:{let m=this.state.PopEvaluationStack();if(m===null)throw new er.StoryException("Expected list for LIST_RANDOM");let b=m.value,w=null;if(b===null)throw (0, re.throwNullException)("list");if(b.Count==0)w=new gs.InkList;else {let P=this.state.storySeed+this.state.previousRandom,k=new Ff.PRNG(P).next(),J=k%b.Count,ie=b.entries();for(let Qr=0;Qr<=J-1;Qr++)ie.next();let ue=ie.next().value,an={Key:gs.InkListItem.fromSerializedKey(ue[0]),Value:ue[1]};if(an.Key.originName===null)return (0, re.throwNullException)("randomItem.Key.originName");w=new gs.InkList(an.Key.originName,this),w.Add(an.Key,an.Value),this.state.previousRandom=k;}this.state.PushEvaluationStack(new I.ListValue(w));break}default:this.Error("unhandled ControlCommand: "+t);break}return true}else if(e instanceof c1.VariableAssignment){let t=e,r=this.state.PopEvaluationStack();return this.state.variablesState.Assign(t,r),true}else if(e instanceof h1.VariableReference){let t=e,r=null;if(t.pathForCount!=null){let i=t.containerForCount,a=this.state.VisitCountForContainer(i);r=new I.IntValue(a);}else r=this.state.variablesState.GetVariableWithName(t.name),r==null&&(this.Warning("Variable not found: '"+t.name+"'. Using default value of 0 (false). This can happen with temporary variables if the declaration hasn't yet been hit. Globals are always given a default value on load if a value doesn't exist in the save state."),r=new I.IntValue(0));return this.state.PushEvaluationStack(r),true}else if(e instanceof d1.NativeFunctionCall){let t=e,r=this.state.PopEvaluationStack(t.numberOfParameters),i=t.Call(r);return this.state.PushEvaluationStack(i),true}return false}ChoosePathString(e,t=true,r=[]){if(this.IfAsyncWeCant("call ChoosePathString right now"),this.onChoosePathString!==null&&this.onChoosePathString(e,r),t)this.ResetCallstack();else if(this.state.callStack.currentElement.type==wt.PushPopType.Function){let i="",a=this.state.callStack.currentElement.currentPointer.container;throw a!=null&&(i="("+a.path.toString()+") "),new Error("Story was running a function "+i+"when you called ChoosePathString("+e+`) - this is almost certainly not not what you want! Full stack trace:
35
+ `+this.state.callStack.callStackTrace)}this.state.PassArgumentsToEvaluationStack(r),this.ChoosePath(new Nf.Path(e));}IfAsyncWeCant(e){if(this._asyncContinueActive)throw new Error("Can't "+e+". Story is in the middle of a ContinueAsync(). Make more ContinueAsync() calls or a single Continue() call beforehand.")}ChoosePath(e,t=true){this.state.SetChosenPath(e,t),this.VisitChangedContainersDueToDivert();}ChooseChoiceIndex(e){e=e;let t=this.currentChoices;this.Assert(e>=0&&e<t.length,"choice out of range");let r=t[e];if(this.onMakeChoice!==null&&this.onMakeChoice(r),r.threadAtGeneration===null)return (0, re.throwNullException)("choiceToChoose.threadAtGeneration");if(r.targetPath===null)return (0, re.throwNullException)("choiceToChoose.targetPath");this.state.callStack.currentThread=r.threadAtGeneration,this.ChoosePath(r.targetPath);}HasFunction(e){try{return this.KnotContainerWithName(e)!=null}catch{return false}}EvaluateFunction(e,t=[],r=false){if(this.onEvaluateFunction!==null&&this.onEvaluateFunction(e,t),this.IfAsyncWeCant("evaluate a function"),e==null)throw new Error("Function is null");if(e==""||e.trim()=="")throw new Error("Function is empty or white space.");let i=this.KnotContainerWithName(e);if(i==null)throw new Error("Function doesn't exist: '"+e+"'");let a=[];a.push(...this.state.outputStream),this._state.ResetOutput(),this.state.StartFunctionEvaluationFromGame(i,t);let s=new tr.StringBuilder;for(;this.canContinue;)s.Append(this.Continue());let o=s.toString();this._state.ResetOutput(a);let u=this.state.CompleteFunctionEvaluationFromGame();return this.onCompleteEvaluateFunction!=null&&this.onCompleteEvaluateFunction(e,t,o,u),r?{returned:u,output:o}:u}EvaluateExpression(e){let t=this.state.callStack.elements.length;this.state.callStack.Push(wt.PushPopType.Tunnel),this._temporaryEvaluationContainer=e,this.state.GoToStart();let r=this.state.evaluationStack.length;return this.Continue(),this._temporaryEvaluationContainer=null,this.state.callStack.elements.length>t&&this.state.PopCallStack(),this.state.evaluationStack.length>r?this.state.PopEvaluationStack():null}CallExternalFunction(e,t){if(e===null)return (0, re.throwNullException)("funcName");let r=this._externals.get(e),i=null,a=typeof r<"u";if(a&&!r.lookAheadSafe&&this._state.inStringEvaluation&&this.Error("External function "+e+` could not be called because 1) it wasn't marked as lookaheadSafe when BindExternalFunction was called and 2) the story is in the middle of string generation, either because choice text is being generated, or because you have ink like "hello {func()}". You can work around this by generating the result of your function into a temporary variable before the string or choice gets generated: ~ temp x = `+e+"()"),a&&!r.lookAheadSafe&&this._stateSnapshotAtLastNewline!==null){this._sawLookaheadUnsafeFunctionAfterNewline=true;return}if(!a)if(this.allowExternalFunctionFallbacks){i=this.KnotContainerWithName(e),this.Assert(i!==null,"Trying to call EXTERNAL function '"+e+"' which has not been bound, and fallback ink function could not be found."),this.state.callStack.Push(wt.PushPopType.Function,void 0,this.state.outputStream.length),this.state.divertedPointer=An.Pointer.StartOf(i);return}else this.Assert(false,"Trying to call EXTERNAL function '"+e+"' which has not been bound (and ink fallbacks disabled).");let s=[];for(let l=0;l<t;++l){let h=(0, G.asOrThrows)(this.state.PopEvaluationStack(),I.Value).valueObject;s.push(h);}s.reverse();let o=r.function(s),u=null;o!=null?(u=I.Value.Create(o),this.Assert(u!==null,"Could not create ink value from returned object of type "+typeof o)):u=new ms.Void,this.state.PushEvaluationStack(u);}BindExternalFunctionGeneral(e,t,r=true){this.IfAsyncWeCant("bind an external function"),this.Assert(!this._externals.has(e),"Function '"+e+"' has already been bound."),this._externals.set(e,{function:t,lookAheadSafe:r});}TryCoerce(e){return e}BindExternalFunction(e,t,r=false){this.Assert(t!=null,"Can't bind a null function"),this.BindExternalFunctionGeneral(e,i=>{this.Assert(i.length>=t.length,"External function expected "+t.length+" arguments");let a=[];for(let s=0,o=i.length;s<o;s++)a[s]=this.TryCoerce(i[s]);return t.apply(null,a)},r);}UnbindExternalFunction(e){this.IfAsyncWeCant("unbind an external a function"),this.Assert(this._externals.has(e),"Function '"+e+"' has not been bound."),this._externals.delete(e);}ValidateExternalBindings(){let e=null,t=null,r=arguments[1]||new Set;if(arguments[0]instanceof We.Container&&(e=arguments[0]),arguments[0]instanceof xf.InkObject&&(t=arguments[0]),e===null&&t===null)if(this.ValidateExternalBindings(this._mainContentContainer,r),this._hasValidatedExternals=true,r.size==0)this._hasValidatedExternals=true;else {let i="Error: Missing function binding for external";i+=r.size>1?"s":"",i+=": '",i+=Array.from(r).join("', '"),i+="' ",i+=this.allowExternalFunctionFallbacks?", and no fallback ink function found.":" (ink fallbacks disabled)",this.Error(i);}else if(e!=null){for(let i of e.content){let a=i;(a==null||!a.hasValidName)&&this.ValidateExternalBindings(i,r);}for(let[,i]of e.namedContent)this.ValidateExternalBindings((0, G.asOrNull)(i,xf.InkObject),r);}else if(t!=null){let i=(0, G.asOrNull)(t,S0.Divert);if(i&&i.isExternal){let a=i.targetPathString;if(a===null)return (0, re.throwNullException)("name");this._externals.has(a)||this.allowExternalFunctionFallbacks&&this.mainContentContainer.namedContent.has(a)||r.add(a);}}}ObserveVariable(e,t){if(this.IfAsyncWeCant("observe a new variable"),this._variableObservers===null&&(this._variableObservers=new Map),!this.state.variablesState.GlobalVariableExistsWithName(e))throw new Error("Cannot observe variable '"+e+"' because it wasn't declared in the ink story.");this._variableObservers.has(e)?this._variableObservers.get(e).push(t):this._variableObservers.set(e,[t]);}ObserveVariables(e,t){for(let r=0,i=e.length;r<i;r++)this.ObserveVariable(e[r],t[r]);}RemoveVariableObserver(e,t){if(this.IfAsyncWeCant("remove a variable observer"),this._variableObservers!==null){if(t!=null){if(this._variableObservers.has(t))if(e!=null){let r=this._variableObservers.get(t);r!=null&&(r.splice(r.indexOf(e),1),r.length===0&&this._variableObservers.delete(t));}else this._variableObservers.delete(t);}else if(e!=null){let r=this._variableObservers.keys();for(let i of r){let a=this._variableObservers.get(i);a!=null&&(a.splice(a.indexOf(e),1),a.length===0&&this._variableObservers.delete(i));}}}}VariableStateDidChangeEvent(e,t){if(this._variableObservers===null)return;let r=this._variableObservers.get(e);if(typeof r<"u"){if(!(t instanceof I.Value))throw new Error("Tried to get the value of a variable that isn't a standard type");let i=(0, G.asOrThrows)(t,I.Value);for(let a of r)a(e,i.valueObject);}}get globalTags(){return this.TagsAtStartOfFlowContainerWithPathString("")}TagsForContentAtPath(e){return this.TagsAtStartOfFlowContainerWithPathString(e)}TagsAtStartOfFlowContainerWithPathString(e){let t=new Nf.Path(e),r=this.ContentAtPath(t).container;if(r===null)return (0, re.throwNullException)("flowContainer");for(;;){let s=r.content[0];if(s instanceof We.Container)r=s;else break}let i=false,a=null;for(let s of r.content){let o=(0, G.asOrNull)(s,B.ControlCommand);if(o!=null)o.commandType==B.ControlCommand.CommandType.BeginTag?i=true:o.commandType==B.ControlCommand.CommandType.EndTag&&(i=false);else if(i){let u=(0, G.asOrNull)(s,I.StringValue);u!==null?(a===null&&(a=[]),u.value!==null&&a.push(u.value)):this.Error("Tag contained non-text content. Only plain text is allowed when using globalTags or TagsAtContentPath. If you want to evaluate dynamic content, you need to use story.Continue().");}else break}return a}BuildStringOfHierarchy(){let e=new tr.StringBuilder;return this.mainContentContainer.BuildStringOfHierarchy(e,0,this.state.currentPointer.Resolve()),e.toString()}BuildStringOfContainer(e){let t=new tr.StringBuilder;return e.BuildStringOfHierarchy(t,0,this.state.currentPointer.Resolve()),t.toString()}NextContent(){if(this.state.previousPointer=this.state.currentPointer.copy(),!this.state.divertedPointer.isNull&&(this.state.currentPointer=this.state.divertedPointer.copy(),this.state.divertedPointer=An.Pointer.Null,this.VisitChangedContainersDueToDivert(),!this.state.currentPointer.isNull))return;if(!this.IncrementContentPointer()){let t=false;this.state.callStack.CanPop(wt.PushPopType.Function)?(this.state.PopCallStack(wt.PushPopType.Function),this.state.inExpressionEvaluation&&this.state.PushEvaluationStack(new ms.Void),t=true):this.state.callStack.canPopThread?(this.state.callStack.PopThread(),t=true):this.state.TryExitFunctionEvaluationFromGame(),t&&!this.state.currentPointer.isNull&&this.NextContent();}}IncrementContentPointer(){let e=true,t=this.state.callStack.currentElement.currentPointer.copy();if(t.index++,t.container===null)return (0, re.throwNullException)("pointer.container");for(;t.index>=t.container.content.length;){e=false;let r=(0, G.asOrNull)(t.container.parent,We.Container);if(!(r instanceof We.Container))break;let i=r.content.indexOf(t.container);if(i==-1)break;if(t=new An.Pointer(r,i),t.index++,e=true,t.container===null)return (0, re.throwNullException)("pointer.container")}return e||(t=An.Pointer.Null),this.state.callStack.currentElement.currentPointer=t.copy(),e}TryFollowDefaultInvisibleChoice(){let e=this._state.currentChoices,t=e.filter(i=>i.isInvisibleDefault);if(t.length==0||e.length>t.length)return false;let r=t[0];return r.targetPath===null?(0, re.throwNullException)("choice.targetPath"):r.threadAtGeneration===null?(0, re.throwNullException)("choice.threadAtGeneration"):(this.state.callStack.currentThread=r.threadAtGeneration,this._stateSnapshotAtLastNewline!==null&&(this.state.callStack.currentThread=this.state.callStack.ForkThread()),this.ChoosePath(r.targetPath,false),true)}NextSequenceShuffleIndex(){let e=(0, G.asOrNull)(this.state.PopEvaluationStack(),I.IntValue);if(!(e instanceof I.IntValue))return this.Error("expected number of elements in sequence for shuffle index"),0;let t=this.state.currentPointer.container;if(t===null)return (0, re.throwNullException)("seqContainer");if(e.value===null)return (0, re.throwNullException)("numElementsIntVal.value");let r=e.value,a=(0, G.asOrThrows)(this.state.PopEvaluationStack(),I.IntValue).value;if(a===null)return (0, re.throwNullException)("seqCount");let s=a/r,o=a%r,u=t.path.toString(),l=0;for(let f=0,g=u.length;f<g;f++)l+=u.charCodeAt(f)||0;let c=l+s+this.state.storySeed,h=new Ff.PRNG(Math.floor(c)),p=[];for(let f=0;f<r;++f)p.push(f);for(let f=0;f<=o;++f){let g=h.next()%p.length,y=p[g];if(p.splice(g,1),f==o)return y}throw new Error("Should never reach here")}Error(e,t=false){let r=new er.StoryException(e);throw r.useEndLineNumber=t,r}Warning(e){this.AddError(e,true);}AddError(e,t=false,r=false){let i=this.currentDebugMetadata,a=t?"WARNING":"ERROR";if(i!=null){let s=r?i.endLineNumber:i.startLineNumber;e="RUNTIME "+a+": '"+i.fileName+"' line "+s+": "+e;}else this.state.currentPointer.isNull?e="RUNTIME "+a+": "+e:e="RUNTIME "+a+": ("+this.state.currentPointer+"): "+e;this.state.AddError(e,t),t||this.state.ForceEnd();}Assert(e,t=null){if(e==false)throw t==null&&(t="Story assert"),new Error(t+" "+this.currentDebugMetadata)}get currentDebugMetadata(){let e,t=this.state.currentPointer;if(!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.callStack.elements.length-1;r>=0;--r)if(t=this.state.callStack.elements[r].currentPointer,!t.isNull&&t.Resolve()!==null&&(e=t.Resolve().debugMetadata,e!==null))return e;for(let r=this.state.outputStream.length-1;r>=0;--r)if(e=this.state.outputStream[r].debugMetadata,e!==null)return e;return null}get mainContentContainer(){return this._temporaryEvaluationContainer?this._temporaryEvaluationContainer:this._mainContentContainer}};nr.Story=Hr;Hr.inkVersionCurrent=21;(function(n){(function(t){t[t.NoChange=0]="NoChange",t[t.ExtendedBeyondNewline=1]="ExtendedBeyondNewline",t[t.NewlineRemoved=2]="NewlineRemoved";})(n.OutputStateChange||(n.OutputStateChange={}));})(Hr||(nr.Story=Hr={}));});var A0=E(Ou=>{Object.defineProperty(Ou,"__esModule",{value:true});Ou.Story=void 0;var g1=ba(),y1=so(),wu=Ee(),Du=qe(),ys=Pr(),Au=Gt(),D0=jr(),v1=Qd(),C1=Ro(),b1=af(),_1=cs(),Ur=nn(),S1=Sn(),E1=bn(),vs=ae(),w1=ts(),D1=ns(),A1=Yn(),Pu=class n extends Au.FlowBase{get flowLevel(){return D0.FlowLevel.Story}get hadError(){return this._hadError}get hadWarning(){return this._hadWarning}constructor(e,t=false){super(null,e,null,false,t),this._errorHandler=null,this._hadError=false,this._hadWarning=false,this._dontFlattenContainers=new Set,this._listDefs=new Map,this.constants=new Map,this.externals=new Map,this.countAllVisits=false,this.ExportRuntime=(r=null)=>{var i,a;this._errorHandler=r,this.constants=new Map;for(let c of this.FindAll(y1.ConstantDeclaration)()){let h=this.constants.get(c.constantName);if(h&&!h.Equals(c.expression)){let p=`CONST '${c.constantName}' has been redefined with a different value. Multiple definitions of the same CONST are valid so long as they contain the same value. Initial definition was on ${h.debugMetadata}.`;this.Error(p,c,false);}this.constants.set(c.constantName,c.expression);}this._listDefs=new Map;for(let c of this.FindAll(C1.ListDefinition)())!((i=c.identifier)===null||i===void 0)&&i.name&&this._listDefs.set((a=c.identifier)===null||a===void 0?void 0:a.name,c);this.externals=new Map,this.ResolveWeavePointNaming();let s=this.runtimeObject,o=new wu.Container;o.AddContent(Du.ControlCommand.EvalStart());let u=[];for(let[c,h]of this.variableDeclarations)if(h.isGlobalDeclaration){if(h.listDefinition)this._listDefs.set(c,h.listDefinition),o.AddContent(h.listDefinition.runtimeObject),u.push(h.listDefinition.runtimeListDefinition);else {if(!h.expression)throw new Error;h.expression.GenerateIntoContainer(o);}let p=new E1.VariableAssignment(c,true);p.isGlobal=true,o.AddContent(p);}o.AddContent(Du.ControlCommand.EvalEnd()),o.AddContent(Du.ControlCommand.End()),this.variableDeclarations.size>0&&(o.name="global decl",s.AddToNamedContentOnly(o)),s.AddContent(Du.ControlCommand.Done());let l=new _1.Story(s,u);return this.runtimeObject=l,this.hadError||(this.FlattenContainersIn(s),this.ResolveReferences(this),this.hadError)?null:(l.ResetState(),l)},this.ResolveList=r=>{let i=this._listDefs.get(r);return i||null},this.ResolveListItem=(r,i,a=null)=>{let s=null;if(r)return (s=this._listDefs.get(r))?s.ItemNamed(i):null;{let o=null,u=null;for(let[,l]of this._listDefs.entries()){let c=l.ItemNamed(i);c&&(o?this.Error(`Ambiguous item name '${i}' found in multiple sets, including ${u.identifier} and ${l.identifier}`,a,false):(o=c,u=l));}return o}},this.FlattenContainersIn=r=>{let i=new Set;if(r.content)for(let a of r.content){let s=(0, vs.asOrNull)(a,wu.Container);s&&i.add(s);}if(r.namedContent)for(let[,a]of r.namedContent){let s=(0, vs.asOrNull)(a,wu.Container);s&&i.add(s);}for(let a of i)this.TryFlattenContainer(a),this.FlattenContainersIn(a);},this.TryFlattenContainer=r=>{if(r.namedContent&&r.namedContent.size>0||r.hasValidName||this._dontFlattenContainers.has(r))return;let i=(0, vs.asOrNull)(r.parent,wu.Container);if(i){let a=i.content.indexOf(r);i.content.splice(a,1);let s=r.ownDebugMetadata;if(r.content)for(let o of r.content)o.parent=null,s!==null&&o.ownDebugMetadata===null&&(o.debugMetadata=s),i.InsertContent(o,a),a+=1;}},this.Error=(r,i,a)=>{let s=a?ys.ErrorType.Warning:ys.ErrorType.Error,o="";if(i instanceof g1.AuthorWarning?(o+="TODO: ",s=ys.ErrorType.Author):a?o+="WARNING: ":o+="ERROR: ",i&&i.debugMetadata!==null&&i.debugMetadata.startLineNumber>=1&&(i.debugMetadata.fileName!=null&&(o+=`'${i.debugMetadata.fileName}' `),o+=`line ${i.debugMetadata.startLineNumber}: `),o+=r,r=o,this._errorHandler!==null)this._errorHandler(r,s);else throw new Error(r);this._hadError=s===ys.ErrorType.Error,this._hadWarning=s===ys.ErrorType.Warning;},this.ResetError=()=>{this._hadError=false,this._hadWarning=false;},this.IsExternal=r=>this.externals.has(r),this.AddExternal=r=>{this.externals.has(r.name)?this.Error(`Duplicate EXTERNAL definition of '${r.name}'`,r,false):r.name&&this.externals.set(r.name,r);},this.DontFlattenContainer=r=>{this._dontFlattenContainers.add(r);},this.NameConflictError=(r,i,a,s)=>{r.Error(`${s} '${i}': name has already been used for a ${a.typeName.toLowerCase()} on ${a.debugMetadata}`);},this.CheckForNamingCollisions=(r,i,a,s="")=>{var o;let u=s||r.typeName;if(n.IsReservedKeyword(i?.name)){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a reserved keyword`);return}else if(D1.FunctionCall.IsBuiltIn(i?.name||"")){r.Error(`'${i}' cannot be used for the name of a ${u.toLowerCase()} because it's a built in function`);return}let l=this.ContentWithNameAtLevel(i?.name||"",D0.FlowLevel.Knot),c=(0, vs.asOrNull)(l,Au.FlowBase);if(c&&(c!==r||a===Ur.SymbolType.Arg)){this.NameConflictError(r,i?.name||"",c,u);return}if(a<Ur.SymbolType.List)return;for(let[g,y]of this._listDefs)if(i?.name===g&&r!==y&&y.variableAssignment!==r&&this.NameConflictError(r,i?.name,y,u),!(r instanceof b1.ListElementDefinition))for(let C of y.itemDefinitions)i?.name===C.name&&this.NameConflictError(r,i?.name||"",C,u);if(a<=Ur.SymbolType.Var)return;let h=i?.name&&this.variableDeclarations.get(i?.name)||null;if(h&&h!==r&&h.isGlobalDeclaration&&h.listDefinition==null&&this.NameConflictError(r,i?.name||"",h,u),a<Ur.SymbolType.SubFlowAndWeave)return;let f=new A1.Path(i).ResolveFromContext(r);if(f&&f!==r){this.NameConflictError(r,i?.name||"",f,u);return}if(!(a<Ur.SymbolType.Arg)&&a!==Ur.SymbolType.Arg){let g=(0, vs.asOrNull)(r,Au.FlowBase);if(g||(g=(0, w1.ClosestFlowBase)(r)),g&&g.hasParameters&&g.args){for(let y of g.args)if(((o=y.identifier)===null||o===void 0?void 0:o.name)===i?.name){r.Error(`${u} '${i}': name has already been used for a argument to ${g.identifier} on ${g.debugMetadata}`);return}}}};}get typeName(){return "Story"}PreProcessTopLevelObjects(e){super.PreProcessTopLevelObjects(e);let t=[];for(let r of e)if(r instanceof v1.IncludedFile){let i=r,a=e.indexOf(r);if(e.splice(a,1),i.includedStory){let s=[],o=i.includedStory;if(o.content!=null){for(let u of o.content)u instanceof Au.FlowBase?t.push(u):s.push(u);s.push(new S1.Text(`
36
+ `)),e.splice(a,0,...s);}}continue}e.splice(0,0,...t);}};Ou.Story=Pu;Pu.IsReservedKeyword=n=>{switch(n){case "true":case "false":case "not":case "return":case "else":case "VAR":case "CONST":case "temp":case "LIST":case "function":return true}return false};});var O0=E(xu=>{Object.defineProperty(xu,"__esModule",{value:true});xu.StringExpression=void 0;var P0=qe(),P1=Ct(),O1=Sn(),x1=ae(),If=class n extends P1.Expression{get isSingleString(){return !(this.content.length!==1||!(this.content[0]instanceof O1.Text))}constructor(e){super(),this.GenerateIntoContainer=t=>{t.AddContent(P0.ControlCommand.BeginString());for(let r of this.content)t.AddContent(r.runtimeObject);t.AddContent(P0.ControlCommand.EndString());},this.toString=()=>{let t="";for(let r of this.content)t+=r;return t},this.AddContent(e);}get typeName(){return "String"}Equals(e){let t=(0, x1.asOrNull)(e,n);if(t===null||!this.isSingleString||!t.isSingleString)return false;let r=this.toString(),i=t.toString();return r===i}};xu.StringExpression=If;});var T0=E(Kr=>{Object.defineProperty(Kr,"__esModule",{value:true});Kr.LegacyTag=Kr.Tag=void 0;var T1=ye(),x0=qe(),kf=class extends T1.ParsedObject{constructor(e,t=false){super(),this.GenerateRuntimeObject=()=>this.isStart?x0.ControlCommand.BeginTag():x0.ControlCommand.EndTag(),this.toString=()=>this.isStart?"#StartTag":"#EndTag",this.isStart=e,this.inChoice=t;}get typeName(){return "Tag"}};Kr.Tag=kf;var N1=Ud(),Vf=class extends N1.Wrap{constructor(e){super(e);}get typeName(){return "Tag"}};Kr.LegacyTag=Vf;});var N0=E(Tu=>{Object.defineProperty(Tu,"__esModule",{value:true});Tu.DefaultFileHandler=void 0;var Rf=class{constructor(e){this.rootPath=e,this.ResolveInkFilename=()=>{throw Error("Can't resolve filename because no FileHandler was provided when instantiating the parser / compiler.")},this.LoadInkFileContents=()=>{throw Error("Can't load ink content because no FileHandler was provided when instantiating the parser / compiler.")};}};Tu.DefaultFileHandler=Rf;});var qf=E(ku=>{Object.defineProperty(ku,"__esModule",{value:true});ku.InkParser=void 0;var F1=ev(),I1=ba(),k1=Mh(),Ft=fv(),Ne=Xi(),V1=$r(),R1=Sv(),$1=no(),Cs=Ed(),ht=yo(),j1=so(),Nu=Gv(),L1=Jv(),rr=Br(),$f=qr(),q1=Ct(),B1=zv(),F0=Hv(),Fu=ns(),W1=es(),M1=Uv(),G1=Xo(),Iu=Xv(),I0=Qd(),J1=Yv(),z1=nf(),k0=Qv(),H1=Ro(),U1=af(),K1=Cd(),V0=ye(),X1=Yn(),R0=cd(),$0=Fd(),Te=xd(),Xe=of(),Y1=lf(),j0=A0(),bs=O0(),rn=ed(),Xr=T0(),sn=Sn(),L0=kd(),jf=qd(),Lf=Mr(),Z1=Bh(),Pn=ae(),_s=po(),Yr=Ra(),q0=Pr(),Q1=N0(),ce=class n extends rn.StringParser{get fileHandler(){if(!this._fileHandler)throw new Error("No FileHandler defined");return this._fileHandler}set fileHandler(e){this._fileHandler=e;}constructor(e,t=null,r=null,i=null,a=null){if(super(e),this.ParseStory=()=>{let s=this.StatementsAtLevel(Xe.StatementLevel.Top);return new j0.Story(s,this._rootParser!==this)},this.SeparatedList=(s,o)=>{let u=this.Parse(s);if(u===null)return null;let l=[];l.push(u);do{let c=this.BeginRule();if(o()===null){this.FailRule(c);break}let p=this.Parse(s);if(p===null){this.FailRule(c);break}this.SucceedRule(c),l.push(p);}while(true);return l},this.CreateDebugMetadata=(s,o)=>{let u=new L1.DebugMetadata;return u.startLineNumber=(s?.lineIndex||0)+1,u.endLineNumber=o.lineIndex+1,u.startCharacterNumber=(s?.characterInLineIndex||0)+1,u.endCharacterNumber=o.characterInLineIndex+1,u.fileName=this._filename,u},this.RuleDidSucceed=(s,o,u)=>{let l=(0, Pn.asOrNull)(s,V0.ParsedObject);l&&(l.debugMetadata=this.CreateDebugMetadata(o,u));let c=Array.isArray(s)?s:null;if(c!==null)for(let p of c)(0, Pn.asOrNull)(p,V0.ParsedObject)&&(p.hasOwnDebugMetadata||(p.debugMetadata=this.CreateDebugMetadata(o,u)));let h=(0, Pn.asOrNull)(s,_s.Identifier);h!=null&&(h.debugMetadata=this.CreateDebugMetadata(o,u));},this.OnStringParserError=(s,o,u=0,l=false)=>{let h=l?"WARNING:":"ERROR:";if(this._filename!==null&&(h+=` '${this._filename}'`),h+=` line ${u+1}: ${s}`,this._externalErrorHandler!==null)this._externalErrorHandler(h,l?q0.ErrorType.Warning:q0.ErrorType.Error);else throw new Error(h)},this.AuthorWarning=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!=="TODO")return null;this.Whitespace(),this.ParseString(":"),this.Whitespace();let o=this.ParseUntilCharactersFromString(`
37
+ \r`);return o?new I1.AuthorWarning(o):null},this.ExtendIdentifierCharacterRanges=s=>{let o=n.ListAllCharacterRanges();for(let u of o)s.AddCharacters(u.ToCharacterSet());},this._parsingChoice=false,this.Choice=()=>{let s=true,o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("*"));if(!o){if(o=this.Interleave(this.OptionalExclude(this.Whitespace),this.String("+")),o===null)return null;s=false;}let u=this.Parse(this.BracketedName);this.Whitespace(),u!=null&&this.Newline();let l=this.Parse(this.ChoiceCondition);if(this.Whitespace(),this._parsingChoice)throw new Error("Already parsing a choice - shouldn't have nested choices");this._parsingChoice=true;let c=null,h=this.Parse(this.MixedTextAndLogic);h&&(c=new ht.ContentList(h));let p=null,f=null,g=this.ParseString("[")!==null;if(g){this.EndTagIfNecessary(c);let v=this.Parse(this.MixedTextAndLogic);v!==null&&(p=new ht.ContentList(v)),this.Expect(this.String("]"),"closing ']' for weave-style option"),this.EndTagIfNecessary(p);let d=this.Parse(this.MixedTextAndLogic);d!==null&&(f=new ht.ContentList(d));}this.Whitespace(),this.EndTagIfNecessary(f??c);let y=this.Parse(this.MultiDivert);this._parsingChoice=false,this.Whitespace();let C=!c&&!f&&!p;if(C&&y===null&&this.Warning("Choice is completely empty. Interpretting as a default fallback choice. Add a divert arrow to remove this warning: * ->"),!c&&g&&!p&&this.Warning("Blank choice - if you intended a default fallback choice, use the `* ->` syntax"),f||(f=new ht.ContentList),this.EndTagIfNecessary(f),y!==null)for(let v of y){let d=(0, Pn.asOrNull)(v,rr.Divert);d&&d.isEmpty||f.AddContent(v);}f.AddContent(new sn.Text(`
38
+ `));let _=new V1.Choice(c,p,f);return u&&(_.identifier=u),_.indentationDepth=o.length,_.hasWeaveStyleInlineBrackets=g,_.condition=l,_.onceOnly=s,_.isInvisibleDefault=C,_},this.ChoiceCondition=()=>{let s=this.Interleave(this.ChoiceSingleCondition,this.ChoiceConditionsSpace);return s===null?null:s.length===1?s[0]:new K1.MultipleConditionExpression(s)},this.ChoiceConditionsSpace=()=>(this.Newline(),this.Whitespace(),rn.ParseSuccess),this.ChoiceSingleCondition=()=>{if(this.ParseString("{")===null)return null;let s=this.Expect(this.Expression,"choice condition inside { }");return this.DisallowIncrement(s),this.Expect(this.String("}"),"closing '}' for choice condition"),s},this.Gather=()=>{let s=this.Parse(this.GatherDashes);if(s===null)return null;let o=Number(s),u=this.Parse(this.BracketedName),l=new W1.Gather(u,o);return this.Newline(),l},this.GatherDashes=()=>{this.Whitespace();let s=0;for(;this.ParseDashNotArrow()!==null;)s+=1,this.Whitespace();return s===0?null:s},this.ParseDashNotArrow=()=>{let s=this.BeginRule();return this.ParseString("->")===null&&this.ParseSingleCharacter()==="-"?this.SucceedRule(s):this.FailRule(s)},this.BracketedName=()=>{if(this.ParseString("(")===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing ')' for bracketed name"),s)},this.InnerConditionalContent=s=>{if(s===void 0){let h=this.Parse(this.ConditionExpression),p=this.Parse(()=>this.InnerConditionalContent(h));return p===null?null:p}let o,u=s!==null,l=this.Parse(this.Newline)===null;if(l&&!u)return null;if(l)o=this.InlineConditionalBranches();else {if(o=this.MultilineConditionalBranches(),o===null){if(s){let h=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);if(h!==null){o=[new Cs.ConditionalSingleBranch(h)];let f=this.Parse(this.SingleMultilineCondition);f&&(f.isElse||(this.ErrorWithParsedObject("Expected an '- else:' clause here rather than an extra condition",f),f.isElse=true),o.push(f));}}if(o===null)return null}else if(o.length===1&&o[0].isElse&&s){let h=new Cs.ConditionalSingleBranch(null);h.isTrueBranch=true,o.unshift(h);}if(s){let h=false;for(let p=0;p<o.length;++p){let f=o[p],g=p===o.length-1;f.ownExpression?(f.matchingEquality=true,h=true):h&&g?(f.matchingEquality=true,f.isElse=true):!g&&o.length>2?this.ErrorWithParsedObject("Only final branch can be an 'else'. Did you miss a ':'?",f):p===0?f.isTrueBranch=true:f.isElse=true;}}else {for(let h=0;h<o.length;++h){let p=o[h],f=h===o.length-1;if(p.ownExpression===null)if(f)p.isElse=true;else if(p.isElse){let g=o[o.length-1];g.isElse?this.ErrorWithParsedObject("Multiple 'else' cases. Can have a maximum of one, at the end.",g):this.ErrorWithParsedObject("'else' case in conditional should always be the final one",p);}else this.ErrorWithParsedObject("Branch doesn't have condition. Are you missing a ':'? ",p);}o.length===1&&o[0].ownExpression===null&&this.ErrorWithParsedObject("Condition block with no conditions",o[0]);}}if(o===null)return null;for(let h of o)h.isInline=l;return new $1.Conditional(s,o)},this.InlineConditionalBranches=()=>{let s=this.Interleave(this.MixedTextAndLogic,this.Exclude(this.String("|")),null,false);if(s===null||s.length===0)return null;let o=[];if(s.length>2)this.Error("Expected one or two alternatives separated by '|' in inline conditional");else {let u=new Cs.ConditionalSingleBranch(s[0]);if(u.isTrueBranch=true,o.push(u),s.length>1){let l=new Cs.ConditionalSingleBranch(s[1]);l.isElse=true,o.push(l);}}return o},this.MultilineConditionalBranches=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineCondition);return s===null?null:(this.MultilineWhitespace(),s)},this.SingleMultilineCondition=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=null,o=this.Parse(this.ElseExpression)!==null;o||(s=this.Parse(this.ConditionExpression));let u=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);s===null&&u===null&&(this.Error("expected content for the conditional branch following '-'"),u=[new sn.Text("")]),this.MultilineWhitespace();let l=new Cs.ConditionalSingleBranch(u);return l.ownExpression=s,l.isElse=o,l},this.ConditionExpression=()=>{let s=this.Parse(this.Expression);return s===null||(this.DisallowIncrement(s),this.Whitespace(),this.ParseString(":")===null)?null:s},this.ElseExpression=()=>this.ParseString("else")===null||(this.Whitespace(),this.ParseString(":")===null)?null:rn.ParseSuccess,this._nonTextPauseCharacters=null,this._nonTextEndCharacters=null,this._notTextEndCharactersChoice=null,this._notTextEndCharactersString=null,this.TrimEndWhitespace=(s,o)=>{if(s.length>0){let u=s.length-1,l=s[u];if(l instanceof sn.Text){let c=l;c.text=c.text.replace(new RegExp(/[ \t]+$/g),""),o?c.text+=" ":c.text.length===0&&(s.splice(u,1),this.TrimEndWhitespace(s,false));}}},this.LineOfMixedTextAndLogic=()=>{this.Parse(this.Whitespace);let s=this.Parse(this.MixedTextAndLogic);if(!s||!s.length)return null;let o=s[0];return o&&o.text&&o.text.startsWith("return")&&this.Warning("Do you need a '~' before 'return'? If not, perhaps use a glue: <> (since it's lowercase) or rewrite somehow?"),s.length===0?null:(s[s.length-1]instanceof rr.Divert||this.TrimEndWhitespace(s,false),this.EndTagIfNecessary(s),s.length>0&&s[0]instanceof Xr.Tag&&s[0].isStart||s.push(new sn.Text(`
39
39
  `)),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),s)},this.MixedTextAndLogic=()=>{this.ParseObject(this.Spaced(this.String("~")))!==null&&this.Error("You shouldn't use a '~' here - tildas are for logic that's on its own line. To do inline logic, use { curly braces } instead");let o=this.Interleave(this.Optional(this.ContentText),this.Optional(this.InlineLogicOrGlueOrStartTag));if(!this._parsingChoice){let u=this.Parse(this.MultiDivert);u!==null&&(o===null&&(o=[]),this.EndTagIfNecessary(o),this.TrimEndWhitespace(o,true),o.push(...u));}return o||null},this.ContentText=()=>this.ContentTextAllowingEscapeChar(),this.ContentTextAllowingEscapeChar=()=>{let s=null;do{let o=this.Parse(this.ContentTextNoEscape),u=this.ParseString("\\")!==null;if(u||o!==null){if(s===null&&(s=""),o!==null&&(s+=String(o)),u){let l=this.ParseSingleCharacter();s+=l;}}else break}while(true);return s!==null?new sn.Text(s):null},this.ContentTextNoEscape=()=>{this._nonTextPauseCharacters===null&&(this._nonTextPauseCharacters=new Ne.CharacterSet("-<")),this._nonTextEndCharacters===null&&(this._nonTextEndCharacters=new Ne.CharacterSet(`{}|
40
- \r\\#`),this._notTextEndCharactersChoice=new Ne.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersChoice.AddCharacters("[]"),this._notTextEndCharactersString=new Ne.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersString.AddCharacters('"'));let s=()=>this.OneOf([this.ParseDivertArrow,this.ParseThreadArrow,this.EndOfLine,this.Glue]),o=null;this.parsingStringExpression?o=this._notTextEndCharactersString:this._parsingChoice?o=this._notTextEndCharactersChoice:o=this._nonTextEndCharacters;let u=this.ParseUntil(s,this._nonTextPauseCharacters,o);return u!==null?u:null},this.MultiDivert=()=>{this.Whitespace();let s=[],o=this.Parse(this.StartThread);if(o)return s=[o],s;let u=this.Interleave(this.ParseDivertArrowOrTunnelOnwards,this.DivertIdentifierWithArguments);if(!u)return null;s=[],this.EndTagIfNecessary(s);for(let l=0;l<u.length;++l)if(l%2===0){if(u[l]==="->->"){l===0||l===u.length-1||l===u.length-2||this.Error("Tunnel onwards '->->' must only come at the begining or the start of a divert");let f=new j0.TunnelOnwards;if(l<u.length-1){let d=(0, Pn.asOrNull)(u[l+1],rr.Divert);f.divertAfter=d;}s.push(f);break}}else {let h=u[l];l<u.length-1&&(h.isTunnel=true),s.push(h);}if(s.length===0&&u.length===1){let l=new rr.Divert(null);l.isEmpty=true,s.push(l),this._parsingChoice||this.Error("Empty diverts (->) are only valid on choices");}return s},this.StartThread=()=>{if(this.Whitespace(),this.ParseThreadArrow()===null)return null;this.Whitespace();let s=this.Expect(this.DivertIdentifierWithArguments,"target for new thread",()=>new rr.Divert(null));return s.isThread=true,s},this.DivertIdentifierWithArguments=()=>{this.Whitespace();let s=this.Parse(this.DotSeparatedDivertPathComponents);if(!s)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);this.Whitespace();let u=new U1.Path(s);return new rr.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof j0.TunnelOnwards)return null;let u=s[0];return u.isTunnel?null:u},this.DotSeparatedDivertPathComponents=()=>this.Interleave(this.Spaced(this.IdentifierWithMetadata),this.Exclude(this.String("."))),this.ParseDivertArrowOrTunnelOnwards=()=>{let s=0;for(;this.ParseString("->")!==null;)s+=1;return s===0?null:s===1?"->":(s===2||this.Error("Unexpected number of arrows in divert. Should only have '->' or '->->'"),"->->")},this.ParseDivertArrow=()=>this.ParseString("->"),this.ParseThreadArrow=()=>this.ParseString("<-"),this._binaryOperators=[],this._maxBinaryOpLength=0,this.TempDeclarationOrAssignment=()=>{this.Whitespace();let s=this.ParseTempKeyword();this.Whitespace();let o=null;if(s?o=this.Expect(this.IdentifierWithMetadata,"variable name"):o=this.Parse(this.IdentifierWithMetadata),o===null)return null;this.Whitespace();let u=this.ParseString("+")!==null,l=this.ParseString("-")!==null;if(u&&l&&this.Error("Unexpected sequence '+-'"),this.ParseString("=")===null)return s&&this.Error("Expected '='"),null;let c=this.Expect(this.Expression,"value expression to be assigned");return u||l?new Iu.IncDecExpression(o,c,u):new Rf.VariableAssignment({variableIdentifier:o,assignedExpression:c,isTemporaryNewDeclaration:s})},this.DisallowIncrement=s=>{s instanceof Iu.IncDecExpression&&this.Error("Can't use increment/decrement here. It can only be used on a ~ line");},this.ParseTempKeyword=()=>{let s=this.BeginRule();return this.Parse(this.Identifier)==="temp"?(this.SucceedRule(s),true):(this.FailRule(s),false)},this.ReturnStatement=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="return")return null;this.Whitespace();let o=this.Parse(this.Expression);return new V0.ReturnType(o)},this.Expression=(s=0)=>{this.Whitespace();let o=this.ExpressionUnary();if(o===null)return null;for(this.Whitespace();;){let u=this.BeginRule(),l=this.ParseInfixOperator();if(l!==null&&l.precedence>s){let c=`right side of '${l.type}' expression`,h=this.Expect(()=>this.ExpressionInfixRight(o,l),c);if(h===null)return this.FailRule(u),null;o=this.SucceedRule(u,h);continue}this.FailRule(u);break}return this.Whitespace(),o},this.ExpressionUnary=()=>{let s=this.Parse(this.ExpressionDivertTarget);if(s!==null)return s;let o=this.OneOf([this.String("-"),this.String("!")]);o===null&&(o=this.Parse(this.ExpressionNot)),this.Whitespace();let u=this.OneOf([this.ExpressionList,this.ExpressionParen,this.ExpressionFunctionCall,this.ExpressionVariableName,this.ExpressionLiteral]);if(u===null&&o!==null&&(u=this.ExpressionUnary()),u===null)return null;o!==null&&(u=X1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof $f.VariableReference))this.Error(`can only increment and decrement variables, but saw '${u}'.`);else {let h=u;u=new Iu.IncDecExpression(h.identifier,c);}}return u},this.ExpressionNot=()=>{let s=this.Identifier();return s==="not"?s:null},this.ExpressionLiteral=()=>this.OneOf([this.ExpressionFloat,this.ExpressionInt,this.ExpressionBool,this.ExpressionString]),this.ExpressionDivertTarget=()=>{this.Whitespace();let s=this.Parse(this.SingleDivert);return !s||s&&s.isThread?null:(this.Whitespace(),new Vf.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new Yr.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new Yr.NumberExpression(s,"float")},this.ExpressionString=()=>{if(this.ParseString('"')===null)return null;this.parsingStringExpression=true;let o=this.Parse(this.MixedTextAndLogic);return this.Expect(this.String('"'),"close quote for string expression"),this.parsingStringExpression=false,o===null?o=[new sn.Text("")]:o.find(u=>u instanceof rr.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new bs.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new Yr.NumberExpression(true,"bool"):s==="false"?new Yr.NumberExpression(false,"bool"):null},this.ExpressionFunctionCall=()=>{let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);return o===null?null:new Fu.FunctionCall(s,o)},this.ExpressionFunctionCallArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Exclude(this.String(",")),o=this.Interleave(this.Expression,s);return o===null&&(o=[]),this.Whitespace(),this.Expect(this.String(")"),"closing ')' for function call"),o},this.ExpressionVariableName=()=>{let s=this.Interleave(this.IdentifierWithMetadata,this.Exclude(this.Spaced(this.String("."))));return s===null||$0.Story.IsReservedKeyword(s[0].name)?null:new $f.VariableReference(s)},this.ExpressionParen=()=>{if(this.ParseString("(")===null)return null;let s=this.Parse(this.Expression);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing parenthesis ')' for expression"),s)},this.ExpressionInfixRight=(s,o)=>{if(!s)return null;this.Whitespace();let u=this.Parse(()=>this.Expression(o.precedence));return u?new F1.BinaryExpression(s,u,o.type):null},this.ParseInfixOperator=()=>{for(let s of this._binaryOperators){let o=this.BeginRule();if(this.ParseString(s.type)!==null){if(s.requireWhitespace&&this.Whitespace()===null){this.FailRule(o);continue}return this.SucceedRule(o,s)}this.FailRule(o);}return null},this.ExpressionList=()=>{if(this.Whitespace(),this.ParseString("(")===null)return null;this.Whitespace();let s=this.SeparatedList(this.ListMember,this.Spaced(this.String(",")));return this.Whitespace(),this.ParseString(")")===null?null:new I0.List(s)},this.ListMember=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;if(this.ParseString(".")!==null){let u=this.Expect(this.IdentifierWithMetadata,`element name within the set ${s}`);s.name+=`.${u?.name}`;}return this.Whitespace(),s},this.RegisterExpressionOperators=()=>{this.RegisterBinaryOperator("&&",1),this.RegisterBinaryOperator("||",1),this.RegisterBinaryOperator("and",1,true),this.RegisterBinaryOperator("or",1,true),this.RegisterBinaryOperator("==",2),this.RegisterBinaryOperator(">=",2),this.RegisterBinaryOperator("<=",2),this.RegisterBinaryOperator("<",2),this.RegisterBinaryOperator(">",2),this.RegisterBinaryOperator("!=",2),this.RegisterBinaryOperator("?",3),this.RegisterBinaryOperator("has",3,true),this.RegisterBinaryOperator("!?",3),this.RegisterBinaryOperator("hasnt",3,true),this.RegisterBinaryOperator("^",3),this.RegisterBinaryOperator("+",4),this.RegisterBinaryOperator("-",5),this.RegisterBinaryOperator("*",6),this.RegisterBinaryOperator("/",7),this.RegisterBinaryOperator("%",8),this.RegisterBinaryOperator("mod",8,true);},this.RegisterBinaryOperator=(s,o,u=false)=>{let l=new M1.InfixOperator(s,o,u);this._binaryOperators.push(l),this._maxBinaryOpLength=Math.max(this._maxBinaryOpLength,s.length);},this._openFilenames=[],this.IncludeStatement=()=>{if(this.Whitespace(),this.ParseString("INCLUDE")===null)return null;this.Whitespace();let s=this.Expect(()=>this.ParseUntilCharactersFromString(`
40
+ \r\\#`),this._notTextEndCharactersChoice=new Ne.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersChoice.AddCharacters("[]"),this._notTextEndCharactersString=new Ne.CharacterSet(this._nonTextEndCharacters),this._notTextEndCharactersString.AddCharacters('"'));let s=()=>this.OneOf([this.ParseDivertArrow,this.ParseThreadArrow,this.EndOfLine,this.Glue]),o=null;this.parsingStringExpression?o=this._notTextEndCharactersString:this._parsingChoice?o=this._notTextEndCharactersChoice:o=this._nonTextEndCharacters;let u=this.ParseUntil(s,this._nonTextPauseCharacters,o);return u!==null?u:null},this.MultiDivert=()=>{this.Whitespace();let s=[],o=this.Parse(this.StartThread);if(o)return s=[o],s;let u=this.Interleave(this.ParseDivertArrowOrTunnelOnwards,this.DivertIdentifierWithArguments);if(!u)return null;s=[],this.EndTagIfNecessary(s);for(let l=0;l<u.length;++l)if(l%2===0){if(u[l]==="->->"){l===0||l===u.length-1||l===u.length-2||this.Error("Tunnel onwards '->->' must only come at the begining or the start of a divert");let p=new L0.TunnelOnwards;if(l<u.length-1){let f=(0, Pn.asOrNull)(u[l+1],rr.Divert);p.divertAfter=f;}s.push(p);break}}else {let h=u[l];l<u.length-1&&(h.isTunnel=true),s.push(h);}if(s.length===0&&u.length===1){let l=new rr.Divert(null);l.isEmpty=true,s.push(l),this._parsingChoice||this.Error("Empty diverts (->) are only valid on choices");}return s},this.StartThread=()=>{if(this.Whitespace(),this.ParseThreadArrow()===null)return null;this.Whitespace();let s=this.Expect(this.DivertIdentifierWithArguments,"target for new thread",()=>new rr.Divert(null));return s.isThread=true,s},this.DivertIdentifierWithArguments=()=>{this.Whitespace();let s=this.Parse(this.DotSeparatedDivertPathComponents);if(!s)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);this.Whitespace();let u=new X1.Path(s);return new rr.Divert(u,o)},this.SingleDivert=()=>{let s=this.Parse(this.MultiDivert);if(!s||s.length!==1||s[0]instanceof L0.TunnelOnwards)return null;let u=s[0];return u.isTunnel?null:u},this.DotSeparatedDivertPathComponents=()=>this.Interleave(this.Spaced(this.IdentifierWithMetadata),this.Exclude(this.String("."))),this.ParseDivertArrowOrTunnelOnwards=()=>{let s=0;for(;this.ParseString("->")!==null;)s+=1;return s===0?null:s===1?"->":(s===2||this.Error("Unexpected number of arrows in divert. Should only have '->' or '->->'"),"->->")},this.ParseDivertArrow=()=>this.ParseString("->"),this.ParseThreadArrow=()=>this.ParseString("<-"),this._binaryOperators=[],this._maxBinaryOpLength=0,this.TempDeclarationOrAssignment=()=>{this.Whitespace();let s=this.ParseTempKeyword();this.Whitespace();let o=null;if(s?o=this.Expect(this.IdentifierWithMetadata,"variable name"):o=this.Parse(this.IdentifierWithMetadata),o===null)return null;this.Whitespace();let u=this.ParseString("+")!==null,l=this.ParseString("-")!==null;if(u&&l&&this.Error("Unexpected sequence '+-'"),this.ParseString("=")===null)return s&&this.Error("Expected '='"),null;let c=this.Expect(this.Expression,"value expression to be assigned");return u||l?new Iu.IncDecExpression(o,c,u):new jf.VariableAssignment({variableIdentifier:o,assignedExpression:c,isTemporaryNewDeclaration:s})},this.DisallowIncrement=s=>{s instanceof Iu.IncDecExpression&&this.Error("Can't use increment/decrement here. It can only be used on a ~ line");},this.ParseTempKeyword=()=>{let s=this.BeginRule();return this.Parse(this.Identifier)==="temp"?(this.SucceedRule(s),true):(this.FailRule(s),false)},this.ReturnStatement=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="return")return null;this.Whitespace();let o=this.Parse(this.Expression);return new R0.ReturnType(o)},this.Expression=(s=0)=>{this.Whitespace();let o=this.ExpressionUnary();if(o===null)return null;for(this.Whitespace();;){let u=this.BeginRule(),l=this.ParseInfixOperator();if(l!==null&&l.precedence>s){let c=`right side of '${l.type}' expression`,h=this.Expect(()=>this.ExpressionInfixRight(o,l),c);if(h===null)return this.FailRule(u),null;o=this.SucceedRule(u,h);continue}this.FailRule(u);break}return this.Whitespace(),o},this.ExpressionUnary=()=>{let s=this.Parse(this.ExpressionDivertTarget);if(s!==null)return s;let o=this.OneOf([this.String("-"),this.String("!")]);o===null&&(o=this.Parse(this.ExpressionNot)),this.Whitespace();let u=this.OneOf([this.ExpressionList,this.ExpressionParen,this.ExpressionFunctionCall,this.ExpressionVariableName,this.ExpressionLiteral]);if(u===null&&o!==null&&(u=this.ExpressionUnary()),u===null)return null;o!==null&&(u=Z1.UnaryExpression.WithInner(u,o)),this.Whitespace();let l=this.OneOf([this.String("++"),this.String("--")]);if(l!==null){let c=l==="++";if(!(u instanceof Lf.VariableReference))this.Error(`can only increment and decrement variables, but saw '${u}'.`);else {let h=u;u=new Iu.IncDecExpression(h.identifier,c);}}return u},this.ExpressionNot=()=>{let s=this.Identifier();return s==="not"?s:null},this.ExpressionLiteral=()=>this.OneOf([this.ExpressionFloat,this.ExpressionInt,this.ExpressionBool,this.ExpressionString]),this.ExpressionDivertTarget=()=>{this.Whitespace();let s=this.Parse(this.SingleDivert);return !s||s&&s.isThread?null:(this.Whitespace(),new $f.DivertTarget(s))},this.ExpressionInt=()=>{let s=this.ParseInt();return s===null?null:new Yr.NumberExpression(s,"int")},this.ExpressionFloat=()=>{let s=this.ParseFloat();return s===null?null:new Yr.NumberExpression(s,"float")},this.ExpressionString=()=>{if(this.ParseString('"')===null)return null;this.parsingStringExpression=true;let o=this.Parse(this.MixedTextAndLogic);return this.Expect(this.String('"'),"close quote for string expression"),this.parsingStringExpression=false,o===null?o=[new sn.Text("")]:o.find(u=>u instanceof rr.Divert)&&this.Error("String expressions cannot contain diverts (->)"),new bs.StringExpression(o)},this.ExpressionBool=()=>{let s=this.Parse(this.Identifier);return s==="true"?new Yr.NumberExpression(true,"bool"):s==="false"?new Yr.NumberExpression(false,"bool"):null},this.ExpressionFunctionCall=()=>{let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;this.Whitespace();let o=this.Parse(this.ExpressionFunctionCallArguments);return o===null?null:new Fu.FunctionCall(s,o)},this.ExpressionFunctionCallArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Exclude(this.String(",")),o=this.Interleave(this.Expression,s);return o===null&&(o=[]),this.Whitespace(),this.Expect(this.String(")"),"closing ')' for function call"),o},this.ExpressionVariableName=()=>{let s=this.Interleave(this.IdentifierWithMetadata,this.Exclude(this.Spaced(this.String("."))));return s===null||j0.Story.IsReservedKeyword(s[0].name)?null:new Lf.VariableReference(s)},this.ExpressionParen=()=>{if(this.ParseString("(")===null)return null;let s=this.Parse(this.Expression);return s===null?null:(this.Whitespace(),this.Expect(this.String(")"),"closing parenthesis ')' for expression"),s)},this.ExpressionInfixRight=(s,o)=>{if(!s)return null;this.Whitespace();let u=this.Parse(()=>this.Expression(o.precedence));return u?new k1.BinaryExpression(s,u,o.type):null},this.ParseInfixOperator=()=>{for(let s of this._binaryOperators){let o=this.BeginRule();if(this.ParseString(s.type)!==null){if(s.requireWhitespace&&this.Whitespace()===null){this.FailRule(o);continue}return this.SucceedRule(o,s)}this.FailRule(o);}return null},this.ExpressionList=()=>{if(this.Whitespace(),this.ParseString("(")===null)return null;this.Whitespace();let s=this.SeparatedList(this.ListMember,this.Spaced(this.String(",")));return this.Whitespace(),this.ParseString(")")===null?null:new k0.List(s)},this.ListMember=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null)return null;if(this.ParseString(".")!==null){let u=this.Expect(this.IdentifierWithMetadata,`element name within the set ${s}`);s.name+=`.${u?.name}`;}return this.Whitespace(),s},this.RegisterExpressionOperators=()=>{this.RegisterBinaryOperator("&&",1),this.RegisterBinaryOperator("||",1),this.RegisterBinaryOperator("and",1,true),this.RegisterBinaryOperator("or",1,true),this.RegisterBinaryOperator("==",2),this.RegisterBinaryOperator(">=",2),this.RegisterBinaryOperator("<=",2),this.RegisterBinaryOperator("<",2),this.RegisterBinaryOperator(">",2),this.RegisterBinaryOperator("!=",2),this.RegisterBinaryOperator("?",3),this.RegisterBinaryOperator("has",3,true),this.RegisterBinaryOperator("!?",3),this.RegisterBinaryOperator("hasnt",3,true),this.RegisterBinaryOperator("^",3),this.RegisterBinaryOperator("+",4),this.RegisterBinaryOperator("-",5),this.RegisterBinaryOperator("*",6),this.RegisterBinaryOperator("/",7),this.RegisterBinaryOperator("%",8),this.RegisterBinaryOperator("mod",8,true);},this.RegisterBinaryOperator=(s,o,u=false)=>{let l=new J1.InfixOperator(s,o,u);this._binaryOperators.push(l),this._maxBinaryOpLength=Math.max(this._maxBinaryOpLength,s.length);},this._openFilenames=[],this.IncludeStatement=()=>{if(this.Whitespace(),this.ParseString("INCLUDE")===null)return null;this.Whitespace();let s=this.Expect(()=>this.ParseUntilCharactersFromString(`
41
41
  \r`),"filename for include statement");s=s.replace(new RegExp(/[ \t]+$/g),"");let o=this.fileHandler.ResolveInkFilename(s,this._filename);if(this.FilenameIsAlreadyOpen(o))return this.Error(`Recursive INCLUDE detected: '${o}' is already open.`),this.ParseUntilCharactersFromString(`\r
42
- `),new F0.IncludedFile(null);this.AddOpenFilename(o);let u=null,l="";try{l=this._rootParser.fileHandler.LoadInkFileContents(o,this._filename);}catch(c){this.Error(`Failed to load: '${s}'.
43
- Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._rootParser,this.fileHandler).ParseStory()),this.RemoveOpenFilename(o),new F0.IncludedFile(u)},this.FilenameIsAlreadyOpen=s=>this._rootParser._openFilenames.includes(s),this.AddOpenFilename=s=>{this._rootParser._openFilenames.push(s);},this.RemoveOpenFilename=s=>{this._rootParser._openFilenames.splice(this._rootParser._openFilenames.indexOf(s),1);},this.KnotDefinition=()=>{let s=this.Parse(this.KnotDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after knot name definition",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Xe.StatementLevel.Knot),u=this.Expect(o,"at least one line within the knot",this.KnotStitchNoContentRecoveryRule);return new G1.Knot(s.name,u,s.args,s.isFunction)},this.KnotDeclaration=()=>{if(this.Whitespace(),this.KnotTitleEquals()===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata),o,u=s?.name==="function";u?(this.Expect(this.Whitespace,"whitespace after the 'function' keyword"),o=this.Parse(this.IdentifierWithMetadata)):o=s,o===null&&(this.Error(`Expected the name of the ${u?"function":"knot"}`),o=new _s.Identifier("")),this.Whitespace();let l=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),this.Parse(this.KnotTitleEquals),new N0.FlowDecl(o,l,u)},this.KnotTitleEquals=()=>{let s=this.ParseCharactersFromString("=");return s===null||s.length<=1?null:s},this.StitchDefinition=()=>{let s=this.Parse(this.StitchDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after stitch name",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Xe.StatementLevel.Stitch),u=this.Expect(o,"at least one line within the stitch",this.KnotStitchNoContentRecoveryRule);return new K1.Stitch(s.name,u,s.args,s.isFunction)},this.StitchDeclaration=()=>{if(this.Whitespace(),this.ParseString("=")===null||this.ParseString("=")!==null)return null;this.Whitespace();let s=this.ParseString("function")!==null;s&&this.Whitespace();let o=this.Parse(this.IdentifierWithMetadata);if(o===null)return null;this.Whitespace();let u=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),new N0.FlowDecl(o,u,s)},this.KnotStitchNoContentRecoveryRule=()=>(this.ParseUntil(this.KnotDeclaration,new Ne.CharacterSet("="),null),[new sn.Text("<ERROR IN FLOW>")]),this.BracketedKnotDeclArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Interleave(this.Spaced(this.FlowDeclArgument),this.Exclude(this.String(",")));return this.Expect(this.String(")"),"closing ')' for parameter list"),s===null&&(s=[]),s},this.FlowDeclArgument=()=>{let s=this.Parse(this.IdentifierWithMetadata);this.Whitespace();let o=this.ParseDivertArrow();this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(s==null&&u===null)return null;let l=new T1.Argument;return o!==null&&(l.isDivertTarget=true),s!==null&&s.name==="ref"?(u===null&&this.Error("Expected an parameter name after 'ref'"),l.identifier=u,l.isByReference=true):(l.isDivertTarget?l.identifier=u:l.identifier=s,l.identifier===null&&this.Error("Expected an parameter name"),l.isByReference=false),l},this.ExternalDeclaration=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!="EXTERNAL")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"name of external function")||new _s.Identifier("");this.Whitespace();let u=this.Expect(this.BracketedKnotDeclArguments,`declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL ${o}()'`);u===null&&(u=[]);let l=u.map(c=>{var h;return (h=c.identifier)===null||h===void 0?void 0:h.name}).filter(Pn.filterUndef);return new L1.ExternalDeclaration(o,l)},this._identifierCharSet=null,this.LogicLine=()=>{if(this.Whitespace(),this.ParseString("~")===null)return null;this.Whitespace();let s=()=>this.OneOf([this.ReturnStatement,this.TempDeclarationOrAssignment,this.Expression]),o=this.Expect(s,"expression after '~'",this.SkipToNextLine);if(o===null)return new ht.ContentList;o instanceof j1.Expression&&!(o instanceof Fu.FunctionCall||o instanceof Iu.IncDecExpression)&&this.Error(`Logic following a '~' can't be that type of expression. It can only be something like:
42
+ `),new I0.IncludedFile(null);this.AddOpenFilename(o);let u=null,l="";try{l=this._rootParser.fileHandler.LoadInkFileContents(o,this._filename);}catch(c){this.Error(`Failed to load: '${s}'.
43
+ Error:${c}`);}return l!=null&&(u=new n(l,s,this._externalErrorHandler,this._rootParser,this.fileHandler).ParseStory()),this.RemoveOpenFilename(o),new I0.IncludedFile(u)},this.FilenameIsAlreadyOpen=s=>this._rootParser._openFilenames.includes(s),this.AddOpenFilename=s=>{this._rootParser._openFilenames.push(s);},this.RemoveOpenFilename=s=>{this._rootParser._openFilenames.splice(this._rootParser._openFilenames.indexOf(s),1);},this.KnotDefinition=()=>{let s=this.Parse(this.KnotDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after knot name definition",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Xe.StatementLevel.Knot),u=this.Expect(o,"at least one line within the knot",this.KnotStitchNoContentRecoveryRule);return new z1.Knot(s.name,u,s.args,s.isFunction)},this.KnotDeclaration=()=>{if(this.Whitespace(),this.KnotTitleEquals()===null)return null;this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata),o,u=s?.name==="function";u?(this.Expect(this.Whitespace,"whitespace after the 'function' keyword"),o=this.Parse(this.IdentifierWithMetadata)):o=s,o===null&&(this.Error(`Expected the name of the ${u?"function":"knot"}`),o=new _s.Identifier("")),this.Whitespace();let l=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),this.Parse(this.KnotTitleEquals),new F0.FlowDecl(o,l,u)},this.KnotTitleEquals=()=>{let s=this.ParseCharactersFromString("=");return s===null||s.length<=1?null:s},this.StitchDefinition=()=>{let s=this.Parse(this.StitchDeclaration);if(s===null)return null;this.Expect(this.EndOfLine,"end of line after stitch name",this.SkipToNextLine);let o=()=>this.StatementsAtLevel(Xe.StatementLevel.Stitch),u=this.Expect(o,"at least one line within the stitch",this.KnotStitchNoContentRecoveryRule);return new Y1.Stitch(s.name,u,s.args,s.isFunction)},this.StitchDeclaration=()=>{if(this.Whitespace(),this.ParseString("=")===null||this.ParseString("=")!==null)return null;this.Whitespace();let s=this.ParseString("function")!==null;s&&this.Whitespace();let o=this.Parse(this.IdentifierWithMetadata);if(o===null)return null;this.Whitespace();let u=this.Parse(this.BracketedKnotDeclArguments);return this.Whitespace(),new F0.FlowDecl(o,u,s)},this.KnotStitchNoContentRecoveryRule=()=>(this.ParseUntil(this.KnotDeclaration,new Ne.CharacterSet("="),null),[new sn.Text("<ERROR IN FLOW>")]),this.BracketedKnotDeclArguments=()=>{if(this.ParseString("(")===null)return null;let s=this.Interleave(this.Spaced(this.FlowDeclArgument),this.Exclude(this.String(",")));return this.Expect(this.String(")"),"closing ')' for parameter list"),s===null&&(s=[]),s},this.FlowDeclArgument=()=>{let s=this.Parse(this.IdentifierWithMetadata);this.Whitespace();let o=this.ParseDivertArrow();this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(s==null&&u===null)return null;let l=new F1.Argument;return o!==null&&(l.isDivertTarget=true),s!==null&&s.name==="ref"?(u===null&&this.Error("Expected an parameter name after 'ref'"),l.identifier=u,l.isByReference=true):(l.isDivertTarget?l.identifier=u:l.identifier=s,l.identifier===null&&this.Error("Expected an parameter name"),l.isByReference=false),l},this.ExternalDeclaration=()=>{this.Whitespace();let s=this.Parse(this.IdentifierWithMetadata);if(s===null||s.name!="EXTERNAL")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"name of external function")||new _s.Identifier("");this.Whitespace();let u=this.Expect(this.BracketedKnotDeclArguments,`declaration of arguments for EXTERNAL, even if empty, i.e. 'EXTERNAL ${o}()'`);u===null&&(u=[]);let l=u.map(c=>{var h;return (h=c.identifier)===null||h===void 0?void 0:h.name}).filter(Pn.filterUndef);return new B1.ExternalDeclaration(o,l)},this._identifierCharSet=null,this.LogicLine=()=>{if(this.Whitespace(),this.ParseString("~")===null)return null;this.Whitespace();let s=()=>this.OneOf([this.ReturnStatement,this.TempDeclarationOrAssignment,this.Expression]),o=this.Expect(s,"expression after '~'",this.SkipToNextLine);if(o===null)return new ht.ContentList;o instanceof q1.Expression&&!(o instanceof Fu.FunctionCall||o instanceof Iu.IncDecExpression)&&this.Error(`Logic following a '~' can't be that type of expression. It can only be something like:
44
44
  ~ return
45
45
  ~ var x = blah
46
46
  ~ x++
47
47
  ~ myFunction()`);let u=(0, Pn.asOrNull)(o,Fu.FunctionCall);return u&&(u.shouldPopReturnedValue=true),o.Find(Fu.FunctionCall)()!==null&&(o=new ht.ContentList(o,new sn.Text(`
48
- `))),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o},this.VariableDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="VAR")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"variable name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let l=this.Expect(this.Expression,"initial value for ");return l?(l instanceof Yr.NumberExpression||l instanceof bs.StringExpression||l instanceof Vf.DivertTarget||l instanceof $f.VariableReference||l instanceof I0.List||this.Error("initial value for a variable must be a number, constant, list or divert target"),this.Parse(this.ListElementDefinitionSeparator)!==null?this.Error("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"):l instanceof bs.StringExpression&&(l.isSingleString||this.Error("Constant strings cannot contain any logic.")),new Rf.VariableAssignment({assignedExpression:l,isGlobalDeclaration:true,variableIdentifier:o})):null},this.ListDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!="LIST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"list name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of the list definition"),this.Whitespace();let u=this.Expect(this.ListDefinition,"list item names");return u?(u.identifier=new _s.Identifier(o.name),new Rf.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new J1.ListDefinition(s)},this.ListElementDefinitionSeparator=()=>(this.AnyWhitespace(),this.ParseString(",")===null?null:(this.AnyWhitespace(),",")),this.ListElementDefinition=()=>{let s=this.ParseString("(")!==null,o=s;this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(u===null)return null;this.Whitespace(),s&&this.ParseString(")")!=null&&(o=false,this.Whitespace());let l=null;if(this.ParseString("=")!==null){this.Whitespace();let c=this.Expect(this.ExpressionInt,"value to be assigned to list item");c!==null&&(l=c.value),o&&(this.Whitespace(),this.ParseString(")")!==null&&(o=false));}return o&&this.Error("Expected closing ')'"),new z1.ListElementDefinition(u,s,l)},this.ConstDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="CONST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"constant name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let u=this.Expect(this.Expression,"initial value for ");return u instanceof Yr.NumberExpression||u instanceof Vf.DivertTarget||u instanceof bs.StringExpression?u instanceof bs.StringExpression&&(u.isSingleString||this.Error("Constant strings cannot contain any logic.")):this.Error("initial value for a constant must be a number or divert target"),new R1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new B1.Glue(new W1.Glue):null,this.InlineLogic=()=>{if(this.ParseString("{")===null)return null;let s=this.parsingStringExpression,o=this.tagActive;this.Whitespace();let u=this.Expect(this.InnerLogic,"some kind of logic, conditional or sequence within braces: { ... }");if(u===null)return this.parsingStringExpression=s,null;this.DisallowIncrement(u);let l=(0, Pn.asOrNull)(u,ht.ContentList);return l||(l=new ht.ContentList(u)),this.Whitespace(),this.Expect(this.String("}"),"closing brace '}' for inline logic"),this.parsingStringExpression=s,o||this.EndTagIfNecessary(l),l},this.InnerLogic=()=>{this.Whitespace();let s=this.ParseObject(this.SequenceTypeAnnotation);if(s!==null){let l=this.Expect(this.InnerSequenceObjects,"sequence elements (for cycle/stoping etc)");return l===null?null:new R0.Sequence(l,s)}let o=this.Parse(this.ConditionExpression);if(o)return this.Expect(()=>this.InnerConditionalContent(o),"conditional content following query");let u=[this.InnerConditionalContent,this.InnerSequence,this.InnerExpression];for(let l of u){let c=this.BeginRule(),h=this.ParseObject(l);if(h)if(this.Peek(this.Spaced(this.String("}")))===null)this.FailRule(c);else return this.SucceedRule(c,h);else this.FailRule(c);}return null},this.InnerExpression=()=>{let s=this.Parse(this.Expression);return s&&(s.outputWhenComplete=true),s},this.IdentifierWithMetadata=()=>{let s=this.Identifier();return s===null?null:new _s.Identifier(s)},this.Identifier=()=>{let s=this.ParseCharactersFromCharSet(this.identifierCharSet);if(s===null)return null;let o=true;for(let u of s)if(!(u>="0"&&u<="9")){o=false;break}return o?null:s},this._sequenceTypeSymbols=new Ne.CharacterSet("!&~$"),this.InnerSequence=()=>{this.Whitespace();let s=Te.SequenceType.Stopping,o=this.Parse(this.SequenceTypeAnnotation);o!==null&&(s=o);let u=this.Parse(this.InnerSequenceObjects);return u===null||u.length<=1?null:new R0.Sequence(u,s)},this.SequenceTypeAnnotation=()=>{let s=this.Parse(this.SequenceTypeSymbolAnnotation);if(s===null&&(s=this.Parse(this.SequenceTypeWordAnnotation)),s===null)return null;switch(s){case Te.SequenceType.Once:case Te.SequenceType.Cycle:case Te.SequenceType.Stopping:case Te.SequenceType.Shuffle:case Te.SequenceType.Shuffle|Te.SequenceType.Stopping:case Te.SequenceType.Shuffle|Te.SequenceType.Once:break;default:return this.Error(`Sequence type combination not supported: ${s}`),Te.SequenceType.Stopping}return s},this.SequenceTypeSymbolAnnotation=()=>{this._sequenceTypeSymbols===null&&(this._sequenceTypeSymbols=new Ne.CharacterSet("!&~$ "));let s=0,o=this.ParseCharactersFromCharSet(this._sequenceTypeSymbols);if(o===null)return null;for(let u of o)switch(u){case "!":s|=Te.SequenceType.Once;break;case "&":s|=Te.SequenceType.Cycle;break;case "~":s|=Te.SequenceType.Shuffle;break;case "$":s|=Te.SequenceType.Stopping;break}return s===0?null:s},this.SequenceTypeWordAnnotation=()=>{let s=this.Interleave(this.SequenceTypeSingleWord,this.Exclude(this.Whitespace));if(s===null||s.length===0||this.ParseString(":")===null)return null;let o=0;for(let u of s)o|=u;return o},this.SequenceTypeSingleWord=()=>{let s=null,o=this.Parse(this.IdentifierWithMetadata);if(o!==null)switch(o.name){case "once":s=Te.SequenceType.Once;break;case "cycle":s=Te.SequenceType.Cycle;break;case "shuffle":s=Te.SequenceType.Shuffle;break;case "stopping":s=Te.SequenceType.Stopping;break}return s===null?null:s},this.InnerSequenceObjects=()=>{let s=this.Parse(this.Newline)!==null,o=null;return s?o=this.Parse(this.InnerMultilineSequenceObjects):o=this.Parse(this.InnerInlineSequenceObjects),o},this.InnerInlineSequenceObjects=()=>{let s=this.Interleave(this.Optional(this.MixedTextAndLogic),this.String("|"),null,false);if(s===null)return null;let o=[],u=false;for(let l of s)if(l==="|")u||o.push(new ht.ContentList),u=false;else {let c=l;c===null?this.Error(`Expected content, but got ${l} (this is an ink compiler bug!)`):o.push(new ht.ContentList(c)),u=true;}return u||o.push(new ht.ContentList),o},this.InnerMultilineSequenceObjects=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineSequenceElement);return s===null?null:s},this.SingleMultilineSequenceElement=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);return s===null?this.MultilineWhitespace():s.unshift(new sn.Text(`
49
- `)),new ht.ContentList(s)},this._statementRulesAtLevel=[],this._statementBreakRulesAtLevel=[],this.StatementsAtLevel=s=>(s===Xe.StatementLevel.InnerBlock&&this.Parse(this.GatherDashes)!==null&&this.Error("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash."),this.Interleave(this.Optional(this.MultilineWhitespace),()=>this.StatementAtLevel(s),()=>this.StatementsBreakForLevel(s))),this.StatementAtLevel=s=>{let o=this._statementRulesAtLevel[s],u=this.OneOf(o);return s===Xe.StatementLevel.Top&&u instanceof V0.ReturnType&&this.Error("should not have return statement outside of a knot"),u},this.StatementsBreakForLevel=s=>{this.Whitespace();let o=this._statementBreakRulesAtLevel[s],u=this.OneOf(o);return u===null?null:u},this.GenerateStatementLevelRules=()=>{let s=Object.values(Xe.StatementLevel);this._statementRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]),this._statementBreakRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]);for(let o of s){let u=[],l=[];u.push(this.Line(this.MultiDivert)),o>=Xe.StatementLevel.Top&&u.push(this.KnotDefinition),u.push(this.Line(this.Choice)),u.push(this.Line(this.AuthorWarning)),o>Xe.StatementLevel.InnerBlock&&u.push(this.Gather),o>=Xe.StatementLevel.Knot&&u.push(this.StitchDefinition),u.push(this.Line(this.ListDeclaration)),u.push(this.Line(this.VariableDeclaration)),u.push(this.Line(this.ConstDeclaration)),u.push(this.Line(this.ExternalDeclaration)),u.push(this.Line(this.IncludeStatement)),u.push(this.LogicLine),u.push(this.LineOfMixedTextAndLogic),o<=Xe.StatementLevel.Knot&&l.push(this.KnotDeclaration),o<=Xe.StatementLevel.Stitch&&l.push(this.StitchDeclaration),o<=Xe.StatementLevel.InnerBlock&&(l.push(this.ParseDashNotArrow),l.push(this.String("}"))),this._statementRulesAtLevel[o]=u,this._statementBreakRulesAtLevel[o]=l;}},this.SkipToNextLine=()=>(this.ParseUntilCharactersFromString(`
50
- \r`),this.ParseNewline(),rn.ParseSuccess),this.Line=s=>()=>{let o=this.ParseObject(s);return o===null?null:(this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o)},this.StartTag=()=>{if(this.Whitespace(),this.ParseString("#")===null)return null;this.parsingStringExpression&&this.Error("Tags aren't allowed inside of strings. Please use \\# if you want a hash symbol.");let s=null;if(this.tagActive){let o=new ht.ContentList;o.AddContent(new Xr.Tag(false)),o.AddContent(new Xr.Tag(true)),s=o;}else s=new Xr.Tag(true);return this.tagActive=true,this.Whitespace(),s},this._inlineWhitespaceChars=new Ne.CharacterSet(" "),this.EndOfLine=()=>this.OneOf([this.Newline,this.EndOfFile]),this.Newline=()=>(this.Whitespace(),this.ParseNewline()!==null?rn.ParseSuccess:null),this.EndOfFile=()=>(this.Whitespace(),this.endOfInput?rn.ParseSuccess:null),this.MultilineWhitespace=()=>{let s=this.OneOrMore(this.Newline);return s===null?null:s.length>=1?rn.ParseSuccess:null},this.Whitespace=()=>this.ParseCharactersFromCharSet(this._inlineWhitespaceChars)!==null?rn.ParseSuccess:null,this.Spaced=s=>()=>{this.Whitespace();let o=this.ParseObject(s);return o===null?null:(this.Whitespace(),o)},this.AnyWhitespace=()=>{let s=false;for(;this.OneOf([this.Whitespace,this.MultilineWhitespace])!==null;)s=true;return s?rn.ParseSuccess:null},this.MultiSpaced=s=>()=>{this.AnyWhitespace();let o=this.ParseObject(s);return o===null?null:(this.AnyWhitespace(),o)},this._filename=null,this._externalErrorHandler=null,this._fileHandler=null,this._filename=t,this.RegisterExpressionOperators(),this.GenerateStatementLevelRules(),this.errorHandler=this.OnStringParserError,this._externalErrorHandler=r,a===null?this._fileHandler=new Y1.DefaultFileHandler:this._fileHandler=a,i===null){if(this._rootParser=this,this._openFilenames=[],this._filename!==null){let s=this.fileHandler.ResolveInkFilename(this._filename);this._openFilenames.push(s);}}else this._rootParser=i;}PreProcessInputString(e){return new k1.CommentEliminator(e).Process()}get parsingStringExpression(){return this.GetFlag(Number(Nu.CustomFlags.ParsingString))}set parsingStringExpression(e){this.SetFlag(Number(Nu.CustomFlags.ParsingString),e);}get tagActive(){return this.GetFlag(Number(Nu.CustomFlags.TagActive))}set tagActive(e){this.SetFlag(Number(Nu.CustomFlags.TagActive),e);}get identifierCharSet(){return this._identifierCharSet===null&&((this._identifierCharSet=new Ne.CharacterSet).AddRange("A","Z").AddRange("a","z").AddRange("0","9").Add("_"),this.ExtendIdentifierCharacterRanges(this._identifierCharSet)),this._identifierCharSet}EndTagIfNecessary(e){this.tagActive&&(e!=null&&(e instanceof ht.ContentList?e.AddContent(new Xr.Tag(false)):e.push(new Xr.Tag(false))),this.tagActive=false);}};ku.InkParser=ce;ce.LatinBasic=Ft.CharacterRange.Define("A","z",new Ne.CharacterSet().AddRange("[","`"));ce.LatinExtendedA=Ft.CharacterRange.Define("\u0100","\u017F");ce.LatinExtendedB=Ft.CharacterRange.Define("\u0180","\u024F");ce.Greek=Ft.CharacterRange.Define("\u0370","\u03FF",new Ne.CharacterSet().AddRange("\u0378","\u0385").AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2"));ce.Cyrillic=Ft.CharacterRange.Define("\u0400","\u04FF",new Ne.CharacterSet().AddRange("\u0482","\u0489"));ce.Armenian=Ft.CharacterRange.Define("\u0530","\u058F",new Ne.CharacterSet().AddCharacters("\u0530").AddRange("\u0557","\u0560").AddRange("\u0588","\u058E"));ce.Hebrew=Ft.CharacterRange.Define("\u0590","\u05FF",new Ne.CharacterSet);ce.Arabic=Ft.CharacterRange.Define("\u0600","\u06FF",new Ne.CharacterSet);ce.Korean=Ft.CharacterRange.Define("\uAC00","\uD7AF",new Ne.CharacterSet);ce.Latin1Supplement=Ft.CharacterRange.Define("\x80","\xFF",new Ne.CharacterSet);ce.Chinese=Ft.CharacterRange.Define("\u4E00","\u9FFF",new Ne.CharacterSet);ce.ListAllCharacterRanges=()=>[ce.LatinBasic,ce.LatinExtendedA,ce.LatinExtendedB,ce.Arabic,ce.Armenian,ce.Cyrillic,ce.Greek,ce.Hebrew,ce.Korean,ce.Latin1Supplement,ce.Chinese];});var q0=E(Vu=>{Object.defineProperty(Vu,"__esModule",{value:true});Vu.GenerateStoryStats=void 0;var Z1=$r(),Q1=Br(),eN=es(),tN=ef(),nN=of(),rN=Sn();function iN(n){let e=n.FindAll(rN.Text)(),t=0;for(let u of e){let l=0,c=true;for(let h of u.text)h==" "||h==" "||h==`
51
- `||h=="\r"?c=true:c&&(l++,c=false);t+=l;}let r=n.FindAll(tN.Knot)(),i=n.FindAll(nN.Stitch)(),a=n.FindAll(Z1.Choice)(),s=n.FindAll(eN.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(Q1.Divert)();return {words:t,knots:r.length,functions:r.filter(u=>u.isFunction).length,stitches:i.length,gathers:s.length,diverts:o.length-1,choices:a.length}}Vu.GenerateStoryStats=iN;});var B0=E(Ru=>{Object.defineProperty(Ru,"__esModule",{value:true});Ru.JsonFileHandler=void 0;var Lf=class{constructor(e){this.fileHierarchy=e,this.ResolveInkFilename=t=>{if(Object.keys(this.fileHierarchy).includes(t))return t;throw new Error(`Cannot locate ${t}. Are you trying a relative import ? This is not yet implemented.`)},this.LoadInkFileContents=t=>{if(Object.keys(this.fileHierarchy).includes(t))return this.fileHierarchy[t];throw new Error(`Cannot open ${t}.`)};}};Ru.JsonFileHandler=Lf;});var M0=E(Me=>{Object.defineProperty(Me,"__esModule",{value:true});Me.Compiler=Me.Story=Me.InkList=Me.JsonFileHandler=Me.StatementLevel=Me.InkParser=Me.CompilerOptions=void 0;var sN=Sh(),aN=Yy(),qf=Pr(),oN=jf(),uN=ve(),lN=ae(),cN=q0(),hN=Sh();Object.defineProperty(Me,"CompilerOptions",{enumerable:true,get:function(){return hN.CompilerOptions}});var dN=jf();Object.defineProperty(Me,"InkParser",{enumerable:true,get:function(){return dN.InkParser}});var fN=sf();Object.defineProperty(Me,"StatementLevel",{enumerable:true,get:function(){return fN.StatementLevel}});var pN=B0();Object.defineProperty(Me,"JsonFileHandler",{enumerable:true,get:function(){return pN.JsonFileHandler}});var W0=cs();Object.defineProperty(Me,"InkList",{enumerable:true,get:function(){return W0.InkList}});Object.defineProperty(Me,"Story",{enumerable:true,get:function(){return W0.Story}});var Bf=class{get errors(){return this._errors}get warnings(){return this._warnings}get authorMessages(){return this._authorMessages}get inputString(){return this._inputString}get options(){return this._options}get parsedStory(){if(!this._parsedStory)throw new Error;return this._parsedStory}get runtimeStory(){if(!this._runtimeStory)throw new Error("Compilation failed.");return this._runtimeStory}get parser(){if(!this._parser)throw new Error;return this._parser}get debugSourceRanges(){return this._debugSourceRanges}constructor(e,t=null){this._errors=[],this._warnings=[],this._authorMessages=[],this._parsedStory=null,this._runtimeStory=null,this._parser=null,this._debugSourceRanges=[],this.Compile=()=>(this._parser=new oN.InkParser(this.inputString,this.options.sourceFilename||null,this.OnError,null,this.options.fileHandler),this._parsedStory=this.parser.ParseStory(),this.errors.length===0?(this.parsedStory.countAllVisits=this.options.countAllVisits,this._runtimeStory=this.parsedStory.ExportRuntime(this.OnError)):this._runtimeStory=null,this.runtimeStory),this.RetrieveDebugSourceForLatestContent=()=>{var r;for(let i of this.runtimeStory.state.outputStream){let a=(0, lN.asOrNull)(i,uN.StringValue);if(a!==null){let s=new aN.DebugSourceRange(((r=a.value)===null||r===void 0?void 0:r.length)||0,a.debugMetadata,a.value||"unknown");this.debugSourceRanges.push(s);}}},this.GenerateStats=()=>this._parsedStory===null?null:(0, cN.GenerateStoryStats)(this._parsedStory),this.DebugMetadataForContentAtOffset=r=>{let i=0,a=null;for(let s of this.debugSourceRanges){if(s.debugMetadata!==null&&(a=s.debugMetadata),r>=i&&r<i+s.length)return a;i+=s.length;}return null},this.OnError=(r,i)=>{switch(i){case qf.ErrorType.Author:this._authorMessages.push(r);break;case qf.ErrorType.Warning:this._warnings.push(r);break;case qf.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new sN.CompilerOptions;}};Me.Compiler=Bf;});var Ge;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(Ge||={});var x=class Q{static init(e){e.loadAssets&&(Q._loadAssets=e.loadAssets),e.soundOperation&&(Q._soundOperation=e.soundOperation),e.imageOperation&&(Q._imageOperation=e.imageOperation),e.videoOperation&&(Q._videoOperation=e.videoOperation),e.imageContainerOperation&&(Q._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(Q._textOperation=e.textOperation),e.canvasElementOperation&&(Q._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(Q._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(Q._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(Q._narrationOperation=e.narrationOperation),e.effectOperation&&(Q._effectOperation=e.effectOperation),e.animateOperation&&(Q._animateOperation=e.animateOperation),e.canvasOperation&&(Q._canvasOperation=e.canvasOperation),e.getLogichValue&&(Q._getLogichValue=e.getLogichValue),e.getConditionalStep&&(Q._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return Q._loadAssets}static _soundOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return Q._soundOperation}static _imageOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return Q._imageOperation}static _videoOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return Q._videoOperation}static _imageContainerOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return Q._imageContainerOperation}static _textOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return Q._textOperation}static _canvasElementOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return Q._canvasElementOperation}static _setStorageValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return Q._setStorageValue}static _setInitialStorageValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return Q._setInitialStorageValue}static _narrationOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return Q._narrationOperation}static _effectOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return Q._effectOperation}static _animateOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return Q._animateOperation}static _canvasOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return Q._canvasOperation}static _getLogichValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return Q._getLogichValue}static _getConditionalStep=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return Q._getConditionalStep}};exports.TextReplaces=void 0;(n=>{n.options={replaceRegex:/\[([^\]]+)\]/};let e=[];function t(l,c){e.unshift({fn:l,opts:c});}n.add=t;function r(l){let c=e.findIndex(h=>h.fn===l);c!==-1&&e.splice(c,1);}n.remove=r;function i(){return e.map(l=>l.opts)}n.info=i;function a(l,c){let h=e.filter(f=>(f.opts.type??"after-translation")===c.type);for(let f of h)l=u(l,f.fn,f.opts.validation);return l}n.replace=a;function s(l){let c=e.filter(h=>h.opts.i18nInterpolation);for(let h of c)l=o(l,h.fn,h.opts);return l}n.runI18nPreStep=s;function o(l,c,h){let{validation:f}=h,d=new RegExp(n.options.replaceRegex.source,"g"),m=[...l.matchAll(d)],y=new Set,_=[];for(let S of m)y.has(S[1])||(y.add(S[1]),_.push(S[1]));for(let S of _){if(f==="characterId"){if(!characters.RegisteredCharacters.has(S))continue}else if(f!=="all"){if(f instanceof RegExp){if(!f.test(S))continue}else if(f instanceof D.ZodType&&!f.safeParse(S).success)continue}c(S)!==void 0&&(l.includes(`{{[${S}]}}`)||(l=l.replaceAll(`[${S}]`,`{{[${S}]}}`)));}return l}function u(l,c,h){let f=new RegExp(n.options.replaceRegex.source,"g"),d=[...l.matchAll(f)],m=new Set,y=[];for(let _ of d)m.has(_[1])||(m.add(_[1]),y.push(_[1]));for(let _ of y){if(h==="characterId"){if(!characters.RegisteredCharacters.has(_))continue}else if(h!=="all"){if(h instanceof RegExp){if(!h.test(_))continue}else if(h instanceof D.ZodType&&!h.safeParse(_).success)continue}let S=c(_);S!==void 0&&(l=l.replaceAll(`[${_}]`,S));}return l}})(exports.TextReplaces||={});function aC(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}var Zf;(n=>{let e=u=>u;function t(u){return Array.isArray(u)?u.map(l=>r(`${l}`)):r(`${u}`)}n.t=t;function r(u){let l=u;return n.beforeToTranslate&&(l=(0, n.beforeToTranslate)(l)),l=exports.TextReplaces.replace(l,{type:"before-translation"}),l=e(l),n.afterToTranslate&&(l=(0, n.afterToTranslate)(l)),l=exports.TextReplaces.replace(l,{type:"after-translation"}),l}n.translate=r;function i(u){e=u;}n.setTranslate=i;function a(u,l,c){let{defaultValue:h="empty_string"}=c;typeof l=="string"&&(l=[l]),Array.isArray(l)&&l.forEach(f=>{let d=f;if(n.beforeToTranslate&&(d=(0, n.beforeToTranslate)(d)),h==="empty_string")u[d]===void 0&&(u[d]="");else if(h==="copy_key"){let m=f;n.beforeToTranslate&&(m=(0, n.beforeToTranslate)(m));let y=exports.TextReplaces.runI18nPreStep(m);y=exports.TextReplaces.replace(y,{type:"before-translation"}),u[d]=y;}});}function s(u,l=[]){if(typeof u=="object"&&u&&"type"in u)if(u.type==="ifelse")u.then&&s(u.then,l),u.else&&s(u.else,l);else if(u.type==="stepswitch"){if(u.elements)if(Array.isArray(u.elements))u.elements.forEach(c=>{s(c,l);});else if(u.elements.type==="ifelse"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else if(u.elements.type==="stepswitch"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else s(u.elements,l);}else u.type==="resulttocombine"?(u.firstItem&&s(u.firstItem,l),u.secondConditionalItem&&u.secondConditionalItem.forEach(c=>{s(c,l);})):l.push(u);else u&&l.push(u);return l}async function o(u,l={},c={}){let{defaultValue:h="copy_key",operationStringConvert:f}=c,d=u.map(async m=>{if(m.choices){let y=[];Array.isArray(m.choices)?y=[m.choices]:y=s(m.choices),y.forEach(_=>{_.forEach(S=>{if("type"in S){let b=[];S.type==="ifelse"||S.type==="stepswitch"?s(S,b):b=[S],b.map(g=>s(g.text)).forEach(g=>{Array.isArray(g)&&g.forEach(v=>{Array.isArray(v)?v.forEach(p=>{typeof p=="string"?a(l,p,{defaultValue:h}):s(p).forEach(C=>{Array.isArray(C)?C.forEach(w=>{typeof w=="string"&&a(l,w,{defaultValue:h});}):typeof C=="string"&&a(l,C,{defaultValue:h});});}):typeof v=="string"&&a(l,v,{defaultValue:h});});});}});});}if(m.dialogue){let y=[];Array.isArray(m.dialogue)?y=[m.dialogue]:y=s(m.dialogue),y.forEach(_=>{if(typeof _=="string")a(l,_,{defaultValue:h});else if("text"in _){let S=s(_.text);typeof S=="string"&&(S=[S]),S.forEach(b=>{typeof b=="string"?a(l,b,{defaultValue:h}):s(b).forEach(g=>{typeof g=="string"?a(l,g,{defaultValue:h}):Array.isArray(g)&&g.forEach(v=>{typeof v=="string"?a(l,v,{defaultValue:h}):s(v).forEach(p=>{typeof p=="string"&&a(l,p,{defaultValue:h});});});});});}});}if(m.operations)for(let y of m.operations){if(y.type==="operationtoconvert"&&f){let _=aC(y),S=await f(_,m,{});if(!S)return;y=S;}y.type==="text"&&y.operationType==="show"&&a(l,y.text,{defaultValue:h});}m.conditionalStep&&s(m.conditionalStep).forEach(y=>{Array.isArray(y)?o(y,l,c):o([y],l,c);});});return await Promise.all(d),l}n.generateJsonTranslation=o;})(Zf||={});var Ae=Zf;async function Qf(n){let e=x.getLogichValue(n,{});if(e)switch(e.type){case "assets":switch(e.operationType){case "load":await canvas.Assets.load(e.aliases);break;case "lazyload":canvas.Assets.backgroundLoad(e.aliases);break}break;case "bundle":switch(e.operationType){case "load":await canvas.Assets.loadBundle(e.aliases);break;case "lazyload":canvas.Assets.backgroundLoadBundle(e.aliases);break}break}}var te;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(te||={});async function Ds(n,e,t){switch(t.type){case "fade":await canvas.showWithFade(e.alias,n,t.props,t.priority);break;case "dissolve":await canvas.showWithDissolve(e.alias,n,t.props,t.priority);break;case "movein":case "moveout":await canvas.moveIn(e.alias,n,t.props,t.priority);break;case "zoomin":case "zoomout":await canvas.zoomIn(e.alias,n,t.props,t.priority);break;case "pushin":case "pushout":await canvas.pushIn(e.alias,n,t.props,t.priority);break}}function ti(n){if(n.transition)switch(n.transition.type){case "fade":canvas.removeWithFade(n.alias,n.transition.props,n.transition.priority);break;case "dissolve":canvas.removeWithDissolve(n.alias,n.transition.props,n.transition.priority);break;case "movein":case "moveout":canvas.moveOut(n.alias,n.transition.props,n.transition.priority);break;case "zoomin":case "zoomout":canvas.zoomOut(n.alias,n.transition.props,n.transition.priority);break;case "pushin":case "pushout":canvas.pushOut(n.alias,n.transition.props,n.transition.priority);break}else canvas.canvas.remove(n.alias);}async function ep(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.ImageSprite(n.props,n.url||n.alias);await Ds(e,n,n.transition);}else await canvas.showImage(n.alias,n.url,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):te.error(`Image with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function tp(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.VideoSprite(n.props,n.url||n.alias);await Ds(e,n,n.transition);}else await canvas.showVideo(n.alias,n.url,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):te.error(`Video with alias ${n.alias} not found.`);break}case "remove":ti(n);break;case "pause":case "resume":{let e=canvas.canvas.find(n.alias);e?e.paused=n.operationType==="pause":te.error(`Video with alias ${n.alias} not found.`);break}}}async function np(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.ImageContainer(n.props,n.urls);await Ds(e,n,n.transition);}else await canvas.showImageContainer(n.alias,n.urls,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):te.error(`ImageContainer with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function rp(n){switch(n.operationType){case "show":if(n.props=n.props||{},n.props.text=Ae.t(n.text),n.transition){let e=new canvas.Text(n.props);await Ds(e,n,n.transition);}else canvas.showText(n.alias,n.text,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):te.error(`Text with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function ip(n){switch(n.operationType){case "edit":try{let e=canvas.canvas.find(n.alias);e?n.props&&e.setMemory({...e.memory,...n.props}):te.error(`Canvas Element with alias ${n.alias} not found.`);}catch(e){te.error(`There was an error while trying to edit the canvas element with alias ${n.alias}.`,e);}break;case "remove":ti(n);break}}function sp(n){n.operationType==="clear"&&canvas.canvas.removeAll();}async function ap(n){n.type==="shake"&&await canvas.shakeEffect(n.alias,n.props,n.priority);}function op(n){switch(n.type){case "animate":canvas.canvas.animate(n.alias,n.keyframes,n.options,n.priority);break;case "animate-sequence":canvas.canvas.animate(n.alias,n.sequence,n.options,n.priority);break}}function up(n){switch(n.type){case "input":narration.narration.input.request({type:n.valueType},n.defaultValue);break;case "dialogue":narration.narration.dialogue=void 0;break}}function lp(n){switch(n.operationType){case "play":n.url?sound.sound.play(n.alias,n.url,n.props):sound.sound.play(n.alias,n.props);break;case "stop":switch(n.type){case "sound":sound.sound.stop(n.alias);break;case "all":sound.sound.stopAll();break}break;case "pause":switch(n.type){case "sound":sound.sound.pause(n.alias);break;case "channel":sound.sound.channels.find(n.alias).pauseAll();break;case "all":sound.sound.pauseAll();break}break;case "resume":switch(n.type){case "sound":sound.sound.resume(n.alias);break;case "channel":sound.sound.channels.find(n.alias).resumeAll();break;case "all":sound.sound.resumeAll();break}break;case "edit":Object.entries(n.props).forEach(([e,t])=>{let r=sound.sound.find(n.alias);r&&(e==="volume"?r.volume.value=t:r.paused=t);});break}}var Mu="___param___",PC=class ee{static init(e){e.loadAssets&&(ee._loadAssets=e.loadAssets),e.soundOperation&&(ee._soundOperation=e.soundOperation),e.imageOperation&&(ee._imageOperation=e.imageOperation),e.videoOperation&&(ee._videoOperation=e.videoOperation),e.imageContainerOperation&&(ee._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(ee._textOperation=e.textOperation),e.canvasElementOperation&&(ee._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(ee._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(ee._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(ee._narrationOperation=e.narrationOperation),e.effectOperation&&(ee._effectOperation=e.effectOperation),e.animateOperation&&(ee._animateOperation=e.animateOperation),e.canvasOperation&&(ee._canvasOperation=e.canvasOperation),e.getLogichValue&&(ee._getLogichValue=e.getLogichValue),e.getConditionalStep&&(ee._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return ee._loadAssets}static _soundOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return ee._soundOperation}static _imageOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return ee._imageOperation}static _videoOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return ee._videoOperation}static _imageContainerOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return ee._imageContainerOperation}static _textOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return ee._textOperation}static _canvasElementOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return ee._canvasElementOperation}static _setStorageValue=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return ee._setStorageValue}static _setInitialStorageValue=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return ee._setInitialStorageValue}static _narrationOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return ee._narrationOperation}static _effectOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return ee._effectOperation}static _animateOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return ee._animateOperation}static _canvasOperation=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return ee._canvasOperation}static _getLogichValue=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return ee._getLogichValue}static _getConditionalStep=()=>{throw te.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return ee._getConditionalStep}};function OC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>PC.getLogichValue(i,e));return t(...r)}else te.warn(`getLogichValue function ${n.functionName} not found in props`);}}function cp(n,e){let t=x.getLogichValue(n,e);return t&&typeof t=="object"&&"type"in t?x.getLogichValue(t,e):t}function hp(n,e={}){let t=cp(n.value,e);switch(n.storageType){case "flagStorage":storage.storage.flags.set(n.key,n.value);break;case "storage":storage.storage.set(n.key,t);break;case "tempstorage":storage.storage.temp.set(n.key,t);break;case "params":{let r=storage.storage.get(`${Mu}${narration.narration.labels.opened.length-1}`)||[];r.length>n.key&&(r[n.key]=t),storage.storage.temp.set(`${Mu}${narration.narration.labels.opened.length-1}`,r);break}}}function dp(n,e={}){let t=cp(n.value,e);switch(n.storageType){case "storage":case "tempstorage":storage.storage.default={[n.key]:t};break}}function fp(n,e={}){let t=pp(n,e);if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "value":return TC(t,e);case "arithmetic":case "arithmeticsingle":return xC(t,e);case "compare":case "union":return NC(t,e);case "function":return OC(t,e)}return t}function xC(n,e){let t=x.getLogichValue(n.leftValue,e);switch(n.type){case "arithmetic":{let r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "*":return t*r;case "/":return t/r;case "+":return typeof t=="string"||typeof r=="string"?`${t}${r}`:Array.isArray(t)&&Array.isArray(r)?[...t,...r]:Array.isArray(t)?[...t,r]:Array.isArray(r)?[t,...r]:t+r;case "-":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>!r.includes(i));if(Array.isArray(t))return t.filter(i=>i!==r);if(Array.isArray(r)){te.warn("getValueFromArithmeticOperations cannot subtract array from non-array");return}return t-r;case "%":return t%r;case "POW":return t**r;case "RANDOM":return narration.narration.getRandomNumber(t,r);case "INTERSECTION":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>r.includes(i));te.warn("getValueFromArithmeticOperations cannot intersect non-array values");return;default:te.warn("getValueFromArithmeticOperations unknown operator",n);return}}case "arithmeticsingle":switch(n.operator){case "INT":return Number(t);case "FLOOR":return Math.floor(t)}break}}function TC(n,e){if(n&&typeof n=="object"&&"type"in n&&n.type==="value"&&n.storageOperationType==="get")switch(n.storageType){case "storage":case "tempstorage":return n.key==="_input_value_"?narration.narration.input.value:storage.storage.get(n.key);case "flagStorage":return storage.storage.flags.get(n.key);case "label":return narration.narration.queries.timesLabelOpened(n.label);case "choice":return narration.narration.queries.timesChoiceMade(n.index);case "logic":return x.getLogichValue(n.operation,e);case "params":{let t=storage.storage.get(`${Mu}${narration.narration.labels.opened.length-1}`)||[];if(t&&t.length>n.key)return t[n.key];te.warn("getValue params not found");return}}return n}function NC(n,e){if(!n)return false;if(typeof n!="object"||!("type"in n))return !!n;switch(n.type){case "compare":{let t=x.getLogichValue(n.leftValue,e),r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "==":return Array.isArray(t)&&Array.isArray(r)?t.length===r.length&&t.every(i=>r.includes(i)):t===r;case "!=":return Array.isArray(t)&&Array.isArray(r)?t.length!==r.length||!t.every(i=>r.includes(i)):t!==r;case "<":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<0:Array.isArray(t)&&Array.isArray(r)?t.length<r.length:t<r;case "<=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<=0:Array.isArray(t)&&Array.isArray(r)?t.length<=r.length:t<=r;case ">":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>0:Array.isArray(t)&&Array.isArray(r)?t.length>r.length:t>r;case ">=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>=0:Array.isArray(t)&&Array.isArray(r)?t.length>=r.length:t>=r;case "CONTAINS":return Array.isArray(t)&&Array.isArray(r)?r.every(i=>t.includes(i)):Array.isArray(t)?t.includes(r):t.toString().includes(r.toString())}break}case "value":{let t=x.getLogichValue(n,e);return Array.isArray(t)?t.length>0:t&&typeof t=="object"?Object.keys(t).length>0:!!t}case "union":return FC(n,e)}return !!n}function FC(n,e){if(n.unionType==="not"){let r=fp(n.condition,e);return Array.isArray(r)?r.length===0:r&&typeof r=="object"?Object.keys(r).length===0:!r}let t=r=>x.getLogichValue(r,e)||false;return n.unionType==="and"?n.conditions.every(t):n.conditions.some(t)}function IC(n,e){return Math.floor(Math.random()*(e-n+1)+n)}function pp(n,e={}){if(Array.isArray(n)||!n)return n;if(n&&typeof n=="object"&&"type"in n)switch(n.type){case "resulttocombine":return kC(n,e);case "ifelse":return x.getLogichValue(n.condition,e)?x.getLogichValue(n.then,e):x.getLogichValue(n.else,e);case "stepswitch":{let t=x.getLogichValue(n.elements,e)||[];if(t.length===0){te.error("getValueFromConditionalStatements elements.length === 0");return}switch(n.choiceType){case "random":{let r=IC(0,t.length-1);return x.getLogichValue(t[r],e)}case "loop":{let r=narration.NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return r>t.length-1?(r=r%t.length,x.getLogichValue(t[r],e)):x.getLogichValue(t[r],e)}case "sequential":{let r,i=narration.NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return n.end==="lastItem"&&(r=x.getLogichValue(t[t.length-1],e)),i>t.length-1?r:x.getLogichValue(t[i],e)}case "sequentialrandom":{let r=narration.NarrationManagerStatic.getRandomNumber(0,t.length-1,{nestedId:n.nestedId,onceOnly:true});if(r===void 0&&n.end==="lastItem"){let i=narration.NarrationManagerStatic.getCurrentStepTimesCounterData(n.nestedId);if(!i?.usedRandomNumbers){te.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}let a=i.usedRandomNumbers[`0-${t.length-1}`];return x.getLogichValue(t[a[a.length-1]],e)}if(r===void 0){te.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}return x.getLogichValue(t[r],e)}}}}return n}function As(n,e={}){if(n.conditionalStep){let t=pixiVn.createExportableElement(x.getLogichValue(n.conditionalStep,e));if(t?.glueEnabled===void 0&&delete t?.glueEnabled,t?.goNextStep===void 0&&delete t?.goNextStep,t?.end===void 0&&delete t?.end,t?.choices===void 0&&delete t?.choices,t?.dialogue===void 0&&delete t?.dialogue,t?.labelToOpen===void 0&&delete t?.labelToOpen,t?.operations===void 0&&delete t?.operations,t){let r={...n,conditionalStep:void 0,...t};return As(r,e)}else narration.narration.dialogGlue&&(narration.narration.dialogGlue=false);}return n}function kC(n,e){let t=n.firstItem,r=(n.secondConditionalItem??[]).flatMap(a=>Array.isArray(a)?a.map(s=>x.getLogichValue(s,e)):[x.getLogichValue(a,e)]),i=t?[t,...r]:r;if(i.length===0){te.warn("combinateResult toCheck.length === 0");return}if(typeof i[0]=="string")return Ae.t(i);if(typeof i[0]=="object"){let a=i,s,o=false,u=a.map((b,g)=>{b=As(b,e);let v=x.getLogichValue(b.dialogue,e)||"";return g===0?(s=x.getLogichValue(b.glueEnabled,e)||false,v):(typeof v=="object"&&"text"in v&&(v=`${v.character}: ${v.text}`),s===false&&o&&(v=`
52
-
53
- ${v}`),v&&(o=true),s=x.getLogichValue(b.glueEnabled,e)||false,v)}),l=x.getLogichValue(u[0],e),c=typeof l=="object"&&"character"in l?l.character:void 0,h=u.flatMap(b=>{let g;b&&typeof b=="object"&&"text"in b?g=b.text:g=b;let v;return Array.isArray(g)?v=g.map(p=>{let C=x.getLogichValue(p,e);return Ae.t(`${C}`)}):v=x.getLogichValue(g,e)||"",Ae.t(v)}),f=a.find(b=>b.end),d=a.find(b=>b.choices),m=false,y=false;a.length>0&&(a[0].glueEnabled&&a[0].goNextStep&&a[0].dialogue===void 0&&(narration.narration.dialogGlue=true),m=a[a.length-1].glueEnabled,y=a.reverse().find(b=>!(b.operations&&(!b.dialogue||!b.choices)))?.goNextStep);let _=a.find(b=>b.labelToOpen),S=[];return a.forEach(b=>{b.operations&&(S=[...S,...b.operations]);}),{dialogue:c?{character:c,text:h}:h,end:f?.end,choices:d?.choices,glueEnabled:m,goNextStep:y,labelToOpen:_?.labelToOpen,operations:S}}}exports.VariableGetter=void 0;(n=>{let e=new Set;function t(a){e.add(a);}n.add=t;function r(){e.clear();}n.clear=r;function i(a,s={}){let o=c=>fp(c,s)??void 0,u=pp(a,s);if(e.size===0)return o(u);let l=o;for(let c of e){let h=l;l=f=>c(f,h)??void 0;}return l(u)}n.getLogichValue=i;})(exports.VariableGetter||={});var jC=Object.create,Cp=Object.defineProperty,LC=Object.getOwnPropertyDescriptor,qC=Object.getOwnPropertyNames,BC=Object.getPrototypeOf,WC=Object.prototype.hasOwnProperty,gp=(n=>typeof On<"u"?On:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof On<"u"?On:e)[t]}):n)(function(n){if(typeof On<"u")return On.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),bp=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),MC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of qC(e))!WC.call(n,i)&&i!==t&&Cp(n,i,{get:()=>e[i],enumerable:!(r=LC(e,i))||r.enumerable});return n},GC=(n,e,t)=>(t=n!=null?jC(BC(n)):{},MC(Cp(t,"default",{value:n,enumerable:true}),n)),JC=bp((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r():typeof define=="function"&&define.amd?define([],r):t.CryptoJS=r();})(n,function(){var t=t||(function(r,i){var a;if(typeof window<"u"&&window.crypto&&(a=window.crypto),typeof self<"u"&&self.crypto&&(a=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(a=globalThis.crypto),!a&&typeof window<"u"&&window.msCrypto&&(a=window.msCrypto),!a&&typeof global<"u"&&global.crypto&&(a=global.crypto),!a&&typeof gp=="function")try{a=gp("crypto");}catch{}var s=function(){if(a){if(typeof a.getRandomValues=="function")try{return a.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof a.randomBytes=="function")try{return a.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function b(){}return function(g){var v;return b.prototype=g,v=new b,b.prototype=null,v}})(),u={},l=u.lib={},c=l.Base=(function(){return {extend:function(b){var g=o(this);return b&&g.mixIn(b),(!g.hasOwnProperty("init")||this.init===g.init)&&(g.init=function(){g.$super.init.apply(this,arguments);}),g.init.prototype=g,g.$super=this,g},create:function(){var b=this.extend();return b.init.apply(b,arguments),b},init:function(){},mixIn:function(b){for(var g in b)b.hasOwnProperty(g)&&(this[g]=b[g]);b.hasOwnProperty("toString")&&(this.toString=b.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),h=l.WordArray=c.extend({init:function(b,g){b=this.words=b||[],g!=i?this.sigBytes=g:this.sigBytes=b.length*4;},toString:function(b){return (b||d).stringify(this)},concat:function(b){var g=this.words,v=b.words,p=this.sigBytes,C=b.sigBytes;if(this.clamp(),p%4)for(var w=0;w<C;w++){var O=v[w>>>2]>>>24-w%4*8&255;g[p+w>>>2]|=O<<24-(p+w)%4*8;}else for(var A=0;A<C;A+=4)g[p+A>>>2]=v[A>>>2];return this.sigBytes+=C,this},clamp:function(){var b=this.words,g=this.sigBytes;b[g>>>2]&=4294967295<<32-g%4*8,b.length=r.ceil(g/4);},clone:function(){var b=c.clone.call(this);return b.words=this.words.slice(0),b},random:function(b){for(var g=[],v=0;v<b;v+=4)g.push(s());return new h.init(g,b)}}),f=u.enc={},d=f.Hex={stringify:function(b){for(var g=b.words,v=b.sigBytes,p=[],C=0;C<v;C++){var w=g[C>>>2]>>>24-C%4*8&255;p.push((w>>>4).toString(16)),p.push((w&15).toString(16));}return p.join("")},parse:function(b){for(var g=b.length,v=[],p=0;p<g;p+=2)v[p>>>3]|=parseInt(b.substr(p,2),16)<<24-p%8*4;return new h.init(v,g/2)}},m=f.Latin1={stringify:function(b){for(var g=b.words,v=b.sigBytes,p=[],C=0;C<v;C++){var w=g[C>>>2]>>>24-C%4*8&255;p.push(String.fromCharCode(w));}return p.join("")},parse:function(b){for(var g=b.length,v=[],p=0;p<g;p++)v[p>>>2]|=(b.charCodeAt(p)&255)<<24-p%4*8;return new h.init(v,g)}},y=f.Utf8={stringify:function(b){try{return decodeURIComponent(escape(m.stringify(b)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(b){return m.parse(unescape(encodeURIComponent(b)))}},_=l.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0;},_append:function(b){typeof b=="string"&&(b=y.parse(b)),this._data.concat(b),this._nDataBytes+=b.sigBytes;},_process:function(b){var g,v=this._data,p=v.words,C=v.sigBytes,w=this.blockSize,O=w*4,A=C/O;b?A=r.ceil(A):A=r.max((A|0)-this._minBufferSize,0);var N=A*w,J=r.min(N*4,C);if(N){for(var Z=0;Z<N;Z+=w)this._doProcessBlock(p,Z);g=p.splice(0,N),v.sigBytes-=J;}return new h.init(g,J)},clone:function(){var b=c.clone.call(this);return b._data=this._data.clone(),b},_minBufferSize:0});l.Hasher=_.extend({cfg:c.extend(),init:function(b){this.cfg=this.cfg.extend(b),this.reset();},reset:function(){_.reset.call(this),this._doReset();},update:function(b){return this._append(b),this._process(),this},finalize:function(b){b&&this._append(b);var g=this._doFinalize();return g},blockSize:16,_createHelper:function(b){return function(g,v){return new b.init(v).finalize(g)}},_createHmacHelper:function(b){return function(g,v){return new S.HMAC.init(b,v).finalize(g)}}});var S=u.algo={};return u})(Math);return t});}),zC=bp((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r(JC()):typeof define=="function"&&define.amd?define(["./core"],r):r(t.CryptoJS);})(n,function(t){return (function(){var r=t,i=r.lib,a=i.WordArray,s=i.Hasher,o=r.algo,u=[],l=o.SHA1=s.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(c,h){for(var f=this._hash.words,d=f[0],m=f[1],y=f[2],_=f[3],S=f[4],b=0;b<80;b++){if(b<16)u[b]=c[h+b]|0;else {var g=u[b-3]^u[b-8]^u[b-14]^u[b-16];u[b]=g<<1|g>>>31;}var v=(d<<5|d>>>27)+S+u[b];b<20?v+=(m&y|~m&_)+1518500249:b<40?v+=(m^y^_)+1859775393:b<60?v+=(m&y|m&_|y&_)-1894007588:v+=(m^y^_)-899497514,S=_,_=y,y=m<<30|m>>>2,m=d,d=v;}f[0]=f[0]+d|0,f[1]=f[1]+m|0,f[2]=f[2]+y|0,f[3]=f[3]+_|0,f[4]=f[4]+S|0;},_doFinalize:function(){var c=this._data,h=c.words,f=this._nDataBytes*8,d=c.sigBytes*8;return h[d>>>5]|=128<<24-d%32,h[(d+64>>>9<<4)+14]=Math.floor(f/4294967296),h[(d+64>>>9<<4)+15]=f,c.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var c=s.clone.call(this);return c._hash=this._hash.clone(),c}});r.SHA1=s._createHelper(l),r.HmacSHA1=s._createHmacHelper(l);})(),t.SHA1});}),yp="___param___",Se;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(Se||={});var HC=class ne{static init(e){e.loadAssets&&(ne._loadAssets=e.loadAssets),e.soundOperation&&(ne._soundOperation=e.soundOperation),e.imageOperation&&(ne._imageOperation=e.imageOperation),e.videoOperation&&(ne._videoOperation=e.videoOperation),e.imageContainerOperation&&(ne._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(ne._textOperation=e.textOperation),e.canvasElementOperation&&(ne._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(ne._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(ne._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(ne._narrationOperation=e.narrationOperation),e.effectOperation&&(ne._effectOperation=e.effectOperation),e.animateOperation&&(ne._animateOperation=e.animateOperation),e.canvasOperation&&(ne._canvasOperation=e.canvasOperation),e.getLogichValue&&(ne._getLogichValue=e.getLogichValue),e.getConditionalStep&&(ne._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return ne._loadAssets}static _soundOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return ne._soundOperation}static _imageOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return ne._imageOperation}static _videoOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return ne._videoOperation}static _imageContainerOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return ne._imageContainerOperation}static _textOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return ne._textOperation}static _canvasElementOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return ne._canvasElementOperation}static _setStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return ne._setStorageValue}static _setInitialStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return ne._setInitialStorageValue}static _narrationOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return ne._narrationOperation}static _effectOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return ne._effectOperation}static _animateOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return ne._animateOperation}static _canvasOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return ne._canvasOperation}static _getLogichValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return ne._getLogichValue}static _getConditionalStep=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return ne._getConditionalStep}};function UC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>HC.getLogichValue(i,e));return t(...r)}else Se.warn(`getLogichValue function ${n.functionName} not found in props`);}}function KC(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}async function _p(n,e,t){let r=x.getLogichValue(n,e);if(r)switch(r.type){case "sound":x.soundOperation(r);break;case "assets":case "bundle":await x.loadAssets(r);break;case "image":await x.imageOperation(r);break;case "video":await x.videoOperation(r);break;case "imagecontainer":await x.imageContainerOperation(r);break;case "text":await x.textOperation(r);break;case "canvaselement":await x.canvasElementOperation(r);break;case "canvas":x.canvasOperation(r);break;case "value":x.setStorageValue(r,e);break;case "operationtoconvert":if(t){let i=KC(r,e),a=await t(i);a&&await _p(a,e,t);}break;case "input":case "dialogue":x.narrationOperation(r);break;case "shake":await x.effectOperation(r);break;case "animate":case "animate-sequence":x.animateOperation(r);break;case "function":await UC(r,e);break}}function vp(n){let e=x.getLogichValue(n,{});e&&e.type==="value"&&e.storageOperationType==="set"&&(e.storageType==="storage"||e.storageType==="tempstorage")&&x.setInitialStorageValue(e);}var XC=GC(zC()),YC=class extends narration.LabelAbstract{constructor(n,e,t,r={}){t||(t={}),t.onLoadingLabel=async()=>{for(let i of e){let a;if(typeof i=="function"?a=i():a=i,a=x.getConditionalStep(a),a.operations)try{let s=a.operations.map(o=>x.loadAssets(o));await Promise.all(s);}catch(s){Se.error("The operation in the onLoadingLabel function of the label has an error:",s);}}},super(n,t),this._steps=e,this.operationStringConvert=r.operationStringConvert,this.skipEmptyDialogs=r.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(n=>this.stepConverter(n))}get stepCount(){return this._steps.length}getStepById(n){if(n<0||n>=this._steps.length)return;let e=this._steps[n];return this.stepConverter(e)}operationStringConvert;skipEmptyDialogs=false;getStepSha(n){if(n<0||n>=this.steps.length)return;let e=this._steps[n];return (0, XC.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(n,e){let t="";if(Array.isArray(n)){let r=[];n.forEach(i=>{if(typeof i=="string")r.push(i);else if(i&&typeof i=="object"){let a=x.getLogichValue(i,e);a?(a&&!Array.isArray(a)&&typeof a=="object"&&(a=x.getLogichValue(a,e)||""),Array.isArray(a)?r=r.map(s=>`${s}`).concat(a):r.push(`${a}`)):r.push(`${i}`);}else r.push(`${i}`);}),t=r;}else {let r=x.getLogichValue(n,e);r&&!Array.isArray(r)&&typeof r=="object"&&(r=x.getLogichValue(r,e)),r&&Array.isArray(r)?t=r.map(i=>`${i}`):t=`${r}`;}return t}getDialogue(n,e){if(n==null)return;let t=x.getLogichValue(n,e);return t==null?`${t}`:typeof t=="object"&&"character"in t&&"text"in t?{character:t.character,text:Ae.t(this.getDialogueText(t.text,e))}:Ae.t(this.getDialogueText(t,e))}getChoices(n,e){return x.getLogichValue(n,e)?.map(t=>x.getLogichValue(t,e)).filter(t=>t!==void 0)}stepConverter(n){return async e=>{let t=typeof n=="function"?n():n;t=pixiVn.createExportableElement(t),t=x.getConditionalStep(t,e);let r=this.operationStringConvert?f=>this.operationStringConvert(f,t,e):void 0,{operations:i=[]}=t;for(let f of i)await _p(f,e,r);let{labelToOpen:a=[]}=t,s=this.getChoices(t.choices,e),o=x.getLogichValue(t.glueEnabled,e),u=this.getDialogue(t.dialogue,e),l=[];Array.isArray(a)||(a=[a]),a.forEach(f=>{let d=x.getLogichValue(f,e);d&&l.push(d);});let c=x.getLogichValue(t.goNextStep,e),h=x.getLogichValue(t.end,e);if(s){let f=s.map(d=>{let m="";if(Array.isArray(d.text)){let y=[];d.text.forEach(_=>{if(typeof _=="string")y.push(Ae.t(_));else if(_&&typeof _=="object"){let S=x.getLogichValue(_,e);S&&!Array.isArray(S)&&typeof S=="object"&&(S=x.getLogichValue(S,e)||""),S&&(Array.isArray(S)?y=y.concat(Ae.t(S)):y.push(Ae.t(S)));}}),m=y;}else typeof d.text=="string"&&(m=Ae.t(d.text));return {label:d.label,text:m,props:d.props,type:d.type,oneTime:d.oneTime,onlyHaveNoChoice:d.onlyHaveNoChoice,autoSelect:d.autoSelect}});narration.narration.choices=f;}else narration.narration.choices=void 0;u!==void 0&&(narration.narration.dialogue=u,this.skipEmptyDialogs&&typeof u=="string"&&(u===""||RegExp(/^\s+$/).test(u))&&(c=true)),o?narration.narration.dialogGlue=true:o===false&&(narration.narration.dialogGlue=false);for(let f of l){let d=f.label;typeof d=="object"&&(d=x.getLogichValue(d,e)||"");let m=f.params?.map(y=>x.getLogichValue(y,e));e={...e,...f.props},f.type==="jump"?(narration.narration.labels.opened.length>0&&narration.narration.labels.closeCurrent(),storage.storage.temp.set(`${yp}${narration.narration.labels.opened.length}`,m),await narration.narration.call(d,e)):(storage.storage.temp.set(`${yp}${narration.narration.labels.opened.length}`,m),await narration.narration.call(d,e));}h==="game_end"?(narration.narration.labels.closeAll(),await narration.narration.continue(e,{runNow:true})):h==="label_end"&&narration.narration.labels.closeCurrent(),c&&await narration.narration.continue(e,{runNow:true});}}};async function Gu(n,e={}){if(!Array.isArray(n))if(typeof n=="object"||typeof n=="string")n=[n];else {Se.error("Error parsing imported Pixi'VN JSON: data is not an object");return}let t=n.map(a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(s){return Se.error("Error parsing imported Pixi'VN JSON",s),{}}return a}),r=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)s.type==="value"&&(typeof s.value!="object"||!s.value||!("type"in s.value))&&vp(s);return Promise.resolve()});await Promise.all(r);let i=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)(s.type!=="value"||s.type==="value"&&typeof s.value=="object"&&s.value&&"type"in s.value)&&vp(s);if(a.labels){let s=a.labels;for(let o in s)try{let u=s[o],l=new YC(o,u,void 0,e);narration.RegisteredLabels.add(l);}catch(u){Se.error(`Error creating JSON label ${o}`,u);}}return Promise.resolve()});await Promise.all(i);}function Ju(){x.init({animateOperation:op,canvasElementOperation:ip,canvasOperation:sp,effectOperation:ap,imageContainerOperation:np,imageOperation:ep,textOperation:rp,narrationOperation:up,loadAssets:Qf,soundOperation:lp,videoOperation:tp,setStorageValue:hp,setInitialStorageValue:dp,getLogichValue:exports.VariableGetter.getLogichValue,getConditionalStep:As});}var Ps="global decl",xn="___external_value___",Sp=/\[([^\]]+)\]/;function QC(n){Ae.afterToTranslate=e=>Ep(e,n);}function eb(n){Ae.beforeToTranslate=e=>Ep(e,n);}function Ep(n,e){let t=new RegExp(Sp.source,"g"),r=new Set,i=true;for(;i;){i=false;let a=[...n.matchAll(t)],s=new Set;for(let o of a){let u=o[1];if(s.has(u)||r.has(u))continue;s.add(u);let l=e(u);l!==void 0?(n=n.replaceAll(o[0],l),i=true):r.add(u);}}return n}var X;(i=>(i.log=(a,...s)=>console.log(`[Pixi\u2019VN Ink] ${a}`,...s),i.warn=(a,...s)=>console.warn(`[Pixi\u2019VN Ink] ${a}`,...s),i.error=(a,...s)=>console.error(`[Pixi\u2019VN Ink] ${a}`,...s),i.info=(a,...s)=>console.info(`[Pixi\u2019VN Ink] ${a}`,...s)))(X||={});var tb=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,nb=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,rb=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,zu={Space_Separator:tb,ID_Start:nb,ID_Continue:rb},be={isSpaceSeparator(n){return typeof n=="string"&&zu.Space_Separator.test(n)},isIdStartChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="$"||n==="_"||zu.ID_Start.test(n))},isIdContinueChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9"||n==="$"||n==="_"||n==="\u200C"||n==="\u200D"||zu.ID_Continue.test(n))},isDigit(n){return typeof n=="string"&&/[0-9]/.test(n)},isHexDigit(n){return typeof n=="string"&&/[0-9A-Fa-f]/.test(n)}},Uu,ze,Xt,xs,on,At,Pe,Yu,ii,ib=function(e,t){Uu=String(e),ze="start",Xt=[],xs=0,on=1,At=0,Pe=void 0,Yu=void 0,ii=void 0;do Pe=sb(),ub[ze]();while(Pe.type!=="eof");return typeof t=="function"?Ku({"":ii},"",t):ii};function Ku(n,e,t){let r=n[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let i=0;i<r.length;i++){let a=String(i),s=Ku(r,a,t);s===void 0?delete r[a]:Object.defineProperty(r,a,{value:s,writable:true,enumerable:true,configurable:true});}else for(let i in r){let a=Ku(r,i,t);a===void 0?delete r[i]:Object.defineProperty(r,i,{value:a,writable:true,enumerable:true,configurable:true});}return t.call(n,e,r)}var L,R,ri,Kt,z;function sb(){for(L="default",R="",ri=false,Kt=1;;){z=Yt();let n=Dp[L]();if(n)return n}}function Yt(){if(Uu[xs])return String.fromCodePoint(Uu.codePointAt(xs))}function P(){let n=Yt();return n===`
54
- `?(on++,At=0):n?At+=n.length:At++,n&&(xs+=n.length),n}var Dp={default(){switch(z){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
55
- `:case "\r":case "\u2028":case "\u2029":P();return;case "/":P(),L="comment";return;case void 0:return P(),he("eof")}if(be.isSpaceSeparator(z)){P();return}return Dp[ze]()},comment(){switch(z){case "*":P(),L="multiLineComment";return;case "/":P(),L="singleLineComment";return}throw de(P())},multiLineComment(){switch(z){case "*":P(),L="multiLineCommentAsterisk";return;case void 0:throw de(P())}P();},multiLineCommentAsterisk(){switch(z){case "*":P();return;case "/":P(),L="default";return;case void 0:throw de(P())}P(),L="multiLineComment";},singleLineComment(){switch(z){case `
56
- `:case "\r":case "\u2028":case "\u2029":P(),L="default";return;case void 0:return P(),he("eof")}P();},value(){switch(z){case "{":case "[":return he("punctuator",P());case "n":return P(),Tn("ull"),he("null",null);case "t":return P(),Tn("rue"),he("boolean",true);case "f":return P(),Tn("alse"),he("boolean",false);case "-":case "+":P()==="-"&&(Kt=-1),L="sign";return;case ".":R=P(),L="decimalPointLeading";return;case "0":R=P(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=P(),L="decimalInteger";return;case "I":return P(),Tn("nfinity"),he("numeric",1/0);case "N":return P(),Tn("aN"),he("numeric",NaN);case '"':case "'":ri=P()==='"',R="",L="string";return}throw de(P())},identifierNameStartEscape(){if(z!=="u")throw de(P());P();let n=Xu();switch(n){case "$":case "_":break;default:if(!be.isIdStartChar(n))throw wp();break}R+=n,L="identifierName";},identifierName(){switch(z){case "$":case "_":case "\u200C":case "\u200D":R+=P();return;case "\\":P(),L="identifierNameEscape";return}if(be.isIdContinueChar(z)){R+=P();return}return he("identifier",R)},identifierNameEscape(){if(z!=="u")throw de(P());P();let n=Xu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!be.isIdContinueChar(n))throw wp();break}R+=n,L="identifierName";},sign(){switch(z){case ".":R=P(),L="decimalPointLeading";return;case "0":R=P(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=P(),L="decimalInteger";return;case "I":return P(),Tn("nfinity"),he("numeric",Kt*(1/0));case "N":return P(),Tn("aN"),he("numeric",NaN)}throw de(P())},zero(){switch(z){case ".":R+=P(),L="decimalPoint";return;case "e":case "E":R+=P(),L="decimalExponent";return;case "x":case "X":R+=P(),L="hexadecimal";return}return he("numeric",Kt*0)},decimalInteger(){switch(z){case ".":R+=P(),L="decimalPoint";return;case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P();return}return he("numeric",Kt*Number(R))},decimalPointLeading(){if(be.isDigit(z)){R+=P(),L="decimalFraction";return}throw de(P())},decimalPoint(){switch(z){case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P(),L="decimalFraction";return}return he("numeric",Kt*Number(R))},decimalFraction(){switch(z){case "e":case "E":R+=P(),L="decimalExponent";return}if(be.isDigit(z)){R+=P();return}return he("numeric",Kt*Number(R))},decimalExponent(){switch(z){case "+":case "-":R+=P(),L="decimalExponentSign";return}if(be.isDigit(z)){R+=P(),L="decimalExponentInteger";return}throw de(P())},decimalExponentSign(){if(be.isDigit(z)){R+=P(),L="decimalExponentInteger";return}throw de(P())},decimalExponentInteger(){if(be.isDigit(z)){R+=P();return}return he("numeric",Kt*Number(R))},hexadecimal(){if(be.isHexDigit(z)){R+=P(),L="hexadecimalInteger";return}throw de(P())},hexadecimalInteger(){if(be.isHexDigit(z)){R+=P();return}return he("numeric",Kt*Number(R))},string(){switch(z){case "\\":P(),R+=ab();return;case '"':if(ri)return P(),he("string",R);R+=P();return;case "'":if(!ri)return P(),he("string",R);R+=P();return;case `
57
- `:case "\r":throw de(P());case "\u2028":case "\u2029":lb(z);break;case void 0:throw de(P())}R+=P();},start(){switch(z){case "{":case "[":return he("punctuator",P())}L="value";},beforePropertyName(){switch(z){case "$":case "_":R=P(),L="identifierName";return;case "\\":P(),L="identifierNameStartEscape";return;case "}":return he("punctuator",P());case '"':case "'":ri=P()==='"',L="string";return}if(be.isIdStartChar(z)){R+=P(),L="identifierName";return}throw de(P())},afterPropertyName(){if(z===":")return he("punctuator",P());throw de(P())},beforePropertyValue(){L="value";},afterPropertyValue(){switch(z){case ",":case "}":return he("punctuator",P())}throw de(P())},beforeArrayValue(){if(z==="]")return he("punctuator",P());L="value";},afterArrayValue(){switch(z){case ",":case "]":return he("punctuator",P())}throw de(P())},end(){throw de(P())}};function he(n,e){return {type:n,value:e,line:on,column:At}}function Tn(n){for(let e of n){if(Yt()!==e)throw de(P());P();}}function ab(){switch(Yt()){case "b":return P(),"\b";case "f":return P(),"\f";case "n":return P(),`
58
- `;case "r":return P(),"\r";case "t":return P()," ";case "v":return P(),"\v";case "0":if(P(),be.isDigit(Yt()))throw de(P());return "\0";case "x":return P(),ob();case "u":return P(),Xu();case `
59
- `:case "\u2028":case "\u2029":return P(),"";case "\r":return P(),Yt()===`
60
- `&&P(),"";case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":throw de(P());case void 0:throw de(P())}return P()}function ob(){let n="",e=Yt();if(!be.isHexDigit(e)||(n+=P(),e=Yt(),!be.isHexDigit(e)))throw de(P());return n+=P(),String.fromCodePoint(parseInt(n,16))}function Xu(){let n="",e=4;for(;e-- >0;){let t=Yt();if(!be.isHexDigit(t))throw de(P());n+=P();}return String.fromCodePoint(parseInt(n,16))}var ub={start(){if(Pe.type==="eof")throw Nn();Hu();},beforePropertyName(){switch(Pe.type){case "identifier":case "string":Yu=Pe.value,ze="afterPropertyName";return;case "punctuator":Os();return;case "eof":throw Nn()}},afterPropertyName(){if(Pe.type==="eof")throw Nn();ze="beforePropertyValue";},beforePropertyValue(){if(Pe.type==="eof")throw Nn();Hu();},beforeArrayValue(){if(Pe.type==="eof")throw Nn();if(Pe.type==="punctuator"&&Pe.value==="]"){Os();return}Hu();},afterPropertyValue(){if(Pe.type==="eof")throw Nn();switch(Pe.value){case ",":ze="beforePropertyName";return;case "}":Os();}},afterArrayValue(){if(Pe.type==="eof")throw Nn();switch(Pe.value){case ",":ze="beforeArrayValue";return;case "]":Os();}},end(){}};function Hu(){let n;switch(Pe.type){case "punctuator":switch(Pe.value){case "{":n={};break;case "[":n=[];break}break;case "null":case "boolean":case "numeric":case "string":n=Pe.value;break}if(ii===void 0)ii=n;else {let e=Xt[Xt.length-1];Array.isArray(e)?e.push(n):Object.defineProperty(e,Yu,{value:n,writable:true,enumerable:true,configurable:true});}if(n!==null&&typeof n=="object")Xt.push(n),Array.isArray(n)?ze="beforeArrayValue":ze="beforePropertyName";else {let e=Xt[Xt.length-1];e==null?ze="end":Array.isArray(e)?ze="afterArrayValue":ze="afterPropertyValue";}}function Os(){Xt.pop();let n=Xt[Xt.length-1];n==null?ze="end":Array.isArray(n)?ze="afterArrayValue":ze="afterPropertyValue";}function de(n){return Ts(n===void 0?`JSON5: invalid end of input at ${on}:${At}`:`JSON5: invalid character '${Ap(n)}' at ${on}:${At}`)}function Nn(){return Ts(`JSON5: invalid end of input at ${on}:${At}`)}function wp(){return At-=5,Ts(`JSON5: invalid identifier character at ${on}:${At}`)}function lb(n){console.warn(`JSON5: '${Ap(n)}' in strings is not valid ECMAScript; consider escaping`);}function Ap(n){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[n])return e[n];if(n<" "){let t=n.charCodeAt(0).toString(16);return "\\x"+("00"+t).substring(t.length)}return n}function Ts(n){let e=new SyntaxError(n);return e.lineNumber=on,e.columnNumber=At,e}var cb=function(e,t,r){let i=[],a="",s,o,u="",l;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t=="function")o=t;else if(Array.isArray(t)){s=[];for(let y of t){let _;typeof y=="string"?_=y:(typeof y=="number"||y instanceof String||y instanceof Number)&&(_=String(y)),_!==void 0&&s.indexOf(_)<0&&s.push(_);}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),u=" ".substr(0,r)):typeof r=="string"&&(u=r.substr(0,10)),c("",{"":e});function c(y,_){let S=_[y];switch(S!=null&&(typeof S.toJSON5=="function"?S=S.toJSON5(y):typeof S.toJSON=="function"&&(S=S.toJSON(y))),o&&(S=o.call(_,y,S)),S instanceof Number?S=Number(S):S instanceof String?S=String(S):S instanceof Boolean&&(S=S.valueOf()),S){case null:return "null";case true:return "true";case false:return "false"}if(typeof S=="string")return h(S);if(typeof S=="number")return String(S);if(typeof S=="object")return Array.isArray(S)?m(S):f(S)}function h(y){let _={"'":.1,'"':.2},S={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},b="";for(let v=0;v<y.length;v++){let p=y[v];switch(p){case "'":case '"':_[p]++,b+=p;continue;case "\0":if(be.isDigit(y[v+1])){b+="\\x00";continue}}if(S[p]){b+=S[p];continue}if(p<" "){let C=p.charCodeAt(0).toString(16);b+="\\x"+("00"+C).substring(C.length);continue}b+=p;}let g=l||Object.keys(_).reduce((v,p)=>_[v]<_[p]?v:p);return b=b.replace(new RegExp(g,"g"),S[g]),g+b+g}function f(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let _=a;a=a+u;let S=s||Object.keys(y),b=[];for(let v of S){let p=c(v,y);if(p!==void 0){let C=d(v)+":";u!==""&&(C+=" "),C+=p,b.push(C);}}let g;if(b.length===0)g="{}";else {let v;if(u==="")v=b.join(","),g="{"+v+"}";else {let p=`,
61
- `+a;v=b.join(p),g=`{
62
- `+a+v+`,
63
- `+_+"}";}}return i.pop(),a=_,g}function d(y){if(y.length===0)return h(y);let _=String.fromCodePoint(y.codePointAt(0));if(!be.isIdStartChar(_))return h(y);for(let S=_.length;S<y.length;S++)if(!be.isIdContinueChar(String.fromCodePoint(y.codePointAt(S))))return h(y);return y}function m(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let _=a;a=a+u;let S=[];for(let g=0;g<y.length;g++){let v=c(String(g),y);S.push(v!==void 0?v:"null");}let b;if(S.length===0)b="[]";else if(u==="")b="["+S.join(",")+"]";else {let g=`,
64
- `+a,v=S.join(g);b=`[
65
- `+a+v+`,
66
- `+_+"]";}return i.pop(),a=_,b}},hb={parse:ib,stringify:cb},db=hb,si=db;var Op="\xA7SPACE\xA7",xp="\xA7DOUBLE_QUOTES\xA7",Tp="\xA7QUOTES\xA7",Np="SPECIAL_\xA7QUOTES\xA7",Fp="\xA7CURLY_BRACKETS1\xA7",fb="\xA7INK_VAR\xA7",Ip="\xA7CURLY_BRACKETS2\xA7";exports.HashtagCommands=void 0;(g=>{let n=[],e=[];async function t(v,p){for(let C=0;C<n.length;C++)try{let{validation:w}=n[C].opts;if(w instanceof RegExp){if(!w.test(v.join(" ")))continue}else if(w instanceof D.ZodType&&!w.safeParse(v).success)continue;let O=await n[C].fn(v,p,h);if(O===!0||typeof O=="string")return O}catch{}return false}function r(v,p={name:"custom-command",validation:/^/}){n.unshift({fn:v,opts:p});}g.add=r;function i(){return [...e.map(v=>v.opts),...n.map(v=>v.opts)]}g.info=i;function a(v,p){e.unshift({fn:v,opts:p});}g.addMapper=a;function s(){n.length=0;}g.clear=s;function o(){e.length=0;}g.clearMappers=o;async function u(v,p,C){try{let w=l(v),O=await t(w,C);return O===!0?void 0:typeof O=="string"?(O.startsWith("#")&&(O=O.substring(1)),await g.run(O,p,C)):c(w,p)}catch(w){throw X.error("Error parsing ink hashtag-command",v),w}}g.run=u;function l(v,p){if(v=v.replaceAll('\\"',xp),v=v.replaceAll("\\'",Tp),v=v.replaceAll("\\`",Np),v=v.replaceAll("\\{",Fp),v=v.replaceAll("\\}",Ip),p?.mergeInkVariables){let A;do A=v,v=v.replace(/\{[^{}:]*\}/g,fb);while(v!==A)}v=v.replaceAll("{"," { "),v=v.replaceAll("}"," } "),v=v.replaceAll(Fp,"{"),v=v.replaceAll(Ip,"}");let C=[],w,O="";for(let A=0;A<v.length;A++){let N=v[A];N==='"'||N==="'"||N==="`"?w===void 0?(C.push(O),O="",w=N,O+=N):w===N?(w=void 0,O+=N,C.push(O),O=""):O+=N:O+=N;}return O!==""&&C.push(O),C.forEach((A,N)=>{N%2===1&&(C[N]=A.replaceAll(" ",Op));}),v=C.join(""),C=v.split(" ").filter(A=>A!==""),C=C.map(A=>A.replaceAll(Op," ").replaceAll(xp,'"').replaceAll(Tp,"'").replaceAll(Np,"`")),C=y(C),C=C.flatMap(A=>b(A)),C=C.map(A=>A.startsWith('"')&&A.endsWith('"')||A.startsWith("'")&&A.endsWith("'")||A.startsWith("`")&&A.endsWith("`")?A.slice(1,-1):A),C}g.convertTagTolist=l;function c(v,p,C){for(let w of e){let{validation:O}=w.opts,A=false;if(O instanceof RegExp?A=O.test(v.join(" ")):O instanceof D.ZodType&&(A=O.safeParse(v).success),A)return w.fn(v,p)}C?.silent||X.error("The operation is not valid",v);}g.convertOperation=c;function h(v){return f(v)}g.convertListStringToObj=h;function f(v){if(v.length===0)return {};if(v.length%2!==0)throw X.error("The props list must have a pair number of elements",v),new Error("The props list must have a pair number of elements");let p="{";v.forEach((C,w)=>{if(w%2===0)p+=`"${C}": `;else {switch(C){case "null":case "undefined":case "true":case "false":p+=`${C}`;break;default:m(C)?(C=d(C),p+=`"${C}"`):C.startsWith("{")&&C.endsWith("}")?p+=`${C}`:C.startsWith('"')&&C.endsWith('"')?p+=`${C}`:Number.isNaN(parseFloat(C))?p+=`"${C}"`:p+=`${C}`;}w<v.length-1&&(p+=", ");}}),p+="}";try{return si.parse(p)}catch(C){throw X.error("Error parsing ink json",p),C}}function d(v){return v.startsWith('"')&&v.endsWith('"')||v.startsWith("'")&&v.endsWith("'")||v.startsWith("`")&&v.endsWith("`")?v.substring(1,v.length-1):v}function m(v){return !!(v.startsWith('"')&&v.endsWith('"')||v.startsWith("'")&&v.endsWith("'")||v.startsWith("`")&&v.endsWith("`"))}function y(v){return _(v).tokens}g.mergeJsonBlocks=y;function _(v){let p=[],C=false;for(let w=0;w<v.length;w++){let O=v[w];if(O!=="{"){p.push(O);continue}let A=S(v,w);if(A===-1){p.push(O);continue}let N=_(v.slice(w+1,A)),J=["{",...N.tokens,"}"],Z=J.join(" ");if(!N.hasInvalidMatchedBlock)try{si.parse(Z),p.push(Z),w=A;continue}catch{}C=true,p.push(...J),w=A;}return {tokens:p,hasInvalidMatchedBlock:C}}function S(v,p){let C=0;for(let w=p;w<v.length;w++)if(v[w]==="{")C++;else if(v[w]==="}"&&(C--,C===0))return w;return -1}function b(v){if(v==="["||v==="]")return [v];let p=0,C=v.length,w=[];for(;p<C&&v[p]==="[";)w.push("["),p++;let O=[];for(;C>p&&v[C-1]==="]";)O.unshift("]"),C--;let A=v.slice(p,C);return A===""?[...w,...O]:[...w,A,...O]}})(exports.HashtagCommands||={});function pb(n){exports.HashtagCommands.add(n);}function mb(n={}){let e=n.sections?.canvas??true,t=n.sections?.sound??true,r=n.sections?.narration??true,i=n.sections?.assets??true;function a(d){return d&&d.length>0?D__default.default.enum(Object.fromEntries(d.map(m=>[m,m]))):D__default.default.string()}if(r&&(exports.HashtagCommands.addMapper((d,m)=>{m.labelToOpen={label:d[1],type:"call"},m.goNextStep=void 0;},{name:"Call",deprecated:true,description:"Calls the label specified by the second token, then returns to the current position.\n\n```ink\n# call label_name\n```",validation:D__default.default.tuple([D__default.default.literal("call"),D__default.default.string()])}),exports.HashtagCommands.addMapper((d,m)=>{m.labelToOpen={label:d[1],type:"jump"},m.goNextStep=void 0;},{name:"Jump",deprecated:true,description:"Jumps to the label specified by the second token without returning.\n\n```ink\n# jump label_name\n```",validation:D__default.default.tuple([D__default.default.literal("jump"),D__default.default.string()])}),exports.HashtagCommands.addMapper((d,m)=>("dialogue"in m&&delete m.dialogue,"goNextStep"in m&&delete m.goNextStep,{type:"dialogue",operationType:"clean"}),{name:"Pause",description:"Clears the current dialogue and waits for user input before advancing.\n\n```ink\n# pause\n```",validation:D__default.default.tuple([D__default.default.literal("pause")])}),exports.HashtagCommands.addMapper((d,m)=>{m.goNextStep=true,m.glueEnabled=false;},{name:"Continue",description:"Forces the story to proceed to the next step automatically.\n\n```ink\n# continue\n```",validation:D__default.default.tuple([D__default.default.literal("continue")])})),e&&exports.HashtagCommands.addMapper(d=>({type:"video",operationType:d[0],alias:d[2]}),{name:"Pause/Resume video",description:"Pauses or resumes a video canvas element identified by its alias.\n\n```ink\n# pause video <alias>\n# resume video <alias>\n```",validation:D__default.default.tuple([D__default.default.enum(["pause","resume"]),D__default.default.literal("video"),D__default.default.string()])}),i&&exports.HashtagCommands.addMapper(d=>({type:d[1],operationType:d[0],aliases:d.slice(2)}),{name:"Load assets/bundle",description:`Loads (eagerly or lazily) a set of asset or bundle aliases.
48
+ `))),this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o},this.VariableDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="VAR")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"variable name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let l=this.Expect(this.Expression,"initial value for ");return l?(l instanceof Yr.NumberExpression||l instanceof bs.StringExpression||l instanceof $f.DivertTarget||l instanceof Lf.VariableReference||l instanceof k0.List||this.Error("initial value for a variable must be a number, constant, list or divert target"),this.Parse(this.ListElementDefinitionSeparator)!==null?this.Error("Unexpected ','. If you're trying to declare a new list, use the LIST keyword, not VAR"):l instanceof bs.StringExpression&&(l.isSingleString||this.Error("Constant strings cannot contain any logic.")),new jf.VariableAssignment({assignedExpression:l,isGlobalDeclaration:true,variableIdentifier:o})):null},this.ListDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!="LIST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"list name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of the list definition"),this.Whitespace();let u=this.Expect(this.ListDefinition,"list item names");return u?(u.identifier=new _s.Identifier(o.name),new jf.VariableAssignment({variableIdentifier:o,listDef:u})):null},this.ListDefinition=()=>{this.AnyWhitespace();let s=this.SeparatedList(this.ListElementDefinition,this.ListElementDefinitionSeparator);return s===null?null:new H1.ListDefinition(s)},this.ListElementDefinitionSeparator=()=>(this.AnyWhitespace(),this.ParseString(",")===null?null:(this.AnyWhitespace(),",")),this.ListElementDefinition=()=>{let s=this.ParseString("(")!==null,o=s;this.Whitespace();let u=this.Parse(this.IdentifierWithMetadata);if(u===null)return null;this.Whitespace(),s&&this.ParseString(")")!=null&&(o=false,this.Whitespace());let l=null;if(this.ParseString("=")!==null){this.Whitespace();let c=this.Expect(this.ExpressionInt,"value to be assigned to list item");c!==null&&(l=c.value),o&&(this.Whitespace(),this.ParseString(")")!==null&&(o=false));}return o&&this.Error("Expected closing ')'"),new U1.ListElementDefinition(u,s,l)},this.ConstDeclaration=()=>{if(this.Whitespace(),this.Parse(this.Identifier)!=="CONST")return null;this.Whitespace();let o=this.Expect(this.IdentifierWithMetadata,"constant name");this.Whitespace(),this.Expect(this.String("="),"the '=' for an assignment of a value, e.g. '= 5' (initial values are mandatory)"),this.Whitespace();let u=this.Expect(this.Expression,"initial value for ");return u instanceof Yr.NumberExpression||u instanceof $f.DivertTarget||u instanceof bs.StringExpression?u instanceof bs.StringExpression&&(u.isSingleString||this.Error("Constant strings cannot contain any logic.")):this.Error("initial value for a constant must be a number or divert target"),new j1.ConstantDeclaration(o,u)},this.InlineLogicOrGlueOrStartTag=()=>this.OneOf([this.InlineLogic,this.Glue,this.StartTag]),this.Glue=()=>this.ParseString("<>")!==null?new M1.Glue(new G1.Glue):null,this.InlineLogic=()=>{if(this.ParseString("{")===null)return null;let s=this.parsingStringExpression,o=this.tagActive;this.Whitespace();let u=this.Expect(this.InnerLogic,"some kind of logic, conditional or sequence within braces: { ... }");if(u===null)return this.parsingStringExpression=s,null;this.DisallowIncrement(u);let l=(0, Pn.asOrNull)(u,ht.ContentList);return l||(l=new ht.ContentList(u)),this.Whitespace(),this.Expect(this.String("}"),"closing brace '}' for inline logic"),this.parsingStringExpression=s,o||this.EndTagIfNecessary(l),l},this.InnerLogic=()=>{this.Whitespace();let s=this.ParseObject(this.SequenceTypeAnnotation);if(s!==null){let l=this.Expect(this.InnerSequenceObjects,"sequence elements (for cycle/stoping etc)");return l===null?null:new $0.Sequence(l,s)}let o=this.Parse(this.ConditionExpression);if(o)return this.Expect(()=>this.InnerConditionalContent(o),"conditional content following query");let u=[this.InnerConditionalContent,this.InnerSequence,this.InnerExpression];for(let l of u){let c=this.BeginRule(),h=this.ParseObject(l);if(h)if(this.Peek(this.Spaced(this.String("}")))===null)this.FailRule(c);else return this.SucceedRule(c,h);else this.FailRule(c);}return null},this.InnerExpression=()=>{let s=this.Parse(this.Expression);return s&&(s.outputWhenComplete=true),s},this.IdentifierWithMetadata=()=>{let s=this.Identifier();return s===null?null:new _s.Identifier(s)},this.Identifier=()=>{let s=this.ParseCharactersFromCharSet(this.identifierCharSet);if(s===null)return null;let o=true;for(let u of s)if(!(u>="0"&&u<="9")){o=false;break}return o?null:s},this._sequenceTypeSymbols=new Ne.CharacterSet("!&~$"),this.InnerSequence=()=>{this.Whitespace();let s=Te.SequenceType.Stopping,o=this.Parse(this.SequenceTypeAnnotation);o!==null&&(s=o);let u=this.Parse(this.InnerSequenceObjects);return u===null||u.length<=1?null:new $0.Sequence(u,s)},this.SequenceTypeAnnotation=()=>{let s=this.Parse(this.SequenceTypeSymbolAnnotation);if(s===null&&(s=this.Parse(this.SequenceTypeWordAnnotation)),s===null)return null;switch(s){case Te.SequenceType.Once:case Te.SequenceType.Cycle:case Te.SequenceType.Stopping:case Te.SequenceType.Shuffle:case Te.SequenceType.Shuffle|Te.SequenceType.Stopping:case Te.SequenceType.Shuffle|Te.SequenceType.Once:break;default:return this.Error(`Sequence type combination not supported: ${s}`),Te.SequenceType.Stopping}return s},this.SequenceTypeSymbolAnnotation=()=>{this._sequenceTypeSymbols===null&&(this._sequenceTypeSymbols=new Ne.CharacterSet("!&~$ "));let s=0,o=this.ParseCharactersFromCharSet(this._sequenceTypeSymbols);if(o===null)return null;for(let u of o)switch(u){case "!":s|=Te.SequenceType.Once;break;case "&":s|=Te.SequenceType.Cycle;break;case "~":s|=Te.SequenceType.Shuffle;break;case "$":s|=Te.SequenceType.Stopping;break}return s===0?null:s},this.SequenceTypeWordAnnotation=()=>{let s=this.Interleave(this.SequenceTypeSingleWord,this.Exclude(this.Whitespace));if(s===null||s.length===0||this.ParseString(":")===null)return null;let o=0;for(let u of s)o|=u;return o},this.SequenceTypeSingleWord=()=>{let s=null,o=this.Parse(this.IdentifierWithMetadata);if(o!==null)switch(o.name){case "once":s=Te.SequenceType.Once;break;case "cycle":s=Te.SequenceType.Cycle;break;case "shuffle":s=Te.SequenceType.Shuffle;break;case "stopping":s=Te.SequenceType.Stopping;break}return s===null?null:s},this.InnerSequenceObjects=()=>{let s=this.Parse(this.Newline)!==null,o=null;return s?o=this.Parse(this.InnerMultilineSequenceObjects):o=this.Parse(this.InnerInlineSequenceObjects),o},this.InnerInlineSequenceObjects=()=>{let s=this.Interleave(this.Optional(this.MixedTextAndLogic),this.String("|"),null,false);if(s===null)return null;let o=[],u=false;for(let l of s)if(l==="|")u||o.push(new ht.ContentList),u=false;else {let c=l;c===null?this.Error(`Expected content, but got ${l} (this is an ink compiler bug!)`):o.push(new ht.ContentList(c)),u=true;}return u||o.push(new ht.ContentList),o},this.InnerMultilineSequenceObjects=()=>{this.MultilineWhitespace();let s=this.OneOrMore(this.SingleMultilineSequenceElement);return s===null?null:s},this.SingleMultilineSequenceElement=()=>{if(this.Whitespace(),this.ParseString("->")!==null||this.ParseString("-")===null)return null;this.Whitespace();let s=this.StatementsAtLevel(Xe.StatementLevel.InnerBlock);return s===null?this.MultilineWhitespace():s.unshift(new sn.Text(`
49
+ `)),new ht.ContentList(s)},this._statementRulesAtLevel=[],this._statementBreakRulesAtLevel=[],this.StatementsAtLevel=s=>(s===Xe.StatementLevel.InnerBlock&&this.Parse(this.GatherDashes)!==null&&this.Error("You can't use a gather (the dashes) within the { curly braces } context. For multi-line sequences and conditions, you should only use one dash."),this.Interleave(this.Optional(this.MultilineWhitespace),()=>this.StatementAtLevel(s),()=>this.StatementsBreakForLevel(s))),this.StatementAtLevel=s=>{let o=this._statementRulesAtLevel[s],u=this.OneOf(o);return s===Xe.StatementLevel.Top&&u instanceof R0.ReturnType&&this.Error("should not have return statement outside of a knot"),u},this.StatementsBreakForLevel=s=>{this.Whitespace();let o=this._statementBreakRulesAtLevel[s],u=this.OneOf(o);return u===null?null:u},this.GenerateStatementLevelRules=()=>{let s=Object.values(Xe.StatementLevel);this._statementRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]),this._statementBreakRulesAtLevel="f".repeat(s.length).split("f").map(()=>[]);for(let o of s){let u=[],l=[];u.push(this.Line(this.MultiDivert)),o>=Xe.StatementLevel.Top&&u.push(this.KnotDefinition),u.push(this.Line(this.Choice)),u.push(this.Line(this.AuthorWarning)),o>Xe.StatementLevel.InnerBlock&&u.push(this.Gather),o>=Xe.StatementLevel.Knot&&u.push(this.StitchDefinition),u.push(this.Line(this.ListDeclaration)),u.push(this.Line(this.VariableDeclaration)),u.push(this.Line(this.ConstDeclaration)),u.push(this.Line(this.ExternalDeclaration)),u.push(this.Line(this.IncludeStatement)),u.push(this.LogicLine),u.push(this.LineOfMixedTextAndLogic),o<=Xe.StatementLevel.Knot&&l.push(this.KnotDeclaration),o<=Xe.StatementLevel.Stitch&&l.push(this.StitchDeclaration),o<=Xe.StatementLevel.InnerBlock&&(l.push(this.ParseDashNotArrow),l.push(this.String("}"))),this._statementRulesAtLevel[o]=u,this._statementBreakRulesAtLevel[o]=l;}},this.SkipToNextLine=()=>(this.ParseUntilCharactersFromString(`
50
+ \r`),this.ParseNewline(),rn.ParseSuccess),this.Line=s=>()=>{let o=this.ParseObject(s);return o===null?null:(this.Expect(this.EndOfLine,"end of line",this.SkipToNextLine),o)},this.StartTag=()=>{if(this.Whitespace(),this.ParseString("#")===null)return null;this.parsingStringExpression&&this.Error("Tags aren't allowed inside of strings. Please use \\# if you want a hash symbol.");let s=null;if(this.tagActive){let o=new ht.ContentList;o.AddContent(new Xr.Tag(false)),o.AddContent(new Xr.Tag(true)),s=o;}else s=new Xr.Tag(true);return this.tagActive=true,this.Whitespace(),s},this._inlineWhitespaceChars=new Ne.CharacterSet(" "),this.EndOfLine=()=>this.OneOf([this.Newline,this.EndOfFile]),this.Newline=()=>(this.Whitespace(),this.ParseNewline()!==null?rn.ParseSuccess:null),this.EndOfFile=()=>(this.Whitespace(),this.endOfInput?rn.ParseSuccess:null),this.MultilineWhitespace=()=>{let s=this.OneOrMore(this.Newline);return s===null?null:s.length>=1?rn.ParseSuccess:null},this.Whitespace=()=>this.ParseCharactersFromCharSet(this._inlineWhitespaceChars)!==null?rn.ParseSuccess:null,this.Spaced=s=>()=>{this.Whitespace();let o=this.ParseObject(s);return o===null?null:(this.Whitespace(),o)},this.AnyWhitespace=()=>{let s=false;for(;this.OneOf([this.Whitespace,this.MultilineWhitespace])!==null;)s=true;return s?rn.ParseSuccess:null},this.MultiSpaced=s=>()=>{this.AnyWhitespace();let o=this.ParseObject(s);return o===null?null:(this.AnyWhitespace(),o)},this._filename=null,this._externalErrorHandler=null,this._fileHandler=null,this._filename=t,this.RegisterExpressionOperators(),this.GenerateStatementLevelRules(),this.errorHandler=this.OnStringParserError,this._externalErrorHandler=r,a===null?this._fileHandler=new Q1.DefaultFileHandler:this._fileHandler=a,i===null){if(this._rootParser=this,this._openFilenames=[],this._filename!==null){let s=this.fileHandler.ResolveInkFilename(this._filename);this._openFilenames.push(s);}}else this._rootParser=i;}PreProcessInputString(e){return new R1.CommentEliminator(e).Process()}get parsingStringExpression(){return this.GetFlag(Number(Nu.CustomFlags.ParsingString))}set parsingStringExpression(e){this.SetFlag(Number(Nu.CustomFlags.ParsingString),e);}get tagActive(){return this.GetFlag(Number(Nu.CustomFlags.TagActive))}set tagActive(e){this.SetFlag(Number(Nu.CustomFlags.TagActive),e);}get identifierCharSet(){return this._identifierCharSet===null&&((this._identifierCharSet=new Ne.CharacterSet).AddRange("A","Z").AddRange("a","z").AddRange("0","9").Add("_"),this.ExtendIdentifierCharacterRanges(this._identifierCharSet)),this._identifierCharSet}EndTagIfNecessary(e){this.tagActive&&(e!=null&&(e instanceof ht.ContentList?e.AddContent(new Xr.Tag(false)):e.push(new Xr.Tag(false))),this.tagActive=false);}};ku.InkParser=ce;ce.LatinBasic=Ft.CharacterRange.Define("A","z",new Ne.CharacterSet().AddRange("[","`"));ce.LatinExtendedA=Ft.CharacterRange.Define("\u0100","\u017F");ce.LatinExtendedB=Ft.CharacterRange.Define("\u0180","\u024F");ce.Greek=Ft.CharacterRange.Define("\u0370","\u03FF",new Ne.CharacterSet().AddRange("\u0378","\u0385").AddCharacters("\u0374\u0375\u0378\u0387\u038B\u038D\u03A2"));ce.Cyrillic=Ft.CharacterRange.Define("\u0400","\u04FF",new Ne.CharacterSet().AddRange("\u0482","\u0489"));ce.Armenian=Ft.CharacterRange.Define("\u0530","\u058F",new Ne.CharacterSet().AddCharacters("\u0530").AddRange("\u0557","\u0560").AddRange("\u0588","\u058E"));ce.Hebrew=Ft.CharacterRange.Define("\u0590","\u05FF",new Ne.CharacterSet);ce.Arabic=Ft.CharacterRange.Define("\u0600","\u06FF",new Ne.CharacterSet);ce.Korean=Ft.CharacterRange.Define("\uAC00","\uD7AF",new Ne.CharacterSet);ce.Latin1Supplement=Ft.CharacterRange.Define("\x80","\xFF",new Ne.CharacterSet);ce.Chinese=Ft.CharacterRange.Define("\u4E00","\u9FFF",new Ne.CharacterSet);ce.ListAllCharacterRanges=()=>[ce.LatinBasic,ce.LatinExtendedA,ce.LatinExtendedB,ce.Arabic,ce.Armenian,ce.Cyrillic,ce.Greek,ce.Hebrew,ce.Korean,ce.Latin1Supplement,ce.Chinese];});var B0=E(Vu=>{Object.defineProperty(Vu,"__esModule",{value:true});Vu.GenerateStoryStats=void 0;var eN=$r(),tN=Br(),nN=es(),rN=nf(),iN=lf(),sN=Sn();function aN(n){let e=n.FindAll(sN.Text)(),t=0;for(let u of e){let l=0,c=true;for(let h of u.text)h==" "||h==" "||h==`
51
+ `||h=="\r"?c=true:c&&(l++,c=false);t+=l;}let r=n.FindAll(rN.Knot)(),i=n.FindAll(iN.Stitch)(),a=n.FindAll(eN.Choice)(),s=n.FindAll(nN.Gather)(u=>u.debugMetadata!=null),o=n.FindAll(tN.Divert)();return {words:t,knots:r.length,functions:r.filter(u=>u.isFunction).length,stitches:i.length,gathers:s.length,diverts:o.length-1,choices:a.length}}Vu.GenerateStoryStats=aN;});var W0=E(Ru=>{Object.defineProperty(Ru,"__esModule",{value:true});Ru.JsonFileHandler=void 0;var Bf=class{constructor(e){this.fileHierarchy=e,this.ResolveInkFilename=t=>{if(Object.keys(this.fileHierarchy).includes(t))return t;throw new Error(`Cannot locate ${t}. Are you trying a relative import ? This is not yet implemented.`)},this.LoadInkFileContents=t=>{if(Object.keys(this.fileHierarchy).includes(t))return this.fileHierarchy[t];throw new Error(`Cannot open ${t}.`)};}};Ru.JsonFileHandler=Bf;});var G0=E(Me=>{Object.defineProperty(Me,"__esModule",{value:true});Me.Compiler=Me.Story=Me.InkList=Me.JsonFileHandler=Me.StatementLevel=Me.InkParser=Me.CompilerOptions=void 0;var oN=wh(),uN=Zy(),Wf=Pr(),lN=qf(),cN=ve(),hN=ae(),dN=B0(),fN=wh();Object.defineProperty(Me,"CompilerOptions",{enumerable:true,get:function(){return fN.CompilerOptions}});var pN=qf();Object.defineProperty(Me,"InkParser",{enumerable:true,get:function(){return pN.InkParser}});var mN=of();Object.defineProperty(Me,"StatementLevel",{enumerable:true,get:function(){return mN.StatementLevel}});var gN=W0();Object.defineProperty(Me,"JsonFileHandler",{enumerable:true,get:function(){return gN.JsonFileHandler}});var M0=cs();Object.defineProperty(Me,"InkList",{enumerable:true,get:function(){return M0.InkList}});Object.defineProperty(Me,"Story",{enumerable:true,get:function(){return M0.Story}});var Mf=class{get errors(){return this._errors}get warnings(){return this._warnings}get authorMessages(){return this._authorMessages}get inputString(){return this._inputString}get options(){return this._options}get parsedStory(){if(!this._parsedStory)throw new Error;return this._parsedStory}get runtimeStory(){if(!this._runtimeStory)throw new Error("Compilation failed.");return this._runtimeStory}get parser(){if(!this._parser)throw new Error;return this._parser}get debugSourceRanges(){return this._debugSourceRanges}constructor(e,t=null){this._errors=[],this._warnings=[],this._authorMessages=[],this._parsedStory=null,this._runtimeStory=null,this._parser=null,this._debugSourceRanges=[],this.Compile=()=>(this._parser=new lN.InkParser(this.inputString,this.options.sourceFilename||null,this.OnError,null,this.options.fileHandler),this._parsedStory=this.parser.ParseStory(),this.errors.length===0?(this.parsedStory.countAllVisits=this.options.countAllVisits,this._runtimeStory=this.parsedStory.ExportRuntime(this.OnError)):this._runtimeStory=null,this.runtimeStory),this.RetrieveDebugSourceForLatestContent=()=>{var r;for(let i of this.runtimeStory.state.outputStream){let a=(0, hN.asOrNull)(i,cN.StringValue);if(a!==null){let s=new uN.DebugSourceRange(((r=a.value)===null||r===void 0?void 0:r.length)||0,a.debugMetadata,a.value||"unknown");this.debugSourceRanges.push(s);}}},this.GenerateStats=()=>this._parsedStory===null?null:(0, dN.GenerateStoryStats)(this._parsedStory),this.DebugMetadataForContentAtOffset=r=>{let i=0,a=null;for(let s of this.debugSourceRanges){if(s.debugMetadata!==null&&(a=s.debugMetadata),r>=i&&r<i+s.length)return a;i+=s.length;}return null},this.OnError=(r,i)=>{switch(i){case Wf.ErrorType.Author:this._authorMessages.push(r);break;case Wf.ErrorType.Warning:this._warnings.push(r);break;case Wf.ErrorType.Error:this._errors.push(r);break}this.options.errorHandler!==null&&this.options.errorHandler(r,i);},this._inputString=e,this._options=t||new oN.CompilerOptions;}};Me.Compiler=Mf;});var Ge;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(Ge||={});var x=class Z{static init(e){e.loadAssets&&(Z._loadAssets=e.loadAssets),e.soundOperation&&(Z._soundOperation=e.soundOperation),e.imageOperation&&(Z._imageOperation=e.imageOperation),e.videoOperation&&(Z._videoOperation=e.videoOperation),e.imageContainerOperation&&(Z._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(Z._textOperation=e.textOperation),e.canvasElementOperation&&(Z._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(Z._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(Z._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(Z._narrationOperation=e.narrationOperation),e.effectOperation&&(Z._effectOperation=e.effectOperation),e.animateOperation&&(Z._animateOperation=e.animateOperation),e.canvasOperation&&(Z._canvasOperation=e.canvasOperation),e.getLogichValue&&(Z._getLogichValue=e.getLogichValue),e.getConditionalStep&&(Z._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return Z._loadAssets}static _soundOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return Z._soundOperation}static _imageOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return Z._imageOperation}static _videoOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return Z._videoOperation}static _imageContainerOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return Z._imageContainerOperation}static _textOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return Z._textOperation}static _canvasElementOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return Z._canvasElementOperation}static _setStorageValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return Z._setStorageValue}static _setInitialStorageValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return Z._setInitialStorageValue}static _narrationOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return Z._narrationOperation}static _effectOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return Z._effectOperation}static _animateOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return Z._animateOperation}static _canvasOperation=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return Z._canvasOperation}static _getLogichValue=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return Z._getLogichValue}static _getConditionalStep=()=>{throw Ge.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return Z._getConditionalStep}};exports.TextReplaces=void 0;(n=>{n.options={replaceRegex:/\[([^\]]+)\]/};let e=[];function t(l,c){e.unshift({fn:l,opts:c});}n.add=t;function r(l){let c=e.findIndex(h=>h.fn===l);c!==-1&&e.splice(c,1);}n.remove=r;function i(){return e.map(l=>l.opts)}n.info=i;function a(l,c){let h=e.filter(p=>(p.opts.type??"after-translation")===c.type);for(let p of h)l=u(l,p.fn,p.opts.validation);return l}n.replace=a;function s(l){let c=e.filter(h=>h.opts.i18nInterpolation);for(let h of c)l=o(l,h.fn,h.opts);return l}n.runI18nPreStep=s;function o(l,c,h){let{validation:p}=h,f=new RegExp(n.options.replaceRegex.source,"g"),g=[...l.matchAll(f)],y=new Set,C=[];for(let _ of g)y.has(_[1])||(y.add(_[1]),C.push(_[1]));for(let _ of C){if(p==="characterId"){if(!characters.RegisteredCharacters.has(_))continue}else if(p!=="all"){if(p instanceof RegExp){if(!p.test(_))continue}else if(p instanceof D.ZodType&&!p.safeParse(_).success)continue}c(_)!==void 0&&(l.includes(`{{[${_}]}}`)||(l=l.replaceAll(`[${_}]`,`{{[${_}]}}`)));}return l}function u(l,c,h){let p=new RegExp(n.options.replaceRegex.source,"g"),f=[...l.matchAll(p)],g=new Set,y=[];for(let C of f)g.has(C[1])||(g.add(C[1]),y.push(C[1]));for(let C of y){if(h==="characterId"){if(!characters.RegisteredCharacters.has(C))continue}else if(h!=="all"){if(h instanceof RegExp){if(!h.test(C))continue}else if(h instanceof D.ZodType&&!h.safeParse(C).success)continue}let _=c(C);_!==void 0&&(l=l.replaceAll(`[${C}]`,_));}return l}})(exports.TextReplaces||={});function oC(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}var ep;(n=>{let e=u=>u;function t(u){return Array.isArray(u)?u.map(l=>r(`${l}`)):r(`${u}`)}n.t=t;function r(u){let l=u;return n.beforeToTranslate&&(l=(0, n.beforeToTranslate)(l)),l=exports.TextReplaces.replace(l,{type:"before-translation"}),l=e(l),n.afterToTranslate&&(l=(0, n.afterToTranslate)(l)),l=exports.TextReplaces.replace(l,{type:"after-translation"}),l}n.translate=r;function i(u){e=u;}n.setTranslate=i;function a(u,l,c){let{defaultValue:h="empty_string"}=c;typeof l=="string"&&(l=[l]),Array.isArray(l)&&l.forEach(p=>{let f=p;if(n.beforeToTranslate&&(f=(0, n.beforeToTranslate)(f)),h==="empty_string")u[f]===void 0&&(u[f]="");else if(h==="copy_key"){let g=p;n.beforeToTranslate&&(g=(0, n.beforeToTranslate)(g));let y=exports.TextReplaces.runI18nPreStep(g);y=exports.TextReplaces.replace(y,{type:"before-translation"}),u[f]=y;}});}function s(u,l=[]){if(typeof u=="object"&&u&&"type"in u)if(u.type==="ifelse")u.then&&s(u.then,l),u.else&&s(u.else,l);else if(u.type==="stepswitch"){if(u.elements)if(Array.isArray(u.elements))u.elements.forEach(c=>{s(c,l);});else if(u.elements.type==="ifelse"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else if(u.elements.type==="stepswitch"){let c=[];s(u.elements,c),c.forEach(h=>{l.push(...h);});}else s(u.elements,l);}else u.type==="resulttocombine"?(u.firstItem&&s(u.firstItem,l),u.secondConditionalItem&&u.secondConditionalItem.forEach(c=>{s(c,l);})):l.push(u);else u&&l.push(u);return l}async function o(u,l={},c={}){let{defaultValue:h="copy_key",operationStringConvert:p}=c,f=u.map(async g=>{if(g.choices){let y=[];Array.isArray(g.choices)?y=[g.choices]:y=s(g.choices),y.forEach(C=>{C.forEach(_=>{if("type"in _){let v=[];_.type==="ifelse"||_.type==="stepswitch"?s(_,v):v=[_],v.map(d=>s(d.text)).forEach(d=>{Array.isArray(d)&&d.forEach(S=>{Array.isArray(S)?S.forEach(m=>{typeof m=="string"?a(l,m,{defaultValue:h}):s(m).forEach(b=>{Array.isArray(b)?b.forEach(w=>{typeof w=="string"&&a(l,w,{defaultValue:h});}):typeof b=="string"&&a(l,b,{defaultValue:h});});}):typeof S=="string"&&a(l,S,{defaultValue:h});});});}});});}if(g.dialogue){let y=[];Array.isArray(g.dialogue)?y=[g.dialogue]:y=s(g.dialogue),y.forEach(C=>{if(typeof C=="string")a(l,C,{defaultValue:h});else if("text"in C){let _=s(C.text);typeof _=="string"&&(_=[_]),_.forEach(v=>{typeof v=="string"?a(l,v,{defaultValue:h}):s(v).forEach(d=>{typeof d=="string"?a(l,d,{defaultValue:h}):Array.isArray(d)&&d.forEach(S=>{typeof S=="string"?a(l,S,{defaultValue:h}):s(S).forEach(m=>{typeof m=="string"&&a(l,m,{defaultValue:h});});});});});}});}if(g.operations)for(let y of g.operations){if(y.type==="operationtoconvert"&&p){let C=oC(y),_=await p(C,g,{});if(!_)return;y=_;}y.type==="text"&&y.operationType==="show"&&a(l,y.text,{defaultValue:h});}g.conditionalStep&&s(g.conditionalStep).forEach(y=>{Array.isArray(y)?o(y,l,c):o([y],l,c);});});return await Promise.all(f),l}n.generateJsonTranslation=o;})(ep||={});var Ae=ep;async function tp(n){let e=x.getLogichValue(n,{});if(e)switch(e.type){case "assets":switch(e.operationType){case "load":await canvas.Assets.load(e.aliases);break;case "lazyload":canvas.Assets.backgroundLoad(e.aliases);break}break;case "bundle":switch(e.operationType){case "load":await canvas.Assets.loadBundle(e.aliases);break;case "lazyload":canvas.Assets.backgroundLoadBundle(e.aliases);break}break}}var ee;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(ee||={});async function Ds(n,e,t){switch(t.type){case "fade":await canvas.showWithFade(e.alias,n,t.props,t.priority);break;case "dissolve":await canvas.showWithDissolve(e.alias,n,t.props,t.priority);break;case "movein":case "moveout":await canvas.moveIn(e.alias,n,t.props,t.priority);break;case "zoomin":case "zoomout":await canvas.zoomIn(e.alias,n,t.props,t.priority);break;case "pushin":case "pushout":await canvas.pushIn(e.alias,n,t.props,t.priority);break}}function ti(n){if(n.transition)switch(n.transition.type){case "fade":canvas.removeWithFade(n.alias,n.transition.props,n.transition.priority);break;case "dissolve":canvas.removeWithDissolve(n.alias,n.transition.props,n.transition.priority);break;case "movein":case "moveout":canvas.moveOut(n.alias,n.transition.props,n.transition.priority);break;case "zoomin":case "zoomout":canvas.zoomOut(n.alias,n.transition.props,n.transition.priority);break;case "pushin":case "pushout":canvas.pushOut(n.alias,n.transition.props,n.transition.priority);break}else canvas.canvas.remove(n.alias);}async function np(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.ImageSprite(n.props,n.url||n.alias);await Ds(e,n,n.transition);}else await canvas.showImage(n.alias,n.url,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Image with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function rp(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.VideoSprite(n.props,n.url||n.alias);await Ds(e,n,n.transition);}else await canvas.showVideo(n.alias,n.url,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Video with alias ${n.alias} not found.`);break}case "remove":ti(n);break;case "pause":case "resume":{let e=canvas.canvas.find(n.alias);e?e.paused=n.operationType==="pause":ee.error(`Video with alias ${n.alias} not found.`);break}}}async function ip(n){switch(n.operationType){case "show":if(n.transition){let e=new canvas.ImageContainer(n.props,n.urls);await Ds(e,n,n.transition);}else await canvas.showImageContainer(n.alias,n.urls,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`ImageContainer with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function sp(n){switch(n.operationType){case "show":if(n.props=n.props||{},n.props.text=Ae.t(n.text),n.transition){let e=new canvas.Text(n.props);await Ds(e,n,n.transition);}else canvas.showText(n.alias,n.text,n.props);break;case "edit":{let e=canvas.canvas.find(n.alias);e?n.props&&await e.setMemory({...e.memory,...n.props}):ee.error(`Text with alias ${n.alias} not found.`);break}case "remove":ti(n);break}}async function ap(n){switch(n.operationType){case "edit":try{let e=canvas.canvas.find(n.alias);e?n.props&&e.setMemory({...e.memory,...n.props}):ee.error(`Canvas Element with alias ${n.alias} not found.`);}catch(e){ee.error(`There was an error while trying to edit the canvas element with alias ${n.alias}.`,e);}break;case "remove":ti(n);break}}function op(n){n.operationType==="clear"&&canvas.canvas.removeAll();}async function up(n){n.type==="shake"&&await canvas.shakeEffect(n.alias,n.props,n.priority);}function lp(n){switch(n.type){case "animate":canvas.canvas.animate(n.alias,n.keyframes,n.options,n.priority);break;case "animate-sequence":canvas.canvas.animate(n.alias,n.sequence,n.options,n.priority);break}}function cp(n){switch(n.type){case "input":narration.narration.input.request({type:n.valueType},n.defaultValue);break;case "dialogue":narration.narration.dialogue=void 0;break}}function hp(n){switch(n.operationType){case "play":n.url?sound.sound.play(n.alias,n.url,n.props):sound.sound.play(n.alias,n.props);break;case "stop":switch(n.type){case "sound":sound.sound.stop(n.alias);break;case "all":sound.sound.stopAll();break}break;case "pause":switch(n.type){case "sound":sound.sound.pause(n.alias);break;case "channel":sound.sound.channels.find(n.alias).pauseAll();break;case "all":sound.sound.pauseAll();break}break;case "resume":switch(n.type){case "sound":sound.sound.resume(n.alias);break;case "channel":sound.sound.channels.find(n.alias).resumeAll();break;case "all":sound.sound.resumeAll();break}break;case "edit":Object.entries(n.props).forEach(([e,t])=>{let r=sound.sound.find(n.alias);r&&(e==="volume"?r.volume.value=t:r.paused=t);});break}}var Mu="___param___",OC=class Q{static init(e){e.loadAssets&&(Q._loadAssets=e.loadAssets),e.soundOperation&&(Q._soundOperation=e.soundOperation),e.imageOperation&&(Q._imageOperation=e.imageOperation),e.videoOperation&&(Q._videoOperation=e.videoOperation),e.imageContainerOperation&&(Q._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(Q._textOperation=e.textOperation),e.canvasElementOperation&&(Q._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(Q._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(Q._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(Q._narrationOperation=e.narrationOperation),e.effectOperation&&(Q._effectOperation=e.effectOperation),e.animateOperation&&(Q._animateOperation=e.animateOperation),e.canvasOperation&&(Q._canvasOperation=e.canvasOperation),e.getLogichValue&&(Q._getLogichValue=e.getLogichValue),e.getConditionalStep&&(Q._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return Q._loadAssets}static _soundOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return Q._soundOperation}static _imageOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return Q._imageOperation}static _videoOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return Q._videoOperation}static _imageContainerOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return Q._imageContainerOperation}static _textOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return Q._textOperation}static _canvasElementOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return Q._canvasElementOperation}static _setStorageValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return Q._setStorageValue}static _setInitialStorageValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return Q._setInitialStorageValue}static _narrationOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return Q._narrationOperation}static _effectOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return Q._effectOperation}static _animateOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return Q._animateOperation}static _canvasOperation=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return Q._canvasOperation}static _getLogichValue=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return Q._getLogichValue}static _getConditionalStep=()=>{throw ee.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return Q._getConditionalStep}};function xC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>OC.getLogichValue(i,e));return t(...r)}else ee.warn(`getLogichValue function ${n.functionName} not found in props`);}}function dp(n,e){let t=x.getLogichValue(n,e);return t&&typeof t=="object"&&"type"in t?x.getLogichValue(t,e):t}function fp(n,e={}){let t=dp(n.value,e);switch(n.storageType){case "flagStorage":storage.storage.flags.set(n.key,n.value);break;case "storage":storage.storage.set(n.key,t);break;case "tempstorage":storage.storage.temp.set(n.key,t);break;case "params":{let r=storage.storage.get(`${Mu}${narration.narration.labels.opened.length-1}`)||[];r.length>n.key&&(r[n.key]=t),storage.storage.temp.set(`${Mu}${narration.narration.labels.opened.length-1}`,r);break}}}function pp(n,e={}){let t=dp(n.value,e);switch(n.storageType){case "storage":case "tempstorage":storage.storage.default={[n.key]:t};break}}function mp(n,e={}){let t=gp(n,e);if(t&&typeof t=="object"&&"type"in t)switch(t.type){case "value":return NC(t,e);case "arithmetic":case "arithmeticsingle":return TC(t,e);case "compare":case "union":return FC(t,e);case "function":return xC(t,e)}return t}function TC(n,e){let t=x.getLogichValue(n.leftValue,e);switch(n.type){case "arithmetic":{let r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "*":return t*r;case "/":return t/r;case "+":return typeof t=="string"||typeof r=="string"?`${t}${r}`:Array.isArray(t)&&Array.isArray(r)?[...t,...r]:Array.isArray(t)?[...t,r]:Array.isArray(r)?[t,...r]:t+r;case "-":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>!r.includes(i));if(Array.isArray(t))return t.filter(i=>i!==r);if(Array.isArray(r)){ee.warn("getValueFromArithmeticOperations cannot subtract array from non-array");return}return t-r;case "%":return t%r;case "POW":return t**r;case "RANDOM":return narration.narration.getRandomNumber(t,r);case "INTERSECTION":if(Array.isArray(t)&&Array.isArray(r))return t.filter(i=>r.includes(i));ee.warn("getValueFromArithmeticOperations cannot intersect non-array values");return;default:ee.warn("getValueFromArithmeticOperations unknown operator",n);return}}case "arithmeticsingle":switch(n.operator){case "INT":return Number(t);case "FLOOR":return Math.floor(t)}break}}function NC(n,e){if(n&&typeof n=="object"&&"type"in n&&n.type==="value"&&n.storageOperationType==="get")switch(n.storageType){case "storage":case "tempstorage":return n.key==="_input_value_"?narration.narration.input.value:storage.storage.get(n.key);case "flagStorage":return storage.storage.flags.get(n.key);case "label":return narration.narration.queries.timesLabelOpened(n.label);case "choice":return narration.narration.queries.timesChoiceMade(n.index);case "logic":return x.getLogichValue(n.operation,e);case "params":{let t=storage.storage.get(`${Mu}${narration.narration.labels.opened.length-1}`)||[];if(t&&t.length>n.key)return t[n.key];ee.warn("getValue params not found");return}}return n}function FC(n,e){if(!n)return false;if(typeof n!="object"||!("type"in n))return !!n;switch(n.type){case "compare":{let t=x.getLogichValue(n.leftValue,e),r=x.getLogichValue(n.rightValue,e);switch(n.operator){case "==":return Array.isArray(t)&&Array.isArray(r)?t.length===r.length&&t.every(i=>r.includes(i)):t===r;case "!=":return Array.isArray(t)&&Array.isArray(r)?t.length!==r.length||!t.every(i=>r.includes(i)):t!==r;case "<":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<0:Array.isArray(t)&&Array.isArray(r)?t.length<r.length:t<r;case "<=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)<=0:Array.isArray(t)&&Array.isArray(r)?t.length<=r.length:t<=r;case ">":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>0:Array.isArray(t)&&Array.isArray(r)?t.length>r.length:t>r;case ">=":return typeof t=="string"&&typeof r=="string"?t.localeCompare(r)>=0:Array.isArray(t)&&Array.isArray(r)?t.length>=r.length:t>=r;case "CONTAINS":return Array.isArray(t)&&Array.isArray(r)?r.every(i=>t.includes(i)):Array.isArray(t)?t.includes(r):t.toString().includes(r.toString())}break}case "value":{let t=x.getLogichValue(n,e);return Array.isArray(t)?t.length>0:t&&typeof t=="object"?Object.keys(t).length>0:!!t}case "union":return IC(n,e)}return !!n}function IC(n,e){if(n.unionType==="not"){let r=mp(n.condition,e);return Array.isArray(r)?r.length===0:r&&typeof r=="object"?Object.keys(r).length===0:!r}let t=r=>x.getLogichValue(r,e)||false;return n.unionType==="and"?n.conditions.every(t):n.conditions.some(t)}function kC(n,e){return Math.floor(Math.random()*(e-n+1)+n)}function gp(n,e={}){if(Array.isArray(n)||!n)return n;if(n&&typeof n=="object"&&"type"in n)switch(n.type){case "resulttocombine":return VC(n,e);case "ifelse":return x.getLogichValue(n.condition,e)?x.getLogichValue(n.then,e):x.getLogichValue(n.else,e);case "stepswitch":{let t=x.getLogichValue(n.elements,e)||[];if(t.length===0){ee.error("getValueFromConditionalStatements elements.length === 0");return}switch(n.choiceType){case "random":{let r=kC(0,t.length-1);return x.getLogichValue(t[r],e)}case "loop":{let r=narration.NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return r>t.length-1?(r=r%t.length,x.getLogichValue(t[r],e)):x.getLogichValue(t[r],e)}case "sequential":{let r,i=narration.NarrationManagerStatic.getCurrentStepTimesCounter(n.nestedId)-1;return n.end==="lastItem"&&(r=x.getLogichValue(t[t.length-1],e)),i>t.length-1?r:x.getLogichValue(t[i],e)}case "sequentialrandom":{let r=narration.NarrationManagerStatic.getRandomNumber(0,t.length-1,{nestedId:n.nestedId,onceOnly:true});if(r===void 0&&n.end==="lastItem"){let i=narration.NarrationManagerStatic.getCurrentStepTimesCounterData(n.nestedId);if(!i?.usedRandomNumbers){ee.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}let a=i.usedRandomNumbers[`0-${t.length-1}`];return x.getLogichValue(t[a[a.length-1]],e)}if(r===void 0){ee.warn("getValueFromConditionalStatements randomIndexWhitExclude == undefined");return}return x.getLogichValue(t[r],e)}}}}return n}function As(n,e={}){if(n.conditionalStep){let t=pixiVn.createExportableElement(x.getLogichValue(n.conditionalStep,e));if(t?.glueEnabled===void 0&&delete t?.glueEnabled,t?.goNextStep===void 0&&delete t?.goNextStep,t?.end===void 0&&delete t?.end,t?.choices===void 0&&delete t?.choices,t?.dialogue===void 0&&delete t?.dialogue,t?.labelToOpen===void 0&&delete t?.labelToOpen,t?.operations===void 0&&delete t?.operations,t){let r={...n,conditionalStep:void 0,...t};return As(r,e)}else narration.narration.dialogGlue&&(narration.narration.dialogGlue=false);}return n}function VC(n,e){let t=n.firstItem,r=(n.secondConditionalItem??[]).flatMap(a=>Array.isArray(a)?a.map(s=>x.getLogichValue(s,e)):[x.getLogichValue(a,e)]),i=t?[t,...r]:r;if(i.length===0){ee.warn("combinateResult toCheck.length === 0");return}if(typeof i[0]=="string")return Ae.t(i);if(typeof i[0]=="object"){let a=i,s,o=false,u=a.map((v,d)=>{v=As(v,e);let S=x.getLogichValue(v.dialogue,e)||"";return d===0?(s=x.getLogichValue(v.glueEnabled,e)||false,S):(typeof S=="object"&&"text"in S&&(S=`${S.character}: ${S.text}`),s===false&&o&&(S=`
52
+
53
+ ${S}`),S&&(o=true),s=x.getLogichValue(v.glueEnabled,e)||false,S)}),l=x.getLogichValue(u[0],e),c=typeof l=="object"&&"character"in l?l.character:void 0,h=u.flatMap(v=>{let d;v&&typeof v=="object"&&"text"in v?d=v.text:d=v;let S;return Array.isArray(d)?S=d.map(m=>{let b=x.getLogichValue(m,e);return Ae.t(`${b}`)}):S=x.getLogichValue(d,e)||"",Ae.t(S)}),p=a.find(v=>v.end),f=a.find(v=>v.choices),g=false,y=false;a.length>0&&(a[0].glueEnabled&&a[0].goNextStep&&a[0].dialogue===void 0&&(narration.narration.dialogGlue=true),g=a[a.length-1].glueEnabled,y=a.reverse().find(v=>!(v.operations&&(!v.dialogue||!v.choices)))?.goNextStep);let C=a.find(v=>v.labelToOpen),_=[];return a.forEach(v=>{v.operations&&(_=[..._,...v.operations]);}),{dialogue:c?{character:c,text:h}:h,end:p?.end,choices:f?.choices,glueEnabled:g,goNextStep:y,labelToOpen:C?.labelToOpen,operations:_}}}exports.VariableGetter=void 0;(n=>{let e=new Set;function t(a){e.add(a);}n.add=t;function r(){e.clear();}n.clear=r;function i(a,s={}){let o=c=>mp(c,s)??void 0,u=gp(a,s);if(e.size===0)return o(u);let l=o;for(let c of e){let h=l;l=p=>c(p,h)??void 0;}return l(u)}n.getLogichValue=i;})(exports.VariableGetter||={});var LC=Object.create,_p=Object.defineProperty,qC=Object.getOwnPropertyDescriptor,BC=Object.getOwnPropertyNames,WC=Object.getPrototypeOf,MC=Object.prototype.hasOwnProperty,vp=(n=>typeof On<"u"?On:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof On<"u"?On:e)[t]}):n)(function(n){if(typeof On<"u")return On.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),Sp=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),GC=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BC(e))!MC.call(n,i)&&i!==t&&_p(n,i,{get:()=>e[i],enumerable:!(r=qC(e,i))||r.enumerable});return n},JC=(n,e,t)=>(t=n!=null?LC(WC(n)):{},GC(_p(t,"default",{value:n,enumerable:true}),n)),zC=Sp((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r():typeof define=="function"&&define.amd?define([],r):t.CryptoJS=r();})(n,function(){var t=t||(function(r,i){var a;if(typeof window<"u"&&window.crypto&&(a=window.crypto),typeof self<"u"&&self.crypto&&(a=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(a=globalThis.crypto),!a&&typeof window<"u"&&window.msCrypto&&(a=window.msCrypto),!a&&typeof global<"u"&&global.crypto&&(a=global.crypto),!a&&typeof vp=="function")try{a=vp("crypto");}catch{}var s=function(){if(a){if(typeof a.getRandomValues=="function")try{return a.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof a.randomBytes=="function")try{return a.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||(function(){function v(){}return function(d){var S;return v.prototype=d,S=new v,v.prototype=null,S}})(),u={},l=u.lib={},c=l.Base=(function(){return {extend:function(v){var d=o(this);return v&&d.mixIn(v),(!d.hasOwnProperty("init")||this.init===d.init)&&(d.init=function(){d.$super.init.apply(this,arguments);}),d.init.prototype=d,d.$super=this,d},create:function(){var v=this.extend();return v.init.apply(v,arguments),v},init:function(){},mixIn:function(v){for(var d in v)v.hasOwnProperty(d)&&(this[d]=v[d]);v.hasOwnProperty("toString")&&(this.toString=v.toString);},clone:function(){return this.init.prototype.extend(this)}}})(),h=l.WordArray=c.extend({init:function(v,d){v=this.words=v||[],d!=i?this.sigBytes=d:this.sigBytes=v.length*4;},toString:function(v){return (v||f).stringify(this)},concat:function(v){var d=this.words,S=v.words,m=this.sigBytes,b=v.sigBytes;if(this.clamp(),m%4)for(var w=0;w<b;w++){var P=S[w>>>2]>>>24-w%4*8&255;d[m+w>>>2]|=P<<24-(m+w)%4*8;}else for(var O=0;O<b;O+=4)d[m+O>>>2]=S[O>>>2];return this.sigBytes+=b,this},clamp:function(){var v=this.words,d=this.sigBytes;v[d>>>2]&=4294967295<<32-d%4*8,v.length=r.ceil(d/4);},clone:function(){var v=c.clone.call(this);return v.words=this.words.slice(0),v},random:function(v){for(var d=[],S=0;S<v;S+=4)d.push(s());return new h.init(d,v)}}),p=u.enc={},f=p.Hex={stringify:function(v){for(var d=v.words,S=v.sigBytes,m=[],b=0;b<S;b++){var w=d[b>>>2]>>>24-b%4*8&255;m.push((w>>>4).toString(16)),m.push((w&15).toString(16));}return m.join("")},parse:function(v){for(var d=v.length,S=[],m=0;m<d;m+=2)S[m>>>3]|=parseInt(v.substr(m,2),16)<<24-m%8*4;return new h.init(S,d/2)}},g=p.Latin1={stringify:function(v){for(var d=v.words,S=v.sigBytes,m=[],b=0;b<S;b++){var w=d[b>>>2]>>>24-b%4*8&255;m.push(String.fromCharCode(w));}return m.join("")},parse:function(v){for(var d=v.length,S=[],m=0;m<d;m++)S[m>>>2]|=(v.charCodeAt(m)&255)<<24-m%4*8;return new h.init(S,d)}},y=p.Utf8={stringify:function(v){try{return decodeURIComponent(escape(g.stringify(v)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(v){return g.parse(unescape(encodeURIComponent(v)))}},C=l.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new h.init,this._nDataBytes=0;},_append:function(v){typeof v=="string"&&(v=y.parse(v)),this._data.concat(v),this._nDataBytes+=v.sigBytes;},_process:function(v){var d,S=this._data,m=S.words,b=S.sigBytes,w=this.blockSize,P=w*4,O=b/P;v?O=r.ceil(O):O=r.max((O|0)-this._minBufferSize,0);var k=O*w,J=r.min(k*4,b);if(k){for(var ie=0;ie<k;ie+=w)this._doProcessBlock(m,ie);d=m.splice(0,k),S.sigBytes-=J;}return new h.init(d,J)},clone:function(){var v=c.clone.call(this);return v._data=this._data.clone(),v},_minBufferSize:0});l.Hasher=C.extend({cfg:c.extend(),init:function(v){this.cfg=this.cfg.extend(v),this.reset();},reset:function(){C.reset.call(this),this._doReset();},update:function(v){return this._append(v),this._process(),this},finalize:function(v){v&&this._append(v);var d=this._doFinalize();return d},blockSize:16,_createHelper:function(v){return function(d,S){return new v.init(S).finalize(d)}},_createHmacHelper:function(v){return function(d,S){return new _.HMAC.init(v,S).finalize(d)}}});var _=u.algo={};return u})(Math);return t});}),HC=Sp((n,e)=>{(function(t,r){typeof n=="object"?e.exports=n=r(zC()):typeof define=="function"&&define.amd?define(["./core"],r):r(t.CryptoJS);})(n,function(t){return (function(){var r=t,i=r.lib,a=i.WordArray,s=i.Hasher,o=r.algo,u=[],l=o.SHA1=s.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878,3285377520]);},_doProcessBlock:function(c,h){for(var p=this._hash.words,f=p[0],g=p[1],y=p[2],C=p[3],_=p[4],v=0;v<80;v++){if(v<16)u[v]=c[h+v]|0;else {var d=u[v-3]^u[v-8]^u[v-14]^u[v-16];u[v]=d<<1|d>>>31;}var S=(f<<5|f>>>27)+_+u[v];v<20?S+=(g&y|~g&C)+1518500249:v<40?S+=(g^y^C)+1859775393:v<60?S+=(g&y|g&C|y&C)-1894007588:S+=(g^y^C)-899497514,_=C,C=y,y=g<<30|g>>>2,g=f,f=S;}p[0]=p[0]+f|0,p[1]=p[1]+g|0,p[2]=p[2]+y|0,p[3]=p[3]+C|0,p[4]=p[4]+_|0;},_doFinalize:function(){var c=this._data,h=c.words,p=this._nDataBytes*8,f=c.sigBytes*8;return h[f>>>5]|=128<<24-f%32,h[(f+64>>>9<<4)+14]=Math.floor(p/4294967296),h[(f+64>>>9<<4)+15]=p,c.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var c=s.clone.call(this);return c._hash=this._hash.clone(),c}});r.SHA1=s._createHelper(l),r.HmacSHA1=s._createHmacHelper(l);})(),t.SHA1});}),Cp="___param___",Se;(n=>(n.log=(e,...t)=>console.log(`[Pixi\u2019VN Json] ${e}`,...t),n.warn=(e,...t)=>console.warn(`[Pixi\u2019VN Json] ${e}`,...t),n.error=(e,...t)=>console.error(`[Pixi\u2019VN Json] ${e}`,...t),n.info=(e,...t)=>console.info(`[Pixi\u2019VN Json] ${e}`,...t)))(Se||={});var UC=class te{static init(e){e.loadAssets&&(te._loadAssets=e.loadAssets),e.soundOperation&&(te._soundOperation=e.soundOperation),e.imageOperation&&(te._imageOperation=e.imageOperation),e.videoOperation&&(te._videoOperation=e.videoOperation),e.imageContainerOperation&&(te._imageContainerOperation=e.imageContainerOperation),e.textOperation&&(te._textOperation=e.textOperation),e.canvasElementOperation&&(te._canvasElementOperation=e.canvasElementOperation),e.setStorageValue&&(te._setStorageValue=e.setStorageValue),e.setInitialStorageValue&&(te._setInitialStorageValue=e.setInitialStorageValue),e.narrationOperation&&(te._narrationOperation=e.narrationOperation),e.effectOperation&&(te._effectOperation=e.effectOperation),e.animateOperation&&(te._animateOperation=e.animateOperation),e.canvasOperation&&(te._canvasOperation=e.canvasOperation),e.getLogichValue&&(te._getLogichValue=e.getLogichValue),e.getConditionalStep&&(te._getConditionalStep=e.getConditionalStep);}static _loadAssets=()=>{};static get loadAssets(){return te._loadAssets}static _soundOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get soundOperation(){return te._soundOperation}static _imageOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageOperation(){return te._imageOperation}static _videoOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get videoOperation(){return te._videoOperation}static _imageContainerOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get imageContainerOperation(){return te._imageContainerOperation}static _textOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get textOperation(){return te._textOperation}static _canvasElementOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasElementOperation(){return te._canvasElementOperation}static _setStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setStorageValue(){return te._setStorageValue}static _setInitialStorageValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get setInitialStorageValue(){return te._setInitialStorageValue}static _narrationOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get narrationOperation(){return te._narrationOperation}static _effectOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get effectOperation(){return te._effectOperation}static _animateOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get animateOperation(){return te._animateOperation}static _canvasOperation=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get canvasOperation(){return te._canvasOperation}static _getLogichValue=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getLogichValue(){return te._getLogichValue}static _getConditionalStep=()=>{throw Se.error("An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue."),new pixiVn.PixiError("invalid_usage","An error occurred! pixi-vn-json was not initialized. Please contact the Pixi'VN team to report the issue.")};static get getConditionalStep(){return te._getConditionalStep}};function KC(n,e){if(e&&typeof e=="object"&&typeof n.functionName=="string"&&n.functionName in e){let t=e[n.functionName];if(typeof t=="function"){let r=n.args.map(i=>UC.getLogichValue(i,e));return t(...r)}else Se.warn(`getLogichValue function ${n.functionName} not found in props`);}}function XC(n,e={}){let t="";return n.values.forEach(r=>{if(typeof r=="string")t+=r;else {let i=x.getLogichValue(r,e);t+=`${i}`;}}),t}async function Ep(n,e,t){let r=x.getLogichValue(n,e);if(r)switch(r.type){case "sound":x.soundOperation(r);break;case "assets":case "bundle":await x.loadAssets(r);break;case "image":await x.imageOperation(r);break;case "video":await x.videoOperation(r);break;case "imagecontainer":await x.imageContainerOperation(r);break;case "text":await x.textOperation(r);break;case "canvaselement":await x.canvasElementOperation(r);break;case "canvas":x.canvasOperation(r);break;case "value":x.setStorageValue(r,e);break;case "operationtoconvert":if(t){let i=XC(r,e),a=await t(i);a&&await Ep(a,e,t);}break;case "input":case "dialogue":x.narrationOperation(r);break;case "shake":await x.effectOperation(r);break;case "animate":case "animate-sequence":x.animateOperation(r);break;case "function":await KC(r,e);break}}function bp(n){let e=x.getLogichValue(n,{});e&&e.type==="value"&&e.storageOperationType==="set"&&(e.storageType==="storage"||e.storageType==="tempstorage")&&x.setInitialStorageValue(e);}var YC=JC(HC()),ZC=class extends narration.LabelAbstract{constructor(n,e,t,r={}){t||(t={}),t.onLoadingLabel=async()=>{for(let i of e){let a;if(typeof i=="function"?a=i():a=i,a=x.getConditionalStep(a),a.operations)try{let s=a.operations.map(o=>x.loadAssets(o));await Promise.all(s);}catch(s){Se.error("The operation in the onLoadingLabel function of the label has an error:",s);}}},super(n,t),this._steps=e,this.operationStringConvert=r.operationStringConvert,this.skipEmptyDialogs=r.skipEmptyDialogs||false;}_steps;get steps(){return this._steps.map(n=>this.stepConverter(n))}get stepCount(){return this._steps.length}getStepById(n){if(n<0||n>=this._steps.length)return;let e=this._steps[n];return this.stepConverter(e)}operationStringConvert;skipEmptyDialogs=false;getStepSha(n){if(n<0||n>=this.steps.length)return;let e=this._steps[n];return (0, YC.default)(e.toString().toLocaleLowerCase()).toString()}getDialogueText(n,e){let t="";if(Array.isArray(n)){let r=[];n.forEach(i=>{if(typeof i=="string")r.push(i);else if(i&&typeof i=="object"){let a=x.getLogichValue(i,e);a?(a&&!Array.isArray(a)&&typeof a=="object"&&(a=x.getLogichValue(a,e)||""),Array.isArray(a)?r=r.map(s=>`${s}`).concat(a):r.push(`${a}`)):r.push(`${i}`);}else r.push(`${i}`);}),t=r;}else {let r=x.getLogichValue(n,e);r&&!Array.isArray(r)&&typeof r=="object"&&(r=x.getLogichValue(r,e)),r&&Array.isArray(r)?t=r.map(i=>`${i}`):t=`${r}`;}return t}getDialogue(n,e){if(n==null)return;let t=x.getLogichValue(n,e);return t==null?`${t}`:typeof t=="object"&&"character"in t&&"text"in t?{character:t.character,text:Ae.t(this.getDialogueText(t.text,e))}:Ae.t(this.getDialogueText(t,e))}getChoices(n,e){return x.getLogichValue(n,e)?.map(t=>x.getLogichValue(t,e)).filter(t=>t!==void 0)}stepConverter(n){return async e=>{let t=typeof n=="function"?n():n;t=pixiVn.createExportableElement(t),t=x.getConditionalStep(t,e);let r=this.operationStringConvert?p=>this.operationStringConvert(p,t,e):void 0,{operations:i=[]}=t;for(let p of i)await Ep(p,e,r);let{labelToOpen:a=[]}=t,s=this.getChoices(t.choices,e),o=x.getLogichValue(t.glueEnabled,e),u=this.getDialogue(t.dialogue,e),l=[];Array.isArray(a)||(a=[a]),a.forEach(p=>{let f=x.getLogichValue(p,e);f&&l.push(f);});let c=x.getLogichValue(t.goNextStep,e),h=x.getLogichValue(t.end,e);if(s){let p=s.map(f=>{let g="";if(Array.isArray(f.text)){let y=[];f.text.forEach(C=>{if(typeof C=="string")y.push(Ae.t(C));else if(C&&typeof C=="object"){let _=x.getLogichValue(C,e);_&&!Array.isArray(_)&&typeof _=="object"&&(_=x.getLogichValue(_,e)||""),_&&(Array.isArray(_)?y=y.concat(Ae.t(_)):y.push(Ae.t(_)));}}),g=y;}else typeof f.text=="string"&&(g=Ae.t(f.text));return {label:f.label,text:g,props:f.props,type:f.type,oneTime:f.oneTime,onlyHaveNoChoice:f.onlyHaveNoChoice,autoSelect:f.autoSelect}});narration.narration.choices=p;}else narration.narration.choices=void 0;u!==void 0&&(narration.narration.dialogue=u,this.skipEmptyDialogs&&typeof u=="string"&&(u===""||RegExp(/^\s+$/).test(u))&&(c=true)),o?narration.narration.dialogGlue=true:o===false&&(narration.narration.dialogGlue=false);for(let p of l){let f=p.label;typeof f=="object"&&(f=x.getLogichValue(f,e)||"");let g=p.params?.map(y=>x.getLogichValue(y,e));e={...e,...p.props},p.type==="jump"?(narration.narration.labels.opened.length>0&&narration.narration.labels.closeCurrent(),storage.storage.temp.set(`${Cp}${narration.narration.labels.opened.length}`,g),await narration.narration.call(f,e)):(storage.storage.temp.set(`${Cp}${narration.narration.labels.opened.length}`,g),await narration.narration.call(f,e));}h==="game_end"?(narration.narration.labels.closeAll(),await narration.narration.continue(e,{runNow:true})):h==="label_end"&&narration.narration.labels.closeCurrent(),c&&await narration.narration.continue(e,{runNow:true});}}};async function Gu(n,e={}){if(!Array.isArray(n))if(typeof n=="object"||typeof n=="string")n=[n];else {Se.error("Error parsing imported Pixi'VN JSON: data is not an object");return}let t=n.map(a=>{if(typeof a=="string")try{return JSON.parse(a)}catch(s){return Se.error("Error parsing imported Pixi'VN JSON",s),{}}return a}),r=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)s.type==="value"&&(typeof s.value!="object"||!s.value||!("type"in s.value))&&bp(s);return Promise.resolve()});await Promise.all(r);let i=t.map(async a=>{if(a.initialOperations)for(let s of a.initialOperations)(s.type!=="value"||s.type==="value"&&typeof s.value=="object"&&s.value&&"type"in s.value)&&bp(s);if(a.labels){let s=a.labels;for(let o in s)try{let u=s[o],l=new ZC(o,u,void 0,e);narration.RegisteredLabels.add(l);}catch(u){Se.error(`Error creating JSON label ${o}`,u);}}return Promise.resolve()});await Promise.all(i);}function Ju(){x.init({animateOperation:lp,canvasElementOperation:ap,canvasOperation:op,effectOperation:up,imageContainerOperation:ip,imageOperation:np,textOperation:sp,narrationOperation:cp,loadAssets:tp,soundOperation:hp,videoOperation:rp,setStorageValue:fp,setInitialStorageValue:pp,getLogichValue:exports.VariableGetter.getLogichValue,getConditionalStep:As});}var Ps="global decl",xn="___external_value___",wp=/\[([^\]]+)\]/;function eb(n){Ae.afterToTranslate=e=>Dp(e,n);}function tb(n){Ae.beforeToTranslate=e=>Dp(e,n);}function Dp(n,e){let t=new RegExp(wp.source,"g"),r=new Set,i=true;for(;i;){i=false;let a=[...n.matchAll(t)],s=new Set;for(let o of a){let u=o[1];if(s.has(u)||r.has(u))continue;s.add(u);let l=e(u);l!==void 0?(n=n.replaceAll(o[0],l),i=true):r.add(u);}}return n}var X;(i=>(i.log=(a,...s)=>console.log(`[Pixi\u2019VN Ink] ${a}`,...s),i.warn=(a,...s)=>console.warn(`[Pixi\u2019VN Ink] ${a}`,...s),i.error=(a,...s)=>console.error(`[Pixi\u2019VN Ink] ${a}`,...s),i.info=(a,...s)=>console.info(`[Pixi\u2019VN Ink] ${a}`,...s)))(X||={});var nb=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,rb=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ib=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,zu={Space_Separator:nb,ID_Start:rb,ID_Continue:ib},be={isSpaceSeparator(n){return typeof n=="string"&&zu.Space_Separator.test(n)},isIdStartChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="$"||n==="_"||zu.ID_Start.test(n))},isIdContinueChar(n){return typeof n=="string"&&(n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9"||n==="$"||n==="_"||n==="\u200C"||n==="\u200D"||zu.ID_Continue.test(n))},isDigit(n){return typeof n=="string"&&/[0-9]/.test(n)},isHexDigit(n){return typeof n=="string"&&/[0-9A-Fa-f]/.test(n)}},Uu,ze,Xt,xs,on,At,Pe,Yu,ii,sb=function(e,t){Uu=String(e),ze="start",Xt=[],xs=0,on=1,At=0,Pe=void 0,Yu=void 0,ii=void 0;do Pe=ab(),lb[ze]();while(Pe.type!=="eof");return typeof t=="function"?Ku({"":ii},"",t):ii};function Ku(n,e,t){let r=n[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let i=0;i<r.length;i++){let a=String(i),s=Ku(r,a,t);s===void 0?delete r[a]:Object.defineProperty(r,a,{value:s,writable:true,enumerable:true,configurable:true});}else for(let i in r){let a=Ku(r,i,t);a===void 0?delete r[i]:Object.defineProperty(r,i,{value:a,writable:true,enumerable:true,configurable:true});}return t.call(n,e,r)}var L,R,ri,Kt,z;function ab(){for(L="default",R="",ri=false,Kt=1;;){z=Yt();let n=Pp[L]();if(n)return n}}function Yt(){if(Uu[xs])return String.fromCodePoint(Uu.codePointAt(xs))}function A(){let n=Yt();return n===`
54
+ `?(on++,At=0):n?At+=n.length:At++,n&&(xs+=n.length),n}var Pp={default(){switch(z){case " ":case "\v":case "\f":case " ":case "\xA0":case "\uFEFF":case `
55
+ `:case "\r":case "\u2028":case "\u2029":A();return;case "/":A(),L="comment";return;case void 0:return A(),he("eof")}if(be.isSpaceSeparator(z)){A();return}return Pp[ze]()},comment(){switch(z){case "*":A(),L="multiLineComment";return;case "/":A(),L="singleLineComment";return}throw de(A())},multiLineComment(){switch(z){case "*":A(),L="multiLineCommentAsterisk";return;case void 0:throw de(A())}A();},multiLineCommentAsterisk(){switch(z){case "*":A();return;case "/":A(),L="default";return;case void 0:throw de(A())}A(),L="multiLineComment";},singleLineComment(){switch(z){case `
56
+ `:case "\r":case "\u2028":case "\u2029":A(),L="default";return;case void 0:return A(),he("eof")}A();},value(){switch(z){case "{":case "[":return he("punctuator",A());case "n":return A(),Tn("ull"),he("null",null);case "t":return A(),Tn("rue"),he("boolean",true);case "f":return A(),Tn("alse"),he("boolean",false);case "-":case "+":A()==="-"&&(Kt=-1),L="sign";return;case ".":R=A(),L="decimalPointLeading";return;case "0":R=A(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=A(),L="decimalInteger";return;case "I":return A(),Tn("nfinity"),he("numeric",1/0);case "N":return A(),Tn("aN"),he("numeric",NaN);case '"':case "'":ri=A()==='"',R="",L="string";return}throw de(A())},identifierNameStartEscape(){if(z!=="u")throw de(A());A();let n=Xu();switch(n){case "$":case "_":break;default:if(!be.isIdStartChar(n))throw Ap();break}R+=n,L="identifierName";},identifierName(){switch(z){case "$":case "_":case "\u200C":case "\u200D":R+=A();return;case "\\":A(),L="identifierNameEscape";return}if(be.isIdContinueChar(z)){R+=A();return}return he("identifier",R)},identifierNameEscape(){if(z!=="u")throw de(A());A();let n=Xu();switch(n){case "$":case "_":case "\u200C":case "\u200D":break;default:if(!be.isIdContinueChar(n))throw Ap();break}R+=n,L="identifierName";},sign(){switch(z){case ".":R=A(),L="decimalPointLeading";return;case "0":R=A(),L="zero";return;case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":R=A(),L="decimalInteger";return;case "I":return A(),Tn("nfinity"),he("numeric",Kt*(1/0));case "N":return A(),Tn("aN"),he("numeric",NaN)}throw de(A())},zero(){switch(z){case ".":R+=A(),L="decimalPoint";return;case "e":case "E":R+=A(),L="decimalExponent";return;case "x":case "X":R+=A(),L="hexadecimal";return}return he("numeric",Kt*0)},decimalInteger(){switch(z){case ".":R+=A(),L="decimalPoint";return;case "e":case "E":R+=A(),L="decimalExponent";return}if(be.isDigit(z)){R+=A();return}return he("numeric",Kt*Number(R))},decimalPointLeading(){if(be.isDigit(z)){R+=A(),L="decimalFraction";return}throw de(A())},decimalPoint(){switch(z){case "e":case "E":R+=A(),L="decimalExponent";return}if(be.isDigit(z)){R+=A(),L="decimalFraction";return}return he("numeric",Kt*Number(R))},decimalFraction(){switch(z){case "e":case "E":R+=A(),L="decimalExponent";return}if(be.isDigit(z)){R+=A();return}return he("numeric",Kt*Number(R))},decimalExponent(){switch(z){case "+":case "-":R+=A(),L="decimalExponentSign";return}if(be.isDigit(z)){R+=A(),L="decimalExponentInteger";return}throw de(A())},decimalExponentSign(){if(be.isDigit(z)){R+=A(),L="decimalExponentInteger";return}throw de(A())},decimalExponentInteger(){if(be.isDigit(z)){R+=A();return}return he("numeric",Kt*Number(R))},hexadecimal(){if(be.isHexDigit(z)){R+=A(),L="hexadecimalInteger";return}throw de(A())},hexadecimalInteger(){if(be.isHexDigit(z)){R+=A();return}return he("numeric",Kt*Number(R))},string(){switch(z){case "\\":A(),R+=ob();return;case '"':if(ri)return A(),he("string",R);R+=A();return;case "'":if(!ri)return A(),he("string",R);R+=A();return;case `
57
+ `:case "\r":throw de(A());case "\u2028":case "\u2029":cb(z);break;case void 0:throw de(A())}R+=A();},start(){switch(z){case "{":case "[":return he("punctuator",A())}L="value";},beforePropertyName(){switch(z){case "$":case "_":R=A(),L="identifierName";return;case "\\":A(),L="identifierNameStartEscape";return;case "}":return he("punctuator",A());case '"':case "'":ri=A()==='"',L="string";return}if(be.isIdStartChar(z)){R+=A(),L="identifierName";return}throw de(A())},afterPropertyName(){if(z===":")return he("punctuator",A());throw de(A())},beforePropertyValue(){L="value";},afterPropertyValue(){switch(z){case ",":case "}":return he("punctuator",A())}throw de(A())},beforeArrayValue(){if(z==="]")return he("punctuator",A());L="value";},afterArrayValue(){switch(z){case ",":case "]":return he("punctuator",A())}throw de(A())},end(){throw de(A())}};function he(n,e){return {type:n,value:e,line:on,column:At}}function Tn(n){for(let e of n){if(Yt()!==e)throw de(A());A();}}function ob(){switch(Yt()){case "b":return A(),"\b";case "f":return A(),"\f";case "n":return A(),`
58
+ `;case "r":return A(),"\r";case "t":return A()," ";case "v":return A(),"\v";case "0":if(A(),be.isDigit(Yt()))throw de(A());return "\0";case "x":return A(),ub();case "u":return A(),Xu();case `
59
+ `:case "\u2028":case "\u2029":return A(),"";case "\r":return A(),Yt()===`
60
+ `&&A(),"";case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":throw de(A());case void 0:throw de(A())}return A()}function ub(){let n="",e=Yt();if(!be.isHexDigit(e)||(n+=A(),e=Yt(),!be.isHexDigit(e)))throw de(A());return n+=A(),String.fromCodePoint(parseInt(n,16))}function Xu(){let n="",e=4;for(;e-- >0;){let t=Yt();if(!be.isHexDigit(t))throw de(A());n+=A();}return String.fromCodePoint(parseInt(n,16))}var lb={start(){if(Pe.type==="eof")throw Nn();Hu();},beforePropertyName(){switch(Pe.type){case "identifier":case "string":Yu=Pe.value,ze="afterPropertyName";return;case "punctuator":Os();return;case "eof":throw Nn()}},afterPropertyName(){if(Pe.type==="eof")throw Nn();ze="beforePropertyValue";},beforePropertyValue(){if(Pe.type==="eof")throw Nn();Hu();},beforeArrayValue(){if(Pe.type==="eof")throw Nn();if(Pe.type==="punctuator"&&Pe.value==="]"){Os();return}Hu();},afterPropertyValue(){if(Pe.type==="eof")throw Nn();switch(Pe.value){case ",":ze="beforePropertyName";return;case "}":Os();}},afterArrayValue(){if(Pe.type==="eof")throw Nn();switch(Pe.value){case ",":ze="beforeArrayValue";return;case "]":Os();}},end(){}};function Hu(){let n;switch(Pe.type){case "punctuator":switch(Pe.value){case "{":n={};break;case "[":n=[];break}break;case "null":case "boolean":case "numeric":case "string":n=Pe.value;break}if(ii===void 0)ii=n;else {let e=Xt[Xt.length-1];Array.isArray(e)?e.push(n):Object.defineProperty(e,Yu,{value:n,writable:true,enumerable:true,configurable:true});}if(n!==null&&typeof n=="object")Xt.push(n),Array.isArray(n)?ze="beforeArrayValue":ze="beforePropertyName";else {let e=Xt[Xt.length-1];e==null?ze="end":Array.isArray(e)?ze="afterArrayValue":ze="afterPropertyValue";}}function Os(){Xt.pop();let n=Xt[Xt.length-1];n==null?ze="end":Array.isArray(n)?ze="afterArrayValue":ze="afterPropertyValue";}function de(n){return Ts(n===void 0?`JSON5: invalid end of input at ${on}:${At}`:`JSON5: invalid character '${Op(n)}' at ${on}:${At}`)}function Nn(){return Ts(`JSON5: invalid end of input at ${on}:${At}`)}function Ap(){return At-=5,Ts(`JSON5: invalid identifier character at ${on}:${At}`)}function cb(n){console.warn(`JSON5: '${Op(n)}' in strings is not valid ECMAScript; consider escaping`);}function Op(n){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[n])return e[n];if(n<" "){let t=n.charCodeAt(0).toString(16);return "\\x"+("00"+t).substring(t.length)}return n}function Ts(n){let e=new SyntaxError(n);return e.lineNumber=on,e.columnNumber=At,e}var hb=function(e,t,r){let i=[],a="",s,o,u="",l;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(r=t.space,l=t.quote,t=t.replacer),typeof t=="function")o=t;else if(Array.isArray(t)){s=[];for(let y of t){let C;typeof y=="string"?C=y:(typeof y=="number"||y instanceof String||y instanceof Number)&&(C=String(y)),C!==void 0&&s.indexOf(C)<0&&s.push(C);}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),u=" ".substr(0,r)):typeof r=="string"&&(u=r.substr(0,10)),c("",{"":e});function c(y,C){let _=C[y];switch(_!=null&&(typeof _.toJSON5=="function"?_=_.toJSON5(y):typeof _.toJSON=="function"&&(_=_.toJSON(y))),o&&(_=o.call(C,y,_)),_ instanceof Number?_=Number(_):_ instanceof String?_=String(_):_ instanceof Boolean&&(_=_.valueOf()),_){case null:return "null";case true:return "true";case false:return "false"}if(typeof _=="string")return h(_);if(typeof _=="number")return String(_);if(typeof _=="object")return Array.isArray(_)?g(_):p(_)}function h(y){let C={"'":.1,'"':.2},_={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},v="";for(let S=0;S<y.length;S++){let m=y[S];switch(m){case "'":case '"':C[m]++,v+=m;continue;case "\0":if(be.isDigit(y[S+1])){v+="\\x00";continue}}if(_[m]){v+=_[m];continue}if(m<" "){let b=m.charCodeAt(0).toString(16);v+="\\x"+("00"+b).substring(b.length);continue}v+=m;}let d=l||Object.keys(C).reduce((S,m)=>C[S]<C[m]?S:m);return v=v.replace(new RegExp(d,"g"),_[d]),d+v+d}function p(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let C=a;a=a+u;let _=s||Object.keys(y),v=[];for(let S of _){let m=c(S,y);if(m!==void 0){let b=f(S)+":";u!==""&&(b+=" "),b+=m,v.push(b);}}let d;if(v.length===0)d="{}";else {let S;if(u==="")S=v.join(","),d="{"+S+"}";else {let m=`,
61
+ `+a;S=v.join(m),d=`{
62
+ `+a+S+`,
63
+ `+C+"}";}}return i.pop(),a=C,d}function f(y){if(y.length===0)return h(y);let C=String.fromCodePoint(y.codePointAt(0));if(!be.isIdStartChar(C))return h(y);for(let _=C.length;_<y.length;_++)if(!be.isIdContinueChar(String.fromCodePoint(y.codePointAt(_))))return h(y);return y}function g(y){if(i.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");i.push(y);let C=a;a=a+u;let _=[];for(let d=0;d<y.length;d++){let S=c(String(d),y);_.push(S!==void 0?S:"null");}let v;if(_.length===0)v="[]";else if(u==="")v="["+_.join(",")+"]";else {let d=`,
64
+ `+a,S=_.join(d);v=`[
65
+ `+a+S+`,
66
+ `+C+"]";}return i.pop(),a=C,v}},db={parse:sb,stringify:hb},fb=db,si=fb;var Tp="\xA7SPACE\xA7",Np="\xA7DOUBLE_QUOTES\xA7",Fp="\xA7QUOTES\xA7",Ip="SPECIAL_\xA7QUOTES\xA7",kp="\xA7CURLY_BRACKETS1\xA7",pb="\xA7INK_VAR\xA7",Vp="\xA7CURLY_BRACKETS2\xA7";exports.HashtagCommands=void 0;(v=>{let n=[],e=[];async function t(d,S){for(let m=0;m<n.length;m++)try{let{validation:b}=n[m].opts;if(b instanceof RegExp){if(!b.test(d.join(" ")))continue}else if(b instanceof D.ZodType&&!b.safeParse(d).success)continue;let w=await n[m].fn(d,S,h);if(w===!0||typeof w=="string")return w}catch{}return false}function r(d,S={name:"custom-command",validation:/^/}){n.unshift({fn:d,opts:S});}v.add=r;function i(){return [...e.map(d=>d.opts),...n.map(d=>d.opts)]}v.info=i;function a(d,S){e.unshift({fn:d,opts:S});}v.addMapper=a;function s(){n.length=0;}v.clear=s;function o(){e.length=0;}v.clearMappers=o;async function u(d,S,m){try{let b=l(d),w=await t(b,m);return w===!0?void 0:typeof w=="string"?(w.startsWith("#")&&(w=w.substring(1)),await v.run(w,S,m)):c(b,S)}catch(b){throw X.error("Error parsing ink hashtag-command",d),b}}v.run=u;function l(d,S){if(d=d.replaceAll('\\"',Np),d=d.replaceAll("\\'",Fp),d=d.replaceAll("\\`",Ip),d=d.replaceAll("\\{",kp),d=d.replaceAll("\\}",Vp),S?.mergeInkVariables){let P;do P=d,d=d.replace(/\{[^{}:]*\}/g,pb);while(d!==P)}d=d.replaceAll("{"," { "),d=d.replaceAll("}"," } "),d=d.replaceAll(kp,"{"),d=d.replaceAll(Vp,"}");let m=[],b,w="";for(let P=0;P<d.length;P++){let O=d[P];O==='"'||O==="'"||O==="`"?b===void 0?(m.push(w),w="",b=O,w+=O):b===O?(b=void 0,w+=O,m.push(w),w=""):w+=O:w+=O;}return w!==""&&m.push(w),m.forEach((P,O)=>{O%2===1&&(m[O]=P.replaceAll(" ",Tp));}),d=m.join(""),m=d.split(" ").filter(P=>P!==""),m=m.map(P=>P.replaceAll(Tp," ").replaceAll(Np,'"').replaceAll(Fp,"'").replaceAll(Ip,"`")),m=g(m),m=m.flatMap(P=>_(P)),m=m.map(P=>P.startsWith('"')&&P.endsWith('"')||P.startsWith("'")&&P.endsWith("'")||P.startsWith("`")&&P.endsWith("`")?P.slice(1,-1):P),m}v.convertTagTolist=l;function c(d,S,m){for(let b of e){let{validation:w}=b.opts,P=false;if(w instanceof RegExp?P=w.test(d.join(" ")):w instanceof D.ZodType&&(P=w.safeParse(d).success),P)return b.fn(d,S)}m?.silent||X.error("The operation is not valid",d);}v.convertOperation=c;function h(d){if(d.length===0)return {};if(d.length%2!==0)throw X.error("The props list must have a pair number of elements",d),new Error("The props list must have a pair number of elements");let S="{";d.forEach((m,b)=>{if(b%2===0)S+=`"${m}": `;else {switch(m){case "null":case "undefined":case "true":case "false":S+=`${m}`;break;default:f(m)?(m=p(m),S+=`"${m}"`):m.startsWith("{")&&m.endsWith("}")?S+=`${m}`:m.startsWith('"')&&m.endsWith('"')?S+=`${m}`:Number.isNaN(parseFloat(m))?S+=`"${m}"`:S+=`${m}`;}b<d.length-1&&(S+=", ");}}),S+="}";try{return si.parse(S)}catch(m){throw X.error("Error parsing ink json",S),m}}v.convertListStringToObj=h;function p(d){return d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`")?d.substring(1,d.length-1):d}function f(d){return !!(d.startsWith('"')&&d.endsWith('"')||d.startsWith("'")&&d.endsWith("'")||d.startsWith("`")&&d.endsWith("`"))}function g(d){return y(d).tokens}v.mergeJsonBlocks=g;function y(d){let S=[],m=false;for(let b=0;b<d.length;b++){let w=d[b];if(w!=="{"){S.push(w);continue}let P=C(d,b);if(P===-1){S.push(w);continue}let O=y(d.slice(b+1,P)),k=["{",...O.tokens,"}"],J=k.join(" ");if(!O.hasInvalidMatchedBlock)try{si.parse(J),S.push(J),b=P;continue}catch{}m=true,S.push(...k),b=P;}return {tokens:S,hasInvalidMatchedBlock:m}}function C(d,S){let m=0;for(let b=S;b<d.length;b++)if(d[b]==="{")m++;else if(d[b]==="}"&&(m--,m===0))return b;return -1}function _(d){if(d==="["||d==="]")return [d];let S=0,m=d.length,b=[];for(;S<m&&d[S]==="[";)b.push("["),S++;let w=[];for(;m>S&&d[m-1]==="]";)w.unshift("]"),m--;let P=d.slice(S,m);return P===""?[...b,...w]:[...b,P,...w]}})(exports.HashtagCommands||={});function mb(n){exports.HashtagCommands.add(n);}function gb(n={}){let e=n.sections?.canvas??true,t=n.sections?.sound??true,r=n.sections?.narration??true,i=n.sections?.assets??true;function a(f){return f&&f.length>0?D__default.default.enum(Object.fromEntries(f.map(g=>[g,g]))):D__default.default.string()}if(r&&(exports.HashtagCommands.addMapper((f,g)=>{g.labelToOpen={label:f[1],type:"call"},g.goNextStep=void 0;},{name:"Call",deprecated:true,description:"Calls the label specified by the second token, then returns to the current position.\n\n```ink\n# call label_name\n```",validation:D__default.default.tuple([D__default.default.literal("call"),D__default.default.string()])}),exports.HashtagCommands.addMapper((f,g)=>{g.labelToOpen={label:f[1],type:"jump"},g.goNextStep=void 0;},{name:"Jump",deprecated:true,description:"Jumps to the label specified by the second token without returning.\n\n```ink\n# jump label_name\n```",validation:D__default.default.tuple([D__default.default.literal("jump"),D__default.default.string()])}),exports.HashtagCommands.addMapper((f,g)=>("dialogue"in g&&delete g.dialogue,"goNextStep"in g&&delete g.goNextStep,{type:"dialogue",operationType:"clean"}),{name:"Pause",description:"Clears the current dialogue and waits for user input before advancing.\n\n```ink\n# pause\n```",validation:D__default.default.tuple([D__default.default.literal("pause")])}),exports.HashtagCommands.addMapper((f,g)=>{g.goNextStep=true,g.glueEnabled=false;},{name:"Continue",description:"Forces the story to proceed to the next step automatically.\n\n```ink\n# continue\n```",validation:D__default.default.tuple([D__default.default.literal("continue")])})),e&&exports.HashtagCommands.addMapper(f=>({type:"video",operationType:f[0],alias:f[2]}),{name:"Pause/Resume video",description:"Pauses or resumes a video canvas element identified by its alias.\n\n```ink\n# pause video <alias>\n# resume video <alias>\n```",validation:D__default.default.tuple([D__default.default.enum(["pause","resume"]),D__default.default.literal("video"),D__default.default.string()])}),i&&exports.HashtagCommands.addMapper(f=>({type:f[1],operationType:f[0],aliases:f.slice(2)}),{name:"Load assets/bundle",description:`Loads (eagerly or lazily) a set of asset or bundle aliases.
67
67
 
68
68
  \`\`\`ink
69
69
  # load assets <alias...>
70
70
  # lazyload assets <alias...>
71
71
  # load bundle <alias...>
72
72
  # lazyload bundle <alias...>
73
- \`\`\``,validation:D__default.default.union([D__default.default.tuple([D__default.default.enum(["load","lazyload"]),D__default.default.literal("assets")]).rest(a(n.assetAliasIds)),D__default.default.tuple([D__default.default.enum(["load","lazyload"]),D__default.default.literal("bundle")]).rest(a(n.bundleIds))])}),t&&(exports.HashtagCommands.addMapper(d=>({type:"all",operationType:d[0]}),{name:"Pause/Resume/Stop all sounds",description:"Pauses, resumes, or stops all active sounds at once.\n\n```ink\n# pause all sounds\n# resume all sounds\n# stop all sounds\n```",validation:D__default.default.tuple([D__default.default.enum(["pause","resume","stop"]),D__default.default.literal("all"),D__default.default.enum(["sounds","sound"])])}),exports.HashtagCommands.addMapper(d=>({type:"sound",operationType:"pause",alias:d[2]}),{name:"Pause sound",description:"Pauses the sound identified by its alias.\n\n```ink\n# pause sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("pause"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"channel",operationType:"pause",alias:d[2]}),{name:"Pause channel",description:"Pauses the audio channel identified by its alias.\n\n```ink\n# pause channel <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("pause"),D__default.default.literal("channel"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"sound",operationType:"resume",alias:d[2]}),{name:"Resume sound",description:"Resumes the sound identified by its alias.\n\n```ink\n# resume sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("resume"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"channel",operationType:"resume",alias:d[2]}),{name:"Resume channel",description:"Resumes the audio channel identified by its alias.\n\n```ink\n# resume channel <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("resume"),D__default.default.literal("channel"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"sound",operationType:"stop",alias:d[2]}),{name:"Stop sound",description:"Stops the sound identified by its alias.\n\n```ink\n# stop sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("stop"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"sound",operationType:"stop",alias:d[2]}),{name:"Remove sound",description:"Removes (stops) the sound identified by its alias.\n\n```ink\n# remove sound <alias>\n```",deprecated:true,validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(d=>({type:"sound",operationType:"edit",alias:d[2],props:exports.HashtagCommands.convertListStringToObj(d.slice(3))}),{name:"Edit sound",description:"Edits the properties of a sound identified by its alias.\n\n```ink\n# edit sound <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("sound"),D__default.default.string()]).rest(D__default.default.string()).refine(d=>(d.length-3)%2===0)}),exports.HashtagCommands.addMapper(d=>{let m=d[2],y={type:"sound",operationType:"play",alias:m,url:m};if(d.length>3){let _=exports.HashtagCommands.convertListStringToObj(d.slice(3));"source"in _&&typeof _.source=="string"&&(y.url=_.source,delete _.source),Object.keys(_).length>0&&(y.props=_);}return y},{name:"Play sound",description:"Plays a sound using its alias as the URL, with optional key/value properties. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# play sound <alias> [<key> <value> \u2026]\n# play sound <alias> source <url> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("play"),D__default.default.literal("sound"),a(n.assetAliasIds)]).rest(D__default.default.string()).refine(d=>(d.length-3)%2===0)}),exports.HashtagCommands.addMapper(d=>{let m=d[2],y=d[3],_={type:"sound",operationType:"play",alias:m,url:y};return d.length>4&&(_.props=exports.HashtagCommands.convertListStringToObj(d.slice(4))),_},{name:"Play sound with source",deprecated:true,description:"**Deprecated**: use `# play sound <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nPlays a sound with an explicit source URL and optional key/value properties.\n\n```ink\n# play sound <alias> <source> [<key> <value> \u2026]\n```\n",validation:D__default.default.tuple([D__default.default.literal("play"),D__default.default.literal("sound"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string()).refine(d=>d.length>3&&(d.length-3)%2!==0)})),e){let d=function(p){let C=[],w=0,O="";for(let A of p)A.startsWith("{")?(w++,O+=A):A.endsWith("}")&&w>0?(w--,O+=A,w===0&&(C.push(O),O="")):w>0?O+=A:C.push(A);return C},m=function(p,C){switch(p){case "dissolve":case "fade":case "movein":case "moveout":case "zoomin":case "zoomout":case "pushin":case "pushout":break;default:return}let w={type:p};if(C.length>0)try{w.props=exports.HashtagCommands.convertListStringToObj(C);}catch{}return w},y=function(p,C,w){let O,A;w.length%2===0?(O=C,A=w):(O=w[0],A=w.slice(1));let N={type:p,operationType:"show",alias:C,url:O};if(A.length>0){if(A.includes("with")&&A.length>A.indexOf("with")+1){let J=A[A.indexOf("with")+1],Z=A.slice(A.indexOf("with")+2);A=A.slice(0,A.indexOf("with"));let ue=m(J,Z);ue!==void 0&&(N.transition=ue);}if(A.length>0){let J=exports.HashtagCommands.convertListStringToObj(A);"source"in J&&typeof J.source=="string"&&(N.url=J.source,delete J.source),Object.keys(J).length>0&&(N.props=J);}}return N},_=function(p,C){let w,O;C.length%2===0?(w=p,O=C):(w=C[0],O=C.slice(1));let A={type:"text",operationType:"show",alias:p,text:w};if(O.length>0){if(O.includes("with")&&O.length>O.indexOf("with")+1){let N=O[O.indexOf("with")+1],J=O.slice(O.indexOf("with")+2);O=O.slice(0,O.indexOf("with"));let Z=m(N,J);Z!==void 0&&(A.transition=Z);}O.length>0&&(A.props=exports.HashtagCommands.convertListStringToObj(O));}return A},S=function(p,C,w){let O={type:p,operationType:"remove",alias:C};if(w.includes("with")&&w.length>w.indexOf("with")+1){let A=w[w.indexOf("with")+1],N=w.slice(w.indexOf("with")+2),J=m(A,N);J!==void 0&&(O.transition=J);}return O},b=function(p,C){let w=ue=>ue.startsWith('"')&&ue.endsWith('"')||ue.startsWith("'")&&ue.endsWith("'")||ue.startsWith("`")&&ue.endsWith("`")?ue.substring(1,ue.length-1):ue,O=C.indexOf("["),A=C.indexOf("]",O+1);if(O===-1||A===-1){X.error("Show imagecontainer must have a list of image ulrs",C);return}let N=C.slice(O+1,A);if(N.length===0){X.error("Show imagecontainer must have a list of image ulrs",C);return}let J={type:"imagecontainer",operationType:"show",alias:p,urls:N.map(ue=>w(ue))},Z=C.slice(A+1);if(Z.length>0){if(Z.includes("with")&&Z.length>Z.indexOf("with")+1){let ue=Z[Z.indexOf("with")+1],an=Z.slice(Z.indexOf("with")+2);Z=Z.slice(0,Z.indexOf("with"));let Qr=m(ue,an);Qr!==void 0&&(J.transition=Qr);}Z.length>0&&(J.props=exports.HashtagCommands.convertListStringToObj(Z));}return J},g=function(p){let C=p.indexOf("]",4);if(C===-1)return;let w=p.slice(4,C),O=p.slice(C+1),A=O.indexOf("with");return A===-1?{urls:w,beforeWith:O,afterWith:[]}:{urls:w,beforeWith:O.slice(0,A),afterWith:O.slice(A+1)}};exports.HashtagCommands.addMapper(p=>({alias:p[1],type:"shake",props:exports.HashtagCommands.convertListStringToObj(p.slice(2))}),{name:"Shake",description:"Applies shake effect to a canvas alias with optional key/value parameters.\n\n```ink\n# shake <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("shake"),D__default.default.string()]).rest(D__default.default.string()).refine(p=>(p.length-2)%2===0)}),exports.HashtagCommands.addMapper(p=>{let C=p.slice(2),w=C,O=[];if(C.includes("options")){let N=C.indexOf("options");w=C.slice(0,N),O=C.slice(N+1);}return {alias:p[1],type:"animate",keyframes:exports.HashtagCommands.convertListStringToObj(w),options:exports.HashtagCommands.convertListStringToObj(O)}},{name:"Animate",description:"Animates a canvas alias with keyframes and optional options section, both in key/value pairs.\n\n```ink\n# animate <alias> [<key> <value> \u2026] [options <key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("animate"),D__default.default.string()]).rest(D__default.default.string()).refine(p=>{let C=p.slice(2),w=C.indexOf("options");if(w===-1)return C.length%2===0;if(C.lastIndexOf("options")!==w)return false;let O=C.slice(0,w),A=C.slice(w+1);return O.length%2===0&&A.length%2===0})}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("image",C,w)},{name:"Show image",description:"Shows an image canvas element with optional key/value properties and transition effect. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# show image <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n# show image <alias> source <url> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("image"),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("image",C,w)},{name:"Show image with source",deprecated:true,description:"**Deprecated**: use `# show image <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nShows an image canvas element with an explicit source URL, optional key/value properties, and transition effect.\n\n```ink\n# show image <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("image"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string())});let v=a(n.assetAliasIds);exports.HashtagCommands.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer",description:"Shows an image-container canvas element with a list of image URLs and optional key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <source1> <ursource2> \u2026 ] [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length===0&&C.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer with transition",description:"Shows an image-container canvas element with a list of image URLs, optional properties, and a transition effect.\n\n```ink\n# show imagecontainer <alias> [ <ursource1> <source2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length===1&&C.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(p=>b(p[2],d(p.slice(3))),{name:"Show imagecontainer with transition and props",description:"Shows an image-container canvas element with a list of image URLs, optional properties, a transition effect, and transition key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <url1> <url2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout <key> <value> \u2026\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(p=>{let C=g(p);return C===void 0?false:C.urls.length>0&&C.urls.every(w=>v.safeParse(w).success)&&C.afterWith.length>1&&(C.afterWith.length-1)%2===0&&C.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("video",C,w)},{name:"Show video",description:"Shows a video canvas element with optional key/value properties and transition effect. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# show video <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n# show video <alias> source <url> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("video"),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return y("video",C,w)},{name:"Show video with source",deprecated:true,description:"**Deprecated**: use `# show video <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nShows a video canvas element with an explicit source URL, optional key/value properties, and transition effect.\n\n```ink\n# show video <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("video"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2];return _(C,p.slice(3))},{name:"Show text",description:"Shows a text canvas element with optional text content, key/value properties, and transition effect.\n\n```ink\n# show text <alias> [<text>] [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return S("image",C,w)},{name:"Remove image",description:"Removes an image canvas element with an optional transition effect.\n\n```ink\n# remove image <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("image"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return S("video",C,w)},{name:"Remove video",description:"Removes a video canvas element with an optional transition effect.\n\n```ink\n# remove video <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("video"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return S("canvaselement",C,w)},{name:"Remove canvas element",description:"Removes a canvas element with an optional transition effect.\n\n```ink\n# remove canvaselement <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("canvaselement"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return S("text",C,w)},{name:"Remove text",description:"Removes a text canvas element with an optional transition effect.\n\n```ink\n# remove text <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>{let C=p[2],w=d(p.slice(3));return S("imagecontainer",C,w)},{name:"Remove imagecontainer",description:"Removes an image-container canvas element with an optional transition effect.\n\n```ink\n# remove imagecontainer <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("imagecontainer"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(()=>({type:"canvas",operationType:"clear"}),{name:"Clear canvas",description:"Removes every element currently on the canvas.\n\n```ink\n# clear canvas\n```",validation:D__default.default.tuple([D__default.default.literal("clear"),D__default.default.literal("canvas")])}),exports.HashtagCommands.addMapper(p=>({type:"image",operationType:"edit",alias:p[2],props:exports.HashtagCommands.convertListStringToObj(p.slice(3))}),{name:"Edit image",description:"Edits the properties of an image canvas element identified by its alias.\n\n```ink\n# edit image <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("image"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>({type:"imagecontainer",operationType:"edit",alias:p[2],props:exports.HashtagCommands.convertListStringToObj(p.slice(3))}),{name:"Edit imagecontainer",description:"Edits the properties of an image-container canvas element identified by its alias.\n\n```ink\n# edit imagecontainer <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("imagecontainer"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>({type:"canvaselement",operationType:"edit",alias:p[2],props:exports.HashtagCommands.convertListStringToObj(p.slice(3))}),{name:"Edit canvas element",description:"Edits the properties of a canvas element identified by its alias.\n\n```ink\n# edit canvaselement <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("canvaselement"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>({type:"video",operationType:"edit",alias:p[2],props:exports.HashtagCommands.convertListStringToObj(p.slice(3))}),{name:"Edit video",description:"Edits the properties of a video canvas element identified by its alias.\n\n```ink\n# edit video <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("video"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(p=>({type:"text",operationType:"edit",alias:p[2],props:exports.HashtagCommands.convertListStringToObj(p.slice(3))}),{name:"Edit text",description:"Edits the properties of a text canvas element identified by its alias.\n\n```ink\n# edit text <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())});}r&&(exports.HashtagCommands.addMapper(d=>({type:"input",operationType:"request"}),{name:"Request input",description:"Requests player input without any additional constraints.\n\n```ink\n# request input\n```",validation:D__default.default.tuple([D__default.default.literal("request"),D__default.default.literal("input")])}),exports.HashtagCommands.addMapper(d=>{let m={type:"input",operationType:"request"};try{let y=exports.HashtagCommands.convertListStringToObj(d.slice(2));"type"in y&&typeof y.type=="string"&&(m.valueType=y.type),"default"in y&&(m.defaultValue=y.default);}catch{}return m},{name:"Request input with params",description:"Requests player input with optional key/value parameters (e.g. type, default).\n\n```ink\n# request input <key> <value> [<key> <value> \u2026]\n# request input type number default 18\n```",validation:D__default.default.tuple([D__default.default.literal("request"),D__default.default.literal("input")]).rest(D__default.default.string()).refine(d=>d.length>2&&(d.length-2)%2===0)}));}function gb(n){Ae.translate=n;}async function yb(n,e={},t={}){let r=[];return n.labels&&Object.values(n.labels).forEach(i=>{r=r.concat(i);}),await Ae.generateJsonTranslation(r,e,{...t,operationStringConvert:exports.HashtagCommands.run})}var kp=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],Vp=["+","-","/","*","%","POW","RANDOM","L^"],Rp=["INT","FLOOR","FLOAT"];function sr(n,e){if(n.endsWith(".s"))return;if(new RegExp(/.*\.[0-9]+\..*$/).test(n)&&(n=n.split(".").filter(i=>!i.match(/^[0-9]+$/)).join("."),!n.startsWith(".")))return n.replaceAll(".","_|_");if(!new RegExp(/^\.\^.*$/).test(n)&&n.includes("g-")){let r=n.split("g-");return Zu(e)+"_|_"+"g-"+r[r.length-1]}let t=0;for(;new RegExp(/^\.\^.*$/).test(n);)t++,n=n.substring(2);if(t=t-1,new RegExp(/^\..*$/).test(n)&&e){let r=n.substring(1);return Zu(e,t)+"_|_"+r.replaceAll(".","_|_")}return n.replaceAll(".","_|_")||Zu(e,t).replaceAll(".","_|_")}function Zu(n,e=0){let t=n.split("_|_");for(;t.length>1&&e>0;)t.pop()?.includes("g-")&&e--,e--;return t.join("_|_")}var $p="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function kt(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",$p),n=n.replaceAll("\\n",`
74
- `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll($p,"\\\\"),n}var vb={version:"1.14.0"};var jp=`https://pixi-vn.com/schemas/${vb.version}/schema.json`,Lp=["==","!=","<","<=",">",">=","CONTAINS"];function un(n,e,t,r){let{functions:i}=r;n=n.map(s=>{if(typeof s=="string")switch(s){case "rnd":return "RANDOM";case "?":return "CONTAINS"}return s});let a=[];return n.forEach(s=>{if(typeof s=="string")switch(s){case "&&":case "||":if(a.length>=2){let o={type:"union",unionType:s==="&&"?"and":"or",conditions:[a[a.length-2],a[a.length-1]]};a.pop(),a.pop(),a.push(o);}break;case "!":if(a.length===0)X.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"union",unionType:"not",condition:a[a.length-1]};a[a.length-1]=o;}break;case "!?":if(a.length>1){let o={type:"union",unionType:"not",condition:{type:"compare",operator:"CONTAINS",leftValue:a[a.length-2],rightValue:a[a.length-1]}};a.pop(),a.pop(),a.push(o);}else X.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(Lp.includes(s))if(a.length<2)X.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"compare",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(Vp.includes(s))if(a.length<2)X.error("Error parsing ink file: Conditional statement is not valid",n);else {s==="L^"&&(s="INTERSECTION");let o={type:"arithmetic",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(Rp.includes(s)){let o={type:"arithmeticsingle",operator:s,leftValue:a[a.length-1]};a.pop(),a.push(o);}else s.startsWith("^")&&a.push(kt(s));}else if(typeof s=="object"&&"CNT?"in s)if(new RegExp(/.*\.[0-9]\..*/).test(s["CNT?"])){let o=s["CNT?"].split("."),u=o.pop(),l=o.pop();if(l===void 0||u===void 0){X.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let d=h.split("."),m=d[d.length-1].replaceAll(".","_|_");d.pop(),h=`${d.join(".")}.${m}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let f=sr(h,e);if(!f)return;a.push({type:"compare",leftValue:Qu(f),operator:">=",rightValue:{type:"value",value:c}});}else {let o=sr(s["CNT?"],e);if(!o)return;a.push(Qu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(Fn({key:s["VAR?"],defaultType:"storage"},t));else if(typeof s=="object"&&"f()"in s){let o=s["f()"],u=i.find(c=>c.name===o);if(!u){X.error(`Error parsing ink file: Function ${o} is not defined`,n);return}let l=[];for(let c=0;c<u.args;c++)a.length!==0&&l.push(a.pop());a.push({type:"function",functionName:o,args:l.reverse()});}else if(typeof s=="object"&&"^->"in s)s["^->"].includes("$r")||a.push(s["^->"]);else if(typeof s=="object"&&"list"in s){let o=Object.values(s.list).map(u=>u);a.push(o);}else a.push(s);}),a}function el(n,e,t,r){return un(n,e,t,r)}function Fn(n,e,t){let{key:r,defaultType:i}=n,a=e.indexOf(r);return a>=0?{type:"value",storageType:"params",storageOperationType:"get",key:a}:{type:"value",storageOperationType:"get",storageType:i,key:r}}function ai(n,e,t){let{key:r,value:i,defaultType:a,artmeticValue:s}=n,o=e.indexOf(r);if(o>=0)return [{type:"value",storageType:"params",storageOperationType:"set",key:o,value:i}];if(s){if(typeof i=="object"&&"list"in i){let u=Object.values(i.list).map(l=>l);return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:u}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}else if(typeof i=="object"){if("list"in i&&typeof i.list=="object"){if("origins"in i&&Array.isArray(i.origins)&&i.origins.length>0)return i.origins.reduce(u=>(u.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(t.enums[r])}),Object.entries(t.enums[r]).forEach(([l,c])=>{u.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${l}`,value:c});}),u),[]);{let u=new Set,l=Object.entries(i.list).reduce((c,[h,f])=>{let[d,m]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:m,value:f}),u.add(d),c},[]);return u.forEach(c=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:c,value:Object.values(t.enums[c])});}),r in t.enums?Object.entries(t.enums[r]).forEach(([c,h])=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${c}`,value:h});}):l.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(i.list)}),l}}else if(typeof i=="object"&&"VAR?"in i){if(typeof i["VAR?"]=="string"&&i["VAR?"].includes(".")){let[u,l]=i["VAR?"].split(".");if(u in t.enums&&l in t.enums[u])return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:t.enums[u][l]}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:Fn({key:i["VAR?"],defaultType:"storage"},e)}]}}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}function Qu(n){return {type:"value",storageType:"label",storageOperationType:"get",label:n}}function tl(n,e){return e||new RegExp(`${"_|_".replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c-\\d+$`).test(n)?"call":"jump"}function Ns(n,e){if(e){if(typeof e=="string")e.startsWith("^")&&n.push(kt(e));else if(typeof e=="object"&&"type"in e)switch(e.type){case "value":case "function":console.warn("Warning: trying to add a value or function operation as text. This is likely a mistake, so it will be ignored.");break;default:n.push(e);}}}function nl(n,e,t,r,i,a={}){let{isNewLine:s=true,isHashtagScript:o=false,isThreads:u=false}=a;return bb(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function bb(n,e,t,r,i,a){if(!e)return;let{isNewLine:s,isHashtagScript:o=false,isThreads:u}=a;if(o){if(Array.isArray(e)&&e.length>0){let l={goNextStep:true},c=[];try{if(e.length===1&&typeof e[0]=="string"){let h=e[0],f=exports.HashtagCommands.convertTagTolist(h),d=exports.HashtagCommands.convertOperation(f,l,{silent:!0});d&&(d.$origin=h,c.push(d));}}catch{}c.length===0&&c.push({type:"operationtoconvert",values:e}),n.push({...l,operations:c});}}else if(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"){if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&!l.labelToOpen&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}typeof e=="string"?n.push(_b(kt(e),r.characterIds)):n.push({dialogue:e});}else if(typeof e=="string"){if(e==="end")n.push({end:"game_end"});else if(e==="done")n.push({end:"label_end",goNextStep:true});else if(e==="<>")if(n.length>0){let l=n[n.length-1];l.glueEnabled=true,l.labelToOpen||(l.goNextStep=!s),n[n.length-1]=l;}else n.push({glueEnabled:true,goNextStep:true});}else if(typeof e=="object"){if("type"in e)switch(e.type){case "value":e.storageOperationType==="set"?(typeof e.value=="string"&&e.value.startsWith("^")&&(e.value=kt(e.value)),n.push({goNextStep:true,operations:[e]})):console.warn("Warning: trying to add a value get operation as step. This is likely a mistake, so it will be ignored.");break;case "function":n.push({goNextStep:true,operations:[e]});break;default:if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}n.push({conditionalStep:e});}else if("->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let c=n[n.length-1];c.labelToOpen||(c.goNextStep=true),n[n.length-1]=c;}if(e.params&&e.params.length===0&&delete e.params,e.var)n.push({labelToOpen:{label:Fn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=sr(e["->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:tl(c,u),params:e.params},glueEnabled:l});}}else if("->t->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let h=n[n.length-1];h.labelToOpen||(h.goNextStep=true),n[n.length-1]=h;}e.params&&e.params.length===0&&delete e.params;let c=sr(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function _b(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||characters.RegisteredCharacters.has(i))&&(t=i,n=a);}return t?{dialogue:{character:t,text:n}}:{dialogue:n}}function rl(n,e,t,r=true,i=false){return Sb(n,e,t,r,i)}function Sb(n,e,t,r,i=false){e&&(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"?typeof e=="string"?n.push(kt(e)):n.push(e):typeof e=="object"&&"type"in e&&n.push(e));}function Fs(n,e,t,r){if(n.length===0){X.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=un(n,e,t,r);if(i.length===1){let a=i[0];return a&&typeof a=="object"&&"type"in a?{type:"value",storageType:"logic",storageOperationType:"get",operation:a}:a}}function ar(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(d=>{d==="%"&&(u="loop"),d==="seq"&&(u="random"),d==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(d=>{let m=h[d];if(Array.isArray(m)&&m.length>3){m=m.slice(1,m.length-2);let y=[];ln(m,r,i,y,e,e,t,or,s,true,a),y.length===1?o.push(y[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:y});}else Array.isArray(m)&&m.length===3&&(c=false);}),u==="sequential"?{type:"stepswitch",elements:o,choiceType:u,end:c?"lastItem":void 0,nestedId:s}:l&&u==="random"?{type:"stepswitch",elements:o,choiceType:"sequentialrandom",end:c?"lastItem":void 0,nestedId:s}:{type:"stepswitch",elements:o,choiceType:u}}function ln(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,f=[],d=false,m=false,y=false,_=[],S=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),delete t.preDialog[e]),n.includes("visit")){let g=ar(n,a,s,e,t,c,u);g&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}));return}let b=n[0];if(b&&typeof b=="object"&&"temp="in b){for(;n[0]&&typeof n[0]=="object"&&"temp="in n[0];)c.push(n[0]["temp="]),n.shift();c=c.reverse();}if(n.forEach((g,v)=>{if(m){if(typeof g=="string"&&g==="/#"){let p=[];ln(S,e,t,p,rl,rl,s,o,u,l),i(r,p,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),m=false,S=[];}else S.push(g);return}else if(h)if(Array.isArray(g))f.push(g);else if(g&&typeof g=="object")"CNT?"in g?v>0&&n[v-1]==="ev"?(d=true,_.push(g)):d?_.push(g):(f.push(g),l=false):"VAR="in g||"temp="in g?ai({key:"VAR="in g?g["VAR="]:g["temp="],value:n[v-1],defaultType:"VAR="in g?"storage":"tempstorage"},c,t).forEach(C=>{if(C.value&&typeof C.value=="string"&&C.value==="/str"&&(C.value=n[v-2]),C.value&&typeof C.value=="object"&&"^->"in C.value&&(C.value=C.value["^->"]),f.length>1){let w=Fs(f,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"&&(C.value=w.operation);}(typeof C.key!="string"||!C.key.includes("$r"))&&(i(r,C,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=true);}):"VAR?"in g?f.push(g):"^->"in g?g["^->"].includes("$r")||f.push(g):("f()"in g||"list"in g&&typeof g.list=="object")&&f.push(g);else switch(g){case "/ev":d&&_.push(g),h=false,f.push(g);break;case "out":if(f.length>0){let p=f[f.length-1];if(p&&typeof p=="object"&&"VAR?"in p){f.pop();let C=Fn({key:p["VAR?"],defaultType:"storage"},c);i(r,C,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y});}else {let C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)C.push(f.pop());C=C.reverse();let w=Fs(C,e,c,t);f=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"?i(r,{storageOperationType:"get",storageType:"logic",operation:w.operation,type:"value"},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),w=`^${w}`,i(r,w,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}));}l=false;}break;case "pop":{let p=f[f.length-1];if(p&&typeof p=="object"&&"f()"in p){let C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)C.push(f.pop());C=C.reverse();let w=un(C,e,c,t);f=[],w.forEach(O=>{O&&typeof O=="object"&&"type"in O&&O.type==="function"?i(r,O,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}):X.warn("Unhandled case: value is not a function",O);}),l=false;}else f.push(g);return}default:f.push(g);}else if(typeof g=="string")if(g.startsWith("^"))i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="ev")h=true;else if(g===`
75
- `)l=true;else if(g==="done"||g==="end")i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="<>")i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;else if(g==="nop"&&d){let p=qp(_,a,s,e,t,c,u);p&&i(r,p,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),d=false,_=[];}else g==="#"?m=true:g==="thread"&&(y=true);else if(Array.isArray(g))if(d)_.push(g);else if(g.length>1&&typeof g[g.length-2]=="object"&&g[g.length-2]&&"c"in g[g.length-2]&&typeof g[g.length-1]=="object"&&g[g.length-1]&&"b"in g[g.length-1]){f.pop();let p=[],C=[];for(;f.length>0&&f[f.length-1]!=="/ev";)p.push(f.pop());_=[..._,...p.reverse()],d=true,C.push(g.pop()),C.push(g.pop()),_=[..._,...g],_.push(C);}else if(g.length>1&&typeof g[g.length-1]=="object"&&g[g.length-1]&&"#n"in g[g.length-1]){let p=g.pop();if(!p){X.error("Error parsing ink file: el is undefined");return}let C=p["#n"];delete p["#n"],g.push(p),i(r,{"->":e?e+"_|_"+C:C},e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),s({[C]:g},e,t);}else ln(g,e,t,r,i,a,s,o,u,l,c);else if(g&&typeof g=="object")if("->"in g&&typeof g["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(g["->"])){let p=[];f.length>0&&(p=el(["ev",...f],e,c,t)),g.params=p,i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;}else if("->t->"in g&&typeof g["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(g["->t->"])){let p=[];f.length>0&&(p=el(["ev",...f],e,c,t)),g.params=p,i(r,g,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y}),l=false;}else if("*"in g&&typeof g["*"]=="string")g["*"].includes("c")&&(f.push(g),l=false);else if("s"in g&&Array.isArray(g.s))f.push(g),l=false;else if("CNT?"in g)f.push(g),l=false;else if("VAR="in g||"temp="in g){let p="VAR="in g?g["VAR="]:g["temp="],C,w=[];if(p!=="$r"){for(f.pop(),f[f.length-1]==="/ev"&&f.pop();f.length>0&&f[f.length-1]!=="/ev";)w.push(f.pop());w=w.reverse(),C=Fs(w,e,c,t),f=[],ai({key:p,value:C,defaultType:"VAR="in g?"storage":"tempstorage",artmeticValue:true},c,t).forEach(A=>{(A.value!==void 0||A.value!==null)&&i(r,A,e,t,c,{isNewLine:l,isHashtagScript:m,isThreads:y});}),l=false;}}else s(g,e,t);}),o(f,r,e,t,c),e.includes("_|_")&&r.length===2){let g=r[0],v=r[1];g&&v&&typeof g=="object"&&"dialogue"in g&&typeof v=="object"&&"labelToOpen"in v&&g.dialogue===" "&&v.labelToOpen&&(r.shift(),delete v.glueEnabled,r[0]=v);}}function sl(n,e,t,r,i,a){if(e.length===0)return;let s=un(e,r,t,i);if(s.length===1){let o={type:"ifelse",condition:s[0],then:n,else:a};return o.else||delete o.else,o}else if(s.length>1){let o={type:"ifelse",condition:{type:"union",unionType:"and",conditions:s},then:n,else:a};return o.else||delete o.else,o}}function qp(n,e,t,r,i,a,s=void 0){if(n.length===0){X.error("Error parsing ink file: Conditional statement is not valid",n);return}let o=[],u=[];if(n.forEach(h=>{Array.isArray(h)?u.push(h):typeof h=="string"&&h==="du"?i.du?o.push(i.du):i.du=o[o.length-1]:(typeof h!="string"||h!=="/ev")&&o.push(h);}),u.length===0){X.error("Error parsing ink file: Conditional statement is not valid",u);return}let l=il(u[0],e,t,`${r}${"_|_"}then`,i,a,`${s||""}then`),c;return u.length===2?c=il(u[1],e,t,`${r}${"_|_"}else`,i,a,`${s||""}else`):u.length>2?(u.shift(),u.push("nop"),u=[{b:u}],c=il(u,e,t,r,i,a,`${s||""}else`)):c=void 0,i.du=void 0,sl(l,o,a,r,i,c)}function il(n,e,t,r,i,a,s=void 0){let o=[];for(let l of n)typeof l=="object"&&"b"in l&&(l.b=l.b.filter(c=>c!==null&&!(typeof c=="object"&&"->"in c&&new RegExp(/.*\.[0-9]/).test(c["->"]))),ln(l.b,r,i,o,e,e,t,or,s,true,a));return o.length===1?o[0]:{type:"resulttocombine",combine:"cross",secondConditionalItem:o}}function al(n="",e=""){let t=Array.isArray(n)?n:[n],r=Array.isArray(e)?e:[e];return [...new Set([...t,...r])]}function or(n,e,t,r,i){if(n.length>0){let a={};Bp(n,a,i,r);for(let[s,o]of Object.entries(a)){let u=t+"_|_"+s,l={text:o.text.length===1?o.text[0]:o.text,label:u,props:{},type:tl(u,false),oneTime:o.onetime};o.text.length===0&&(l.onlyHaveNoChoice=true,l.autoSelect=true),l.oneTime===false&&delete l.oneTime;let c=sl(l,o.conditions,i,t,r)||l,h=e[e.length-1];if(typeof h=="object"&&h&&"type"in h&&(h={conditionalStep:h}),e.length>0&&typeof h=="object"&&h&&"choices"in h&&h.choices){let f=h.choices;f&&Array.isArray(f)?f.push(c):X.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,f),h.choices=f.sort((d,m)=>{try{let y=d.label.split("."),_=y[y.length-1].replaceAll(".","_|_"),S=m.label.split("."),b=S[S.length-1].replaceAll(".","_|_");if(_.includes("c-")&&b.includes("c-")){let g=_.split("c-")[1],v=Number(g),p=b.split("c-")[1],C=Number(p);return v-C}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function Bp(n,e,t,r,i){let a=[],s="",o="",u=false,l=[];for(let c=0;c<n.length;c++){let h=n[c];if(typeof h=="string")h.startsWith("^")?a.push(kt(h)):kp.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let f=ar(h,Ns,(d,m,y)=>{},i,r,t);a.push(f);}else if(h&&typeof h=="object")if("*"in h&&typeof h["*"]&&typeof h["*"]=="string")h["*"].includes("c")&&(s=`c${h["*"].split("c")[1]}`,h.flg&16&&(u=true));else if("s"in h&&Array.isArray(h.s)){let f=Wp(h.s),d=h.s.includes("<>");f&&(i&&e[i]?(e[i].preDialog={text:f,glue:d},e[i].text=al(f,e[i].text)):(a.push(f),o=f));}else ("CNT?"in h||"VAR?"in h)&&l.push(h);else l.push(h);if(s){e[s]?e[s].text=al(a,e[s].text):e[s]={text:a,onetime:u,conditions:l},o&&(e[s].preDialog={text:o,glue:false});let f=n.slice(c+1);Bp(f,e,t,r,s);return}}}function Wp(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return kt(e)}else if(Array.isArray(e)){let t=Wp(e);if(t)return t}}var ol;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:f}=s,d={$schema:jp};if(d.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:f}),d.labels&&Ps in d.labels){let m=d.labels[Ps];delete d.labels[Ps],m.forEach(y=>{y.operations&&(d.initialOperations=d.initialOperations?[...d.initialOperations,...y.operations]:[...y.operations]);});}if(d.labels&&xn in d.labels){let m=d.labels[xn];delete d.labels[xn],m.forEach(y=>{y.operations&&(d.initialOperations=d.initialOperations?[...d.initialOperations,...y.operations]:[...y.operations]);});}return o.forEach(m=>{d.labels&&m in d.labels&&delete d.labels[m];}),u.forEach(m=>{d.initialOperations&&(d.initialOperations=d.initialOperations.filter(y=>!(y.type==="value"&&y.key===m)));}),d}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){X.error("Error parsing ink file",o);}}function t(a,s,o){for(let u of a)if(u)if(Array.isArray(u))if(u.includes("visit")){let l=ar(u,Ns,(c,h,f)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[xn]||(s[xn]=[]),s[xn].push({operations:ai({defaultType:"storage",key:u["VAR="],value:o.externalSwitch},[],o)})),r(u,s,"",o));}function r(a,s,o="",u){if(a!==null){for(let[l,c]of Object.entries(a))if(Array.isArray(c)){let h=[],f={},d=(o?o+"_|_":"")+l;ln(c,d,u,h,nl,nl,(m,y,_)=>{r(m,f,y,_);},or);for(let[m,y]of Object.entries(f))s[m]=y;h.length>0&&(s[d]=h);}}}})(ol||={});var Jf=ei(by()),U0=ei(Xy()),K0=ei(M0()),X0=ei(Pr()),mN=/(?:^|<>)\s*#\s*([^\r\n]+)/g,gN=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,yN=new Set(["DONE","END"]),vN="_|_",G0=new Map;function Y0(n,e){let t=JSON.stringify([e,n]),r=G0.get(t);if(r)return r;let i=new RegExp(n,e);return G0.set(t,i),i}function Ss(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(s=>Ss(n,s));let i=t.oneOf;if(Array.isArray(i))return i.some(s=>Ss(n,s));let a=t.allOf;if(Array.isArray(a))return a.every(s=>Ss(n,s));if(typeof t.const=="string")return n===t.const;if(Array.isArray(t.enum))return t.enum.some(s=>typeof s=="string"&&s===n);if(t.type!=="string"||typeof t.minLength=="number"&&n.length<t.minLength||typeof t.maxLength=="number"&&n.length>t.maxLength)return false;if(typeof t.pattern=="string")try{if(!Y0(t.pattern,"").test(n))return !1}catch{return false}return true}function $u(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(o=>$u(n,o));let i=t.oneOf;if(Array.isArray(i))return i.some(o=>$u(n,o));let a=t.allOf;if(Array.isArray(a))return a.every(o=>$u(n,o));if(t.type!=="array"||typeof t.minItems=="number"&&n.length<t.minItems||typeof t.maxItems=="number"&&n.length>t.maxItems)return false;let s=Array.isArray(t.prefixItems)?t.prefixItems:[];if(n.length<s.length)return false;for(let o=0;o<s.length;o++)if(!Ss(n[o],s[o]))return false;return n.length===s.length?true:t.items===false||typeof t.items>"u"?false:t.items===true?true:n.slice(s.length).every(o=>Ss(o,t.items))}function Wf(n,e){if(e.type==="regexp")try{let t=Y0(e.source,e.flags);return t.lastIndex=0,t.test(n.join(" "))}catch{return false}return e.type==="literal"?n.join(" ")===e.value:$u(n,e.schema)}function ju(n){if(!n||typeof n!="object")return [];let e=n;if(Array.isArray(e.anyOf))return e.anyOf.flatMap(ju);if(Array.isArray(e.oneOf))return e.oneOf.flatMap(ju);if(Array.isArray(e.allOf)){let t={};for(let r of e.allOf)r&&typeof r=="object"&&Object.assign(t,r);return ju(t)}return e.type==="array"&&Array.isArray(e.prefixItems)?[e]:[]}function J0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-Z0(n,e)/t)}function CN(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*J0(n,t.const)};if(Array.isArray(t.enum))return {weight:2,matched:2*(n===void 0?0:Math.max(0,...t.enum.filter(i=>typeof i=="string").map(i=>J0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function bN(n,e){let t=Array.isArray(e.prefixItems)?e.prefixItems:[],r=Math.min(t.length,n.length),i=0,a=0,s=false;for(let o=0;o<r;o++){let u=CN(n[o],t[o]);i+=u.weight,a+=u.matched,u.weight>1&&(s=true);}return {score:i===0?0:a/i,hasDiscriminant:s}}var _N=.8,z0=new Map;function SN(n){let e=JSON.stringify(n),t=z0.get(e);if(t)return t;let r=new U0.default({strict:false,allErrors:true}).compile(n);return z0.set(e,r),r}function EN(n){if("items"in n)return n;let e=Array.isArray(n.prefixItems)?n.prefixItems.length:0;return {...n,minItems:e,maxItems:e,items:false}}function wN(n,e){let[t]=Wu(n.instancePath);if(t!==void 0&&/^\d+$/.test(t)){let r=Number(t);if(r<e.length)return e[r]}return zf(n)}function DN(n){return n.keyword==="const"?`must be "${n.params.allowedValue}"`:n.keyword==="enum"?`must be one of ${(n.params.allowedValues??[]).map(t=>`"${t}"`).join(", ")}`:n.message??"invalid value"}function Mf(n){let e=n.split(/\r?\n/),t=[];for(let r=0;r<e.length;r++){let i=e[r];for(let a of i.matchAll(mN)){let s=(a[1]??"").trim();if(!s)continue;let o=exports.HashtagCommands.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function zf(n){return n.keyword==="required"&&typeof n.params?.missingProperty=="string"?n.params.missingProperty:n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"?n.params.additionalProperty:n.instancePath.split("/").pop()||"(root)"}function Z0(n,e){let t=n.length+1,r=e.length+1,i=Array.from({length:t},(a,s)=>[s,...Array(r-1).fill(0)]);for(let a=1;a<r;a++)i[0][a]=a;for(let a=1;a<t;a++)for(let s=1;s<r;s++){let o=n[a-1]===e[s-1]?0:1;i[a][s]=Math.min(i[a-1][s]+1,i[a][s-1]+1,i[a-1][s-1]+o);}return i[t-1][r-1]}function AN(n,e){let t,r=1/0;for(let a of e){let s=Z0(n,a);s<r&&(r=s,t=a);}let i=Math.max(1,Math.floor(n.length/3));return r<=i?t:void 0}function PN(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&AN(t,e),i=r?` (did you mean "${r}"?)`:"";return `has an unrecognised property "${t}"${i}`}return n.message??"invalid value"}function Wu(n){return n.split("/").filter(Boolean).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function ON(n,e){let t=n,r,i=a=>{a&&typeof a=="object"&&typeof a.$origin=="string"&&(r=a.$origin);};i(t);for(let a of Wu(e)){if(t===null||typeof t!="object")break;t=t[a],i(t);}return r}function xN(n,e){let t=Wu(e);for(let r=t.length;r>=0;r--){let i=t.slice(0,r),a=n;for(let s of i){if(a===null||typeof a!="object"){a=void 0;break}a=a[s];}if(a&&typeof a=="object"&&!Array.isArray(a)&&typeof a.type=="string")return {path:`/${i.map(o=>o.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}`,node:a}}}function qu(n,e,t=new Set){if(!n||typeof n!="object")return n;let r=n.$ref;if(typeof r!="string")return n;let i=r.match(/^#\/definitions\/([^/]+)$/);return !i?.[1]||t.has(i[1])||!(i[1]in e)?{}:(t.add(i[1]),qu(e[i[1]],e,t))}function Bu(n,e){let t=qu(n,e);if(!t||typeof t!="object")return;let r=t;if(!(r.anyOf||r.oneOf)){if(Array.isArray(r.allOf)){let i={properties:{},required:[]};for(let a of r.allOf){let s=Bu(a,e);if(!s)return;Object.assign(i.properties,s.properties),i.required.push(...s.required);}return i}return {properties:r.properties??{},required:r.required??[]}}}function H0(n,e){if(!n||typeof n!="object")return true;let t=n;return "const"in t?t.const===e:Array.isArray(t.enum)?t.enum.includes(e):true}function TN(n,e){let t=n.definitions??{},r=[];for(let[i,a]of Object.entries(t)){let s=Bu(a,t);if(!s)continue;let o=s.properties.type;o&&typeof o=="object"&&("const"in o||Array.isArray(o.enum))&&H0(o,e.type)&&H0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function NN(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new Jf.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function FN(n,e,t){let r=n.definitions??{},i=qu(r[e],r);for(let a of Wu(t)){let o=Bu(i,r)?.properties[a];if(o===void 0)return [];i=qu(o,r);}return Object.keys(Bu(i,r)?.properties??{})}function Lu(n){let e=n.map(o=>o.instancePath),t=o=>e.some(u=>u!==o&&u.startsWith(`${o}/`)),r=n.filter(o=>!t(o.instancePath)),i=new Map;for(let o of r){let u=i.get(o.instancePath)??[];u.push(o),i.set(o.instancePath,u);}let a=[];for(let o of i.values()){let u=o.filter(l=>l.keyword!=="anyOf"&&l.keyword!=="oneOf");a.push(...u.length>0?u:o);}let s=new Set;return a.filter(o=>{let u=`${zf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function Gf(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:zf(r),message:PN(r,t?.(r)),origin:ON(e,r.instancePath)}))}function IN(n,e,t){let r=n.map(c=>c.instancePath),i=c=>r.some(h=>h!==c&&h.startsWith(`${c}/`)),a=n.filter(c=>!i(c.instancePath)),s=t&&typeof t=="object"?t:void 0,o=new Map,u=[];for(let c of a){let h=s?xN(e,c.instancePath):void 0;if(!h){u.push(c);continue}let f=o.get(h.path);f?f.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=Gf(Lu(u),e);for(let[c,h]of o){let f=s?TN(s,h.node):[],d=f.length===1?f[0]:void 0;if(!d||!s){l.push(...Gf(Lu(h.errors),e));continue}let y=Lu(NN(s,d,h.node)).map(_=>({..._,instancePath:`${c}${_.instancePath}`}));l.push(...Gf(y,e,_=>FN(s,d,_.instancePath.slice(c.length))));}return l}var Hf;(h=>{function n(f,d={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let m=[];try{return {json:new K0.Compiler(f,{errorHandler:(b,g)=>{let v=b.replace(/^[A-Z]+: line \d+: ?/,""),p=b.match(/line (\d+)/);m.push({message:v,type:g,line:p?Number(p[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:b=>b,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:m}}catch{let _=false,S={...d,textSource:f};return e(m,()=>{_=true;},S),_?n(S.textSource,d):{issues:m}}}h.compile=n;function e(f,d,m){let{functions:y,initialVarsToRemove:_,labelToRemove:S}=m,b=f.find(g=>g.type===X0.ErrorType.Error);if(b){if(b.message.includes("Divert target not found")){let g=b.message.match(/Divert target not found: '-> (\w+)'/);if(g?.[1]){let v=g[1],p=`
73
+ \`\`\``,validation:D__default.default.union([D__default.default.tuple([D__default.default.enum(["load","lazyload"]),D__default.default.literal("assets")]).rest(a(n.assetAliasIds)),D__default.default.tuple([D__default.default.enum(["load","lazyload"]),D__default.default.literal("bundle")]).rest(a(n.bundleIds))])}),t&&(exports.HashtagCommands.addMapper(f=>({type:"all",operationType:f[0]}),{name:"Pause/Resume/Stop all sounds",description:"Pauses, resumes, or stops all active sounds at once.\n\n```ink\n# pause all sounds\n# resume all sounds\n# stop all sounds\n```",validation:D__default.default.tuple([D__default.default.enum(["pause","resume","stop"]),D__default.default.literal("all"),D__default.default.enum(["sounds","sound"])])}),exports.HashtagCommands.addMapper(f=>({type:"sound",operationType:"pause",alias:f[2]}),{name:"Pause sound",description:"Pauses the sound identified by its alias.\n\n```ink\n# pause sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("pause"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"channel",operationType:"pause",alias:f[2]}),{name:"Pause channel",description:"Pauses the audio channel identified by its alias.\n\n```ink\n# pause channel <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("pause"),D__default.default.literal("channel"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"sound",operationType:"resume",alias:f[2]}),{name:"Resume sound",description:"Resumes the sound identified by its alias.\n\n```ink\n# resume sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("resume"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"channel",operationType:"resume",alias:f[2]}),{name:"Resume channel",description:"Resumes the audio channel identified by its alias.\n\n```ink\n# resume channel <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("resume"),D__default.default.literal("channel"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"sound",operationType:"stop",alias:f[2]}),{name:"Stop sound",description:"Stops the sound identified by its alias.\n\n```ink\n# stop sound <alias>\n```",validation:D__default.default.tuple([D__default.default.literal("stop"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"sound",operationType:"stop",alias:f[2]}),{name:"Remove sound",description:"Removes (stops) the sound identified by its alias.\n\n```ink\n# remove sound <alias>\n```",deprecated:true,validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("sound"),D__default.default.string()])}),exports.HashtagCommands.addMapper(f=>({type:"sound",operationType:"edit",alias:f[2],props:exports.HashtagCommands.convertListStringToObj(f.slice(3))}),{name:"Edit sound",description:"Edits the properties of a sound identified by its alias.\n\n```ink\n# edit sound <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("sound"),D__default.default.string()]).rest(D__default.default.string()).refine(f=>(f.length-3)%2===0)}),exports.HashtagCommands.addMapper(f=>{let g=f[2],y={type:"sound",operationType:"play",alias:g,url:g};if(f.length>3){let C=exports.HashtagCommands.convertListStringToObj(f.slice(3));"source"in C&&typeof C.source=="string"&&(y.url=C.source,delete C.source),Object.keys(C).length>0&&(y.props=C);}return y},{name:"Play sound",description:"Plays a sound using its alias as the URL, with optional key/value properties. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# play sound <alias> [<key> <value> \u2026]\n# play sound <alias> source <url> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("play"),D__default.default.literal("sound"),a(n.assetAliasIds)]).rest(D__default.default.string()).refine(f=>(f.length-3)%2===0)}),exports.HashtagCommands.addMapper(f=>{let g=f[2],y=f[3],C={type:"sound",operationType:"play",alias:g,url:y};return f.length>4&&(C.props=exports.HashtagCommands.convertListStringToObj(f.slice(4))),C},{name:"Play sound with source",deprecated:true,description:"**Deprecated**: use `# play sound <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nPlays a sound with an explicit source URL and optional key/value properties.\n\n```ink\n# play sound <alias> <source> [<key> <value> \u2026]\n```\n",validation:D__default.default.tuple([D__default.default.literal("play"),D__default.default.literal("sound"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string()).refine(f=>f.length>3&&(f.length-3)%2!==0)})),e){let f=function(m){let b=[],w=0,P="";for(let O of m)O.startsWith("{")?(w++,P+=O):O.endsWith("}")&&w>0?(w--,P+=O,w===0&&(b.push(P),P="")):w>0?P+=O:b.push(O);return b},g=function(m,b){switch(m){case "dissolve":case "fade":case "movein":case "moveout":case "zoomin":case "zoomout":case "pushin":case "pushout":break;default:return}let w={type:m};if(b.length>0)try{w.props=exports.HashtagCommands.convertListStringToObj(b);}catch{}return w},y=function(m,b,w){let P,O;w.length%2===0?(P=b,O=w):(P=w[0],O=w.slice(1));let k={type:m,operationType:"show",alias:b,url:P};if(O.length>0){if(O.includes("with")&&O.length>O.indexOf("with")+1){let J=O[O.indexOf("with")+1],ie=O.slice(O.indexOf("with")+2);O=O.slice(0,O.indexOf("with"));let ue=g(J,ie);ue!==void 0&&(k.transition=ue);}if(O.length>0){let J=exports.HashtagCommands.convertListStringToObj(O);"source"in J&&typeof J.source=="string"&&(k.url=J.source,delete J.source),Object.keys(J).length>0&&(k.props=J);}}return k},C=function(m,b){let w,P;b.length%2===0?(w=m,P=b):(w=b[0],P=b.slice(1));let O={type:"text",operationType:"show",alias:m,text:w};if(P.length>0){if(P.includes("with")&&P.length>P.indexOf("with")+1){let k=P[P.indexOf("with")+1],J=P.slice(P.indexOf("with")+2);P=P.slice(0,P.indexOf("with"));let ie=g(k,J);ie!==void 0&&(O.transition=ie);}P.length>0&&(O.props=exports.HashtagCommands.convertListStringToObj(P));}return O},_=function(m,b,w){let P={type:m,operationType:"remove",alias:b};if(w.includes("with")&&w.length>w.indexOf("with")+1){let O=w[w.indexOf("with")+1],k=w.slice(w.indexOf("with")+2),J=g(O,k);J!==void 0&&(P.transition=J);}return P},v=function(m,b){let w=ue=>ue.startsWith('"')&&ue.endsWith('"')||ue.startsWith("'")&&ue.endsWith("'")||ue.startsWith("`")&&ue.endsWith("`")?ue.substring(1,ue.length-1):ue,P=b.indexOf("["),O=b.indexOf("]",P+1);if(P===-1||O===-1){X.error("Show imagecontainer must have a list of image ulrs",b);return}let k=b.slice(P+1,O);if(k.length===0){X.error("Show imagecontainer must have a list of image ulrs",b);return}let J={type:"imagecontainer",operationType:"show",alias:m,urls:k.map(ue=>w(ue))},ie=b.slice(O+1);if(ie.length>0){if(ie.includes("with")&&ie.length>ie.indexOf("with")+1){let ue=ie[ie.indexOf("with")+1],an=ie.slice(ie.indexOf("with")+2);ie=ie.slice(0,ie.indexOf("with"));let Qr=g(ue,an);Qr!==void 0&&(J.transition=Qr);}ie.length>0&&(J.props=exports.HashtagCommands.convertListStringToObj(ie));}return J},d=function(m){let b=m.indexOf("]",4);if(b===-1)return;let w=m.slice(4,b),P=m.slice(b+1),O=P.indexOf("with");return O===-1?{urls:w,beforeWith:P,afterWith:[]}:{urls:w,beforeWith:P.slice(0,O),afterWith:P.slice(O+1)}};exports.HashtagCommands.addMapper(m=>({alias:m[1],type:"shake",props:exports.HashtagCommands.convertListStringToObj(m.slice(2))}),{name:"Shake",description:"Applies shake effect to a canvas alias with optional key/value parameters.\n\n```ink\n# shake <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("shake"),D__default.default.string()]).rest(D__default.default.string()).refine(m=>(m.length-2)%2===0)}),exports.HashtagCommands.addMapper(m=>{let b=m.slice(2),w=b,P=[];if(b.includes("options")){let k=b.indexOf("options");w=b.slice(0,k),P=b.slice(k+1);}return {alias:m[1],type:"animate",keyframes:exports.HashtagCommands.convertListStringToObj(w),options:exports.HashtagCommands.convertListStringToObj(P)}},{name:"Animate",description:"Animates a canvas alias with keyframes and optional options section, both in key/value pairs.\n\n```ink\n# animate <alias> [<key> <value> \u2026] [options <key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("animate"),D__default.default.string()]).rest(D__default.default.string()).refine(m=>{let b=m.slice(2),w=b.indexOf("options");if(w===-1)return b.length%2===0;if(b.lastIndexOf("options")!==w)return false;let P=b.slice(0,w),O=b.slice(w+1);return P.length%2===0&&O.length%2===0})}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return y("image",b,w)},{name:"Show image",description:"Shows an image canvas element with optional key/value properties and transition effect. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# show image <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n# show image <alias> source <url> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("image"),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return y("image",b,w)},{name:"Show image with source",deprecated:true,description:"**Deprecated**: use `# show image <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nShows an image canvas element with an explicit source URL, optional key/value properties, and transition effect.\n\n```ink\n# show image <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("image"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string())});let S=a(n.assetAliasIds);exports.HashtagCommands.addMapper(m=>v(m[2],f(m.slice(3))),{name:"Show imagecontainer",description:"Shows an image-container canvas element with a list of image URLs and optional key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <source1> <ursource2> \u2026 ] [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(m=>{let b=d(m);return b===void 0?false:b.urls.length>0&&b.urls.every(w=>S.safeParse(w).success)&&b.afterWith.length===0&&b.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(m=>v(m[2],f(m.slice(3))),{name:"Show imagecontainer with transition",description:"Shows an image-container canvas element with a list of image URLs, optional properties, and a transition effect.\n\n```ink\n# show imagecontainer <alias> [ <ursource1> <source2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(m=>{let b=d(m);return b===void 0?false:b.urls.length>0&&b.urls.every(w=>S.safeParse(w).success)&&b.afterWith.length===1&&b.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(m=>v(m[2],f(m.slice(3))),{name:"Show imagecontainer with transition and props",description:"Shows an image-container canvas element with a list of image URLs, optional properties, a transition effect, and transition key/value properties.\n\n```ink\n# show imagecontainer <alias> [ <url1> <url2> \u2026 ] [<key> <value> \u2026] with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout <key> <value> \u2026\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("imagecontainer"),D__default.default.string(),D__default.default.literal("[")]).rest(D__default.default.string()).refine(m=>{let b=d(m);return b===void 0?false:b.urls.length>0&&b.urls.every(w=>S.safeParse(w).success)&&b.afterWith.length>1&&(b.afterWith.length-1)%2===0&&b.beforeWith.length%2===0})}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return y("video",b,w)},{name:"Show video",description:"Shows a video canvas element with optional key/value properties and transition effect. Pass `source <value>` among the key/value properties to use a different URL than the alias.\n\n```ink\n# show video <alias> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n# show video <alias> source <url> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("video"),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return y("video",b,w)},{name:"Show video with source",deprecated:true,description:"**Deprecated**: use `# show video <alias> source <url> [<key> <value> \u2026]` instead, passing the URL as a `source` key/value property rather than as a positional argument.\n\nShows a video canvas element with an explicit source URL, optional key/value properties, and transition effect.\n\n```ink\n# show video <alias> <source> [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("video"),D__default.default.string(),a(n.assetAliasIds)]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2];return C(b,m.slice(3))},{name:"Show text",description:"Shows a text canvas element with optional text content, key/value properties, and transition effect.\n\n```ink\n# show text <alias> [<text>] [<key> <value> \u2026] [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("show"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return _("image",b,w)},{name:"Remove image",description:"Removes an image canvas element with an optional transition effect.\n\n```ink\n# remove image <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("image"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return _("video",b,w)},{name:"Remove video",description:"Removes a video canvas element with an optional transition effect.\n\n```ink\n# remove video <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("video"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return _("canvaselement",b,w)},{name:"Remove canvas element",description:"Removes a canvas element with an optional transition effect.\n\n```ink\n# remove canvaselement <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("canvaselement"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return _("text",b,w)},{name:"Remove text",description:"Removes a text canvas element with an optional transition effect.\n\n```ink\n# remove text <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>{let b=m[2],w=f(m.slice(3));return _("imagecontainer",b,w)},{name:"Remove imagecontainer",description:"Removes an image-container canvas element with an optional transition effect.\n\n```ink\n# remove imagecontainer <alias> [with dissolve|fade|movein|moveout|zoomin|zoomout|pushin|pushout [<key> <value> \u2026]]\n```",validation:D__default.default.tuple([D__default.default.literal("remove"),D__default.default.literal("imagecontainer"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(()=>({type:"canvas",operationType:"clear"}),{name:"Clear canvas",description:"Removes every element currently on the canvas.\n\n```ink\n# clear canvas\n```",validation:D__default.default.tuple([D__default.default.literal("clear"),D__default.default.literal("canvas")])}),exports.HashtagCommands.addMapper(m=>({type:"image",operationType:"edit",alias:m[2],props:exports.HashtagCommands.convertListStringToObj(m.slice(3))}),{name:"Edit image",description:"Edits the properties of an image canvas element identified by its alias.\n\n```ink\n# edit image <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("image"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>({type:"imagecontainer",operationType:"edit",alias:m[2],props:exports.HashtagCommands.convertListStringToObj(m.slice(3))}),{name:"Edit imagecontainer",description:"Edits the properties of an image-container canvas element identified by its alias.\n\n```ink\n# edit imagecontainer <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("imagecontainer"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>({type:"canvaselement",operationType:"edit",alias:m[2],props:exports.HashtagCommands.convertListStringToObj(m.slice(3))}),{name:"Edit canvas element",description:"Edits the properties of a canvas element identified by its alias.\n\n```ink\n# edit canvaselement <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("canvaselement"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>({type:"video",operationType:"edit",alias:m[2],props:exports.HashtagCommands.convertListStringToObj(m.slice(3))}),{name:"Edit video",description:"Edits the properties of a video canvas element identified by its alias.\n\n```ink\n# edit video <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("video"),D__default.default.string()]).rest(D__default.default.string())}),exports.HashtagCommands.addMapper(m=>({type:"text",operationType:"edit",alias:m[2],props:exports.HashtagCommands.convertListStringToObj(m.slice(3))}),{name:"Edit text",description:"Edits the properties of a text canvas element identified by its alias.\n\n```ink\n# edit text <alias> [<key> <value> \u2026]\n```",validation:D__default.default.tuple([D__default.default.literal("edit"),D__default.default.literal("text"),D__default.default.string()]).rest(D__default.default.string())});}r&&(exports.HashtagCommands.addMapper(f=>({type:"input",operationType:"request"}),{name:"Request input",description:"Requests player input without any additional constraints.\n\n```ink\n# request input\n```",validation:D__default.default.tuple([D__default.default.literal("request"),D__default.default.literal("input")])}),exports.HashtagCommands.addMapper(f=>{let g={type:"input",operationType:"request"};try{let y=exports.HashtagCommands.convertListStringToObj(f.slice(2));"type"in y&&typeof y.type=="string"&&(g.valueType=y.type),"default"in y&&(g.defaultValue=y.default);}catch{}return g},{name:"Request input with params",description:"Requests player input with optional key/value parameters (e.g. type, default).\n\n```ink\n# request input <key> <value> [<key> <value> \u2026]\n# request input type number default 18\n```",validation:D__default.default.tuple([D__default.default.literal("request"),D__default.default.literal("input")]).rest(D__default.default.string()).refine(f=>f.length>2&&(f.length-2)%2===0)}));}function yb(n){Ae.translate=n;}async function vb(n,e={},t={}){let r=[];return n.labels&&Object.values(n.labels).forEach(i=>{r=r.concat(i);}),await Ae.generateJsonTranslation(r,e,{...t,operationStringConvert:exports.HashtagCommands.run})}var Rp=["+","-","/","*","%","_","==",">","<",">=","<=","!=","!","&&","||","MIN","MAX"],$p=["+","-","/","*","%","POW","RANDOM","L^"],jp=["INT","FLOOR","FLOAT"];function sr(n,e){if(n.endsWith(".s"))return;if(new RegExp(/.*\.[0-9]+\..*$/).test(n)&&(n=n.split(".").filter(i=>!i.match(/^[0-9]+$/)).join("."),!n.startsWith(".")))return n.replaceAll(".","_|_");if(!new RegExp(/^\.\^.*$/).test(n)&&n.includes("g-")){let r=n.split("g-");return Zu(e)+"_|_"+"g-"+r[r.length-1]}let t=0;for(;new RegExp(/^\.\^.*$/).test(n);)t++,n=n.substring(2);if(t=t-1,new RegExp(/^\..*$/).test(n)&&e){let r=n.substring(1);return Zu(e,t)+"_|_"+r.replaceAll(".","_|_")}return n.replaceAll(".","_|_")||Zu(e,t).replaceAll(".","_|_")}function Zu(n,e=0){let t=n.split("_|_");for(;t.length>1&&e>0;)t.pop()?.includes("g-")&&e--,e--;return t.join("_|_")}var Lp="\xA7DOUBLE_SLASH_CONVERTOR\xA7";function kt(n){return n.startsWith("^")&&(n=n.substring(1)),n=n.replaceAll("\\\\",Lp),n=n.replaceAll("\\n",`
74
+ `),n=n.replaceAll("\\t"," "),n=n.replaceAll(" "," "),n=n.replaceAll(Lp,"\\\\"),n}var Cb={version:"1.14.0"};var qp=`https://pixi-vn.com/schemas/${Cb.version}/schema.json`,Bp=["==","!=","<","<=",">",">=","CONTAINS"];function un(n,e,t,r){let{functions:i}=r;n=n.map(s=>{if(typeof s=="string")switch(s){case "rnd":return "RANDOM";case "?":return "CONTAINS"}return s});let a=[];return n.forEach(s=>{if(typeof s=="string")switch(s){case "&&":case "||":if(a.length>=2){let o={type:"union",unionType:s==="&&"?"and":"or",conditions:[a[a.length-2],a[a.length-1]]};a.pop(),a.pop(),a.push(o);}break;case "!":if(a.length===0)X.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"union",unionType:"not",condition:a[a.length-1]};a[a.length-1]=o;}break;case "!?":if(a.length>1){let o={type:"union",unionType:"not",condition:{type:"compare",operator:"CONTAINS",leftValue:a[a.length-2],rightValue:a[a.length-1]}};a.pop(),a.pop(),a.push(o);}else X.error("Error parsing ink file: Conditional statement is not valid",n);break;default:if(Bp.includes(s))if(a.length<2)X.error("Error parsing ink file: Conditional statement is not valid",n);else {let o={type:"compare",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if($p.includes(s))if(a.length<2)X.error("Error parsing ink file: Conditional statement is not valid",n);else {s==="L^"&&(s="INTERSECTION");let o={type:"arithmetic",operator:s,rightValue:a[a.length-1],leftValue:a[a.length-2]};a.pop(),a.pop(),a.push(o);}else if(jp.includes(s)){let o={type:"arithmeticsingle",operator:s,leftValue:a[a.length-1]};a.pop(),a.push(o);}else s.startsWith("^")&&a.push(kt(s));}else if(typeof s=="object"&&"CNT?"in s)if(new RegExp(/.*\.[0-9]\..*/).test(s["CNT?"])){let o=s["CNT?"].split("."),u=o.pop(),l=o.pop();if(l===void 0||u===void 0){X.error("Error parsing ink file: Conditional statement is not valid",n);return}let c=Number(l),h=o.join(".");if(h.includes("^.")){let f=h.split("."),g=f[f.length-1].replaceAll(".","_|_");f.pop(),h=`${f.join(".")}.${g}`,u.includes("c-")&&(h=h+"_|_"+u);}else h=h.replaceAll(".","_|_");let p=sr(h,e);if(!p)return;a.push({type:"compare",leftValue:Qu(p),operator:">=",rightValue:{type:"value",value:c}});}else {let o=sr(s["CNT?"],e);if(!o)return;a.push(Qu(o));}else if(typeof s=="object"&&"VAR?"in s)a.push(Fn({key:s["VAR?"],defaultType:"storage"},t));else if(typeof s=="object"&&"f()"in s){let o=s["f()"],u=i.find(c=>c.name===o);if(!u){X.error(`Error parsing ink file: Function ${o} is not defined`,n);return}let l=[];for(let c=0;c<u.args;c++)a.length!==0&&l.push(a.pop());a.push({type:"function",functionName:o,args:l.reverse()});}else if(typeof s=="object"&&"^->"in s)s["^->"].includes("$r")||a.push(s["^->"]);else if(typeof s=="object"&&"list"in s){let o=Object.values(s.list).map(u=>u);a.push(o);}else a.push(s);}),a}function el(n,e,t,r){return un(n,e,t,r)}function Fn(n,e,t){let{key:r,defaultType:i}=n,a=e.indexOf(r);return a>=0?{type:"value",storageType:"params",storageOperationType:"get",key:a}:{type:"value",storageOperationType:"get",storageType:i,key:r}}function ai(n,e,t){let{key:r,value:i,defaultType:a,artmeticValue:s}=n,o=e.indexOf(r);if(o>=0)return [{type:"value",storageType:"params",storageOperationType:"set",key:o,value:i}];if(s){if(typeof i=="object"&&"list"in i){let u=Object.values(i.list).map(l=>l);return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:u}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}else if(typeof i=="object"){if("list"in i&&typeof i.list=="object"){if("origins"in i&&Array.isArray(i.origins)&&i.origins.length>0)return i.origins.reduce(u=>(u.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(t.enums[r])}),Object.entries(t.enums[r]).forEach(([l,c])=>{u.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${l}`,value:c});}),u),[]);{let u=new Set,l=Object.entries(i.list).reduce((c,[h,p])=>{let[f,g]=h.split(".");return c.push({type:"value",storageOperationType:"set",storageType:a,key:g,value:p}),u.add(f),c},[]);return u.forEach(c=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:c,value:Object.values(t.enums[c])});}),r in t.enums?Object.entries(t.enums[r]).forEach(([c,h])=>{l.push({type:"value",storageOperationType:"set",storageType:a,key:`${r}.${c}`,value:h});}):l.push({type:"value",storageOperationType:"set",storageType:a,key:r,value:Object.values(i.list)}),l}}else if(typeof i=="object"&&"VAR?"in i){if(typeof i["VAR?"]=="string"&&i["VAR?"].includes(".")){let[u,l]=i["VAR?"].split(".");if(u in t.enums&&l in t.enums[u])return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:t.enums[u][l]}]}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:Fn({key:i["VAR?"],defaultType:"storage"},e)}]}}return [{type:"value",storageOperationType:"set",storageType:a,key:r,value:i}]}function Qu(n){return {type:"value",storageType:"label",storageOperationType:"get",label:n}}function tl(n,e){return e||new RegExp(`${"_|_".replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c-\\d+$`).test(n)?"call":"jump"}function Ns(n,e){if(e){if(typeof e=="string")e.startsWith("^")&&n.push(kt(e));else if(typeof e=="object"&&"type"in e)switch(e.type){case "value":case "function":console.warn("Warning: trying to add a value or function operation as text. This is likely a mistake, so it will be ignored.");break;default:n.push(e);}}}function nl(n,e,t,r,i,a={}){let{isNewLine:s=true,isHashtagScript:o=false,isThreads:u=false}=a;return _b(n,e,t,r,i,{isNewLine:s,isHashtagScript:o,isThreads:u})}function _b(n,e,t,r,i,a){if(!e)return;let{isNewLine:s,isHashtagScript:o=false,isThreads:u}=a;if(o){if(Array.isArray(e)&&e.length>0){let l={goNextStep:true},c=[];try{if(e.length===1&&typeof e[0]=="string"){let h=e[0],p=exports.HashtagCommands.convertTagTolist(h),f=exports.HashtagCommands.convertOperation(p,l,{silent:!0});f&&(f.$origin=h,c.push(f));}}catch{}c.length===0&&c.push({type:"operationtoconvert",values:e}),n.push({...l,operations:c});}}else if(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"){if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&!l.labelToOpen&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}typeof e=="string"?n.push(Sb(kt(e),r.characterIds)):n.push({dialogue:e});}else if(typeof e=="string"){if(e==="end")n.push({end:"game_end"});else if(e==="done")n.push({end:"label_end",goNextStep:true});else if(e==="<>")if(n.length>0){let l=n[n.length-1];l.glueEnabled=true;let c=l.operations!==void 0&&l.dialogue===void 0;l.labelToOpen||(l.goNextStep=c?true:!s),n[n.length-1]=l;}else n.push({glueEnabled:true,goNextStep:true});}else if(typeof e=="object"){if("type"in e)switch(e.type){case "value":e.storageOperationType==="set"?(typeof e.value=="string"&&e.value.startsWith("^")&&(e.value=kt(e.value)),n.push({goNextStep:true,operations:[e]})):console.warn("Warning: trying to add a value get operation as step. This is likely a mistake, so it will be ignored.");break;case "function":n.push({goNextStep:true,operations:[e]});break;default:if(!s&&n.length>0){let l=n[n.length-1];!l.glueEnabled&&!l.operations&&(l.glueEnabled=true,l.labelToOpen||(l.goNextStep=true)),n[n.length-1]=l;}n.push({conditionalStep:e});}else if("->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let c=n[n.length-1];c.labelToOpen||(c.goNextStep=true),n[n.length-1]=c;}if(e.params&&e.params.length===0&&delete e.params,e.var)n.push({labelToOpen:{label:Fn({key:e["->"],defaultType:"storage"},i),type:u?"call":"jump",params:e.params},glueEnabled:l});else {let c=sr(e["->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:tl(c,u),params:e.params},glueEnabled:l});}}else if("->t->"in e){let l=s?void 0:true;if(l&&t.includes("c-")&&n.length>0&&n[n.length-1]?.dialogue===void 0&&(l=void 0),!s&&n.length>0){let h=n[n.length-1];h.labelToOpen||(h.goNextStep=true),n[n.length-1]=h;}e.params&&e.params.length===0&&delete e.params;let c=sr(e["->t->"],t);if(!c)return;n.push({labelToOpen:{label:c,type:"call",params:e.params},glueEnabled:l});}}}function Sb(n,e){let t;if(n.includes(": ")){let r=n.split(": "),i=r[0],a=r.slice(1).join(": ");(e?.has(i)||characters.RegisteredCharacters.has(i))&&(t=i,n=a);}return t?{dialogue:{character:t,text:n}}:{dialogue:n}}function rl(n,e,t,r=true,i=false){return Eb(n,e,t,r,i)}function Eb(n,e,t,r,i=false){e&&(typeof e=="string"&&e.startsWith("^")||e&&typeof e=="object"&&"type"in e&&e.type==="value"&&e.storageOperationType==="get"?typeof e=="string"?n.push(kt(e)):n.push(e):typeof e=="object"&&"type"in e&&n.push(e));}function Fs(n,e,t,r){if(n.length===0){X.error("Error parsing ink file: Arithmetic statement is not valid",n);return}let i=un(n,e,t,r);if(i.length===1){let a=i[0];return a&&typeof a=="object"&&"type"in a?{type:"value",storageType:"logic",storageOperationType:"get",operation:a}:a}}function ar(n,e,t,r="",i,a,s=void 0){let o=[],u="sequential",l=false,c=true;n.forEach(f=>{f==="%"&&(u="loop"),f==="seq"&&(u="random"),f==="MIN"&&(l=true);});let h=n[n.length-1];return Object.keys(h).forEach(f=>{let g=h[f];if(Array.isArray(g)&&g.length>3){g=g.slice(1,g.length-2);let y=[];ln(g,r,i,y,e,e,t,or,s,true,a),y.length===1?o.push(y[0]):o.push({type:"resulttocombine",combine:"cross",secondConditionalItem:y});}else Array.isArray(g)&&g.length===3&&(c=false);}),u==="sequential"?{type:"stepswitch",elements:o,choiceType:u,end:c?"lastItem":void 0,nestedId:s}:l&&u==="random"?{type:"stepswitch",elements:o,choiceType:"sequentialrandom",end:c?"lastItem":void 0,nestedId:s}:{type:"stepswitch",elements:o,choiceType:u}}function ln(n,e,t,r=[],i,a,s,o,u=void 0,l=true,c=[]){let h=false,p=[],f=false,g=false,y=false,C=[],_=[];if(t.preDialog[e]&&(l=false,i(r,`^${t.preDialog[e].text}`,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),t.preDialog[e].glue&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),delete t.preDialog[e]),n.includes("visit")){let d=ar(n,a,s,e,t,c,u);d&&(!l&&r.length>0&&i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}));return}let v=n[0];if(v&&typeof v=="object"&&"temp="in v){for(;n[0]&&typeof n[0]=="object"&&"temp="in n[0];)c.push(n[0]["temp="]),n.shift();c=c.reverse();}if(n.forEach((d,S)=>{if(g){if(typeof d=="string"&&d==="/#"){let m=[];ln(_,e,t,m,rl,rl,s,o,u,l),i(r,m,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),g=false,_=[];}else _.push(d);return}else if(h)if(Array.isArray(d))p.push(d);else if(d&&typeof d=="object")"CNT?"in d?S>0&&n[S-1]==="ev"?(f=true,C.push(d)):f?C.push(d):(p.push(d),l=false):"VAR="in d||"temp="in d?ai({key:"VAR="in d?d["VAR="]:d["temp="],value:n[S-1],defaultType:"VAR="in d?"storage":"tempstorage"},c,t).forEach(b=>{if(b.value&&typeof b.value=="string"&&b.value==="/str"&&(b.value=n[S-2]),b.value&&typeof b.value=="object"&&"^->"in b.value&&(b.value=b.value["^->"]),p.length>1){let w=Fs(p,e,c,t);p=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"&&(b.value=w.operation);}(typeof b.key!="string"||!b.key.includes("$r"))&&(i(r,b,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=true);}):"VAR?"in d?p.push(d):"^->"in d?d["^->"].includes("$r")||p.push(d):("f()"in d||"list"in d&&typeof d.list=="object")&&p.push(d);else switch(d){case "/ev":f&&C.push(d),h=false,p.push(d);break;case "out":if(p.length>0){let m=p[p.length-1];if(m&&typeof m=="object"&&"VAR?"in m){p.pop();let b=Fn({key:m["VAR?"],defaultType:"storage"},c);i(r,b,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y});}else {let b=[];for(;p.length>0&&p[p.length-1]!=="/ev";)b.push(p.pop());b=b.reverse();let w=Fs(b,e,c,t);p=[],w&&typeof w=="object"&&"type"in w&&w.type==="value"&&"storageType"in w&&w.storageType==="logic"?i(r,{storageOperationType:"get",storageType:"logic",operation:w.operation,type:"value"},e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}):(i(r,"<>",e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),w=`^${w}`,i(r,w,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}));}l=false;}break;case "pop":{let m=p[p.length-1];if(m&&typeof m=="object"&&"f()"in m){let b=[];for(;p.length>0&&p[p.length-1]!=="/ev";)b.push(p.pop());b=b.reverse();let w=un(b,e,c,t);p=[],w.forEach(P=>{P&&typeof P=="object"&&"type"in P&&P.type==="function"?i(r,P,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}):X.warn("Unhandled case: value is not a function",P);}),l=false;}else p.push(d);return}default:p.push(d);}else if(typeof d=="string")if(d.startsWith("^"))i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=false;else if(d==="ev")h=true;else if(d===`
75
+ `)l=true;else if(d==="done"||d==="end")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=false;else if(d==="<>")i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=false;else if(d==="nop"&&f){let m=Wp(C,a,s,e,t,c,u);m&&i(r,m,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),f=false,C=[];}else d==="#"?g=true:d==="thread"&&(y=true);else if(Array.isArray(d))if(f)C.push(d);else if(d.length>1&&typeof d[d.length-2]=="object"&&d[d.length-2]&&"c"in d[d.length-2]&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"b"in d[d.length-1]){p.pop();let m=[],b=[];for(;p.length>0&&p[p.length-1]!=="/ev";)m.push(p.pop());C=[...C,...m.reverse()],f=true,b.push(d.pop()),b.push(d.pop()),C=[...C,...d],C.push(b);}else if(d.length>1&&typeof d[d.length-1]=="object"&&d[d.length-1]&&"#n"in d[d.length-1]){let m=d.pop();if(!m){X.error("Error parsing ink file: el is undefined");return}let b=m["#n"];delete m["#n"],d.push(m),i(r,{"->":e?e+"_|_"+b:b},e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),s({[b]:d},e,t);}else ln(d,e,t,r,i,a,s,o,u,l,c);else if(d&&typeof d=="object")if("->"in d&&typeof d["->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->"])){let m=[];p.length>0&&(m=el(["ev",...p],e,c,t)),d.params=m,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=false;}else if("->t->"in d&&typeof d["->t->"]=="string"&&!new RegExp(/^\.\^\.\^\.\d\.s$/).test(d["->t->"])){let m=[];p.length>0&&(m=el(["ev",...p],e,c,t)),d.params=m,i(r,d,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y}),l=false;}else if("*"in d&&typeof d["*"]=="string")d["*"].includes("c")&&(p.push(d),l=false);else if("s"in d&&Array.isArray(d.s))p.push(d),l=false;else if("CNT?"in d)p.push(d),l=false;else if("VAR="in d||"temp="in d){let m="VAR="in d?d["VAR="]:d["temp="],b,w=[];if(m!=="$r"){for(p.pop(),p[p.length-1]==="/ev"&&p.pop();p.length>0&&p[p.length-1]!=="/ev";)w.push(p.pop());w=w.reverse(),b=Fs(w,e,c,t),p=[],ai({key:m,value:b,defaultType:"VAR="in d?"storage":"tempstorage",artmeticValue:true},c,t).forEach(O=>{(O.value!==void 0||O.value!==null)&&i(r,O,e,t,c,{isNewLine:l,isHashtagScript:g,isThreads:y});}),l=false;}}else s(d,e,t);}),o(p,r,e,t,c),e.includes("_|_")&&r.length===2){let d=r[0],S=r[1];d&&S&&typeof d=="object"&&"dialogue"in d&&typeof S=="object"&&"labelToOpen"in S&&d.dialogue===" "&&S.labelToOpen&&(r.shift(),delete S.glueEnabled,r[0]=S);}}function sl(n,e,t,r,i,a){if(e.length===0)return;let s=un(e,r,t,i);if(s.length===1){let o={type:"ifelse",condition:s[0],then:n,else:a};return o.else||delete o.else,o}else if(s.length>1){let o={type:"ifelse",condition:{type:"union",unionType:"and",conditions:s},then:n,else:a};return o.else||delete o.else,o}}function Wp(n,e,t,r,i,a,s=void 0){if(n.length===0){X.error("Error parsing ink file: Conditional statement is not valid",n);return}let o=[],u=[];if(n.forEach(h=>{Array.isArray(h)?u.push(h):typeof h=="string"&&h==="du"?i.du?o.push(i.du):i.du=o[o.length-1]:(typeof h!="string"||h!=="/ev")&&o.push(h);}),u.length===0){X.error("Error parsing ink file: Conditional statement is not valid",u);return}let l=il(u[0],e,t,`${r}${"_|_"}then`,i,a,`${s||""}then`),c;return u.length===2?c=il(u[1],e,t,`${r}${"_|_"}else`,i,a,`${s||""}else`):u.length>2?(u.shift(),u.push("nop"),u=[{b:u}],c=il(u,e,t,r,i,a,`${s||""}else`)):c=void 0,i.du=void 0,sl(l,o,a,r,i,c)}function il(n,e,t,r,i,a,s=void 0){let o=[];for(let l of n)typeof l=="object"&&"b"in l&&(l.b=l.b.filter(c=>c!==null&&!(typeof c=="object"&&"->"in c&&new RegExp(/.*\.[0-9]/).test(c["->"]))),ln(l.b,r,i,o,e,e,t,or,s,true,a));return o.length===1?o[0]:{type:"resulttocombine",combine:"cross",secondConditionalItem:o}}function al(n="",e=""){let t=Array.isArray(n)?n:[n],r=Array.isArray(e)?e:[e];return [...new Set([...t,...r])]}function or(n,e,t,r,i){if(n.length>0){let a={};Mp(n,a,i,r);for(let[s,o]of Object.entries(a)){let u=t+"_|_"+s,l={text:o.text.length===1?o.text[0]:o.text,label:u,props:{},type:tl(u,false),oneTime:o.onetime};o.text.length===0&&(l.onlyHaveNoChoice=true,l.autoSelect=true),l.oneTime===false&&delete l.oneTime;let c=sl(l,o.conditions,i,t,r)||l,h=e[e.length-1];if(typeof h=="object"&&h&&"type"in h&&(h={conditionalStep:h}),e.length>0&&typeof h=="object"&&h&&"choices"in h&&h.choices){let p=h.choices;p&&Array.isArray(p)?p.push(c):X.error("Unhandled case: choices is PixiVNJsonConditionalStatements<PixiVNJsonChoices> | undefined",o,p),h.choices=p.sort((f,g)=>{try{let y=f.label.split("."),C=y[y.length-1].replaceAll(".","_|_"),_=g.label.split("."),v=_[_.length-1].replaceAll(".","_|_");if(C.includes("c-")&&v.includes("c-")){let d=C.split("c-")[1],S=Number(d),m=v.split("c-")[1],b=Number(m);return S-b}}catch{}return 0});}else e.push({choices:[c]});o.preDialog&&(r.preDialog[u]={...o.preDialog});}}}function Mp(n,e,t,r,i){let a=[],s="",o="",u=false,l=[];for(let c=0;c<n.length;c++){let h=n[c];if(typeof h=="string")h.startsWith("^")?a.push(kt(h)):Rp.includes(h)&&l.push(h);else if(Array.isArray(h)&&h.includes("visit")){let p=ar(h,Ns,(f,g,y)=>{},i,r,t);a.push(p);}else if(h&&typeof h=="object")if("*"in h&&typeof h["*"]&&typeof h["*"]=="string")h["*"].includes("c")&&(s=`c${h["*"].split("c")[1]}`,h.flg&16&&(u=true));else if("s"in h&&Array.isArray(h.s)){let p=Gp(h.s),f=h.s.includes("<>");p&&(i&&e[i]?(e[i].preDialog={text:p,glue:f},e[i].text=al(p,e[i].text)):(a.push(p),o=p));}else ("CNT?"in h||"VAR?"in h)&&l.push(h);else l.push(h);if(s){e[s]?e[s].text=al(a,e[s].text):e[s]={text:a,onetime:u,conditions:l},o&&(e[s].preDialog={text:o,glue:false});let p=n.slice(c+1);Mp(p,e,t,r,s);return}}}function Gp(n){for(let e of n)if(typeof e=="string"){if(e.startsWith("^"))return kt(e)}else if(Array.isArray(e)){let t=Gp(e);if(t)return t}}var ol;(i=>{function n(a,s={}){let{labelToRemove:o=[],initialVarsToRemove:u=[],enums:l={},functions:c=[],preDialog:h={},characterIds:p}=s,f={$schema:qp};if(f.labels=e(a.root,{labelToRemove:o,initialVarsToRemove:u,enums:l,functions:c,preDialog:h,characterIds:p}),f.labels&&Ps in f.labels){let g=f.labels[Ps];delete f.labels[Ps],g.forEach(y=>{y.operations&&(f.initialOperations=f.initialOperations?[...f.initialOperations,...y.operations]:[...y.operations]);});}if(f.labels&&xn in f.labels){let g=f.labels[xn];delete f.labels[xn],g.forEach(y=>{y.operations&&(f.initialOperations=f.initialOperations?[...f.initialOperations,...y.operations]:[...y.operations]);});}return o.forEach(g=>{f.labels&&g in f.labels&&delete f.labels[g];}),u.forEach(g=>{f.initialOperations&&(f.initialOperations=f.initialOperations.filter(y=>!(y.type==="value"&&y.key===g)));}),f}i.inkToJson=n;function e(a,s){try{let o={};return t(a,o,s),o}catch(o){X.error("Error parsing ink file",o);}}function t(a,s,o){for(let u of a)if(u)if(Array.isArray(u))if(u.includes("visit")){let l=ar(u,Ns,(c,h,p)=>{},"",o,[]);l&&(o.externalSwitch=l);}else t(u,s,o);else typeof u=="object"&&(u&&"VAR="in u&&o.externalSwitch&&(s[xn]||(s[xn]=[]),s[xn].push({operations:ai({defaultType:"storage",key:u["VAR="],value:o.externalSwitch},[],o)})),r(u,s,"",o));}function r(a,s,o="",u){if(a!==null){for(let[l,c]of Object.entries(a))if(Array.isArray(c)){let h=[],p={},f=(o?o+"_|_":"")+l;ln(c,f,u,h,nl,nl,(g,y,C)=>{r(g,p,y,C);},or);for(let[g,y]of Object.entries(p))s[g]=y;h.length>0&&(s[f]=h);}}}})(ol||={});var Hf=ei(_y()),K0=ei(Yy()),X0=ei(G0()),Y0=ei(Pr()),yN=/(?:^|<>)\s*#\s*([^\r\n]+)/g,vN=/^=+[ \t]+(?:function[ \t]+)?(\w+)/gm,CN=new Set(["DONE","END"]),bN="_|_",J0=new Map;function Z0(n,e){let t=JSON.stringify([e,n]),r=J0.get(t);if(r)return r;let i=new RegExp(n,e);return J0.set(t,i),i}function Ss(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(s=>Ss(n,s));let i=t.oneOf;if(Array.isArray(i))return i.some(s=>Ss(n,s));let a=t.allOf;if(Array.isArray(a))return a.every(s=>Ss(n,s));if(typeof t.const=="string")return n===t.const;if(Array.isArray(t.enum))return t.enum.some(s=>typeof s=="string"&&s===n);if(t.type!=="string"||typeof t.minLength=="number"&&n.length<t.minLength||typeof t.maxLength=="number"&&n.length>t.maxLength)return false;if(typeof t.pattern=="string")try{if(!Z0(t.pattern,"").test(n))return !1}catch{return false}return true}function $u(n,e){if(!e||typeof e!="object")return false;let t=e,r=t.anyOf;if(Array.isArray(r))return r.some(o=>$u(n,o));let i=t.oneOf;if(Array.isArray(i))return i.some(o=>$u(n,o));let a=t.allOf;if(Array.isArray(a))return a.every(o=>$u(n,o));if(t.type!=="array"||typeof t.minItems=="number"&&n.length<t.minItems||typeof t.maxItems=="number"&&n.length>t.maxItems)return false;let s=Array.isArray(t.prefixItems)?t.prefixItems:[];if(n.length<s.length)return false;for(let o=0;o<s.length;o++)if(!Ss(n[o],s[o]))return false;return n.length===s.length?true:t.items===false||typeof t.items>"u"?false:t.items===true?true:n.slice(s.length).every(o=>Ss(o,t.items))}function Gf(n,e){if(e.type==="regexp")try{let t=Z0(e.source,e.flags);return t.lastIndex=0,t.test(n.join(" "))}catch{return false}return e.type==="literal"?n.join(" ")===e.value:$u(n,e.schema)}function ju(n){if(!n||typeof n!="object")return [];let e=n;if(Array.isArray(e.anyOf))return e.anyOf.flatMap(ju);if(Array.isArray(e.oneOf))return e.oneOf.flatMap(ju);if(Array.isArray(e.allOf)){let t={};for(let r of e.allOf)r&&typeof r=="object"&&Object.assign(t,r);return ju(t)}return e.type==="array"&&Array.isArray(e.prefixItems)?[e]:[]}function z0(n,e){if(n===e)return 1;let t=Math.max(n.length,e.length);return t===0?1:Math.max(0,1-Q0(n,e)/t)}function _N(n,e){if(e&&typeof e=="object"){let t=e;if(typeof t.const=="string")return {weight:2,matched:n===void 0?0:2*z0(n,t.const)};if(Array.isArray(t.enum))return {weight:2,matched:2*(n===void 0?0:Math.max(0,...t.enum.filter(i=>typeof i=="string").map(i=>z0(n,i))))}}return {weight:1,matched:n===void 0?0:1}}function SN(n,e){let t=Array.isArray(e.prefixItems)?e.prefixItems:[],r=Math.min(t.length,n.length),i=0,a=0,s=false;for(let o=0;o<r;o++){let u=_N(n[o],t[o]);i+=u.weight,a+=u.matched,u.weight>1&&(s=true);}return {score:i===0?0:a/i,hasDiscriminant:s}}var EN=.8,H0=new Map;function wN(n){let e=JSON.stringify(n),t=H0.get(e);if(t)return t;let r=new K0.default({strict:false,allErrors:true}).compile(n);return H0.set(e,r),r}function DN(n){if("items"in n)return n;let e=Array.isArray(n.prefixItems)?n.prefixItems.length:0;return {...n,minItems:e,maxItems:e,items:false}}function AN(n,e){let[t]=Wu(n.instancePath);if(t!==void 0&&/^\d+$/.test(t)){let r=Number(t);if(r<e.length)return e[r]}return Uf(n)}function PN(n){return n.keyword==="const"?`must be "${n.params.allowedValue}"`:n.keyword==="enum"?`must be one of ${(n.params.allowedValues??[]).map(t=>`"${t}"`).join(", ")}`:n.message??"invalid value"}function Jf(n){let e=n.split(/\r?\n/),t=[];for(let r=0;r<e.length;r++){let i=e[r];for(let a of i.matchAll(yN)){let s=(a[1]??"").trim();if(!s)continue;let o=exports.HashtagCommands.convertTagTolist(s,{mergeInkVariables:true});o.length!==0&&t.push({line:r+1,command:s,tokens:o});}}return t}function Uf(n){return n.keyword==="required"&&typeof n.params?.missingProperty=="string"?n.params.missingProperty:n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"?n.params.additionalProperty:n.instancePath.split("/").pop()||"(root)"}function Q0(n,e){let t=n.length+1,r=e.length+1,i=Array.from({length:t},(a,s)=>[s,...Array(r-1).fill(0)]);for(let a=1;a<r;a++)i[0][a]=a;for(let a=1;a<t;a++)for(let s=1;s<r;s++){let o=n[a-1]===e[s-1]?0:1;i[a][s]=Math.min(i[a-1][s]+1,i[a][s-1]+1,i[a-1][s-1]+o);}return i[t-1][r-1]}function ON(n,e){let t,r=1/0;for(let a of e){let s=Q0(n,a);s<r&&(r=s,t=a);}let i=Math.max(1,Math.floor(n.length/3));return r<=i?t:void 0}function xN(n,e){if(n.keyword==="additionalProperties"&&typeof n.params?.additionalProperty=="string"){let t=n.params.additionalProperty,r=e&&ON(t,e),i=r?` (did you mean "${r}"?)`:"";return `has an unrecognised property "${t}"${i}`}return n.message??"invalid value"}function Wu(n){return n.split("/").filter(Boolean).map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function TN(n,e){let t=n,r,i=a=>{a&&typeof a=="object"&&typeof a.$origin=="string"&&(r=a.$origin);};i(t);for(let a of Wu(e)){if(t===null||typeof t!="object")break;t=t[a],i(t);}return r}function NN(n,e){let t=Wu(e);for(let r=t.length;r>=0;r--){let i=t.slice(0,r),a=n;for(let s of i){if(a===null||typeof a!="object"){a=void 0;break}a=a[s];}if(a&&typeof a=="object"&&!Array.isArray(a)&&typeof a.type=="string")return {path:`/${i.map(o=>o.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}`,node:a}}}function qu(n,e,t=new Set){if(!n||typeof n!="object")return n;let r=n.$ref;if(typeof r!="string")return n;let i=r.match(/^#\/definitions\/([^/]+)$/);return !i?.[1]||t.has(i[1])||!(i[1]in e)?{}:(t.add(i[1]),qu(e[i[1]],e,t))}function Bu(n,e){let t=qu(n,e);if(!t||typeof t!="object")return;let r=t;if(!(r.anyOf||r.oneOf)){if(Array.isArray(r.allOf)){let i={properties:{},required:[]};for(let a of r.allOf){let s=Bu(a,e);if(!s)return;Object.assign(i.properties,s.properties),i.required.push(...s.required);}return i}return {properties:r.properties??{},required:r.required??[]}}}function U0(n,e){if(!n||typeof n!="object")return true;let t=n;return "const"in t?t.const===e:Array.isArray(t.enum)?t.enum.includes(e):true}function FN(n,e){let t=n.definitions??{},r=[];for(let[i,a]of Object.entries(t)){let s=Bu(a,t);if(!s)continue;let o=s.properties.type;o&&typeof o=="object"&&("const"in o||Array.isArray(o.enum))&&U0(o,e.type)&&U0(s.properties.operationType,e.operationType)&&r.push(i);}return r}function IN(n,e,t){let r=n.definitions??{},i={definitions:r,...r[e]},a=new Hf.default({strict:false,allErrors:true}).compile(i);return a(t)?[]:a.errors??[]}function kN(n,e,t){let r=n.definitions??{},i=qu(r[e],r);for(let a of Wu(t)){let o=Bu(i,r)?.properties[a];if(o===void 0)return [];i=qu(o,r);}return Object.keys(Bu(i,r)?.properties??{})}function Lu(n){let e=n.map(o=>o.instancePath),t=o=>e.some(u=>u!==o&&u.startsWith(`${o}/`)),r=n.filter(o=>!t(o.instancePath)),i=new Map;for(let o of r){let u=i.get(o.instancePath)??[];u.push(o),i.set(o.instancePath,u);}let a=[];for(let o of i.values()){let u=o.filter(l=>l.keyword!=="anyOf"&&l.keyword!=="oneOf");a.push(...u.length>0?u:o);}let s=new Set;return a.filter(o=>{let u=`${Uf(o)}|${o.message}`;return s.has(u)?false:(s.add(u),true)})}function zf(n,e,t){return n.map(r=>({instancePath:r.instancePath||"(root)",element:Uf(r),message:xN(r,t?.(r)),origin:TN(e,r.instancePath)}))}function VN(n,e,t){let r=n.map(c=>c.instancePath),i=c=>r.some(h=>h!==c&&h.startsWith(`${c}/`)),a=n.filter(c=>!i(c.instancePath)),s=t&&typeof t=="object"?t:void 0,o=new Map,u=[];for(let c of a){let h=s?NN(e,c.instancePath):void 0;if(!h){u.push(c);continue}let p=o.get(h.path);p?p.errors.push(c):o.set(h.path,{node:h.node,errors:[c]});}let l=zf(Lu(u),e);for(let[c,h]of o){let p=s?FN(s,h.node):[],f=p.length===1?p[0]:void 0;if(!f||!s){l.push(...zf(Lu(h.errors),e));continue}let y=Lu(IN(s,f,h.node)).map(C=>({...C,instancePath:`${c}${C.instancePath}`}));l.push(...zf(y,e,C=>kN(s,f,C.instancePath.slice(c.length))));}return l}var Kf;(h=>{function n(p,f={labelToRemove:[],initialVarsToRemove:[],functions:[],enums:{}}){let g=[];try{return {json:new X0.Compiler(p,{errorHandler:(v,d)=>{let S=v.replace(/^[A-Z]+: line \d+: ?/,""),m=v.match(/line (\d+)/);g.push({message:S,type:d,line:m?Number(m[1]):-1});},countAllVisits:!0,fileHandler:{ResolveInkFilename:v=>v,LoadInkFileContents:()=>""},pluginNames:[],sourceFilename:null}).Compile().ToJson()||"",issues:g}}catch{let C=false,_={...f,textSource:p};return e(g,()=>{C=true;},_),C?n(_.textSource,f):{issues:g}}}h.compile=n;function e(p,f,g){let{functions:y,initialVarsToRemove:C,labelToRemove:_}=g,v=p.find(d=>d.type===Y0.ErrorType.Error);if(v){if(v.message.includes("Divert target not found")){let d=v.message.match(/Divert target not found: '-> (\w+)'/);if(d?.[1]){let S=d[1],m=`
76
76
 
77
- === ${v} ===
77
+ === ${S} ===
78
78
 
79
- -> DONE`;return m.textSource=m.textSource.concat(p),S.push(v),d()}}if(b.message.includes("Unresolved variable")){let g=b.message.match(/Unresolved variable: (\w+)/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
79
+ -> DONE`;return g.textSource=g.textSource.concat(m),_.push(S),f()}}if(v.message.includes("Unresolved variable")){let d=v.message.match(/Unresolved variable: (\w+)/);if(d?.[1]){let S=d[1],m=`VAR ${S} = ""
80
80
 
81
- `;return m.textSource=p.concat(m.textSource),_.push(v),d()}}if(b.message.includes("Variable could not be found to assign to")){let g=b.message.match(/Variable could not be found to assign to: (\w+)/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
81
+ `;return g.textSource=m.concat(g.textSource),C.push(S),f()}}if(v.message.includes("Variable could not be found to assign to")){let d=v.message.match(/Variable could not be found to assign to: (\w+)/);if(d?.[1]){let S=d[1],m=`VAR ${S} = ""
82
82
 
83
- `;return m.textSource=p.concat(m.textSource),_.push(v),d()}}if(b.message.includes("Variable could not be found to assign to")){let g=b.message.match(/Variable could not be found to assign to: '(\w+)'/);if(g?.[1]){let v=g[1],p=`VAR ${v} = ""
83
+ `;return g.textSource=m.concat(g.textSource),C.push(S),f()}}if(v.message.includes("Variable could not be found to assign to")){let d=v.message.match(/Variable could not be found to assign to: '(\w+)'/);if(d?.[1]){let S=d[1],m=`VAR ${S} = ""
84
84
 
85
- `;return m.textSource=p.concat(m.textSource),_.push(v),d()}}if(b.message.includes("Function call target not found")){let g=b.message.match(/Function call target not found: '-> (\w+)'/);if(g?.[1]){let v=g[1],p=`
85
+ `;return g.textSource=m.concat(g.textSource),C.push(S),f()}}if(v.message.includes("Function call target not found")){let d=v.message.match(/Function call target not found: '-> (\w+)'/);if(d?.[1]){let S=d[1],m=`
86
86
 
87
- === function ${v}() ===
87
+ === function ${S}() ===
88
88
 
89
89
  ~ return
90
90
 
91
- `;return m.textSource=m.textSource.concat(p),y.push({name:v,args:0}),S.push(v),d()}}if(b.message.includes(" arguments, but got ")){let g=b.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(g?.[1]){let v=g[1],p=parseInt(g[3]||"0",10),C=p>0?Array.from({length:p},(A,N)=>`arg${N+1}`).join(", "):"",w=`
91
+ `;return g.textSource=g.textSource.concat(m),y.push({name:S,args:0}),_.push(S),f()}}if(v.message.includes(" arguments, but got ")){let d=v.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);if(d?.[1]){let S=d[1],m=parseInt(d[3]||"0",10),b=m>0?Array.from({length:m},(O,k)=>`arg${k+1}`).join(", "):"",w=`
92
92
 
93
- === function ${v}(${C}) ===
93
+ === function ${S}(${b}) ===
94
94
 
95
95
  ~ return
96
96
 
97
- `;m.textSource=m.textSource.replaceAll(`
97
+ `;g.textSource=g.textSource.replaceAll(`
98
98
 
99
- === function ${v}() ===
99
+ === function ${S}() ===
100
100
 
101
101
  ~ return
102
102
 
103
- `,""),m.textSource=m.textSource.concat(w);let O=y.find(A=>A.name===v);return O?O.args=p:(y.push({name:v,args:p}),S.push(v)),d()}}if(b.message.includes("Could not find target for read count")){let g=b.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(g?.[1]){let v=g[1],[p,C]=v.split("."),w=`
103
+ `,""),g.textSource=g.textSource.concat(w);let P=y.find(O=>O.name===S);return P?P.args=m:(y.push({name:S,args:m}),_.push(S)),f()}}if(v.message.includes("Could not find target for read count")){let d=v.message.match(/Could not find target for read count: -> (\w+\.\w+)/);if(d?.[1]){let S=d[1],[m,b]=S.split("."),w=`
104
104
 
105
- LIST ${p} = ${C}
105
+ LIST ${m} = ${b}
106
106
 
107
- `;return m.textSource=m.textSource.concat(w),m.initialVarsToRemove.push(p),m.initialVarsToRemove.push(`${p}.${C}`),d()}}if(b.message.includes("variable for increment could not be found")){let g=b.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(g?.[1]){let v=g[1],p=`VAR ${v} = 0
107
+ `;return g.textSource=g.textSource.concat(w),g.initialVarsToRemove.push(m),g.initialVarsToRemove.push(`${m}.${b}`),f()}}if(v.message.includes("variable for increment could not be found")){let d=v.message.match(/variable for increment could not be found: '(\w+)' after searching:/);if(d?.[1]){let S=d[1],m=`VAR ${S} = 0
108
108
 
109
- `;return m.textSource=p.concat(m.textSource),m.initialVarsToRemove.push(v),d()}}return f.forEach(g=>{let v=g.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);v?.[1]&&(g.message=`The function '${v[1]}' have optional arguments, but in ink all arguments must be required. Please make sure to provide all the required arguments for the function call.`);}),{issues:f}}return {issues:f}}h.getErrors=e;function t(f,d){return Mf(f).filter(({tokens:m})=>!d.some(({validation:y})=>Wf(m,y)))}h.getUnknownHashtagCommands=t;function r(f,d){let m=d.filter(_=>_.validation.type==="zod");if(m.length===0)return [];let y=[];for(let _ of Mf(f)){if(d.some(({validation:g})=>Wf(_.tokens,g)))continue;let S;for(let g of m)for(let v of ju(g.validation.schema)){let{score:p,hasDiscriminant:C}=bN(_.tokens,v);C&&(!S||p>S.score)&&(S={command:g,branch:v,score:p});}if(!S||S.score<_N)continue;let b=SN(EN(S.branch));if(!b(_.tokens))for(let g of Lu(b.errors??[]))y.push({line:_.line,command:_.command,handlerName:S.command.name,instancePath:g.instancePath||"(root)",element:wN(g,_.tokens),message:DN(g),score:S.score});}return y}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(f,d){let m=new Set;for(let g of f.matchAll(gN))g[1]&&m.add(g[1]);let y=new Set(d),_=new Set,S=f.split(/\r?\n/),b=[];for(let g=0;g<S.length;g++){let v=(S[g]??"").replace(/\/\/.*$/,"");for(let p of v.matchAll(/->[ \t]+(\w[\w.]*)/g)){let C=p[1];if(!C)continue;let w=C.split(".")[0]??C;yN.has(w)||m.has(w)||y.has(C)||y.has(C.replaceAll(".",vN))||y.has(w)||_.has(C)||(_.add(C),b.push({line:g+1,target:C}));}}return b}h.getUnknownDivertTargets=i;function a(f){return new Jf.default({strict:false,allErrors:true}).compile(f)}h.getSchemaValidator=a;function s(f,d){let m=typeof d=="function"?d:a(d);return m(f)?[]:IN(m.errors??[],f,m.schema)}h.validateAgainstJsonSchema=s;function o(f,d){let m=new Set,y=[];for(let g of d){let v=u(g);v!==void 0?y.push(v):m.add(String(g));}y.sort((g,v)=>v-g);let _=[],S=f.length;for(let g=f.length-1;g>=0;g--)m.has(f[g])&&(_.push({key:f[g],sectionTokens:f.slice(g+1,S)}),S=g);_.reverse();let b=[];for(let g of y)g<0||g>=S||(b.push({key:g,sectionTokens:f.slice(g,S)}),S=g-1);return b.reverse(),[...b,..._]}h.extractKeyedSections=o;function u(f){return typeof f=="number"?Number.isInteger(f)&&f>=0?f:void 0:/^\d+$/.test(f)?Number(f):void 0}function l(f,d){let m=o(f,Object.keys(d)),y=[];for(let{key:_,sectionTokens:S}of m){let b;try{b=exports.HashtagCommands.convertListStringToObj(S);}catch(v){y.push({key:_,instancePath:"(root)",element:String(_),message:`could not parse "${_}" section into key/value pairs: ${v instanceof Error?v.message:String(v)}`});continue}let g=s(b,d[_]);y.push(...g.map(v=>({...v,key:_})));}return y}h.validateKeyedJsonSchemas=l;function c(f,d){let m=[];for(let y of Mf(f)){let _=d.find(({validation:b})=>Wf(y.tokens,b));if(!_?.keySchemas)continue;let S=l(y.tokens,_.keySchemas);m.push(...S.map(b=>({...b,line:y.line,command:y.command})));}return m}h.getHashtagKeySchemaIssues=c;})(Hf||={});var Uf=ei(Pr());function Q0(n){if(!n||n.length===0)return;let e=new Set;for(let t of n){let r=typeof t=="string"?t:t?.id;typeof r=="string"&&r.length>0&&e.add(r);}return e.size>0?e:void 0}function Zr(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=Hf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Uf.ErrorType.Error?X.error(`Ink compilation error: ${s}`):o===Uf.ErrorType.Warning?X.warn(`Ink compilation warning: ${s}`):X.info(`Ink compilation info: ${s}`);}),!r){X.error("No JSON generated from ink file");return}let a;try{a=si.parse(r);}catch{X.error("Error parsing ink file");return}return t.enums=a.listDefs||{},ol.inkToJson(a,{...t,characterIds:Q0(e.characters)})}async function kN(n,e={}){Array.isArray(n)||(n=[n]),Ju();let t={functions:[],enums:{},characters:e.characters},r=n.map(async i=>{let a=Zr(i,t);return a&&await Gu(a,{operationStringConvert:exports.HashtagCommands.run,skipEmptyDialogs:true}),i});return await Promise.all(r)}async function VN(n){return Ju(),await Gu(n,{operationStringConvert:exports.HashtagCommands.run,skipEmptyDialogs:true})}exports.addBaseHashtagCommands=mb;exports.convertInkText=Zr;exports.convertInkToJson=Zr;exports.generateJsonInkTranslation=yb;exports.importInkText=kN;exports.importJson=VN;exports.onInkHashtagScript=pb;exports.onInkTranslate=gb;exports.onReplaceTextAfterTranslation=QC;exports.onReplaceTextBeforeTranslation=eb;
109
+ `;return g.textSource=m.concat(g.textSource),g.initialVarsToRemove.push(S),f()}}return p.forEach(d=>{let S=d.message.match(/Function call to '(\w+)' requires (\d+) arguments, but got (\d+)/);S?.[1]&&(d.message=`The function '${S[1]}' have optional arguments, but in ink all arguments must be required. Please make sure to provide all the required arguments for the function call.`);}),{issues:p}}return {issues:p}}h.getErrors=e;function t(p,f){return Jf(p).filter(({tokens:g})=>!f.some(({validation:y})=>Gf(g,y)))}h.getUnknownHashtagCommands=t;function r(p,f){let g=f.filter(C=>C.validation.type==="zod");if(g.length===0)return [];let y=[];for(let C of Jf(p)){if(f.some(({validation:d})=>Gf(C.tokens,d)))continue;let _;for(let d of g)for(let S of ju(d.validation.schema)){let{score:m,hasDiscriminant:b}=SN(C.tokens,S);b&&(!_||m>_.score)&&(_={command:d,branch:S,score:m});}if(!_||_.score<EN)continue;let v=wN(DN(_.branch));if(!v(C.tokens))for(let d of Lu(v.errors??[]))y.push({line:C.line,command:C.command,handlerName:_.command.name,instancePath:d.instancePath||"(root)",element:AN(d,C.tokens),message:PN(d),score:_.score});}return y}h.getLikelyUnknownHashtagCommandSchemaIssues=r;function i(p,f){let g=new Set;for(let d of p.matchAll(vN))d[1]&&g.add(d[1]);let y=new Set(f),C=new Set,_=p.split(/\r?\n/),v=[];for(let d=0;d<_.length;d++){let S=(_[d]??"").replace(/\/\/.*$/,"");for(let m of S.matchAll(/->[ \t]+(\w[\w.]*)/g)){let b=m[1];if(!b)continue;let w=b.split(".")[0]??b;CN.has(w)||g.has(w)||y.has(b)||y.has(b.replaceAll(".",bN))||y.has(w)||C.has(b)||(C.add(b),v.push({line:d+1,target:b}));}}return v}h.getUnknownDivertTargets=i;function a(p){return new Hf.default({strict:false,allErrors:true}).compile(p)}h.getSchemaValidator=a;function s(p,f){let g=typeof f=="function"?f:a(f);return g(p)?[]:VN(g.errors??[],p,g.schema)}h.validateAgainstJsonSchema=s;function o(p,f){let g=new Set,y=[];for(let d of f){let S=u(d);S!==void 0?y.push(S):g.add(String(d));}y.sort((d,S)=>S-d);let C=[],_=p.length;for(let d=p.length-1;d>=0;d--)g.has(p[d])&&(C.push({key:p[d],sectionTokens:p.slice(d+1,_)}),_=d);C.reverse();let v=[];for(let d of y)d<0||d>=_||(v.push({key:d,sectionTokens:p.slice(d,_)}),_=d-1);return v.reverse(),[...v,...C]}h.extractKeyedSections=o;function u(p){return typeof p=="number"?Number.isInteger(p)&&p>=0?p:void 0:/^\d+$/.test(p)?Number(p):void 0}function l(p,f){let g=o(p,Object.keys(f)),y=[];for(let{key:C,sectionTokens:_}of g){let v;try{v=exports.HashtagCommands.convertListStringToObj(_);}catch(S){y.push({key:C,instancePath:"(root)",element:String(C),message:`could not parse "${C}" section into key/value pairs: ${S instanceof Error?S.message:String(S)}`});continue}let d=s(v,f[C]);y.push(...d.map(S=>({...S,key:C})));}return y}h.validateKeyedJsonSchemas=l;function c(p,f){let g=[];for(let y of Jf(p)){let C=f.find(({validation:v})=>Gf(y.tokens,v));if(!C?.keySchemas)continue;let _=l(y.tokens,C.keySchemas);g.push(..._.map(v=>({...v,line:y.line,command:y.command})));}return g}h.getHashtagKeySchemaIssues=c;})(Kf||={});var Xf=ei(Pr());function eC(n){if(!n||n.length===0)return;let e=new Set;for(let t of n){let r=typeof t=="string"?t:t?.id;typeof r=="string"&&r.length>0&&e.add(r);}return e.size>0?e:void 0}function Zr(n,e={}){let t={labelToRemove:[],initialVarsToRemove:[],functions:e.functions||[],enums:e.enums||{},textSource:n},{json:r,issues:i}=Kf.compile(n,t);if(i.forEach(({message:s,type:o})=>{o===Xf.ErrorType.Error?X.error(`Ink compilation error: ${s}`):o===Xf.ErrorType.Warning?X.warn(`Ink compilation warning: ${s}`):X.info(`Ink compilation info: ${s}`);}),!r){X.error("No JSON generated from ink file");return}let a;try{a=si.parse(r);}catch{X.error("Error parsing ink file");return}return t.enums=a.listDefs||{},ol.inkToJson(a,{...t,characterIds:eC(e.characters)})}async function RN(n,e={}){Array.isArray(n)||(n=[n]),Ju();let t={functions:[],enums:{},characters:e.characters},r=n.map(async i=>{let a=Zr(i,t);return a&&await Gu(a,{operationStringConvert:exports.HashtagCommands.run,skipEmptyDialogs:true}),i});return await Promise.all(r)}async function $N(n){return Ju(),await Gu(n,{operationStringConvert:exports.HashtagCommands.run,skipEmptyDialogs:true})}exports.addBaseHashtagCommands=gb;exports.convertInkText=Zr;exports.convertInkToJson=Zr;exports.generateJsonInkTranslation=vb;exports.importInkText=RN;exports.importJson=$N;exports.onInkHashtagScript=mb;exports.onInkTranslate=yb;exports.onReplaceTextAfterTranslation=eb;exports.onReplaceTextBeforeTranslation=tb;