@rohal12/spindle 0.59.14 → 0.59.16
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/README.md +1 -0
- package/dist/pkg/format.js +1 -1
- package/dist/pkg/headless.js +814 -321
- package/dist/pkg/story-variables.js +349 -152
- package/package.json +1 -1
- package/src/class-registry.ts +105 -35
- package/src/components/Passage.tsx +21 -13
- package/src/components/PassageDialog.tsx +12 -2
- package/src/components/macros/For.tsx +16 -9
- package/src/components/macros/Radiobutton.tsx +4 -1
- package/src/components/macros/Watch.tsx +24 -4
- package/src/components/macros/detached-body.tsx +17 -6
- package/src/define-macro.ts +11 -2
- package/src/execute-mutation.ts +3 -2
- package/src/markup/render.tsx +17 -1
- package/src/markup/spindle.peggy +16 -0
- package/src/runtime-errors.ts +4 -8
- package/src/saves/save-manager.ts +63 -0
- package/src/store.ts +54 -10
- package/src/story-api.ts +4 -3
- package/src/story-variables.ts +15 -3
- package/src/structural.ts +74 -38
- package/src/triggers.ts +23 -2
- package/src/utils/control-edits.ts +81 -30
- package/src/utils/listeners.ts +23 -0
- package/src/utils/object-path.ts +18 -6
- package/src/utils/stable-key.ts +73 -40
- package/src/utils/value-kinds.ts +42 -0
- package/types/index.d.ts +7 -2
- package/types/tooling.d.ts +5 -1
package/dist/pkg/format.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.storyFormat({"name":"spindle","version":"0.59.14","author":"Rohal12","description":"A Preact-based story format for Twine 2.","image":"","url":"","license":"Unlicense","proofing":false,"source":"<!doctype html>\n<html>\n <head>\n <meta charset=\"UTF-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1\"\n />\n <title>{{STORY_NAME}}</title>\n <link\n id=\"favicon\"\n rel=\"icon\"\n type=\"image/svg+xml\"\n href=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='sg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23c4b5fd'/%3E%3Cstop offset='50%25' stop-color='%238b5cf6'/%3E%3Cstop offset='100%25' stop-color='%235b21b6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%237c3aed' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(55,16,16)'/%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%238b5cf6' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(-55,16,16)'/%3E%3Cpath d='M16 3Q19.5 9 20.5 16 19.5 23 16 29 12.5 23 11.5 16 12.5 9 16 3Z' fill='url(%23sg)'/%3E%3C/svg%3E\"\n />\n <script type=\"module\" crossorigin>var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel=\"modulepreload\"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var n,r,i,a,o,s,c,l,u,d,f,p,m={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_=Array.isArray;function v(e,t){for(var n in t)e[n]=t[n];return e}function y(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function b(e,t,r){var i,a,o,s={};for(o in t)o==`key`?i=t[o]:o==`ref`?a=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?n.call(arguments,2):r),typeof e==`function`&&e.defaultProps!=null)for(o in e.defaultProps)s[o]===void 0&&(s[o]=e.defaultProps[o]);return x(e,s,i,a,null)}function x(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++i,__i:-1,__u:0};return o==null&&r.vnode!=null&&r.vnode(s),s}function S(e){return e.children}function C(e,t){this.props=e,this.context=t}function w(e,t){if(t==null)return e.__?w(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?w(e):null}function T(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,i=[],a=[],o=v({},t);o.__v=t.__v+1,r.vnode&&r.vnode(o),ce(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,i,n??w(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,ue(i,o,a),t.__e=t.__=null,o.__e!=n&&ee(o)}}function ee(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),ee(e)}function te(e){(!e.__d&&(e.__d=!0)&&a.push(e)&&!E.__r++||o!=r.debounceRendering)&&((o=r.debounceRendering)||s)(E)}function E(){try{for(var e,t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,T(e)}finally{a.length=E.__r=0}}function D(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,g,_,v,y,b=r&&r.__k||h,x=t.length;for(c=ne(n,t,b,c,x),d=0;d<x;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&b[p.__i]||m,p.__i=d,v=ce(e,p,f,i,a,o,s,c,l,u),g=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&pe(f.ref,null,p),u.push(p.ref,p.__c||g,p)),_==null&&g!=null&&(_=g),(y=!!(4&p.__u))||f.__k===p.__k?c=re(p,c,e,y):typeof p.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=_,c}function ne(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=x(null,o,null,null,null):_(o)?o=e.__k[a]=x(S,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=O(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=w(s)),me(s,s));return r}function re(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=re(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=w(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ie(e,t){return t=t||[],e==null||typeof e==`boolean`||(_(e)?e.some(function(e){ie(e,t)}):t.push(e)),t}function O(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function ae(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=`number`||g.test(t)?n:n+`px`}function oe(e,t,n,r,i){var a,o;n:if(t==`style`)if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||ae(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||ae(e.style,t,n[t])}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(l,`$1`)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=u,e.addEventListener(t,a?f:d,a)):e.removeEventListener(t,a?f:d,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function se(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=u++;else if(t.t<n.u)return;return n(r.event?r.event(t):t)}}}function ce(e,t,n,i,a,o,s,c,l,u){var d,f,p,m,g,b,x,w,T,ee,te,E,ne,re,ie,O=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[c=t.__e=n.__e]),(d=r.__b)&&d(t);n:if(typeof O==`function`)try{if(w=t.props,T=O.prototype&&O.prototype.render,ee=(d=O.contextType)&&i[d.__c],te=d?ee?ee.props.value:d.__:i,n.__c?x=(f=t.__c=n.__c).__=f.__E:(T?t.__c=f=new O(w,te):(t.__c=f=new C(w,te),f.constructor=O,f.render=he),ee&&ee.sub(f),f.state||(f.state={}),f.__n=i,p=f.__d=!0,f.__h=[],f._sb=[]),T&&f.__s==null&&(f.__s=f.state),T&&O.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=v({},f.__s)),v(f.__s,O.getDerivedStateFromProps(w,f.__s))),m=f.props,g=f.state,f.__v=t,p)T&&O.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),T&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(T&&O.getDerivedStateFromProps==null&&w!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(w,te),t.__v==n.__v||!f.__e&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(w,f.__s,te)){t.__v!=n.__v&&(f.props=w,f.state=f.__s,f.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),h.push.apply(f.__h,f._sb),f._sb=[],f.__h.length&&s.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(w,f.__s,te),T&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,g,b)})}if(f.context=te,f.props=w,f.__P=e,f.__e=!1,E=r.__r,ne=0,T)f.state=f.__s,f.__d=!1,E&&E(t),d=f.render(f.props,f.state,f.context),h.push.apply(f.__h,f._sb),f._sb=[];else do f.__d=!1,E&&E(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(f.__d&&++ne<25);f.state=f.__s,f.getChildContext!=null&&(i=v(v({},i),f.getChildContext())),T&&!p&&f.getSnapshotBeforeUpdate!=null&&(b=f.getSnapshotBeforeUpdate(m,g)),re=d!=null&&d.type===S&&d.key==null?de(d.props.children):d,c=D(e,_(re)?re:[re],t,n,i,a,o,s,c,l,u),f.base=t.__e,t.__u&=-161,f.__h.length&&s.push(f),x&&(f.__E=f.__=null)}catch(e){if(t.__v=null,l||o!=null)if(e.then){for(t.__u|=l?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(ie=o.length;ie--;)y(o[ie]);le(t)}else t.__e=n.__e,t.__k=n.__k,e.then||le(t);r.__e(e,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=fe(n.__e,t,n,i,a,o,s,l,u);return(d=r.diffed)&&d(t),128&t.__u?void 0:c}function le(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(le))}function ue(e,t,n){for(var i=0;i<n.length;i++)pe(n[i],n[++i],n[++i]);r.__c&&r.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){r.__e(e,t.__v)}})}function de(e){return typeof e!=`object`||!e||e.__b>0?e:_(e)?e.map(de):v({},e)}function fe(e,t,i,a,o,s,c,l,u){var d,f,p,h,g,v,b,x=i.props||m,S=t.props,C=t.type;if(C==`svg`?o=`http://www.w3.org/2000/svg`:C==`math`?o=`http://www.w3.org/1998/Math/MathML`:o||(o=`http://www.w3.org/1999/xhtml`),s!=null){for(d=0;d<s.length;d++)if((g=s[d])&&`setAttribute`in g==!!C&&(C?g.localName==C:g.nodeType==3)){e=g,s[d]=null;break}}if(e==null){if(C==null)return document.createTextNode(S);e=document.createElementNS(o,C,S.is&&S),l&&(r.__m&&r.__m(t,s),l=!1),s=null}if(C==null)x===S||l&&e.data==S||(e.data=S);else{if(s=s&&n.call(e.childNodes),!l&&s!=null)for(x={},d=0;d<e.attributes.length;d++)x[(g=e.attributes[d]).name]=g.value;for(d in x)g=x[d],d==`dangerouslySetInnerHTML`?p=g:d==`children`||d in S||d==`value`&&`defaultValue`in S||d==`checked`&&`defaultChecked`in S||oe(e,d,null,g,o);for(d in S)g=S[d],d==`children`?h=g:d==`dangerouslySetInnerHTML`?f=g:d==`value`?v=g:d==`checked`?b=g:l&&typeof g!=`function`||x[d]===g||oe(e,d,g,x[d],o);if(f)l||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(p&&(e.innerHTML=``),D(t.type==`template`?e.content:e,_(h)?h:[h],t,i,a,C==`foreignObject`?`http://www.w3.org/1999/xhtml`:o,s,c,s?s[0]:i.__k&&w(i,0),l,u),s!=null)for(d=s.length;d--;)y(s[d]);l||(d=`value`,C==`progress`&&v==null?e.removeAttribute(`value`):v!=null&&(v!==e[d]||C==`progress`&&!v||C==`option`&&v!=x[d])&&oe(e,d,v,x[d],o),d=`checked`,b!=null&&b!=e[d]&&oe(e,d,b,x[d],o))}return e}function pe(e,t,n){try{if(typeof e==`function`){var i=typeof e.__u==`function`;i&&e.__u(),i&&t==null||(e.__u=e(t))}else e.current=t}catch(e){r.__e(e,n)}}function me(e,t,n){var i,a;if(r.unmount&&r.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||pe(i,null,t)),(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){r.__e(e,t)}i.base=i.__P=null}if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&me(i[a],t,n||typeof e.type!=`function`);n||y(e.__e),e.__c=e.__=e.__e=void 0}function he(e,t,n){return this.constructor(e,n)}function ge(e,t,i){var a,o,s,c;t==document&&(t=document.documentElement),r.__&&r.__(e,t),o=(a=typeof i==`function`)?null:i&&i.__k||t.__k,s=[],c=[],ce(t,e=(!a&&i||t).__k=b(S,null,[e]),o||m,m,t.namespaceURI,!a&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,s,!a&&i?i:o?o.__e:t.firstChild,a,c),ue(s,e,c)}function _e(e){function t(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&n.forEach(function(e){e.__e=!0,te(e)})},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}return t.__c=`__cC`+ p++,t.__=e,t.Provider=t.__l=(t.Consumer=function(e,t){return e.children(t)}).contextType=t,t}n=h.slice,r={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},i=0,C.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=v({},this.state);typeof e==`function`&&(e=e(v({},n),this.props)),e&&v(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),te(this))},C.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),te(this))},C.prototype.render=S,a=[],s=typeof Promise==`function`?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c=function(e,t){return e.__v.__b-t.__v.__b},E.__r=0,l=/(PointerCapture)$|Capture$/i,u=0,d=se(!1),f=se(!0),p=0;var ve,k,ye,be,xe=0,Se=[],Ce=r,we=Ce.__b,Te=Ce.__r,Ee=Ce.diffed,De=Ce.__c,Oe=Ce.unmount,ke=Ce.__;function Ae(e,t){Ce.__h&&Ce.__h(k,e,xe||t),xe=0;var n=k.__H||(k.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function je(e){return xe=1,Me(We,e)}function Me(e,t,n){var r=Ae(ve++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):We(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=k,!k.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a&&a.call(this,e,t,n)||o};k.__f=!0;var a=k.shouldComponentUpdate,o=k.componentWillUpdate;k.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},k.shouldComponentUpdate=i}return r.__N||r.__}function Ne(e,t){var n=Ae(ve++,3);!Ce.__s&&Ue(n.__H,t)&&(n.__=e,n.u=t,k.__H.__h.push(n))}function Pe(e,t){var n=Ae(ve++,4);!Ce.__s&&Ue(n.__H,t)&&(n.__=e,n.u=t,k.__h.push(n))}function A(e){return xe=5,Fe(function(){return{current:e}},[])}function Fe(e,t){var n=Ae(ve++,7);return Ue(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Ie(e,t){return xe=8,Fe(function(){return e},t)}function Le(e){var t=k.context[e.__c],n=Ae(ve++,9);return n.c=e,t?(n.__??(n.__=!0,t.sub(k)),t.props.value):e.__}function Re(){for(var e;e=Se.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Ve),t.__h.some(He),t.__h=[]}catch(n){t.__h=[],Ce.__e(n,e.__v)}}}Ce.__b=function(e){k=null,we&&we(e)},Ce.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),ke&&ke(e,t)},Ce.__r=function(e){Te&&Te(e),ve=0;var t=(k=e.__c).__H;t&&(ye===k?(t.__h=[],k.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(Ve),t.__h.some(He),t.__h=[],ve=0)),ye=k},Ce.diffed=function(e){Ee&&Ee(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Se.push(t)!==1&&be===Ce.requestAnimationFrame||((be=Ce.requestAnimationFrame)||Be)(Re)),t.__H.__.some(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ye=k=null},Ce.__c=function(e,t){t.some(function(e){try{e.__h.some(Ve),e.__h=e.__h.filter(function(e){return!e.__||He(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Ce.__e(n,e.__v)}}),De&&De(e,t)},Ce.unmount=function(e){Oe&&Oe(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{Ve(e)}catch(e){t=e}}),n.__H=void 0,t&&Ce.__e(t,n.__v))};var ze=typeof requestAnimationFrame==`function`;function Be(e){var t,n=function(){clearTimeout(r),ze&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);ze&&(t=requestAnimationFrame(n))}function Ve(e){var t=k,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),k=t}function He(e){var t=k;e.__c=e.__(),k=t}function Ue(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function We(e,t){return typeof t==`function`?t(e):t}function Ge(e,t){for(var n in t)e[n]=t[n];return e}function Ke(e,t){for(var n in e)if(n!==`__source`&&!(n in t))return!0;for(var r in t)if(r!==`__source`&&e[r]!==t[r])return!0;return!1}function qe(e,t){var n=t(),r=je({t:{__:n,u:t}}),i=r[0].t,a=r[1];return Pe(function(){i.__=n,i.u=t,Je(i)&&a({t:i})},[e,n,t]),Ne(function(){return Je(i)&&a({t:i}),e(function(){Je(i)&&a({t:i})})},[e]),n}function Je(e){try{return!((t=e.__)===(n=e.u())&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}var t,n}function Ye(e,t){this.props=e,this.context=t}(Ye.prototype=new C).isPureReactComponent=!0,Ye.prototype.shouldComponentUpdate=function(e,t){return Ke(this.props,e)||Ke(this.state,t)};var Xe=r.__b;r.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Xe&&Xe(e)},typeof Symbol<`u`&&Symbol.for;var Ze=r.__e;r.__e=function(e,t,n,r){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e??(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}Ze(e,t,n,r)};var Qe=r.unmount;function $e(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(e){typeof e.__c==`function`&&e.__c()}),e.__c.__H=null),(e=Ge({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(e){return $e(e,t,n)})),e}function et(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(e){return et(e,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function tt(){this.__u=0,this.o=null,this.__b=null}function nt(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function rt(){this.i=null,this.l=null}r.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Qe&&Qe(e)},(tt.prototype=new C).__c=function(e,t){var n=t.__c,r=this;r.o??(r.o=[]),r.o.push(n);var i=nt(r.__v),a=!1,o=function(){a||r.__z||(a=!0,n.__R=null,i?i(c):c())};n.__R=o;var s=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=et(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=s,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},tt.prototype.componentWillUnmount=function(){this.o=[]},tt.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement(`div`),r=this.__v.__k[0].__c;this.__v.__k[0]=$e(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&b(S,null,e.fallback);return i&&(i.__u&=-33),[b(S,null,t.__a?null:e.children),i]};var it=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!==`t`||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};(rt.prototype=new C).__a=function(e){var t=this,n=nt(t.__v),r=t.l.get(e);return r[0]++,function(i){var a=function(){t.props.revealOrder?(r.push(i),it(t,e,r)):i()};n?n(a):a()}},rt.prototype.render=function(e){this.i=null,this.l=new Map;var t=ie(e.children);e.revealOrder&&e.revealOrder[0]===`b`&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},rt.prototype.componentDidUpdate=rt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){it(e,n,t)})};var at=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.element`)||60103,ot=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,st=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,ct=/[A-Z0-9]/g,lt=typeof document<`u`,ut=function(e){return(typeof Symbol<`u`&&typeof Symbol()==`symbol`?/fil|che|rad/:/fil|che|ra/).test(e)};C.prototype.isReactComponent=!0,[`componentWillMount`,`componentWillReceiveProps`,`componentWillUpdate`].forEach(function(e){Object.defineProperty(C.prototype,e,{configurable:!0,get:function(){return this[`UNSAFE_`+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var dt=r.event;r.event=function(e){return dt&&(e=dt(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var ft={configurable:!0,get:function(){return this.class}},pt=r.vnode;r.vnode=function(e){typeof e.type==`string`&&function(e){var t=e.props,n=e.type,r={},i=n.indexOf(`-`)==-1;for(var a in t){var o=t[a];if(!(a===`value`&&`defaultValue`in t&&o==null||lt&&a===`children`&&n===`noscript`||a===`class`||a===`className`)){var s=a.toLowerCase();a===`defaultValue`&&`value`in t&&t.value==null?a=`value`:a===`download`&&!0===o?o=``:s===`translate`&&o===`no`?o=!1:s[0]===`o`&&s[1]===`n`?s===`ondoubleclick`?a=`ondblclick`:s!==`onchange`||n!==`input`&&n!==`textarea`||ut(t.type)?s===`onfocus`?a=`onfocusin`:s===`onblur`?a=`onfocusout`:st.test(a)&&(a=s):s=a=`oninput`:i&&ot.test(a)?a=a.replace(ct,`-$&`).toLowerCase():o===null&&(o=void 0),s===`oninput`&&r[a=s]&&(a=`oninputCapture`),r[a]=o}}n==`select`&&(r.multiple&&Array.isArray(r.value)&&(r.value=ie(t.children).forEach(function(e){e.props.selected=r.value.indexOf(e.props.value)!=-1})),r.defaultValue!=null&&(r.value=ie(t.children).forEach(function(e){e.props.selected=r.multiple?r.defaultValue.indexOf(e.props.value)!=-1:r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,`className`,ft)):t.className&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=at,pt&&pt(e)};var mt=r.__r;r.__r=function(e){mt&&mt(e),e.__c};var ht=r.diffed;r.diffed=function(e){ht&&ht(e);var t=e.props,n=e.__e;n!=null&&e.type===`textarea`&&`value`in t&&t.value!==n.value&&(n.value=t.value==null?``:t.value)};var gt=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},_t=(e=>e?gt(e):gt),vt=e=>e;function yt(e){function t(t=vt){let n=Ie(()=>t(e.getState()),[t]);return qe(e.subscribe,n)}return Object.assign(t,e)}function bt(){return e=>yt(_t()(e))}function xt(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`));return[t.slice(0,4).join(``),t.slice(4,6).join(``),t.slice(6,8).join(``),t.slice(8,10).join(``),t.slice(10).join(``)].join(`-`)}var St=Symbol.for(`immer-nothing`),Ct=Symbol.for(`immer-draftable`),j=Symbol.for(`immer-state`);function wt(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Tt=Object,Et=Tt.getPrototypeOf,Dt=`constructor`,Ot=`prototype`,kt=`configurable`,At=`enumerable`,jt=`writable`,Mt=`value`,Nt=e=>!!e&&!!e[j];function Pt(e){return e?Lt(e)||Wt(e)||!!e[Ct]||!!e[Dt]?.[Ct]||Gt(e)||Kt(e):!1}var Ft=Tt[Ot][Dt].toString(),It=new WeakMap;function Lt(e){if(!e||!qt(e))return!1;let t=Et(e);if(t===null||t===Tt[Ot])return!0;let n=Tt.hasOwnProperty.call(t,Dt)&&t[Dt];if(n===Object)return!0;if(!Jt(n))return!1;let r=It.get(n);return r===void 0&&(r=Function.toString.call(n),It.set(n,r)),r===Ft}function Rt(e,t,n=!0){zt(e)===0?(n?Reflect.ownKeys(e):Tt.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function zt(e){let t=e[j];return t?t.type_:Wt(e)?1:Gt(e)?2:Kt(e)?3:0}var Bt=(e,t,n=zt(e))=>n===2?e.has(t):Tt[Ot].hasOwnProperty.call(e,t),Vt=(e,t,n=zt(e))=>n===2?e.get(t):e[t],Ht=(e,t,n,r=zt(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Ut(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Wt=Array.isArray,Gt=e=>e instanceof Map,Kt=e=>e instanceof Set,qt=e=>typeof e==`object`,Jt=e=>typeof e==`function`,Yt=e=>typeof e==`boolean`;function Xt(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Zt=e=>qt(e)?e?.[j]:null,Qt=e=>e.copy_||e.base_,$t=e=>{let t=Zt(e);return t?t.copy_??t.base_:e},en=e=>e.modified_?e.copy_:e.base_;function tn(e,t){if(Gt(e))return new Map(e);if(Kt(e))return new Set(e);if(Wt(e))return Array[Ot].slice.call(e);let n=Lt(e);if(t===!0||t===`class_only`&&!n){let t=Tt.getOwnPropertyDescriptors(e);delete t[j];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[jt]===!1&&(a[jt]=!0,a[kt]=!0),(a.get||a.set)&&(t[i]={[kt]:!0,[jt]:!0,[At]:a[At],[Mt]:e[i]})}return Tt.create(Et(e),t)}else{let t=Et(e);if(t!==null&&n)return{...e};let r=Tt.create(t);return Tt.assign(r,e)}}function nn(e,t=!1){return on(e)||Nt(e)||!Pt(e)?e:(zt(e)>1&&Tt.defineProperties(e,{set:an,add:an,clear:an,delete:an}),Tt.freeze(e),t&&Rt(e,(e,t)=>{nn(t,!0)},!1),e)}function rn(){wt(2)}var an={[Mt]:rn};function on(e){return e===null||!qt(e)?!0:Tt.isFrozen(e)}var sn=`MapSet`,cn=`Patches`,M=`ArrayMethods`,N={};function ln(e){let t=N[e];return t||wt(0,e),t}var un=e=>!!N[e];function dn(e,t){N[e]||(N[e]=t)}var P,fn=()=>P,pn=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:un(sn)?ln(sn):void 0,arrayMethodsPlugin_:un(M)?ln(M):void 0});function mn(e,t){t&&(e.patchPlugin_=ln(cn),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function hn(e){gn(e),e.drafts_.forEach(vn),e.drafts_=null}function gn(e){e===P&&(P=e.parent_)}var _n=e=>P=pn(P,e);function vn(e){let t=e[j];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function yn(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[j].modified_&&(hn(t),wt(4)),Pt(e)&&(e=bn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[j].base_,e,t)}else e=bn(t,n);return xn(t,e,!0),hn(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===St?void 0:e}function bn(e,t){if(on(t))return t;let n=t[j];if(!n)return On(t,e.handledSet_,e);if(!F(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);En(n,e)}return n.copy_}function xn(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&nn(t,n)}function Sn(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var F=(e,t)=>e.scope_===t,Cn=[];function wn(e,t,n,r){let i=Qt(e),a=e.type_;if(r!==void 0&&Vt(i,r,a)===t){Ht(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;Rt(i,(e,n)=>{if(Nt(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Cn;for(let e of o)Ht(i,e,n,a)}function Tn(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!F(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=en(i);wn(e,i.draft_??i,a,n),En(i,r)})}function En(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Sn(e)}}function Dn(e,t,n){let{scope_:r}=e;if(Nt(n)){let i=n[j];F(i,r)&&i.callbacks_.push(function(){In(e),wn(e,n,en(i),t)})}else Pt(n)&&e.callbacks_.push(function(){let i=Qt(e);e.type_===3?i.has(n)&&On(n,r.handledSet_,r):Vt(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&On(Vt(e.copy_,t,e.type_),r.handledSet_,r)})}function On(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||Nt(e)||t.has(e)||!Pt(e)||on(e)?e:(t.add(e),Rt(e,(r,i)=>{if(Nt(i)){let t=i[j];F(t,n)&&(Ht(e,r,en(t),e.type_),Sn(t))}else Pt(i)&&On(i,t,n)}),e)}function kn(e,t){let n=Wt(e),r={type_:n?1:0,scope_:t?t.scope_:fn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=An;n&&(i=[r],a=jn);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var An={get(e,t){if(t===j)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Qt(e);if(!Bt(i,t,e.type_))return Nn(e,i,t);let a=i[t];if(e.finalized_||!Pt(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Xt(t))return a;if(a===Mn(e.base_,t)){In(e);let n=e.type_===1?+t:t,r=Rn(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Qt(e)},ownKeys(e){return Reflect.ownKeys(Qt(e))},set(e,t,n){let r=Pn(Qt(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=Mn(Qt(e),t),i=r?.[j];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Ut(n,r)&&(n!==void 0||Bt(e.base_,t,e.type_)))return!0;In(e),Fn(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Dn(e,t,n),!0)},deleteProperty(e,t){return In(e),Mn(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Fn(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Qt(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[jt]:!0,[kt]:e.type_!==1||t!==`length`,[At]:r[At],[Mt]:n[t]}},defineProperty(){wt(11)},getPrototypeOf(e){return Et(e.base_)},setPrototypeOf(){wt(12)}},jn={};for(let e in An){let t=An[e];jn[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}jn.deleteProperty=function(e,t){return jn.set.call(this,e,t,void 0)},jn.set=function(e,t,n){return An.set.call(this,e[0],t,n,e[0])};function Mn(e,t){let n=e[j];return(n?Qt(n):e)[t]}function Nn(e,t,n){let r=Pn(t,n);return r?Mt in r?r[Mt]:r.get?.call(e.draft_):void 0}function Pn(e,t){if(!(t in e))return;let n=Et(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Et(n)}}function Fn(e){e.modified_||(e.modified_=!0,e.parent_&&Fn(e.parent_))}function In(e){e.copy_||(e.assigned_=new Map,e.copy_=tn(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Ln=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Jt(e)&&!Jt(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Jt(t)||wt(6),n!==void 0&&!Jt(n)&&wt(7);let r;if(Pt(e)){let i=_n(this),a=Rn(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?hn(i):gn(i)}return mn(i,n),yn(r,i)}else if(!e||!qt(e)){if(r=t(e),r===void 0&&(r=e),r===St&&(r=void 0),this.autoFreeze_&&nn(r,!0),n){let t=[],i=[];ln(cn).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else wt(1,e)},this.produceWithPatches=(e,t)=>{if(Jt(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Yt(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Yt(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Yt(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Pt(e)||wt(8),Nt(e)&&(e=zn(e));let t=_n(this),n=Rn(t,e,void 0);return n[j].isManual_=!0,gn(t),n}finishDraft(e,t){let n=e&&e[j];(!n||!n.isManual_)&&wt(9);let{scope_:r}=n;return mn(r,t),yn(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=ln(cn).applyPatches_;return Nt(e)?r(e,t):this.produce(e,e=>r(e,t))}};function Rn(e,t,n,r){let[i,a]=Gt(t)?ln(sn).proxyMap_(t,n):Kt(t)?ln(sn).proxySet_(t,n):kn(t,n);return(n?.scope_??fn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Tn(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function zn(e){return Nt(e)||wt(10,e),Bn(e)}function Bn(e){if(!Pt(e)||on(e))return e;let t=e[j],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=tn(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=tn(e,!0);return Rt(n,(e,t)=>{Ht(n,e,Bn(t))},r),t&&(t.finalized_=!1),n}function Vn(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Zt(Vt(e,n.key_)),i=Vt(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||Bt(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=Vt(n,r),!qt(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[j];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;Rt(e.assigned_,(e,l)=>{let u=Vt(o,e,c),f=Vt(s,e,c),p=l?Bt(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===St?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=zt(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===Dt)&&wt(19),Jt(o)&&n===Ot&&wt(19),o=Vt(o,n),qt(o)||wt(18,i.join(`/`))}let s=zt(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:wt(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:wt(17,a)}}),e}function u(e){if(!Pt(e))return e;if(Wt(e))return e.map(u);if(Gt(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(Kt(e))return new Set(Array.from(e).map(u));let t=Object.create(Et(e));for(let n in e)t[n]=u(e[n]);return Bt(e,Ct)&&(t[Ct]=e[Ct]),t}function d(e){return Nt(e)?u(e):e}dn(cn,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}function Hn(){class e extends Map{constructor(e,t){super(),this[j]={type_:2,parent_:t,scope_:t?t.scope_:fn(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:e,draft_:this,isManual_:!1,revoked_:!1,callbacks_:[]}}get size(){return Qt(this[j]).size}has(e){return Qt(this[j]).has(e)}set(e,t){let r=this[j];return o(r),(!Qt(r).has(e)||Qt(r).get(e)!==t)&&(n(r),Fn(r),r.assigned_.set(e,!0),r.copy_.set(e,t),r.assigned_.set(e,!0),Dn(r,e,t)),this}delete(e){if(!this.has(e))return!1;let t=this[j];return o(t),n(t),Fn(t),t.base_.has(e)?t.assigned_.set(e,!1):t.assigned_.delete(e),t.copy_.delete(e),!0}clear(){let e=this[j];o(e),Qt(e).size&&(n(e),Fn(e),e.assigned_=new Map,Rt(e.base_,t=>{e.assigned_.set(t,!1)}),e.copy_.clear())}forEach(e,t){let n=this[j];Qt(n).forEach((n,r,i)=>{e.call(t,this.get(r),r,this)})}get(e){let t=this[j];o(t);let r=Qt(t).get(e);if(t.finalized_||!Pt(r)||r!==t.base_.get(e))return r;let i=Rn(t.scope_,r,t,e);return n(t),t.copy_.set(e,i),i}keys(){return Qt(this[j]).keys()}values(){let e=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}}entries(){let e=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let t=e.next();if(t.done)return t;let n=this.get(t.value);return{done:!1,value:[t.value,n]}}}}[Symbol.iterator](){return this.entries()}}function t(t,n){let r=new e(t,n);return[r,r[j]]}function n(e){e.copy_||(e.assigned_=new Map,e.copy_=new Map(e.base_))}class r extends Set{constructor(e,t){super(),this[j]={type_:3,parent_:t,scope_:t?t.scope_:fn(),modified_:!1,finalized_:!1,copy_:void 0,base_:e,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1,assigned_:void 0,callbacks_:[]}}get size(){return Qt(this[j]).size}has(e){let t=this[j];return o(t),t.copy_?!!(t.copy_.has(e)||t.drafts_.has(e)&&t.copy_.has(t.drafts_.get(e))):t.base_.has(e)}add(e){let t=this[j];return o(t),this.has(e)||(a(t),Fn(t),t.copy_.add(e),Dn(t,e,e)),this}delete(e){if(!this.has(e))return!1;let t=this[j];return o(t),a(t),Fn(t),t.copy_.delete(e)||(t.drafts_.has(e)?t.copy_.delete(t.drafts_.get(e)):!1)}clear(){let e=this[j];o(e),Qt(e).size&&(a(e),Fn(e),e.copy_.clear())}values(){let e=this[j];return o(e),a(e),e.copy_.values()}entries(){let e=this[j];return o(e),a(e),e.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(e,t){let n=this.values(),r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}}function i(e,t){let n=new r(e,t);return[n,n[j]]}function a(e){e.copy_||(e.copy_=new Set,e.base_.forEach(t=>{if(Pt(t)){let n=Rn(e.scope_,t,e,t);e.drafts_.set(t,n),e.copy_.add(n)}else e.copy_.add(t)}))}function o(e){e.revoked_&&wt(3,JSON.stringify(Qt(e)))}function s(e){if(e.type_===3&&e.copy_){let t=new Set(e.copy_);e.copy_.clear(),t.forEach(t=>{e.copy_.add($t(t))})}}dn(sn,{proxyMap_:t,proxySet_:i,fixSetContents:s})}var Un=new Ln().produce,Wn=e=>(t,n,r)=>(r.setState=(e,n,...r)=>t(typeof e==`function`?Un(e):e,n,...r),e(r.setState,n,r)),Gn={$:`variable`,_:`temporary`,\"@\":`local`,\"%\":`transient`},Kn=Object.fromEntries(Object.entries(Gn).map(([e,t])=>[t,e])),qn=new Set(Object.keys(Gn));function Jn(e){return e!==void 0&&qn.has(e)}function Yn(e,t){return t.className&&(e.className=t.className),t.id&&(e.id=t.id),e}var Xn={SIGIL_SCOPES:Gn,withSelectors:Yn},Zn=`{`,Qn=`}`,{SIGIL_SCOPES:$n,withSelectors:er}=Xn,tr=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),nr={elseif:`if`,else:`if`,case:`switch`,default:`switch`,next:`timed`},rr=new Set([`if`,`switch`,`timed`]),ir=[[`|`,!1],[`->`,!1],[`<-`,!0]],ar={};function or(e,t){let n=(n,r)=>{let i=e.slice(n,r),a=i.trim(),o=t+n+(a?i.indexOf(a):0);return{value:a,start:o,end:o+a.length}};for(let[t,r]of ir){let i=e.indexOf(t);if(i===-1)continue;let a=n(0,i),o=n(i+t.length,e.length),[s,c]=r?[o,a]:[a,o];return{display:s.value,target:c.value,targetStart:c.start,targetEnd:c.end}}let r=n(0,e.length);return{display:r.value,target:r.value,targetStart:r.start,targetEnd:r.end}}function sr(e){return`\"`+e.replace(/[\\\\\"]/g,`\\\\$&`)+`\"`}function cr(e){let t=[],n=``;for(let[r,i]of e)i&&(r===`.`?t.push(i):n=i);return er({},{className:t.join(` `),id:n})}function lr(e){return e.lex===`html`?(e.isClose?`</`:`<`)+e.tag+`>`:Zn+(e.isClose?`/`:``)+e.name+Qn}function ur(e){return e.lex===`html`?`</`+e.tag+`>`:Zn+`/`+e.name+Qn}function dr(e){return`line `+e.start.line+`, column `+e.start.column}function fr(e,t){return e.lex===t.lex&&e.lower===t.lower}function pr(e,t,n){return n.lex=e,n.start=t.start.offset,n.end=t.end.offset,n.loc=t,n}function mr(e){switch(e.lex){case`text`:return{type:`text`,value:e.value};case`link`:return er({type:`macro`,name:`link`,rawArgs:sr(e.display)+` `+sr(e.target),children:[]},e);case`variable`:return er({type:`variable`,name:e.name,scope:e.scope},e);case`expression`:return er({type:`expression`,expression:e.expression},e);default:return e}}function hr(e){let t={start:e.start,end:e.end};switch(e.lex){case`text`:return{type:`text`,value:e.value,...t};case`link`:return er({type:`link`,display:e.display,target:e.target,targetStart:e.targetStart,targetEnd:e.targetEnd,...t},e);case`variable`:return er({type:`variable`,name:e.name,scope:e.scope,...t},e);case`expression`:return er({type:`expression`,expression:e.expression,...t},e);case`macro`:return er({type:`macro`,name:e.name,rawArgs:e.rawArgs,isClose:e.isClose,...t},e);case`html`:return{type:`html`,tag:e.tag,attributes:e.attributes,isClose:e.isClose,isSelfClose:e.isSelfClose,...t}}}function gr(e,t){let n=[],r=null,i=e=>{if(e!=null){if(Array.isArray(e))return e.forEach(i);if(e.lex===`text`&&!e.escape&&r&&r.lex===`text`&&!r.escape&&r.end===e.start){r.value+=e.value,r.end=e.end;return}n.push(e),r=e}};return i(e),t?n.map(t):n}var _r=class extends SyntaxError{constructor(e,t,n,r){super(e),this.expected=t,this.found=n,this.location=r,this.name=`SyntaxError`}format(e){let t=`Error: `+this.message;if(this.location){let n=null,r=e.find(e=>e.source===this.location.source);r&&(n=r.text.split(/\\r\\n|\\n|\\r/g));let i=this.location.start,a=this.location.source&&typeof this.location.source.offset==`function`?this.location.source.offset(i):i,o=this.location.source+`:`+a.line+`:`+a.column;if(n){let e=this.location.end,r=``.padEnd(a.line.toString().length,` `),s=n[i.line-1],c=(i.line===e.line?e.column:s.length+1)-i.column||1;t+=`\n --> `+o+`\n`+r+` |\n`+a.line+` | `+s+`\n`+r+` | `+``.padEnd(i.column-1,` `)+``.padEnd(c,`^`)}else t+=`\n at `+o}return t}static buildMessage(e,t){function n(e){return e.codePointAt(0).toString(16).toUpperCase()}let r=Object.prototype.hasOwnProperty.call(RegExp.prototype,`unicode`)?RegExp(`[\\\\p{C}\\\\p{Mn}\\\\p{Mc}]`,`gu`):null;function i(e){return r?e.replace(r,e=>`\\\\u{`+n(e)+`}`):e}function a(e){return i(e.replace(/\\\\/g,`\\\\\\\\`).replace(/\"/g,`\\\\\"`).replace(/\\0/g,`\\\\0`).replace(/\\t/g,`\\\\t`).replace(/\\n/g,`\\\\n`).replace(/\\r/g,`\\\\r`).replace(/[\\x00-\\x0F]/g,e=>`\\\\x0`+n(e)).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,e=>`\\\\x`+n(e)))}function o(e){return i(e.replace(/\\\\/g,`\\\\\\\\`).replace(/\\]/g,`\\\\]`).replace(/\\^/g,`\\\\^`).replace(/-/g,`\\\\-`).replace(/\\0/g,`\\\\0`).replace(/\\t/g,`\\\\t`).replace(/\\n/g,`\\\\n`).replace(/\\r/g,`\\\\r`).replace(/[\\x00-\\x0F]/g,e=>`\\\\x0`+n(e)).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,e=>`\\\\x`+n(e)))}let s={literal(e){return`\"`+a(e.text)+`\"`},class(e){let t=e.parts.map(e=>Array.isArray(e)?o(e[0])+`-`+o(e[1]):o(e));return`[`+(e.inverted?`^`:``)+t.join(``)+`]`+(e.unicode?`u`:``)},any(){return`any character`},end(){return`end of input`},other(e){return e.description}};function c(e){return s[e.type](e)}function l(e){let t=e.map(c);if(t.sort(),t.length>0){let e=1;for(let n=1;n<t.length;n++)t[n-1]!==t[n]&&(t[e]=t[n],e++);t.length=e}switch(t.length){case 1:return t[0];case 2:return t[0]+` or `+t[1];default:return t.slice(0,-1).join(`, `)+`, or `+t[t.length-1]}}function u(e){return e?`\"`+a(e)+`\"`:`end of input`}return`Expected `+l(e)+` but `+u(t)+` found.`}};function vr(e,t){t=t===void 0?{}:t;let n={},r=t.grammarSource,i={Markup:Tn,Tokens:Ln,SelectorsPrefix:Jn},a=Tn,o=`\\x3C!--`,s=/^[^\\\\{[<]/,c=/^[{}]/,l=/^[$_@%(!\\/a-zA-Z]/,u=/^[.#]/,d=/^[a-zA-Z0-9_\\-]/,f=/^[$_@%]/,p=/^[a-zA-Z0-9_.]/,m=/^[$_@%(!]/,h=/^[a-zA-Z]/,g=/^[^ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF}]/,_=/^[\\t-\\r \\/>\\xA0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,v=/^[a-zA-Z0-9\\-]/,y=/^[\\t-\\r \"'\\/<->{}\\xA0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,b=/^[^\"]/,x=/^[^']/,S=/^[\"']/,C=/^[^ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF>]/,w=/^[ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,T=yn(),ee=vn([`\\\\`,`{`,`[`,`<`],!0,!1,!1),te=_n(`\\x3C!--`,!1),E=_n(`>`,!1),D=_n(`->`,!1),ne=_n(`-->`,!1),re=_n(`\\\\`,!1),ie=vn([`{`,`}`],!1,!1,!1),O=_n(`{`,!1),ae=vn([`$`,`_`,`@`,`%`,`(`,`!`,`/`,[`a`,`z`],[`A`,`Z`]],!1,!1,!1),oe=_n(`<`,!1),se=_n(`[`,!1),ce=_n(`[[`,!1),le=_n(`]]`,!1),ue=_n(` `,!1),de=vn([`.`,`#`],!1,!1,!1),fe=vn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`_`,`-`],!1,!1,!1),pe=vn([`$`,`_`,`@`,`%`],!1,!1,!1),me=vn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`_`,`.`],!1,!1,!1),he=_n(`}`,!1),ge=vn([`$`,`_`,`@`,`%`,`(`,`!`],!1,!1,!1),_e=_n(`/`,!1),ve=vn([[`a`,`z`],[`A`,`Z`]],!1,!1,!1),k=vn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``,`}`],!0,!1,!1),ye=vn([[`\t`,`\\r`],` `,`/`,`>`,`\\xA0`,` `,[` `,` `],[`\\u2028`,`\\u2029`],` `,` `,` `,``],!1,!1,!1),be=_n(`</`,!1),xe=vn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`-`],!1,!1,!1),Se=vn([[`\t`,`\\r`],` `,`\"`,`'`,`/`,[`<`,`>`],`{`,`}`,`\\xA0`,` `,[` `,` `],[`\\u2028`,`\\u2029`],` `,` `,` `,``],!1,!1,!1),Ce=_n(`=`,!1),we=_n(`\"`,!1),Te=vn([`\"`],!0,!1,!1),Ee=_n(`'`,!1),De=vn([`'`],!0,!1,!1),Oe=vn([`\"`,`'`],!1,!1,!1),ke=vn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``,`>`],!0,!1,!1),Ae=vn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``],!1,!1,!1);function je(e){return e}function Me(e){I(lr(e)+` must be directly inside {`+nr[e.lower]+Qn,e.loc)}function Ne(e){I(lr(e)+` closes nothing: no `+(e.lex===`html`?`<`+e.tag+`>`:Zn+e.name+Qn)+` is open here`,e.loc)}function Pe(e){return gr(e,mr)}function A(e){return e.kind===`open`}function Fe(e){return Nr=e.lower,Ar.isRaw(Nr)}function Ie(e,t){return t}function Le(e){return Ar.isBlock(e.lower)}function Re(e,t){return t}function ze(e){return null}function Be(e,t){return Ir(e,t)}function Ve(){return!kr}function He(e){return!e.isSelfClose}function Ue(e,t){return t}function We(e,t){let n={type:`html`,tag:e.tag,attributes:e.attributes,children:[]};return t&&(L(e,t),n.children=t.children),n}function Ge(e,t,n){return{children:e,branches:t,end:n}}function Ke(e,t){return{tag:e,children:t}}function qe(){return null}function Je(e){return e.kind===`branch`}function Ye(e){return e}function Xe(e){return e.kind===`close`}function Ze(e){return e}function Qe(){return!kr}function $e(e){return e}function et(t){return Pr(Ar.rawBodyEnd(e,t,Nr))}function tt(e){return jr-pn()}function nt(e,t,n){return{children:t?[{type:`text`,value:t}]:[],branches:[],end:n}}function rt(){return{children:[],branches:[],end:null}}function it(e){return gr(e,hr)}function at(){return!kr}function ot(e){return e}function st(){return!kr}function ct(e){return tr.has(e.lower)?null:e}function lt(e){return Nr=e.lower,e.kind===`open`&&Ar.isRaw(Nr)}function ut(e,t){return t}function dt(e,t){return t?[e,t]:e}function ft(t){return Pr(Ar.rawBodyEnd(e,t,Nr))}function pt(e){return jr-pn()}function mt(e,t,n){let r={start:{offset:e},end:{offset:e+t.length}};return[t?pr(`text`,r,{value:t}):null,n]}function ht(){return pn()}function gt(e){return pr(`text`,mn(),{value:e})}function _t(e){return pr(`text`,mn(),{value:e})}function vt(e){return e.length%2==1}function yt(e,t){return t}function bt(t,n){let r=mn(),i=e.charAt(r.end.offset);if(kr){if(!n&&i!==Zn&&i!==Qn)return pr(`text`,r,{value:t});let e=pr(`text`,r,{value:`\\\\`.repeat(t.length>>1)+(n||``)});return e.escape=!0,e}if(!n)return pr(`text`,r,{value:t});let a=pr(`text`,r,{value:t.slice(1)});a.end=r.end.offset-2;let o=pr(`text`,r,{value:n});return o.start=r.end.offset-2,o.escape=!0,t.length>1?[a,o]:o}function xt(){return pr(`text`,mn(),{value:Zn})}function St(){return!kr}function Ct(){return pr(`text`,mn(),{value:`<`})}function j(){return pr(`text`,mn(),{value:`[`})}function wt(){return!kr}function Tt(e,t,n){return er(pr(`link`,mn(),or(n,t)),e)}function Et(){return!kr}function Dt(){I(`Unclosed link: [[ without ]]`,mn())}function Ot(e){return cr(e)}function kt(){return ar}function At(e,t){return{...e,end:t}}function jt(e,t){return[e,t]}function Mt(e,t,n){return er(pr(`variable`,mn(),{name:n,scope:$n[t]}),e)}function Nt(e,t){return er(pr(`expression`,mn(),{expression:t}),e)}function Pt(){I(`Unclosed `+Zn+e.substr(mn().end.offset,1)+`…: no } ends it`,mn())}function Ft(t){return Pr(Ar.closeBrace(e,t,t))}function It(e){return jr-pn()}function Lt(e,t){return t}function Rt(t,n,r,i,a){return Pr(Ar.closeBrace(e,a,n))}function zt(e,t,n,r,i){return jr-pn()}function Bt(e,t,n,r,i,a){return a}function Vt(e,t,n,r,i,a){let o=mn(),s=r.toLowerCase(),c=pr(`macro`,o,{name:r,lower:s,rawArgs:``,isClose:!!n});return a===null&&I(`Unclosed `+Zn+(n?`/`:``)+r+`…: no } ends the macro`,o),c.rawArgs=a.trim(),n?(e!==ar&&I(`A closing tag takes no selectors: `+lr(c),o),c.rawArgs&&I(`A closing tag takes no arguments: `+Zn+`/`+r+` `+c.rawArgs+Qn,o),c.kind=`close`):(er(c,e),c.kind=Object.prototype.hasOwnProperty.call(nr,s)?`branch`:`open`),c}function Ht(e){I(`A closing tag starts with a letter after `+Zn+`/`,mn())}function Ut(){return!kr}function Wt(e){return tr.has(e.lower)}function Gt(e){return null}function Kt(e,t,n){let r=e.toLowerCase();return pr(`html`,mn(),{tag:e,lower:r,attributes:Fr(t),isClose:!1,isSelfClose:!!n||tr.has(r)})}function qt(t,n){let r=e.charAt(n);r||I(`Unclosed tag <`+t+`: no > ends it (write < for a < that starts no tag)`,mn());let i={source:mn().source,start:{offset:n,line:0,column:0},end:{offset:n+1,line:0,column:0}};I(`Unexpected `+JSON.stringify(r)+` in the tag <`+t+`>: expected an attribute, or > to end the tag`,i)}function Jt(e){return pr(`html`,mn(),{tag:e,lower:e.toLowerCase(),attributes:{},isClose:!0,isSelfClose:!1})}function Yt(e){return Mr=Ar.isCodeAttribute(e),!0}function Xt(e,t){return t}function Zt(e,t){return[e,t??``]}function Qt(e){return e}function $t(e){return e}function en(e){I(`Unclosed attribute value: the `+e+` here has no closing `+e,mn())}function tn(){return!Mr}function nn(e){return e.length%2==1}function rn(){return!Mr}function an(t,n){return Pr(Ar.closeBrace(e,n,t))}function on(e,t){return jr-pn()}function sn(){return!Mr}function cn(){return Mr}let M=t.peg$currPos|0,N=M,ln=[{line:1,column:1}],un=M,dn=t.peg$maxFailExpected||[],P=t.peg$silentFails|0,fn;if(t.startRule){if(!(t.startRule in i))throw Error(`Can't start parsing from rule \"`+t.startRule+`\".`);a=i[t.startRule]}function pn(){return N}function mn(){return Sn(N,M)}function hn(e,t){throw t=t===void 0?Sn(N,M):t,Cn(e,t)}function gn(t=M){let n=e.codePointAt(t);return n===void 0?``:String.fromCodePoint(n)}function _n(e,t){return{type:`literal`,text:e,ignoreCase:t}}function vn(e,t,n,r){return{type:`class`,parts:e,inverted:t,ignoreCase:n,unicode:r}}function yn(){return{type:`any`}}function bn(){return{type:`end`}}function xn(t){let n=ln[t],r;if(n)return n;if(t>=ln.length)r=ln.length-1;else for(r=t;!ln[--r];);for(n=ln[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return ln[t]=n,n}function Sn(e,t,n){let i=xn(e),a=xn(t),o={source:r,start:{offset:e,line:i.line,column:i.column},end:{offset:t,line:a.line,column:a.column}};return n&&r&&typeof r.offset==`function`&&(o.start=r.offset(o.start),o.end=r.offset(o.end)),o}function F(e){M<un||(M>un&&(un=M,dn=[]),dn.push(e))}function Cn(e,t){return new _r(e,null,null,t)}function wn(e,t,n){return new _r(_r.buildMessage(e,t),e,t,n)}function Tn(){let e,t,r;return e=M,t=Dn(),r=En(),r===n?(M=e,e=n):(N=e,e=je(t)),e}function En(){let t,r;return t=M,P++,e.length>M?(r=e.charAt(M),M++):(r=n,P===0&&F(T)),P--,r===n?t=void 0:(M=t,t=n),t===n&&(t=M,r=Pn(),r!==n&&(N=t,r=Me(r)),t=r,t===n&&(t=M,r=Fn(),r!==n&&(N=t,r=Ne(r)),t=r)),t}function Dn(){let e,t,r;for(e=M,t=[],r=On();r!==n;)t.push(r),r=On();return N=e,t=Pe(t),e=t,e}function On(){let e;return e=Vn(),e===n&&(e=Un(),e===n&&(e=Hn(),e===n&&(e=Gn(),e===n&&(e=An(),e===n&&(e=br(),e===n&&(e=ir(),e===n&&(e=kn(),e===n&&(e=Wn())))))))),e}function kn(){let e,t,r,i,a,o;return e=M,t=vr(),t===n?(M=e,e=n):(N=M,r=A(t),r=r?void 0:n,r===n?(M=e,e=n):(i=M,N=M,a=Fe(t),a=a?void 0:n,a===n?(M=i,i=n):(o=In(),o===n?(M=i,i=n):(N=i,i=Ie(t,o))),i===n&&(i=M,N=M,a=Le(t),a=a?void 0:n,a===n?(M=i,i=n):(o=jn(),o===n?(M=i,i=n):(N=i,i=Re(t,o))),i===n&&(i=M,a=``,N=i,a=ze(t),i=a)),i===n?(M=e,e=n):(N=e,e=Be(t,i)))),e}function An(){let e,t,r,i,a,o;return e=M,N=M,t=Ve(),t=t?void 0:n,t===n?(M=e,e=n):(r=xr(),r===n?(M=e,e=n):(i=M,N=M,a=He(r),a=a?void 0:n,a===n?(M=i,i=n):(o=jn(),o===n?(M=i,i=n):(N=i,i=Ue(r,o))),i===n&&(i=null),N=e,e=We(r,i))),e}function jn(){let e,t,r,i;if(e=M,t=Dn(),t!==n){for(r=[],i=Mn();i!==n;)r.push(i),i=Mn();i=Nn(),i===n?(M=e,e=n):(N=e,e=Ge(t,r,i))}else M=e,e=n;return e}function Mn(){let e,t,r;return e=M,t=Pn(),t===n?(M=e,e=n):(r=Dn(),r===n?(M=e,e=n):(N=e,e=Ke(t,r))),e}function Nn(){let t,r,i;return t=Fn(),t===n&&(t=M,r=M,P++,e.length>M?(i=e.charAt(M),M++):(i=n,P===0&&F(T)),P--,i===n?r=void 0:(M=r,r=n),r!==n&&(N=t,r=qe()),t=r),t}function Pn(){let e,t,r;return e=M,t=vr(),t===n?(M=e,e=n):(N=M,r=Je(t),r=r?void 0:n,r===n?(M=e,e=n):(N=e,e=Ye(t))),e}function Fn(){let e,t,r;return e=M,t=vr(),t===n?(M=e,e=n):(N=M,r=Xe(t),r=r?void 0:n,r===n?(M=e,e=n):(N=e,e=Ze(t))),e===n&&(e=M,N=M,t=Qe(),t=t?void 0:n,t===n?(M=e,e=n):(r=Sr(),r===n?(M=e,e=n):(N=e,e=$e(r)))),e}function In(){let t,r,i,a,o,s,c,l;if(t=M,r=Bn(),N=M,i=et(r),i=i?void 0:n,i!==n){for(a=M,o=tt(r),s=M,c=[],c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));c.length<(o|0)?(M=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,M),a===n?(M=t,t=n):(o=Fn(),o===n?(M=t,t=n):(N=t,t=nt(r,a,o)))}else M=t,t=n;return t===n&&(t=M,r=``,N=t,r=rt(),t=r),t}function Ln(){let e,t,r;for(e=M,t=[],r=Rn();r!==n;)t.push(r),r=Rn();return N=e,t=it(t),e=t,e}function Rn(){let e,t,r,i,a;return e=Vn(),e===n&&(e=Un(),e===n&&(e=Hn(),e===n&&(e=Gn(),e===n&&(e=M,N=M,t=at(),t=t?void 0:n,t===n?(M=e,e=n):(r=xr(),r===n?(M=e,e=n):(N=e,e=ot(r))),e===n&&(e=M,N=M,t=st(),t=t?void 0:n,t===n?(M=e,e=n):(r=Sr(),r===n?(M=e,e=n):(N=e,e=ct(r))),e===n&&(e=ir(),e===n&&(e=M,t=vr(),t===n?(M=e,e=n):(r=M,N=M,i=lt(t),i=i?void 0:n,i===n?(M=r,r=n):(a=zn(),a===n?(M=r,r=n):(N=r,r=ut(t,a))),r===n&&(r=null),N=e,e=dt(t,r)),e===n&&(e=Wn())))))))),e}function zn(){let t,r,i,a,o,s,c,l;if(t=M,r=Bn(),N=M,i=ft(r),i=i?void 0:n,i!==n){for(a=M,o=pt(r),s=M,c=[],c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));c.length<(o|0)?(M=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,M),a===n?(M=t,t=n):(o=Fn(),o===n?(M=t,t=n):(N=t,t=mt(r,a,o)))}else M=t,t=n;return t}function Bn(){let e,t;return e=M,t=``,N=e,t=ht(),e=t,e}function Vn(){let t,r,i,a;if(t=M,r=M,i=[],a=e.charAt(M),s.test(a)?M++:(a=n,P===0&&F(ee)),a!==n)for(;a!==n;)i.push(a),a=e.charAt(M),s.test(a)?M++:(a=n,P===0&&F(ee));else i=n;return r=i===n?i:e.substring(r,M),r!==n&&(N=t,r=gt(r)),t=r,t}function Hn(){let t,r,i,a,s,c,l,u,d;if(t=M,r=M,i=M,e.substr(M,4)===o?(a=o,M+=4):(a=n,P===0&&F(te)),a!==n){if(e.charCodeAt(M)===62?(s=`>`,M++):(s=n,P===0&&F(E)),s===n&&(e.substr(M,2)===`->`?(s=`->`,M+=2):(s=n,P===0&&F(D)),s===n)){for(s=M,c=[],l=M,u=M,P++,e.substr(M,3)===`-->`?(d=`-->`,M+=3):(d=n,P===0&&F(ne)),P--,d===n?u=void 0:(M=u,u=n),u===n?(M=l,l=n):(e.length>M?(d=e.charAt(M),M++):(d=n,P===0&&F(T)),d===n?(M=l,l=n):(u=[u,d],l=u));l!==n;)c.push(l),l=M,u=M,P++,e.substr(M,3)===`-->`?(d=`-->`,M+=3):(d=n,P===0&&F(ne)),P--,d===n?u=void 0:(M=u,u=n),u===n?(M=l,l=n):(e.length>M?(d=e.charAt(M),M++):(d=n,P===0&&F(T)),d===n?(M=l,l=n):(u=[u,d],l=u));e.substr(M,3)===`-->`?(l=`-->`,M+=3):(l=n,P===0&&F(ne)),l===n?(M=s,s=n):(c=[c,l],s=c)}s===n?(M=i,i=n):(a=[a,s],i=a)}else M=i,i=n;return r=i===n?i:e.substring(r,M),r!==n&&(N=t,r=_t(r)),t=r,t}function Un(){let t,r,i,a,o;if(t=M,r=M,i=[],e.charCodeAt(M)===92?(a=`\\\\`,M++):(a=n,P===0&&F(re)),a!==n)for(;a!==n;)i.push(a),e.charCodeAt(M)===92?(a=`\\\\`,M++):(a=n,P===0&&F(re));else i=n;return r=i===n?i:e.substring(r,M),r===n?(M=t,t=n):(i=M,N=M,a=vt(r),a=a?void 0:n,a===n?(M=i,i=n):(o=e.charAt(M),c.test(o)?M++:(o=n,P===0&&F(ie)),o===n?(M=i,i=n):(N=i,i=yt(r,o))),i===n&&(i=null),N=t,t=bt(r,i)),t}function Wn(){let t,r,i,a,o,s;return t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r===n?(M=t,t=n):(i=M,P++,a=M,o=qn(),o===n?(M=a,a=n):(s=e.charAt(M),l.test(s)?M++:(s=n,P===0&&F(ae)),s===n?(M=a,a=n):(o=[o,s],a=o)),P--,a===n?i=void 0:(M=i,i=n),i===n?(M=t,t=n):(N=t,t=xt())),t===n&&(t=M,r=M,P++,i=M,N=M,a=St(),a=a?void 0:n,a===n?(M=i,i=n):(o=Sr(),o===n?(M=i,i=n):(a=[a,o],i=a)),P--,i===n?r=void 0:(M=r,r=n),r===n?(M=t,t=n):(e.charCodeAt(M)===60?(i=`<`,M++):(i=n,P===0&&F(oe)),i===n?(M=t,t=n):(N=t,t=Ct())),t===n&&(t=M,e.charCodeAt(M)===91?(r=`[`,M++):(r=n,P===0&&F(se)),r!==n&&(N=t,r=j()),t=r)),t}function Gn(){let t,r,i,a,o,s,c;return t=M,N=M,r=wt(),r=r?void 0:n,r===n?(M=t,t=n):(e.substr(M,2)===`[[`?(i=`[[`,M+=2):(i=n,P===0&&F(ce)),i===n?(M=t,t=n):(a=qn(),a===n?(M=t,t=n):(o=Bn(),s=M,c=Kn(),s=e.substring(s,M),e.substr(M,2)===`]]`?(c=`]]`,M+=2):(c=n,P===0&&F(le)),c===n?(M=t,t=n):(N=t,t=Tt(a,o,s))))),t===n&&(t=M,N=M,r=Et(),r=r?void 0:n,r===n?(M=t,t=n):(e.substr(M,2)===`[[`?(i=`[[`,M+=2):(i=n,P===0&&F(ce)),i===n?(M=t,t=n):(N=t,t=Dt()))),t}function Kn(){let t,r,i,a;for(t=[],r=M,i=M,P++,e.substr(M,2)===`]]`?(a=`]]`,M+=2):(a=n,P===0&&F(le)),a===n&&(e.substr(M,2)===`[[`?(a=`[[`,M+=2):(a=n,P===0&&F(ce))),P--,a===n?i=void 0:(M=i,i=n),i===n?(M=r,r=n):(e.length>M?(a=e.charAt(M),M++):(a=n,P===0&&F(T)),a===n?(M=r,r=n):(i=[i,a],r=i));r!==n;)t.push(r),r=M,i=M,P++,e.substr(M,2)===`]]`?(a=`]]`,M+=2):(a=n,P===0&&F(le)),a===n&&(e.substr(M,2)===`[[`?(a=`[[`,M+=2):(a=n,P===0&&F(ce))),P--,a===n?i=void 0:(M=i,i=n),i===n?(M=r,r=n):(e.length>M?(a=e.charAt(M),M++):(a=n,P===0&&F(T)),a===n?(M=r,r=n):(i=[i,a],r=i));return t}function qn(){let t,r,i;if(t=M,r=[],i=Yn(),i!==n)for(;i!==n;)r.push(i),i=Yn();else r=n;return r===n?(M=t,t=n):(e.charCodeAt(M)===32?(i=` `,M++):(i=n,P===0&&F(ue)),i===n&&(i=null),N=t,t=Ot(r)),t===n&&(t=M,r=``,N=t,r=kt(),t=r),t}function Jn(){let t,r,i,a,o;if(t=M,r=qn(),r!==n){for(i=Bn(),a=[],e.length>M?(o=e.charAt(M),M++):(o=n,P===0&&F(T));o!==n;)a.push(o),e.length>M?(o=e.charAt(M),M++):(o=n,P===0&&F(T));N=t,t=At(r,i)}else M=t,t=n;return t}function Yn(){let t,r,i,a,o;if(t=M,r=e.charAt(M),u.test(r)?M++:(r=n,P===0&&F(de)),r!==n){for(i=M,a=[],o=Xn();o!==n;)a.push(o),o=Xn();i=e.substring(i,M),N=t,t=jt(r,i)}else M=t,t=n;return t}function Xn(){let t,r,i,a,o;if(t=e.charAt(M),d.test(t)?M++:(t=n,P===0&&F(fe)),t===n)if(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r!==n)if(i=e.charAt(M),f.test(i)?M++:(i=n,P===0&&F(pe)),i!==n){for(a=[],o=e.charAt(M),p.test(o)?M++:(o=n,P===0&&F(me));o!==n;)a.push(o),o=e.charAt(M),p.test(o)?M++:(o=n,P===0&&F(me));e.charCodeAt(M)===125?(o=`}`,M++):(o=n,P===0&&F(he)),o===n?(M=t,t=n):(r=[r,i,a,o],t=r)}else M=t,t=n;else M=t,t=n;return t}function ir(){let t,r,i,a,o,s,c;if(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r!==n)if(i=qn(),i!==n)if(a=e.charAt(M),f.test(a)?M++:(a=n,P===0&&F(pe)),a!==n){for(o=M,s=[],c=e.charAt(M),p.test(c)?M++:(c=n,P===0&&F(me));c!==n;)s.push(c),c=e.charAt(M),p.test(c)?M++:(c=n,P===0&&F(me));o=e.substring(o,M),e.charCodeAt(M)===125?(s=`}`,M++):(s=n,P===0&&F(he)),s===n?(M=t,t=n):(N=t,t=Mt(i,a,o))}else M=t,t=n;else M=t,t=n;else M=t,t=n;return t===n&&(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r===n?(M=t,t=n):(i=qn(),i===n?(M=t,t=n):(a=M,P++,o=e.charAt(M),m.test(o)?M++:(o=n,P===0&&F(ge)),P--,o===n?a=n:(M=a,a=void 0),a===n?(M=t,t=n):(o=sr(),o===n?(M=t,t=n):(e.charCodeAt(M)===125?(s=`}`,M++):(s=n,P===0&&F(he)),s===n?(M=t,t=n):(N=t,t=Nt(i,o)))))),t===n&&(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r===n?(M=t,t=n):(i=qn(),i===n?(M=t,t=n):(a=M,P++,o=e.charAt(M),m.test(o)?M++:(o=n,P===0&&F(ge)),P--,o===n?a=n:(M=a,a=void 0),a===n?(M=t,t=n):(N=t,t=Pt()))))),t}function sr(){let t,r,i,a,o,s,c,l;if(t=M,r=Bn(),N=M,i=Ft(r),i=i?void 0:n,i!==n){for(a=M,o=It(r),s=M,c=[],c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>M?(l=e.charAt(M),M++):(l=n,P===0&&F(T));c.length<(o|0)?(M=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,M),a===n?(M=t,t=n):(N=t,t=Lt(r,a))}else M=t,t=n;return t}function vr(){let t,r,i,a,o,s,c,l,u,d,f,p,m,h;if(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r!==n)if(i=qn(),i!==n)if(a=Bn(),e.charCodeAt(M)===47?(o=`/`,M++):(o=n,P===0&&F(_e)),o===n&&(o=null),s=yr(),s!==n){if(c=Bn(),l=M,N=M,u=Rt(i,a,o,s,c),u=u?void 0:n,u!==n){for(d=M,f=zt(i,a,o,s,c),p=M,m=[],m.length>=(f|0)?h=n:e.length>M?(h=e.charAt(M),M++):(h=n,P===0&&F(T));h!==n;)m.push(h),m.length>=(f|0)?h=n:e.length>M?(h=e.charAt(M),M++):(h=n,P===0&&F(T));m.length<(f|0)?(M=p,p=n):p=m,f=p,d=f===n?f:e.substring(d,M),d===n?(M=l,l=n):(e.charCodeAt(M)===125?(f=`}`,M++):(f=n,P===0&&F(he)),f===n?(M=l,l=n):(N=l,l=Bt(i,a,o,s,c,d)))}else M=l,l=n;l===n&&(l=null),N=t,t=Vt(i,a,o,s,c,l)}else M=t,t=n;else M=t,t=n;else M=t,t=n;return t===n&&(t=M,e.charCodeAt(M)===123?(r=`{`,M++):(r=n,P===0&&F(O)),r===n?(M=t,t=n):(i=qn(),i===n?(M=t,t=n):(e.charCodeAt(M)===47?(a=`/`,M++):(a=n,P===0&&F(_e)),a===n?(M=t,t=n):(N=t,t=Ht(i))))),t}function yr(){let t,r,i,a,o;if(t=M,r=M,i=e.charAt(M),h.test(i)?M++:(i=n,P===0&&F(ve)),i!==n){for(a=[],o=e.charAt(M),g.test(o)?M++:(o=n,P===0&&F(k));o!==n;)a.push(o),o=e.charAt(M),g.test(o)?M++:(o=n,P===0&&F(k));i=[i,a],r=i}else M=r,r=n;return t=r===n?r:e.substring(t,M),t}function br(){let e,t,r,i;return e=M,N=M,t=Ut(),t=t?void 0:n,t===n?(M=e,e=n):(r=Sr(),r===n?(M=e,e=n):(N=M,i=Wt(r),i=i?void 0:n,i===n?(M=e,e=n):(N=e,e=Gt(r)))),e}function xr(){let t,r,i,a,o,s,c;if(t=M,e.charCodeAt(M)===60?(r=`<`,M++):(r=n,P===0&&F(oe)),r!==n)if(i=Cr(),i!==n){for(a=[],o=wr();o!==n;)a.push(o),o=wr();o=Dr(),e.charCodeAt(M)===47?(s=`/`,M++):(s=n,P===0&&F(_e)),s===n&&(s=null),e.charCodeAt(M)===62?(c=`>`,M++):(c=n,P===0&&F(E)),c===n?(M=t,t=n):(N=t,t=Kt(i,a,s))}else M=t,t=n;else M=t,t=n;if(t===n)if(t=M,e.charCodeAt(M)===60?(r=`<`,M++):(r=n,P===0&&F(oe)),r!==n)if(i=Cr(),i!==n)if(a=M,P++,o=e.charAt(M),_.test(o)?M++:(o=n,P===0&&F(ye)),o===n&&(o=M,P++,e.length>M?(s=e.charAt(M),M++):(s=n,P===0&&F(T)),P--,s===n?o=void 0:(M=o,o=n)),P--,o===n?a=n:(M=a,a=void 0),a!==n){for(o=[],s=wr();s!==n;)o.push(s),s=wr();s=Dr(),c=Bn(),N=t,t=qt(i,c)}else M=t,t=n;else M=t,t=n;else M=t,t=n;return t}function Sr(){let t,r,i,a;return t=M,e.substr(M,2)===`</`?(r=`</`,M+=2):(r=n,P===0&&F(be)),r===n?(M=t,t=n):(i=Cr(),i===n?(M=t,t=n):(Dr(),e.charCodeAt(M)===62?(a=`>`,M++):(a=n,P===0&&F(E)),a===n?(M=t,t=n):(N=t,t=Jt(i)))),t}function Cr(){let t,r,i,a,o;if(t=M,r=M,i=e.charAt(M),h.test(i)?M++:(i=n,P===0&&F(ve)),i!==n){for(a=[],o=e.charAt(M),v.test(o)?M++:(o=n,P===0&&F(xe));o!==n;)a.push(o),o=e.charAt(M),v.test(o)?M++:(o=n,P===0&&F(xe));i=[i,a],r=i}else M=r,r=n;return t=r===n?r:e.substring(t,M),t}function wr(){let t,r,i,a,o,s,c;if(t=M,Dr(),r=M,i=[],a=M,o=M,P++,s=e.charAt(M),y.test(s)?M++:(s=n,P===0&&F(Se)),P--,s===n?o=void 0:(M=o,o=n),o===n?(M=a,a=n):(e.length>M?(s=e.charAt(M),M++):(s=n,P===0&&F(T)),s===n?(M=a,a=n):(o=[o,s],a=o)),a!==n)for(;a!==n;)i.push(a),a=M,o=M,P++,s=e.charAt(M),y.test(s)?M++:(s=n,P===0&&F(Se)),P--,s===n?o=void 0:(M=o,o=n),o===n?(M=a,a=n):(e.length>M?(s=e.charAt(M),M++):(s=n,P===0&&F(T)),s===n?(M=a,a=n):(o=[o,s],a=o));else i=n;return r=i===n?i:e.substring(r,M),r===n?(M=t,t=n):(N=M,i=Yt(r),i=i?void 0:n,i===n?(M=t,t=n):(a=M,o=Dr(),e.charCodeAt(M)===61?(s=`=`,M++):(s=n,P===0&&F(Ce)),s===n?(M=a,a=n):(Dr(),c=Tr(),c===n?(M=a,a=n):(N=a,a=Xt(r,c))),a===n&&(a=null),N=t,t=Zt(r,a))),t}function Tr(){let t,r,i,a,o;if(t=M,e.charCodeAt(M)===34?(r=`\"`,M++):(r=n,P===0&&F(we)),r!==n){for(i=M,a=[],o=Er(),o===n&&(o=e.charAt(M),b.test(o)?M++:(o=n,P===0&&F(Te)));o!==n;)a.push(o),o=Er(),o===n&&(o=e.charAt(M),b.test(o)?M++:(o=n,P===0&&F(Te)));i=e.substring(i,M),e.charCodeAt(M)===34?(a=`\"`,M++):(a=n,P===0&&F(we)),a===n?(M=t,t=n):(N=t,t=Qt(i))}else M=t,t=n;if(t===n){if(t=M,e.charCodeAt(M)===39?(r=`'`,M++):(r=n,P===0&&F(Ee)),r!==n){for(i=M,a=[],o=Er(),o===n&&(o=e.charAt(M),x.test(o)?M++:(o=n,P===0&&F(De)));o!==n;)a.push(o),o=Er(),o===n&&(o=e.charAt(M),x.test(o)?M++:(o=n,P===0&&F(De)));i=e.substring(i,M),e.charCodeAt(M)===39?(a=`'`,M++):(a=n,P===0&&F(Ee)),a===n?(M=t,t=n):(N=t,t=$t(i))}else M=t,t=n;if(t===n&&(t=M,r=e.charAt(M),S.test(r)?M++:(r=n,P===0&&F(Oe)),r!==n&&(N=t,r=en(r)),t=r,t===n)){for(t=M,r=[],i=e.charAt(M),C.test(i)?M++:(i=n,P===0&&F(ke));i!==n;)r.push(i),i=e.charAt(M),C.test(i)?M++:(i=n,P===0&&F(ke));t=e.substring(t,M)}}return t}function Er(){let t,r,i,a,o,s,l,u,d,p,m,g,_,v;if(t=M,N=M,r=tn(),r=r?void 0:n,r!==n){if(i=M,a=[],e.charCodeAt(M)===92?(o=`\\\\`,M++):(o=n,P===0&&F(re)),o!==n)for(;o!==n;)a.push(o),e.charCodeAt(M)===92?(o=`\\\\`,M++):(o=n,P===0&&F(re));else a=n;i=a===n?a:e.substring(i,M),i===n?(M=t,t=n):(a=M,N=M,o=nn(i),o=o?void 0:n,o===n?(M=a,a=n):(s=e.charAt(M),c.test(s)?M++:(s=n,P===0&&F(ie)),s===n?(M=a,a=n):(o=[o,s],a=o)),a===n&&(a=null),r=[r,i,a],t=r)}else M=t,t=n;if(t===n){if(t=M,N=M,r=rn(),r=r?void 0:n,r!==n)if(e.charCodeAt(M)===123?(i=`{`,M++):(i=n,P===0&&F(O)),i!==n)if(a=qn(),a!==n)if(o=Bn(),e.charCodeAt(M)===47?(s=`/`,M++):(s=n,P===0&&F(_e)),s===n&&(s=null),l=yr(),l!==n)if(u=Bn(),N=M,d=an(o,u),d=d?void 0:n,d!==n){for(p=M,m=on(o,u),g=M,_=[],_.length>=(m|0)?v=n:e.length>M?(v=e.charAt(M),M++):(v=n,P===0&&F(T));v!==n;)_.push(v),_.length>=(m|0)?v=n:e.length>M?(v=e.charAt(M),M++):(v=n,P===0&&F(T));_.length<(m|0)?(M=g,g=n):g=_,m=g,p=m===n?m:e.substring(p,M),p===n?(M=t,t=n):(e.charCodeAt(M)===125?(m=`}`,M++):(m=n,P===0&&F(he)),m===n?(M=t,t=n):(r=[r,i,a,o,s,l,u,d,p,m],t=r))}else M=t,t=n;else M=t,t=n;else M=t,t=n;else M=t,t=n;else M=t,t=n;t===n&&(t=M,N=M,r=sn(),r=r?void 0:n,r===n?(M=t,t=n):(e.charCodeAt(M)===123?(i=`{`,M++):(i=n,P===0&&F(O)),i===n?(M=t,t=n):(a=qn(),a===n?(M=t,t=n):(o=M,P++,s=M,e.charCodeAt(M)===47?(l=`/`,M++):(l=n,P===0&&F(_e)),l===n&&(l=null),u=e.charAt(M),h.test(u)?M++:(u=n,P===0&&F(ve)),u===n?(M=s,s=n):(l=[l,u],s=l),P--,s===n?o=void 0:(M=o,o=n),o===n?(M=t,t=n):(s=sr(),s===n?(M=t,t=n):(e.charCodeAt(M)===125?(l=`}`,M++):(l=n,P===0&&F(he)),l===n?(M=t,t=n):(r=[r,i,a,o,s,l],t=r)))))),t===n&&(t=M,N=M,r=cn(),r=r?void 0:n,r===n?(M=t,t=n):(e.charCodeAt(M)===123?(i=`{`,M++):(i=n,P===0&&F(O)),i===n?(M=t,t=n):(a=M,P++,o=e.charAt(M),f.test(o)?M++:(o=n,P===0&&F(pe)),P--,o===n?a=n:(M=a,a=void 0),a===n?(M=t,t=n):(o=sr(),o===n?(M=t,t=n):(e.charCodeAt(M)===125?(s=`}`,M++):(s=n,P===0&&F(he)),s===n?(M=t,t=n):(r=[r,i,a,o,s],t=r)))))))}return t}function Dr(){let e,t;for(e=[],t=Or();t!==n;)e.push(t),t=Or();return e}function Or(){let t;return t=e.charAt(M),w.test(t)?M++:(t=n,P===0&&F(Ae)),t}let kr=t.text===!0,Ar=t.hooks,jr=-1,Mr=!1,Nr=``;function Pr(e){return jr=e,e>=0}function I(e,t){hn(e,t)}function Fr(e){let t={},n=new Set;for(let[r,i]of e){let e=r.toLowerCase();n.has(e)||(n.add(e),Object.defineProperty(t,r,{value:i,enumerable:!0,writable:!0,configurable:!0}))}return t}function L(e,t){for(let n of t.branches){let t=nr[n.tag.lower];(e.lex!==`macro`||e.lower!==t)&&I(lr(n.tag)+` must be directly inside {`+t+Qn+`, not inside `+lr(e),n.tag.loc)}t.end||I(`Unclosed `+lr(e)+`: no `+ur(e)+` closes it`,e.loc),fr(e,t.end)||I(lr(t.end)+` found where `+ur(e)+` should close the `+lr(e)+` opened at `+dr(e.loc),t.end.loc)}function Ir(e,t){let n={type:`macro`,name:e.lower,rawArgs:e.rawArgs,children:[]};if(!t)return er(n,e);if(L(e,t),n.children=t.children,rr.has(e.lower)){n.branches=[er({rawArgs:e.rawArgs,children:t.children},e)];for(let e of t.branches)n.branches.push(er({rawArgs:e.tag.rawArgs,children:e.children},e.tag));n.children=[]}else er(n,e);return n}fn=a();let Lr=fn!==n&&M===e.length;function Rr(){throw fn!==n&&M<e.length&&F(bn()),wn(dn,un<e.length?gn(un):null,un<e.length?Sn(un,un+1):Sn(un,un))}if(t.peg$library)return{peg$result:fn,peg$currPos:M,peg$FAILED:n,peg$maxFailExpected:dn,peg$maxFailPos:un,peg$success:Lr,peg$throw:Lr?void 0:Rr};if(Lr)return fn;Rr()}var yr=class extends Map{get(e){return super.get(e.toLowerCase())}set(e,t){return super.set(e.toLowerCase(),t)}has(e){return super.has(e.toLowerCase())}delete(e){return super.delete(e.toLowerCase())}},br=class{constructor(e=[]){this.names=new yr;for(let t of e)this.add(t)}add(e){this.names.set(e,!0)}has(e){return this.names.has(e)}delete(e){this.names.delete(e)}},xr=new br([`if`,`for`,`do`,`button`,`link`,`listbox`,`cycle`,`switch`,`timed`,`repeat`,`type`,`widget`,`span`,`nobr`]);function Sr(e){return xr.has(e)}function Cr(e){xr.add(e)}var wr=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,31,4,33,15,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,7,0,259,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,481,1,61,4,4,5,9,7,3,6,31,3,149,2,12,2,9,1,3,0,33,1,1357,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],Tr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,13,65,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,18,21,18,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,18,0,182,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,22,0,239,18,16,0,2,12,2,33,125,0,80,921,103,111,6,206,13,310,2314,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7386,37,33,96,114,14,913,15,50,7710,3,2,6,2,1,2,296,10,0,30,2,3,0,15,4,8,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,340,2,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,129,15,6,55,50,49,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4382,2,5773,3,7472,16,621,2467,541,1507,4938,6,8489,39815,11327],Er=`·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄ-ؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・`,Dr=`ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-Ა-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿ-ℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ--ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ`,Or={3:`abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile`,5:`class enum extends super const export import`,6:`enum`,strict:`implements interface let package private protected public static yield`,strictBind:`eval arguments`},kr=`break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this`,Ar={5:kr,\"5module\":kr+` export import`,6:kr+` const class extends export import super`},jr=/^in(stanceof)?$/,Mr=RegExp(`[`+Dr+`]`),Nr=RegExp(`[`+Dr+Er+`]`);function Pr(e,t){for(var n=65536,r=0;r<t.length;r+=2){if(n+=t[r],n>e)return!1;if(n+=t[r+1],n>=e)return!0}return!1}function I(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&Mr.test(String.fromCharCode(e)):t===!1?!1:Pr(e,Tr)}function Fr(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&Nr.test(String.fromCharCode(e)):t===!1?!1:Pr(e,Tr)||Pr(e,wr)}var L=function(e,t){t===void 0&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function Ir(e,t){return new L(e,{beforeExpr:!0,binop:t})}var Lr={beforeExpr:!0},Rr={startsExpr:!0},zr={};function R(e,t){return t===void 0&&(t={}),t.keyword=e,zr[e]=new L(e,t)}var z={num:new L(`num`,Rr),regexp:new L(`regexp`,Rr),string:new L(`string`,Rr),name:new L(`name`,Rr),privateId:new L(`privateId`,Rr),eof:new L(`eof`),bracketL:new L(`[`,{beforeExpr:!0,startsExpr:!0}),bracketR:new L(`]`),braceL:new L(`{`,{beforeExpr:!0,startsExpr:!0}),braceR:new L(`}`),parenL:new L(`(`,{beforeExpr:!0,startsExpr:!0}),parenR:new L(`)`),comma:new L(`,`,Lr),semi:new L(`;`,Lr),colon:new L(`:`,Lr),dot:new L(`.`),question:new L(`?`,Lr),questionDot:new L(`?.`),arrow:new L(`=>`,Lr),template:new L(`template`),invalidTemplate:new L(`invalidTemplate`),ellipsis:new L(`...`,Lr),backQuote:new L(\"`\",Rr),dollarBraceL:new L(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new L(`=`,{beforeExpr:!0,isAssign:!0}),assign:new L(`_=`,{beforeExpr:!0,isAssign:!0}),incDec:new L(`++/--`,{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new L(`!/~`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ir(`||`,1),logicalAND:Ir(`&&`,2),bitwiseOR:Ir(`|`,3),bitwiseXOR:Ir(`^`,4),bitwiseAND:Ir(`&`,5),equality:Ir(`==/!=/===/!==`,6),relational:Ir(`</>/<=/>=`,7),bitShift:Ir(`<</>>/>>>`,8),plusMin:new L(`+/-`,{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ir(`%`,10),star:Ir(`*`,10),slash:Ir(`/`,10),starstar:new L(`**`,{beforeExpr:!0}),coalesce:Ir(`??`,1),_break:R(`break`),_case:R(`case`,Lr),_catch:R(`catch`),_continue:R(`continue`),_debugger:R(`debugger`),_default:R(`default`,Lr),_do:R(`do`,{isLoop:!0,beforeExpr:!0}),_else:R(`else`,Lr),_finally:R(`finally`),_for:R(`for`,{isLoop:!0}),_function:R(`function`,Rr),_if:R(`if`),_return:R(`return`,Lr),_switch:R(`switch`),_throw:R(`throw`,Lr),_try:R(`try`),_var:R(`var`),_const:R(`const`),_while:R(`while`,{isLoop:!0}),_with:R(`with`),_new:R(`new`,{beforeExpr:!0,startsExpr:!0}),_this:R(`this`,Rr),_super:R(`super`,Rr),_class:R(`class`,Rr),_extends:R(`extends`,Lr),_export:R(`export`),_import:R(`import`,Rr),_null:R(`null`,Rr),_true:R(`true`,Rr),_false:R(`false`,Rr),_in:R(`in`,{beforeExpr:!0,binop:7}),_instanceof:R(`instanceof`,{beforeExpr:!0,binop:7}),_typeof:R(`typeof`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:R(`void`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:R(`delete`,{beforeExpr:!0,prefix:!0,startsExpr:!0})},Br=/\\r\\n?|\\n|\\u2028|\\u2029/,Vr=new RegExp(Br.source,`g`);function Hr(e){return e===10||e===13||e===8232||e===8233}function Ur(e,t,n){n===void 0&&(n=e.length);for(var r=t;r<n;r++){var i=e.charCodeAt(r);if(Hr(i))return r<n-1&&i===13&&e.charCodeAt(r+1)===10?r+2:r+1}return-1}var Wr=/[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/,Gr=/(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g,Kr=Object.prototype,qr=Kr.hasOwnProperty,Jr=Kr.toString,Yr=Object.hasOwn||(function(e,t){return qr.call(e,t)}),Xr=Array.isArray||(function(e){return Jr.call(e)===`[object Array]`}),Zr=Object.create(null);function Qr(e){return Zr[e]||(Zr[e]=RegExp(`^(?:`+e.replace(/ /g,`|`)+`)$`))}function $r(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}var ei=/(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/,ti=function(e,t){this.line=e,this.column=t};ti.prototype.offset=function(e){return new ti(this.line,this.column+e)};var ni=function(e,t,n){this.start=t,this.end=n,e.sourceFile!==null&&(this.source=e.sourceFile)};function ri(e,t){for(var n=1,r=0;;){var i=Ur(e,r,t);if(i<0)return new ti(n,t-r);++n,r=i}}var ii={ecmaVersion:null,sourceType:`script`,strict:!1,onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,startLocation:null,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},ai=!1;function oi(e){var t={};for(var n in ii)t[n]=e&&Yr(e,n)?e[n]:ii[n];if(t.ecmaVersion===`latest`?t.ecmaVersion=1e8:t.ecmaVersion==null?(!ai&&typeof console==`object`&&console.warn&&(ai=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved??(t.allowReserved=t.ecmaVersion<5),(!e||e.allowHashBang==null)&&(t.allowHashBang=t.ecmaVersion>=14),Xr(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}if(Xr(t.onComment)&&(t.onComment=si(t,t.onComment)),t.sourceType===`commonjs`&&t.allowAwaitOutsideFunction)throw Error(`Cannot use allowAwaitOutsideFunction with sourceType: commonjs`);return t}function si(e,t){return function(n,r,i,a,o,s){var c={type:n?`Block`:`Line`,value:r,start:i,end:a};e.locations&&(c.loc=new ni(this,o,s)),e.ranges&&(c.range=[i,a]),t.push(c)}}var ci=1,li=2,ui=4,di=8,fi=16,pi=32,mi=64,hi=128,gi=256,_i=512,vi=1024,yi=ci|li|gi;function bi(e,t){return li|(e?ui:0)|(t?di:0)}var xi=0,Si=1,Ci=2,wi=3,Ti=4,Ei=5,Di=function(e,t,n){this.options=e=oi(e),this.sourceFile=e.sourceFile,this.keywords=Qr(Ar[e.ecmaVersion>=6?6:e.sourceType===`module`?`5module`:5]);var r=``;e.allowReserved!==!0&&(r=Or[e.ecmaVersion>=6?6:e.ecmaVersion===5?5:3],e.sourceType===`module`&&(r+=` await`)),this.reservedWords=Qr(r);var i=(r?r+` `:``)+Or.strict;this.reservedWordsStrict=Qr(i),this.reservedWordsStrictBind=Qr(i+` `+Or.strictBind),this.input=String(t),this.containsEsc=!1,this.pos=n||0,this.curLine=1,e.startLocation?(this.lineStart=this.pos-e.startLocation.column,this.curLine=e.startLocation.line):n?(this.lineStart=this.input.lastIndexOf(`\n`,n-1)+1,this.options.locations&&(this.curLine=this.input.slice(0,this.lineStart).split(Br).length)):this.lineStart=0,this.type=z.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType===`module`,this.strict=this.inModule||e.strict===!0||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&e.allowHashBang&&this.input.slice(0,2)===`#!`&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType===`commonjs`?li:ci),this.regexpState=null,this.privateNameStack=[]},Oi={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};Di.prototype.parse=function(){var e=this,t=this.options.program||this.startNode();return this.nextToken(),this.catchStackOverflow(function(){return e.parseTopLevel(t)})},Oi.inFunction.get=function(){return(this.currentVarScope().flags&li)>0},Oi.inGenerator.get=function(){return(this.currentVarScope().flags&di)>0},Oi.inAsync.get=function(){return(this.currentVarScope().flags&ui)>0},Oi.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(gi|_i))return!1;if(t&li)return(t&ui)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},Oi.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&ci)},Oi.allowSuper.get=function(){return(this.currentThisScope().flags&mi)>0||this.options.allowSuperOutsideMethod},Oi.allowDirectSuper.get=function(){return(this.currentThisScope().flags&hi)>0},Oi.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Oi.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(gi|_i)||t&li&&!(t&fi))return!0}return!1},Oi.allowUsing.get=function(){var e=this.currentScope().flags;return!(e&vi||!this.inModule&&e&ci)},Oi.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&gi)>0},Di.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var n=this,r=0;r<e.length;r++)n=e[r](n);return n},Di.parse=function(e,t){return new this(t,e).parse()},Di.parseExpressionAt=function(e,t,n){var r=new this(n,e,t);return r.nextToken(),r.parseExpression()},Di.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(Di.prototype,Oi);var ki=Di.prototype,Ai=/^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;ki.strictDirective=function(e){if(this.options.ecmaVersion<5)return!1;for(;;){Gr.lastIndex=e,e+=Gr.exec(this.input)[0].length;var t=Ai.exec(this.input.slice(e));if(!t)return!1;if((t[1]||t[2])===`use strict`){Gr.lastIndex=e+t[0].length;var n=Gr.exec(this.input),r=n.index+n[0].length,i=this.input.charAt(r);return i===`;`||i===`}`||Br.test(n[0])&&!(/[(`.[+\\-/*%<>=,?^&]/.test(i)||i===`!`&&this.input.charAt(r+1)===`=`||i===`i`&&ji(this,r))}e+=t[0].length,Gr.lastIndex=e,e+=Gr.exec(this.input)[0].length,this.input[e]===`;`&&e++}};function ji(e,t){for(var n=t+1,r=Math.min(e.input.length,t+11);n<r;){var i=e.fullCharCodeAt(n);if(!Fr(i,!0))break;n+=i<=65535?1:2}return n===t+2&&e.input.slice(t,n)===`in`||n===t+10&&e.input.slice(t,n)===`instanceof`}ki.eat=function(e){return this.type===e?(this.next(),!0):!1},ki.isContextual=function(e){return this.type===z.name&&this.value===e&&!this.containsEsc},ki.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},ki.catchStackOverflow=function(e){try{return e()}catch(e){if(e instanceof Error&&(/\\bstack\\b.*\\b(exceeded|overflow)\\b/i.test(e.message)||/\\btoo much recursion\\b/i.test(e.message)))this.raise(this.start,`Not enough stack space to parse input`);else throw e}},ki.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},ki.canInsertSemicolon=function(){return this.type===z.eof||this.type===z.braceR||Br.test(this.input.slice(this.lastTokEnd,this.start))},ki.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},ki.semicolon=function(){!this.eat(z.semi)&&!this.insertSemicolon()&&this.unexpected()},ki.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},ki.expect=function(e){this.eat(e)||this.unexpected()},ki.unexpected=function(e){this.raise(e??this.start,`Unexpected token`)};var Mi=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};ki.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,`Comma is not permitted after the rest element`);var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,t?`Assigning to rvalue`:`Parenthesized pattern`)}},ki.checkExpressionErrors=function(e,t){if(!e)return!1;var n=e.shorthandAssign,r=e.doubleProto;if(!t)return n>=0||r>=0;n>=0&&this.raise(n,`Shorthand property assignments are valid only in destructuring patterns`),r>=0&&this.raiseRecoverable(r,`Redefinition of __proto__ property`)},ki.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,`Yield expression cannot be a default value`),this.awaitPos&&this.raise(this.awaitPos,`Await expression cannot be a default value`)},ki.isSimpleAssignTarget=function(e){return e.type===`ParenthesizedExpression`?this.isSimpleAssignTarget(e.expression):e.type===`Identifier`||e.type===`MemberExpression`};var B=Di.prototype;B.parseTopLevel=function(e){var t=Object.create(null);for(e.body||(e.body=[]);this.type!==z.eof;){var n=this.parseStatement(null,!0,t);e.body.push(n)}if(this.inModule)for(var r=0,i=Object.keys(this.undefinedExports);r<i.length;r+=1){var a=i[r];this.raiseRecoverable(this.undefinedExports[a].start,`Export '`+a+`' is not defined`)}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType===`commonjs`?`script`:this.options.sourceType,this.finishNode(e,`Program`)};var Ni={kind:`loop`},Pi={kind:`switch`};B.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual(`let`))return!1;Gr.lastIndex=this.pos;var t=Gr.exec(this.input),n=this.pos+t[0].length,r=this.fullCharCodeAt(n);if(r===91||r===92)return!0;if(e)return!1;if(r===123)return!0;if(I(r)){var i=n;do n+=r<=65535?1:2;while(Fr(r=this.fullCharCodeAt(n)));if(r===92)return!0;var a=this.input.slice(i,n);if(!jr.test(a))return!0}return!1},B.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(`async`))return!1;Gr.lastIndex=this.pos;var e=Gr.exec(this.input),t=this.pos+e[0].length,n;return!Br.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===`function`&&(t+8===this.input.length||!(Fr(n=this.fullCharCodeAt(t+8))||n===92))},B.isUsingKeyword=function(e,t){if(this.options.ecmaVersion<17||!this.isContextual(e?`await`:`using`))return!1;Gr.lastIndex=this.pos;var n=Gr.exec(this.input),r=this.pos+n[0].length;if(Br.test(this.input.slice(this.pos,r)))return!1;if(e){var i=r+5,a;if(this.input.slice(r,i)!==`using`||i===this.input.length||Fr(a=this.fullCharCodeAt(i))||a===92)return!1;Gr.lastIndex=i;var o=Gr.exec(this.input);if(r=i+o[0].length,o&&Br.test(this.input.slice(i,r)))return!1}var s=this.fullCharCodeAt(r);if(!I(s)&&s!==92)return!1;var c=r;do r+=s<=65535?1:2;while(Fr(s=this.fullCharCodeAt(r)));if(s===92)return!0;var l=this.input.slice(c,r);if(jr.test(l))return!1;if(t&&!e&&l===`of`){Gr.lastIndex=r;var u=Gr.exec(this.input);if(r+=u[0].length,this.input.charCodeAt(r)!==61||(s=this.input.charCodeAt(r+1))===61||s===62)return!1}return!0},B.isAwaitUsing=function(e){return this.isUsingKeyword(!0,e)},B.isUsing=function(e){return this.isUsingKeyword(!1,e)},B.parseStatement=function(e,t,n){var r=this.type,i=this.startNode(),a;switch(this.isLet(e)&&(r=z._var,a=`let`),r){case z._break:case z._continue:return this.parseBreakContinueStatement(i,r.keyword);case z._debugger:return this.parseDebuggerStatement(i);case z._do:return this.parseDoStatement(i);case z._for:return this.parseForStatement(i);case z._function:return e&&(this.strict||e!==`if`&&e!==`label`)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(i,!1,!e);case z._class:return e&&this.unexpected(),this.parseClass(i,!0);case z._if:return this.parseIfStatement(i);case z._return:return this.parseReturnStatement(i);case z._switch:return this.parseSwitchStatement(i);case z._throw:return this.parseThrowStatement(i);case z._try:return this.parseTryStatement(i);case z._const:case z._var:return a=a||this.value,e&&a!==`var`&&this.unexpected(),this.parseVarStatement(i,a);case z._while:return this.parseWhileStatement(i);case z._with:return this.parseWithStatement(i);case z.braceL:return this.parseBlock(!0,i);case z.semi:return this.parseEmptyStatement(i);case z._export:case z._import:if(this.options.ecmaVersion>10&&r===z._import){Gr.lastIndex=this.pos;var o=Gr.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(c===40||c===46)return this.parseExpressionStatement(i,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,`'import' and 'export' may only appear at the top level`),this.inModule||this.raise(this.start,`'import' and 'export' may appear only with 'sourceType: module'`)),r===z._import?this.parseImport(i):this.parseExport(i,n);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(i,!0,!e);var l=this.isAwaitUsing(!1)?`await using`:this.isUsing(!1)?`using`:null;if(l)return this.allowUsing||this.raise(this.start,\"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement\"),e&&this.raise(this.start,`Using declaration is not allowed in single-statement positions`),l===`await using`&&(this.canAwait||this.raise(this.start,`Await using cannot appear outside of async function`),this.next()),this.next(),this.parseVar(i,!1,l),this.semicolon(),this.finishNode(i,`VariableDeclaration`);var u=this.value,d=this.parseExpression();return r===z.name&&d.type===`Identifier`&&this.eat(z.colon)?this.parseLabeledStatement(i,u,d,e):this.parseExpressionStatement(i,d)}},B.parseBreakContinueStatement=function(e,t){var n=t===`break`;this.next(),this.eat(z.semi)||this.insertSemicolon()?e.label=null:this.type===z.name?(e.label=this.parseIdent(),this.semicolon()):this.unexpected();for(var r=0;r<this.labels.length;++r){var i=this.labels[r];if((e.label==null||i.name===e.label.name)&&(i.kind!=null&&(n||i.kind===`loop`)||e.label&&n))break}return r===this.labels.length&&this.raise(e.start,`Unsyntactic `+t),this.finishNode(e,n?`BreakStatement`:`ContinueStatement`)},B.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,`DebuggerStatement`)},B.parseDoStatement=function(e){return this.next(),this.labels.push(Ni),e.body=this.parseStatement(`do`),this.labels.pop(),this.expect(z._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(z.semi):this.semicolon(),this.finishNode(e,`DoWhileStatement`)},B.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(`await`)?this.lastTokStart:-1;if(this.labels.push(Ni),this.enterScope(0),this.expect(z.parenL),this.type===z.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var n=this.isLet();if(this.type===z._var||this.type===z._const||n){var r=this.startNode(),i=n?`let`:this.value;return this.next(),this.parseVar(r,!0,i),this.finishNode(r,`VariableDeclaration`),this.parseForAfterInit(e,r,t)}var a=this.isContextual(`let`),o=!1,s=this.isUsing(!0)?`using`:this.isAwaitUsing(!0)?`await using`:null;if(s){var c=this.startNode();return this.next(),s===`await using`&&(this.canAwait||this.raise(this.start,`Await using cannot appear outside of async function`),this.next()),this.parseVar(c,!0,s),this.finishNode(c,`VariableDeclaration`),this.parseForAfterInit(e,c,t)}var l=this.containsEsc,u=new Mi,d=this.start,f=t>-1?this.parseExprSubscripts(u,`await`):this.parseExpression(!0,u);return this.type===z._in||(o=this.options.ecmaVersion>=6&&this.isContextual(`of`))?(t>-1?(this.type===z._in&&this.unexpected(t),e.await=!0):o&&this.options.ecmaVersion>=8&&(f.start===d&&!l&&f.type===`Identifier`&&f.name===`async`?this.unexpected():this.options.ecmaVersion>=9&&(e.await=!1)),a&&o&&this.raise(f.start,`The left-hand side of a for-of loop may not start with 'let'.`),this.toAssignable(f,!1,u),this.checkLValPattern(f),this.parseForIn(e,f)):(this.checkExpressionErrors(u,!0),t>-1&&this.unexpected(t),this.parseFor(e,f))},B.parseForAfterInit=function(e,t,n){return(this.type===z._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))&&t.declarations.length===1?(this.type===z._in?((t.kind===`using`||t.kind===`await using`)&&!t.declarations[0].init&&this.raise(this.start,`Using declaration is not allowed in for-in loops`),this.options.ecmaVersion>=9&&n>-1&&this.unexpected(n)):this.options.ecmaVersion>=9&&(e.await=n>-1),this.parseForIn(e,t)):(n>-1&&this.unexpected(n),this.parseFor(e,t))},B.parseFunctionStatement=function(e,t,n){return this.next(),this.parseFunction(e,Ii|(n?0:Li),!1,t)},B.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(`if`),e.alternate=this.eat(z._else)?this.parseStatement(`if`):null,this.finishNode(e,`IfStatement`)},B.parseReturnStatement=function(e){return this.allowReturn||this.raise(this.start,`'return' outside of function`),this.next(),this.eat(z.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,`ReturnStatement`)},B.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(z.braceL),this.labels.push(Pi),this.enterScope(vi);for(var t,n=!1;this.type!==z.braceR;)if(this.type===z._case||this.type===z._default){var r=this.type===z._case;t&&this.finishNode(t,`SwitchCase`),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,`Multiple default clauses`),n=!0,t.test=null),this.expect(z.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,`SwitchCase`),this.next(),this.labels.pop(),this.finishNode(e,`SwitchStatement`)},B.parseThrowStatement=function(e){return this.next(),Br.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,`Illegal newline after throw`),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,`ThrowStatement`)};var Fi=[];B.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=e.type===`Identifier`;return this.enterScope(t?pi:0),this.checkLValPattern(e,t?Ti:Ci),this.expect(z.parenR),e},B.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===z._catch){var t=this.startNode();this.next(),this.eat(z.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,`CatchClause`)}return e.finalizer=this.eat(z._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,`Missing catch or finally clause`),this.finishNode(e,`TryStatement`)},B.parseVarStatement=function(e,t,n){return this.next(),this.parseVar(e,!1,t,n),this.semicolon(),this.finishNode(e,`VariableDeclaration`)},B.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Ni),e.body=this.parseStatement(`while`),this.labels.pop(),this.finishNode(e,`WhileStatement`)},B.parseWithStatement=function(e){return this.strict&&this.raise(this.start,`'with' in strict mode`),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(`with`),this.finishNode(e,`WithStatement`)},B.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,`EmptyStatement`)},B.parseLabeledStatement=function(e,t,n,r){for(var i=0,a=this.labels;i<a.length;i+=1)a[i].name===t&&this.raise(n.start,`Label '`+t+`' is already declared`);for(var o=this.type.isLoop?`loop`:this.type===z._switch?`switch`:null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart===e.start)c.statementStart=this.start,c.kind=o;else break}return this.labels.push({name:t,kind:o,statementStart:this.start}),e.body=this.parseStatement(r?r.indexOf(`label`)===-1?r+`label`:r:`label`),this.labels.pop(),e.label=n,this.finishNode(e,`LabeledStatement`)},B.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,`ExpressionStatement`)},B.parseBlock=function(e,t,n){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(z.braceL),e&&this.enterScope(0);this.type!==z.braceR;){var r=this.parseStatement(null);t.body.push(r)}return n&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,`BlockStatement`)},B.parseFor=function(e,t){return e.init=t,this.expect(z.semi),e.test=this.type===z.semi?null:this.parseExpression(),this.expect(z.semi),e.update=this.type===z.parenR?null:this.parseExpression(),this.expect(z.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,`ForStatement`)},B.parseForIn=function(e,t){var n=this.type===z._in;return this.next(),t.type===`VariableDeclaration`&&t.declarations[0].init!=null&&(!n||this.options.ecmaVersion<8||this.strict||t.kind!==`var`||t.declarations[0].id.type!==`Identifier`)&&this.raise(t.start,(n?`for-in`:`for-of`)+` loop variable declaration may not have an initializer`),e.left=t,e.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(z.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,n?`ForInStatement`:`ForOfStatement`)},B.parseVar=function(e,t,n,r){for(e.declarations=[],e.kind=n;;){var i=this.startNode();if(this.parseVarId(i,n),this.eat(z.eq)?i.init=this.parseMaybeAssign(t):!r&&n===`const`&&!(this.type===z._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))?this.unexpected():!r&&(n===`using`||n===`await using`)&&this.options.ecmaVersion>=17&&this.type!==z._in&&!this.isContextual(`of`)?this.raise(this.lastTokEnd,`Missing initializer in `+n+` declaration`):!r&&i.id.type!==`Identifier`&&!(t&&(this.type===z._in||this.isContextual(`of`)))?this.raise(this.lastTokEnd,`Complex binding patterns require an initialization value`):i.init=null,e.declarations.push(this.finishNode(i,`VariableDeclarator`)),!this.eat(z.comma))break}return e},B.parseVarId=function(e,t){e.id=t===`using`||t===`await using`?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,t===`var`?Si:Ci,!1)};var Ii=1,Li=2,Ri=4;B.parseFunction=function(e,t,n,r,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===z.star&&t&Li&&this.unexpected(),e.generator=this.eat(z.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&Ii&&(e.id=t&Ri&&this.type!==z.name?null:this.parseIdent(),e.id&&!(t&Li)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Si:Ci:wi));var a=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(bi(e.async,e.generator)),t&Ii||(e.id=this.type===z.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n,!1,i),this.yieldPos=a,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(e,t&Ii?`FunctionDeclaration`:`FunctionExpression`)},B.parseFunctionParams=function(e){this.expect(z.parenL),e.params=this.parseBindingList(z.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},B.parseClass=function(e,t){this.next();var n=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var r=this.enterClassBody(),i=this.startNode(),a=!1;for(i.body=[],this.expect(z.braceL);this.type!==z.braceR;){var o=this.parseClassElement(e.superClass!==null);o&&(i.body.push(o),o.type===`MethodDefinition`&&o.kind===`constructor`?(a&&this.raiseRecoverable(o.start,`Duplicate constructor in the same class`),a=!0):o.key&&o.key.type===`PrivateIdentifier`&&zi(r,o)&&this.raiseRecoverable(o.key.start,`Identifier '#`+o.key.name+`' has already been declared`))}return this.strict=n,this.next(),e.body=this.finishNode(i,`ClassBody`),this.exitClassBody(),this.finishNode(e,t?`ClassDeclaration`:`ClassExpression`)},B.parseClassElement=function(e){if(this.eat(z.semi))return null;var t=this.options.ecmaVersion,n=this.startNode(),r=``,i=!1,a=!1,o=`method`,s=!1;if(this.eatContextual(`static`)){if(t>=13&&this.eat(z.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===z.star?s=!0:r=`static`}if(n.static=s,!r&&t>=8&&this.eatContextual(`async`)&&((this.isClassElementNameStart()||this.type===z.star)&&!this.canInsertSemicolon()?a=!0:r=`async`),!r&&(t>=9||!a)&&this.eat(z.star)&&(i=!0),!r&&!a&&!i){var c=this.value;(this.eatContextual(`get`)||this.eatContextual(`set`))&&(this.isClassElementNameStart()?o=c:r=c)}if(r?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=r,this.finishNode(n.key,`Identifier`)):this.parseClassElementName(n),t<13||this.type===z.parenL||o!==`method`||i||a){var l=!n.static&&Bi(n,`constructor`),u=l&&e;l&&o!==`method`&&this.raise(n.key.start,`Constructor can't have get/set modifier`),n.kind=l?`constructor`:o,this.parseClassMethod(n,i,a,u)}else this.parseClassField(n);return n},B.isClassElementNameStart=function(){return this.type===z.name||this.type===z.privateId||this.type===z.num||this.type===z.string||this.type===z.bracketL||this.type.keyword},B.parseClassElementName=function(e){this.type===z.privateId?(this.value===`constructor`&&this.raise(this.start,`Classes can't have an element named '#constructor'`),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},B.parseClassMethod=function(e,t,n,r){var i=e.key;e.kind===`constructor`?(t&&this.raise(i.start,`Constructor can't be a generator`),n&&this.raise(i.start,`Constructor can't be an async method`)):e.static&&Bi(e,`prototype`)&&this.raise(i.start,`Classes may not have a static property named prototype`);var a=e.value=this.parseMethod(t,n,r);return e.kind===`get`&&a.params.length!==0&&this.raiseRecoverable(a.start,`getter should have no params`),e.kind===`set`&&a.params.length!==1&&this.raiseRecoverable(a.start,`setter should have exactly one param`),e.kind===`set`&&a.params[0].type===`RestElement`&&this.raiseRecoverable(a.params[0].start,`Setter cannot use rest params`),this.finishNode(e,`MethodDefinition`)},B.parseClassField=function(e){return Bi(e,`constructor`)?this.raise(e.key.start,`Classes can't have a field named 'constructor'`):e.static&&Bi(e,`prototype`)&&this.raise(e.key.start,`Classes can't have a static field named 'prototype'`),this.eat(z.eq)?(this.enterScope(_i|mi),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,`PropertyDefinition`)},B.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(gi|mi);this.type!==z.braceR;){var n=this.parseStatement(null);e.body.push(n)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,`StaticBlock`)},B.parseClassId=function(e,t){this.type===z.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,Ci,!1)):(t===!0&&this.unexpected(),e.id=null)},B.parseClassSuper=function(e){e.superClass=this.eat(z._extends)?this.parseExprSubscripts(null,!1):null},B.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},B.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,n=e.used;if(this.options.checkPrivateFields)for(var r=this.privateNameStack.length,i=r===0?null:this.privateNameStack[r-1],a=0;a<n.length;++a){var o=n[a];Yr(t,o.name)||(i?i.used.push(o):this.raiseRecoverable(o.start,`Private field '#`+o.name+`' must be declared in an enclosing class`))}};function zi(e,t){var n=t.key.name,r=e[n],i=`true`;return t.type===`MethodDefinition`&&(t.kind===`get`||t.kind===`set`)&&(i=(t.static?`s`:`i`)+t.kind),r===`iget`&&i===`iset`||r===`iset`&&i===`iget`||r===`sget`&&i===`sset`||r===`sset`&&i===`sget`?(e[n]=`true`,!1):r?!0:(e[n]=i,!1)}function Bi(e,t){var n=e.computed,r=e.key;return!n&&(r.type===`Identifier`&&r.name===t||r.type===`Literal`&&r.value===t)}B.parseExportAllDeclaration=function(e,t){return this.options.ecmaVersion>=11&&(this.eatContextual(`as`)?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual(`from`),this.type!==z.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,`ExportAllDeclaration`)},B.parseExport=function(e,t){if(this.next(),this.eat(z.star))return this.parseExportAllDeclaration(e,t);if(this.eat(z._default))return this.checkExport(t,`default`,this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,`ExportDefaultDeclaration`);if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),e.declaration.type===`VariableDeclaration`?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(`from`))this.type!==z.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var n=0,r=e.specifiers;n<r.length;n+=1){var i=r[n];this.checkUnreserved(i.local),this.checkLocalExport(i.local),i.local.type===`Literal`&&this.raise(i.local.start,\"A string literal cannot be used as an exported binding without `from`.\")}e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,`ExportNamedDeclaration`)},B.parseExportDeclaration=function(e){return this.parseStatement(null)},B.parseExportDefaultDeclaration=function(){var e;if(this.type===z._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,Ii|Ri,!1,e)}else if(this.type===z._class){var n=this.startNode();return this.parseClass(n,`nullableID`)}else{var r=this.parseMaybeAssign();return this.semicolon(),r}},B.checkExport=function(e,t,n){e&&(typeof t!=`string`&&(t=t.type===`Identifier`?t.name:t.value),Yr(e,t)&&this.raiseRecoverable(n,`Duplicate export '`+t+`'`),e[t]=!0)},B.checkPatternExport=function(e,t){var n=t.type;if(n===`Identifier`)this.checkExport(e,t,t.start);else if(n===`ObjectPattern`)for(var r=0,i=t.properties;r<i.length;r+=1){var a=i[r];this.checkPatternExport(e,a)}else if(n===`ArrayPattern`)for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(e,c)}else n===`Property`?this.checkPatternExport(e,t.value):n===`AssignmentPattern`?this.checkPatternExport(e,t.left):n===`RestElement`&&this.checkPatternExport(e,t.argument)},B.checkVariableExport=function(e,t){if(e)for(var n=0,r=t;n<r.length;n+=1){var i=r[n];this.checkPatternExport(e,i.id)}},B.shouldParseExportStatement=function(){return this.type.keyword===`var`||this.type.keyword===`const`||this.type.keyword===`class`||this.type.keyword===`function`||this.isLet()||this.isAsyncFunction()},B.parseExportSpecifier=function(e){var t=this.startNode();return t.local=this.parseModuleExportName(),t.exported=this.eatContextual(`as`)?this.parseModuleExportName():t.local,this.checkExport(e,t.exported,t.exported.start),this.finishNode(t,`ExportSpecifier`)},B.parseExportSpecifiers=function(e){var t=[],n=!0;for(this.expect(z.braceL);!this.eat(z.braceR);){if(n)n=!1;else if(this.expect(z.comma),this.afterTrailingComma(z.braceR))break;t.push(this.parseExportSpecifier(e))}return t},B.parseImport=function(e){return this.next(),this.type===z.string?(e.specifiers=Fi,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual(`from`),e.source=this.type===z.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,`ImportDeclaration`)},B.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual(`as`)?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportSpecifier`)},B.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportDefaultSpecifier`)},B.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual(`as`),e.local=this.parseIdent(),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportNamespaceSpecifier`)},B.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===z.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(z.comma)))return e;if(this.type===z.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(z.braceL);!this.eat(z.braceR);){if(t)t=!1;else if(this.expect(z.comma),this.afterTrailingComma(z.braceR))break;e.push(this.parseImportSpecifier())}return e},B.parseWithClause=function(){var e=[];if(!this.eat(z._with))return e;this.expect(z.braceL);for(var t={},n=!0;!this.eat(z.braceR);){if(n)n=!1;else if(this.expect(z.comma),this.afterTrailingComma(z.braceR))break;var r=this.parseImportAttribute(),i=r.key.type===`Identifier`?r.key.name:r.key.value;Yr(t,i)&&this.raiseRecoverable(r.key.start,`Duplicate attribute key '`+i+`'`),t[i]=!0,e.push(r)}return e},B.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===z.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==`never`),this.expect(z.colon),this.type!==z.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,`ImportAttribute`)},B.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===z.string){var e=this.parseLiteral(this.value);return ei.test(e.value)&&this.raise(e.start,`An export name cannot include a lone surrogate.`),e}return this.parseIdent(!0)},B.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},B.isDirectiveCandidate=function(e){return this.options.ecmaVersion>=5&&e.type===`ExpressionStatement`&&e.expression.type===`Literal`&&typeof e.expression.value==`string`&&(this.input[e.start]===`\"`||this.input[e.start]===`'`)};var Vi=Di.prototype;Vi.toAssignable=function(e,t,n){if(this.options.ecmaVersion>=6&&e)switch(e.type){case`Identifier`:this.inAsync&&e.name===`await`&&this.raise(e.start,`Cannot use 'await' as identifier inside an async function`);break;case`ObjectPattern`:case`ArrayPattern`:case`AssignmentPattern`:case`RestElement`:break;case`ObjectExpression`:e.type=`ObjectPattern`,n&&this.checkPatternErrors(n,!0);for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.toAssignable(a,t),a.type===`RestElement`&&(a.argument.type===`ArrayPattern`||a.argument.type===`ObjectPattern`)&&this.raise(a.argument.start,`Unexpected token`)}break;case`Property`:e.kind!==`init`&&this.raise(e.key.start,`Object pattern can't contain getter or setter`),this.toAssignable(e.value,t);break;case`ArrayExpression`:e.type=`ArrayPattern`,n&&this.checkPatternErrors(n,!0),this.toAssignableList(e.elements,t);break;case`SpreadElement`:e.type=`RestElement`,this.toAssignable(e.argument,t),e.argument.type===`AssignmentPattern`&&this.raise(e.argument.start,`Rest elements cannot have a default value`);break;case`AssignmentExpression`:e.operator!==`=`&&this.raise(e.left.end,`Only '=' operator can be used for specifying default value.`),e.type=`AssignmentPattern`,delete e.operator,this.toAssignable(e.left,t);break;case`ParenthesizedExpression`:this.toAssignable(e.expression,t,n);break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:if(!t)break;default:this.raise(e.start,`Assigning to rvalue`)}else n&&this.checkPatternErrors(n,!0);return e},Vi.toAssignableList=function(e,t){for(var n=e.length,r=0;r<n;r++){var i=e[r];i&&this.toAssignable(i,t)}if(n){var a=e[n-1];this.options.ecmaVersion===6&&t&&a&&a.type===`RestElement`&&a.argument.type!==`Identifier`&&this.unexpected(a.argument.start)}return e},Vi.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,`SpreadElement`)},Vi.parseRestBinding=function(){var e=this.startNode();return this.next(),this.options.ecmaVersion===6&&this.type!==z.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,`RestElement`)},Vi.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case z.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(z.bracketR,!0,!0),this.finishNode(e,`ArrayPattern`);case z.braceL:return this.parseObj(!0)}return this.parseIdent()},Vi.parseBindingList=function(e,t,n,r){for(var i=[],a=!0;!this.eat(e);)if(a?a=!1:this.expect(z.comma),t&&this.type===z.comma)i.push(null);else if(n&&this.afterTrailingComma(e))break;else if(this.type===z.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),i.push(o),this.type===z.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`),this.expect(e);break}else i.push(this.parseAssignableListItem(r));return i},Vi.parseAssignableListItem=function(e){var t=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(t),t},Vi.parseBindingListItem=function(e){return e},Vi.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(z.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,`AssignmentPattern`)},Vi.checkLValSimple=function(e,t,n){t===void 0&&(t=xi);var r=t!==xi;switch(e.type){case`Identifier`:this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(r?`Binding `:`Assigning to `)+e.name+` in strict mode`),r&&(t===Ci&&e.name===`let`&&this.raiseRecoverable(e.start,`let is disallowed as a lexically bound name`),n&&(Yr(n,e.name)&&this.raiseRecoverable(e.start,`Argument name clash`),n[e.name]=!0),t!==Ei&&this.declareName(e.name,t,e.start));break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:r&&this.raiseRecoverable(e.start,`Binding member expression`);break;case`ParenthesizedExpression`:return r&&this.raiseRecoverable(e.start,`Binding parenthesized expression`),this.checkLValSimple(e.expression,t,n);default:this.raise(e.start,(r?`Binding`:`Assigning to`)+` rvalue`)}},Vi.checkLValPattern=function(e,t,n){switch(t===void 0&&(t=xi),e.type){case`ObjectPattern`:for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.checkLValInnerPattern(a,t,n)}break;case`ArrayPattern`:for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,t,n)}break;default:this.checkLValSimple(e,t,n)}},Vi.checkLValInnerPattern=function(e,t,n){switch(t===void 0&&(t=xi),e.type){case`Property`:this.checkLValInnerPattern(e.value,t,n);break;case`AssignmentPattern`:this.checkLValPattern(e.left,t,n);break;case`RestElement`:this.checkLValPattern(e.argument,t,n);break;default:this.checkLValPattern(e,t,n)}};var Hi=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},V={b_stat:new Hi(`{`,!1),b_expr:new Hi(`{`,!0),b_tmpl:new Hi(\"${\",!1),p_stat:new Hi(`(`,!1),p_expr:new Hi(`(`,!0),q_tmpl:new Hi(\"`\",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new Hi(`function`,!1),f_expr:new Hi(`function`,!0),f_expr_gen:new Hi(`function`,!0,!1,null,!0),f_gen:new Hi(`function`,!1,!1,null,!0)},Ui=Di.prototype;Ui.initialContext=function(){return[V.b_stat]},Ui.curContext=function(){return this.context[this.context.length-1]},Ui.braceIsBlock=function(e){var t=this.curContext();return t===V.f_expr||t===V.f_stat?!0:e===z.colon&&(t===V.b_stat||t===V.b_expr)?!t.isExpr:e===z._return||e===z.name&&this.exprAllowed?Br.test(this.input.slice(this.lastTokEnd,this.start)):e===z._else||e===z.semi||e===z.eof||e===z.parenR||e===z.arrow?!0:e===z.braceL?t===V.b_stat:e===z._var||e===z._const||e===z.name?!1:!this.exprAllowed},Ui.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if(t.token===`function`)return t.generator}return!1},Ui.updateContext=function(e){var t,n=this.type;n.keyword&&e===z.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},Ui.overrideContext=function(e){this.curContext()!==e&&(this.context[this.context.length-1]=e)},z.parenR.updateContext=z.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var e=this.context.pop();e===V.b_stat&&this.curContext().token===`function`&&(e=this.context.pop()),this.exprAllowed=!e.isExpr},z.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?V.b_stat:V.b_expr),this.exprAllowed=!0},z.dollarBraceL.updateContext=function(){this.context.push(V.b_tmpl),this.exprAllowed=!0},z.parenL.updateContext=function(e){var t=e===z._if||e===z._for||e===z._with||e===z._while;this.context.push(t?V.p_stat:V.p_expr),this.exprAllowed=!0},z.incDec.updateContext=function(){},z._function.updateContext=z._class.updateContext=function(e){e.beforeExpr&&e!==z._else&&!(e===z.semi&&this.curContext()!==V.p_stat)&&!(e===z._return&&Br.test(this.input.slice(this.lastTokEnd,this.start)))&&!((e===z.colon||e===z.braceL)&&this.curContext()===V.b_stat)?this.context.push(V.f_expr):this.context.push(V.f_stat),this.exprAllowed=!1},z.colon.updateContext=function(){this.curContext().token===`function`&&this.context.pop(),this.exprAllowed=!0},z.backQuote.updateContext=function(){this.curContext()===V.q_tmpl?this.context.pop():this.context.push(V.q_tmpl),this.exprAllowed=!1},z.star.updateContext=function(e){if(e===z._function){var t=this.context.length-1;this.context[t]===V.f_expr?this.context[t]=V.f_expr_gen:this.context[t]=V.f_gen}this.exprAllowed=!0},z.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==z.dot&&(this.value===`of`&&!this.exprAllowed||this.value===`yield`&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var H=Di.prototype;H.checkPropClash=function(e,t,n){if(!(this.options.ecmaVersion>=9&&e.type===`SpreadElement`)&&!(this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var r=e.key,i;switch(r.type){case`Identifier`:i=r.name;break;case`Literal`:i=String(r.value);break;default:return}var a=e.kind;if(this.options.ecmaVersion>=6){i===`__proto__`&&a===`init`&&(t.proto&&(n?n.doubleProto<0&&(n.doubleProto=r.start):this.raiseRecoverable(r.start,`Redefinition of __proto__ property`)),t.proto=!0);return}i=`$`+i;var o=t[i];o?(a===`init`?this.strict&&o.init||o.get||o.set:o.init||o[a])&&this.raiseRecoverable(r.start,`Redefinition of property`):o=t[i]={init:!1,get:!1,set:!1},o[a]=!0}},H.parseExpression=function(e,t){var n=this;return this.catchStackOverflow(function(){var r=n.start,i=n.startLoc,a=n.parseMaybeAssign(e,t);if(n.type===z.comma){var o=n.startNodeAt(r,i);for(o.expressions=[a];n.eat(z.comma);)o.expressions.push(n.parseMaybeAssign(e,t));return n.finishNode(o,`SequenceExpression`)}return a})},H.parseMaybeAssign=function(e,t,n){if(this.isContextual(`yield`)){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var r=!1,i=-1,a=-1,o=-1;t?(i=t.parenthesizedAssign,a=t.trailingComma,o=t.doubleProto,t.parenthesizedAssign=t.trailingComma=-1):(t=new Mi,r=!0);var s=this.start,c=this.startLoc;(this.type===z.parenL||this.type===z.name)&&(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=e===`await`);var l=this.parseMaybeConditional(e,t);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===z.eq&&(l=this.toAssignable(l,!1,t)),r||(t.parenthesizedAssign=t.trailingComma=-1,t.shorthandAssign>=l.start&&(t.shorthandAssign=-1),t.doubleProto>=l.start&&(t.doubleProto=-1)),this.type===z.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(e),o>-1&&(t.doubleProto=o),this.finishNode(u,`AssignmentExpression`)}else r&&this.checkExpressionErrors(t,!0);return i>-1&&(t.parenthesizedAssign=i),a>-1&&(t.trailingComma=a),l},H.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(!(i.type===`ArrowFunctionExpression`&&i.start===n)&&this.eat(z.question)){var a=this.startNodeAt(n,r);return a.test=i,a.consequent=this.parseMaybeAssign(),this.expect(z.colon),a.alternate=this.parseMaybeAssign(e),this.finishNode(a,`ConditionalExpression`)}return i},H.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1,!1,e);return this.checkExpressionErrors(t)||i.start===n&&i.type===`ArrowFunctionExpression`?i:this.parseExprOp(i,n,r,-1,e)},H.parseExprOp=function(e,t,n,r,i){var a=this.type.binop;if(a!=null&&(!i||this.type!==z._in)&&a>r){var o=this.type===z.logicalOR||this.type===z.logicalAND,s=this.type===z.coalesce;s&&(a=z.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,i),l,u,a,i),f=this.buildBinary(t,n,e,d,c,o||s);return(o&&this.type===z.coalesce||s&&(this.type===z.logicalOR||this.type===z.logicalAND))&&this.raiseRecoverable(this.start,`Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses`),this.parseExprOp(f,t,n,r,i)}return e},H.buildBinary=function(e,t,n,r,i,a){r.type===`PrivateIdentifier`&&this.raise(r.start,`Private identifier can only be left side of binary expression`);var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,a?`LogicalExpression`:`BinaryExpression`)},H.parseMaybeUnary=function(e,t,n,r){var i=this.start,a=this.startLoc,o;if(this.isContextual(`await`)&&this.canAwait)o=this.parseAwait(r),t=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===z.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,r),this.checkExpressionErrors(e,!0),c?this.checkLValSimple(s.argument):this.strict&&s.operator===`delete`&&Wi(s.argument)?this.raiseRecoverable(s.start,`Deleting local variable in strict mode`):s.operator===`delete`&&Gi(s.argument)?this.raiseRecoverable(s.start,`Private fields can not be deleted`):t=!0,o=this.finishNode(s,c?`UpdateExpression`:`UnaryExpression`)}else if(!t&&this.type===z.privateId)(r||this.privateNameStack.length===0)&&this.options.checkPrivateFields&&this.unexpected(),o=this.parsePrivateIdent(),this.type!==z._in&&this.unexpected();else{if(o=this.parseExprSubscripts(e,r),this.checkExpressionErrors(e))return o;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(i,a);l.operator=this.value,l.prefix=!1,l.argument=o,this.checkLValSimple(o),this.next(),o=this.finishNode(l,`UpdateExpression`)}}if(!n&&!(o.type===`ArrowFunctionExpression`&&o.start===i)&&this.eat(z.starstar))if(t)this.unexpected(this.lastTokStart);else return this.buildBinary(i,a,o,this.parseMaybeUnary(null,!1,!1,r),`**`,!1);else return o};function Wi(e){return e.type===`Identifier`||e.type===`ParenthesizedExpression`&&Wi(e.expression)}function Gi(e){return e.type===`MemberExpression`&&e.property.type===`PrivateIdentifier`||e.type===`ChainExpression`&&Gi(e.expression)||e.type===`ParenthesizedExpression`&&Gi(e.expression)}H.parseExprSubscripts=function(e,t){var n=this.start,r=this.startLoc,i=-1,a=-1;e&&(i=e.doubleProto,a=e.shorthandAssign,e.doubleProto=e.shorthandAssign=-1);var o=this.parseExprAtom(e,t);if(o.type===`ArrowFunctionExpression`&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==`)`)return o;var s=this.parseSubscripts(o,n,r,!1,t);return e&&(s.end>o.end&&(this.checkExpressionErrors(e,!0),e.parenthesizedAssign>=s.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=s.start&&(e.parenthesizedBind=-1),e.trailingComma>=s.start&&(e.trailingComma=-1)),i>-1&&(e.doubleProto=i),a>-1&&(e.shorthandAssign=a)),s},H.parseSubscripts=function(e,t,n,r,i){for(var a=this.options.ecmaVersion>=8&&e.type===`Identifier`&&e.name===`async`&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&this.potentialArrowAt===e.start,o=!1;;){var s=this.parseSubscript(e,t,n,r,a,o,i);if(s.optional&&(o=!0),s.end===e.end||s.type===`ArrowFunctionExpression`){if(o){var c=this.startNodeAt(t,n);c.expression=s,s=this.finishNode(c,`ChainExpression`)}return s}e=s,a=!1}},H.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(z.arrow)},H.parseSubscriptAsyncArrow=function(e,t,n,r){return this.parseArrowExpression(this.startNodeAt(e,t),n,!0,r)},H.parseSubscript=function(e,t,n,r,i,a,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(z.questionDot);r&&c&&this.raise(this.lastTokStart,`Optional chaining cannot appear in the callee of new expressions`);var l=this.eat(z.bracketL);if(l||c&&this.type!==z.parenL&&this.type!==z.backQuote||this.eat(z.dot)){var u=this.startNodeAt(t,n);u.object=e,l?(u.property=this.parseExpression(),this.expect(z.bracketR)):this.type===z.privateId&&e.type!==`Super`?u.property=this.parsePrivateIdent():u.property=this.parseIdent(this.options.allowReserved!==`never`),u.computed=!!l,s&&(u.optional=c),e=this.finishNode(u,`MemberExpression`)}else if(!r&&this.eat(z.parenL)){var d=new Mi,f=this.yieldPos,p=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var h=this.parseExprList(z.parenR,this.options.ecmaVersion>=8,!1,d);if(i&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,`Cannot use 'await' as identifier inside an async function`),this.yieldPos=f,this.awaitPos=p,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(t,n,h,o);this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=p||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var g=this.startNodeAt(t,n);g.callee=e,g.arguments=h,s&&(g.optional=c),e=this.finishNode(g,`CallExpression`)}else if(this.type===z.backQuote){(c||a)&&this.raise(this.start,`Optional chaining cannot appear in the tag of tagged template expressions`);var _=this.startNodeAt(t,n);_.tag=e,_.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(_,`TaggedTemplateExpression`)}return e},H.parseExprAtom=function(e,t,n){this.type===z.slash&&this.readRegexp();var r,i=this.potentialArrowAt===this.start;switch(this.type){case z._super:return this.allowSuper||this.raise(this.start,`'super' keyword outside a method`),r=this.startNode(),this.next(),this.type===z.parenL&&!this.allowDirectSuper&&this.raise(r.start,`super() call outside constructor of a subclass`),this.type!==z.dot&&this.type!==z.bracketL&&this.type!==z.parenL&&this.unexpected(),this.finishNode(r,`Super`);case z._this:return r=this.startNode(),this.next(),this.finishNode(r,`ThisExpression`);case z.name:var a=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&c.name===`async`&&!this.canInsertSemicolon()&&this.eat(z._function))return this.overrideContext(V.f_expr),this.parseFunction(this.startNodeAt(a,o),0,!1,!0,t);if(i&&!this.canInsertSemicolon()){if(this.eat(z.arrow))return this.parseArrowExpression(this.startNodeAt(a,o),[c],!1,t);if(this.options.ecmaVersion>=8&&c.name===`async`&&this.type===z.name&&!s&&(!this.potentialArrowInForAwait||this.value!==`of`||this.containsEsc))return c=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(z.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,o),[c],!0,t)}return c;case z.regexp:var l=this.value;return r=this.parseLiteral(l.value),r.regex={pattern:l.pattern,flags:l.flags},r;case z.num:case z.string:return this.parseLiteral(this.value);case z._null:case z._true:case z._false:return r=this.startNode(),r.value=this.type===z._null?null:this.type===z._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,`Literal`);case z.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(i,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),d;case z.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(z.bracketR,!0,!0,e),this.finishNode(r,`ArrayExpression`);case z.braceL:return this.overrideContext(V.b_expr),this.parseObj(!1,e);case z._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case z._class:return this.parseClass(this.startNode(),!1);case z._new:return this.parseNew();case z.backQuote:return this.parseTemplate();case z._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},H.parseExprAtomDefault=function(){this.unexpected()},H.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword import`),this.next(),this.type===z.parenL&&!e)return this.parseDynamicImport(t);if(this.type===z.dot){var n=this.startNodeAt(t.start,t.loc&&t.loc.start);return n.name=`import`,t.meta=this.finishNode(n,`Identifier`),this.parseImportMeta(t)}else this.unexpected()},H.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(z.parenR)?e.options=null:(this.expect(z.comma),this.afterTrailingComma(z.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(z.parenR)||(this.expect(z.comma),this.afterTrailingComma(z.parenR)||this.unexpected())));else if(!this.eat(z.parenR)){var t=this.start;this.eat(z.comma)&&this.eat(z.parenR)?this.raiseRecoverable(t,`Trailing comma is not allowed in import()`):this.unexpected(t)}return this.finishNode(e,`ImportExpression`)},H.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`meta`&&this.raiseRecoverable(e.property.start,`The only valid meta property for import is 'import.meta'`),t&&this.raiseRecoverable(e.start,`'import.meta' must not contain escaped characters`),this.options.sourceType!==`module`&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,`Cannot use 'import.meta' outside a module`),this.finishNode(e,`MetaProperty`)},H.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.value==null?t.raw.slice(0,-1).replace(/_/g,``):t.value.toString()),this.next(),this.finishNode(t,`Literal`)},H.parseParenExpression=function(){this.expect(z.parenL);var e=this.parseExpression();return this.expect(z.parenR),e},H.shouldParseArrow=function(e){return!this.canInsertSemicolon()},H.parseParenAndDistinguishExpression=function(e,t){var n=this.start,r=this.startLoc,i,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o=this.start,s=this.startLoc,c=[],l=!0,u=!1,d=new Mi,f=this.yieldPos,p=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==z.parenR;)if(l?l=!1:this.expect(z.comma),a&&this.afterTrailingComma(z.parenR,!0)){u=!0;break}else if(this.type===z.ellipsis){m=this.start,c.push(this.parseParenItem(this.parseRestBinding())),this.type===z.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`);break}else c.push(this.parseMaybeAssign(!1,d,this.parseParenItem));var h=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(z.parenR),e&&this.shouldParseArrow(c)&&this.eat(z.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=p,this.parseParenArrowList(n,r,c,t);(!c.length||u)&&this.unexpected(this.lastTokStart),m&&this.unexpected(m),this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=p||this.awaitPos,c.length>1?(i=this.startNodeAt(o,s),i.expressions=c,this.finishNodeAt(i,`SequenceExpression`,h,g)):i=c[0]}else i=this.parseParenExpression();if(this.options.preserveParens){var _=this.startNodeAt(n,r);return _.expression=i,this.finishNode(_,`ParenthesizedExpression`)}else return i},H.parseParenItem=function(e){return e},H.parseParenArrowList=function(e,t,n,r){return this.parseArrowExpression(this.startNodeAt(e,t),n,!1,r)};var Ki=[];H.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword new`);var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===z.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name=`new`,e.meta=this.finishNode(t,`Identifier`),this.next();var n=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`target`&&this.raiseRecoverable(e.property.start,`The only valid meta property for new is 'new.target'`),n&&this.raiseRecoverable(e.start,`'new.target' must not contain escaped characters`),this.allowNewDotTarget||this.raiseRecoverable(e.start,`'new.target' can only be used in functions and class static block`),this.finishNode(e,`MetaProperty`)}var r=this.start,i=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),r,i,!0,!1),e.callee.type===`Super`&&this.raiseRecoverable(r,`Invalid use of 'super'`),this.eat(z.parenL)?e.arguments=this.parseExprList(z.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Ki,this.finishNode(e,`NewExpression`)},H.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===z.invalidTemplate?(t||this.raiseRecoverable(this.start,`Bad escape sequence in untagged template literal`),n.value={raw:this.value.replace(/\\r\\n?/g,`\n`),cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,`\n`),cooked:this.value},this.next(),n.tail=this.type===z.backQuote,this.finishNode(n,`TemplateElement`)},H.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.type===z.eof&&this.raise(this.pos,`Unterminated template literal`),this.expect(z.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(z.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,`TemplateLiteral`)},H.isAsyncProp=function(e){return!e.computed&&e.key.type===`Identifier`&&e.key.name===`async`&&(this.type===z.name||this.type===z.num||this.type===z.string||this.type===z.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===z.star)&&!Br.test(this.input.slice(this.lastTokEnd,this.start))},H.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(z.braceR);){if(r)r=!1;else if(this.expect(z.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(z.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,i,t),n.properties.push(a)}return this.finishNode(n,e?`ObjectPattern`:`ObjectExpression`)},H.parseProperty=function(e,t){var n=this.startNode(),r,i,a,o;if(this.options.ecmaVersion>=9&&this.eat(z.ellipsis))return e?(n.argument=this.parseIdent(!1),this.type===z.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`),this.finishNode(n,`RestElement`)):(n.argument=this.parseMaybeAssign(!1,t),this.type===z.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(n,`SpreadElement`));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(e||t)&&(a=this.start,o=this.startLoc),e||(r=this.eat(z.star)));var s=this.containsEsc;return this.parsePropertyName(n),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(n)?(i=!0,r=this.options.ecmaVersion>=9&&this.eat(z.star),this.parsePropertyName(n)):i=!1,this.parsePropertyValue(n,e,r,i,a,o,t,s),this.finishNode(n,`Property`)},H.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var n=e.kind===`get`?0:1;if(e.value.params.length!==n){var r=e.value.start;e.kind===`get`?this.raiseRecoverable(r,`getter should have no params`):this.raiseRecoverable(r,`setter should have exactly one param`)}else e.kind===`set`&&e.value.params[0].type===`RestElement`&&this.raiseRecoverable(e.value.params[0].start,`Setter cannot use rest params`)},H.parsePropertyValue=function(e,t,n,r,i,a,o,s){(n||r)&&this.type===z.colon&&this.unexpected(),this.eat(z.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind=`init`):this.options.ecmaVersion>=6&&this.type===z.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(n,r),e.kind=`init`):!t&&!s&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===`Identifier`&&(e.key.name===`get`||e.key.name===`set`)&&this.type!==z.comma&&this.type!==z.braceR&&this.type!==z.eq?((n||r)&&this.unexpected(),this.parseGetterSetter(e)):this.options.ecmaVersion>=6&&!e.computed&&e.key.type===`Identifier`?((n||r)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=i),t?e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key)):this.type===z.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind=`init`,e.shorthand=!0):this.unexpected()},H.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(z.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(z.bracketR),e.key;e.computed=!1}return e.key=this.type===z.num||this.type===z.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==`never`)},H.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},H.parseMethod=function(e,t,n){var r=this.startNode(),i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=e),this.options.ecmaVersion>=8&&(r.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(bi(t,r.generator)|mi|(n?hi:0)),this.expect(z.parenL),r.params=this.parseBindingList(z.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(r,`FunctionExpression`)},H.parseArrowExpression=function(e,t,n,r){var i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(bi(n,!1)|fi),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,r),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,`ArrowFunctionExpression`)},H.parseFunctionBody=function(e,t,n,r){var i=t&&this.type!==z.braceL,a=this.strict,o=!1;if(i)e.body=this.parseMaybeAssign(r),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!a||s)&&(o=this.strictDirective(this.end),o&&s&&this.raiseRecoverable(e.start,`Illegal 'use strict' directive in function with non-simple parameter list`));var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(e,!a&&!o&&!t&&!n&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,Ei),e.body=this.parseBlock(!1,void 0,o&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=c}this.exitScope()},H.isSimpleParamList=function(e){for(var t=0,n=e;t<n.length;t+=1)if(n[t].type!==`Identifier`)return!1;return!0},H.checkParams=function(e,t){for(var n=Object.create(null),r=0,i=e.params;r<i.length;r+=1){var a=i[r];this.checkLValInnerPattern(a,Si,t?null:n)}},H.parseExprList=function(e,t,n,r){for(var i=[],a=!0;!this.eat(e);){if(a)a=!1;else if(this.expect(z.comma),t&&this.afterTrailingComma(e))break;var o=void 0;n&&this.type===z.comma?o=null:this.type===z.ellipsis?(o=this.parseSpread(r),r&&this.type===z.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):o=this.parseMaybeAssign(!1,r),i.push(o)}return i},H.checkUnreserved=function(e){var t=e.start,n=e.end,r=e.name;this.inGenerator&&r===`yield`&&this.raiseRecoverable(t,`Cannot use 'yield' as identifier inside a generator`),this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use 'await' as identifier inside an async function`),!(this.currentThisScope().flags&yi)&&r===`arguments`&&this.raiseRecoverable(t,`Cannot use 'arguments' in class field initializer`),this.inClassStaticBlock&&(r===`arguments`||r===`await`)&&this.raise(t,`Cannot use `+r+` in class static initialization block`),this.keywords.test(r)&&this.raise(t,`Unexpected keyword '`+r+`'`),!(this.options.ecmaVersion<6&&this.input.slice(t,n).indexOf(`\\\\`)!==-1)&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(r)&&(!this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use keyword 'await' outside an async function`),this.raiseRecoverable(t,`The keyword '`+r+`' is reserved`))},H.parseIdent=function(e){var t=this.parseIdentNode();return this.next(!!e),this.finishNode(t,`Identifier`),e||(this.checkUnreserved(t),t.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=t.start)),t},H.parseIdentNode=function(){var e=this.startNode();return this.type===z.name?e.name=this.value:this.type.keyword?(e.name=this.type.keyword,(e.name===`class`||e.name===`function`)&&(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&&this.context.pop(),this.type=z.name):this.unexpected(),e},H.parsePrivateIdent=function(){var e=this.startNode();return this.type===z.privateId?e.name=this.value:this.unexpected(),this.next(),this.finishNode(e,`PrivateIdentifier`),this.options.checkPrivateFields&&(this.privateNameStack.length===0?this.raise(e.start,`Private field '#`+e.name+`' must be declared in an enclosing class`):this.privateNameStack[this.privateNameStack.length-1].used.push(e)),e},H.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===z.semi||this.canInsertSemicolon()||this.type!==z.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(z.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,`YieldExpression`)},H.parseAwait=function(e){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0,!1,e),this.finishNode(t,`AwaitExpression`)};var qi=Di.prototype;qi.raise=function(e,t){var n=ri(this.input,e);t+=` (`+n.line+`:`+n.column+`)`,this.sourceFile&&(t+=` in `+this.sourceFile);var r=SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},qi.raiseRecoverable=qi.raise,qi.curPosition=function(){if(this.options.locations)return new ti(this.curLine,this.pos-this.lineStart)};var Ji=Di.prototype,Yi=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};Ji.enterScope=function(e){this.scopeStack.push(new Yi(e))},Ji.exitScope=function(){this.scopeStack.pop()},Ji.treatFunctionsAsVarInScope=function(e){return e.flags&li||!this.inModule&&e.flags&ci},Ji.declareName=function(e,t,n){var r=!1;if(t===Ci){var i=this.currentScope();r=i.lexical.indexOf(e)>-1||i.functions.indexOf(e)>-1||i.var.indexOf(e)>-1,i.lexical.push(e),this.inModule&&i.flags&ci&&delete this.undefinedExports[e]}else if(t===Ti)this.currentScope().lexical.push(e);else if(t===wi){var a=this.currentScope();r=this.treatFunctionsAsVar?a.lexical.indexOf(e)>-1:a.lexical.indexOf(e)>-1||a.var.indexOf(e)>-1,a.functions.push(e)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(e)>-1&&!(s.flags&pi&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){r=!0;break}if(s.var.push(e),this.inModule&&s.flags&ci&&delete this.undefinedExports[e],s.flags&yi)break}r&&this.raiseRecoverable(n,`Identifier '`+e+`' has already been declared`)},Ji.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},Ji.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Ji.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(yi|_i|gi))return t}},Ji.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(yi|_i|gi)&&!(t.flags&fi))return t}};var Xi=function(e,t,n){this.type=``,this.start=t,this.end=0,e.options.locations&&(this.loc=new ni(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},Zi=Di.prototype;Zi.startNode=function(){return new Xi(this,this.start,this.startLoc)},Zi.startNodeAt=function(e,t){return new Xi(this,e,t)};function Qi(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}Zi.finishNode=function(e,t){return Qi.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Zi.finishNodeAt=function(e,t,n,r){return Qi.call(this,e,t,n,r)},Zi.copyNode=function(e){var t=new Xi(this,e.start,this.startLoc);for(var n in e)t[n]=e[n];return t};var $i=`Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz`,ea=`ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS`,ta=ea+` Extended_Pictographic`,na=ta,ra=na+` EBase EComp EMod EPres ExtPict`,ia=ra,aa=ia,oa={9:ea,10:ta,11:na,12:ra,13:ia,14:aa},sa=`Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji`,ca={9:``,10:``,11:``,12:``,13:``,14:sa},la=`Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu`,ua=`Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb`,da=ua+` Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd`,fa=da+` Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho`,pa=fa+` Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi`,ma=pa+` Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith`,ha=ma+` `+$i,ga={9:ua,10:da,11:fa,12:pa,13:ma,14:ha},_a={};function va(e){var t=_a[e]={binary:Qr(oa[e]+` `+la),binaryOfStrings:Qr(ca[e]),nonBinary:{General_Category:Qr(la),Script:Qr(ga[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var ya=0,ba=[9,10,11,12,13,14];ya<ba.length;ya+=1){var xa=ba[ya];va(xa)}var U=Di.prototype,Sa=function(e,t){this.parent=e,this.base=t||this};Sa.prototype.separatedFrom=function(e){for(var t=this;t;t=t.parent)for(var n=e;n;n=n.parent)if(t.base===n.base&&t!==n)return!0;return!1},Sa.prototype.sibling=function(){return new Sa(this.parent,this.base)};var Ca=function(e){this.parser=e,this.validFlags=`gim`+(e.options.ecmaVersion>=6?`uy`:``)+(e.options.ecmaVersion>=9?`s`:``)+(e.options.ecmaVersion>=13?`d`:``)+(e.options.ecmaVersion>=15?`v`:``),this.unicodeProperties=_a[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source=``,this.flags=``,this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=``,this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};Ca.prototype.reset=function(e,t,n){var r=n.indexOf(`v`)!==-1,i=n.indexOf(`u`)!==-1;this.start=e|0,this.source=t+``,this.flags=n,r&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=i&&this.parser.options.ecmaVersion>=9)},Ca.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,`Invalid regular expression: /`+this.source+`/: `+e)},Ca.prototype.at=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return-1;var i=n.charCodeAt(e);if(!(t||this.switchU)||i<=55295||i>=57344||e+1>=r)return i;var a=n.charCodeAt(e+1);return a>=56320&&a<=57343?(i<<10)+a-56613888:i},Ca.prototype.nextIndex=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return r;var i=n.charCodeAt(e),a;return!(t||this.switchU)||i<=55295||i>=57344||e+1>=r||(a=n.charCodeAt(e+1))<56320||a>57343?e+1:e+2},Ca.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)},Ca.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Ca.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Ca.prototype.eat=function(e,t){return t===void 0&&(t=!1),this.current(t)===e?(this.advance(t),!0):!1},Ca.prototype.eatChars=function(e,t){t===void 0&&(t=!1);for(var n=this.pos,r=0,i=e;r<i.length;r+=1){var a=i[r],o=this.at(n,t);if(o===-1||o!==a)return!1;n=this.nextIndex(n,t)}return this.pos=n,!0},U.validateRegExpFlags=function(e){for(var t=e.validFlags,n=e.flags,r=!1,i=!1,a=0;a<n.length;a++){var o=n.charAt(a);t.indexOf(o)===-1&&this.raise(e.start,`Invalid regular expression flag`),n.indexOf(o,a+1)>-1&&this.raise(e.start,`Duplicate regular expression flag`),o===`u`&&(r=!0),o===`v`&&(i=!0)}this.options.ecmaVersion>=15&&r&&i&&this.raise(e.start,`Invalid regular expression flag`)};function wa(e){for(var t in e)return!0;return!1}U.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&wa(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))},U.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=``,e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(`Unmatched ')'`),(e.eat(93)||e.eat(125))&&e.raise(`Lone quantifier brackets`)),e.maxBackReference>e.numCapturingParens&&e.raise(`Invalid escape`);for(var t=0,n=e.backReferenceNames;t<n.length;t+=1){var r=n[t];e.groupNames[r]||e.raise(`Invalid named capture referenced`)}},U.regexp_disjunction=function(e){var t=this.options.ecmaVersion>=16;for(t&&(e.branchID=new Sa(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise(`Nothing to repeat`),e.eat(123)&&e.raise(`Lone quantifier brackets`)},U.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},U.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise(`Invalid quantifier`),!0):(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))?(this.regexp_eatQuantifier(e),!0):!1},U.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(`Unterminated group`),e.lastAssertionIsQuantifiable=!n,!0}return e.pos=t,!1},U.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},U.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},U.regexp_eatBracedQuantifier=function(e,t){var n=e.pos;if(e.eat(123)){var r=0,i=-1;if(this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue),e.eat(125)))return i!==-1&&i<r&&!t&&e.raise(`numbers out of order in {} quantifier`),!0;e.switchU&&!t&&e.raise(`Incomplete quantifier`),e.pos=n}return!1},U.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},U.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},U.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)){if(this.options.ecmaVersion>=16){var n=this.regexp_eatModifiers(e),r=e.eat(45);if(n||r){for(var i=0;i<n.length;i++){var a=n.charAt(i);n.indexOf(a,i+1)>-1&&e.raise(`Duplicate regular expression modifiers`)}if(r){var o=this.regexp_eatModifiers(e);!n&&!o&&e.current()===58&&e.raise(`Invalid regular expression modifiers`);for(var s=0;s<o.length;s++){var c=o.charAt(s);(o.indexOf(c,s+1)>-1||n.indexOf(c)>-1)&&e.raise(`Duplicate regular expression modifiers`)}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise(`Unterminated group`)}}e.pos=t}return!1},U.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(`Invalid group`),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(`Unterminated group`)}return!1},U.regexp_eatModifiers=function(e){for(var t=``,n=0;(n=e.current())!==-1&&Ta(n);)t+=$r(n),e.advance();return t};function Ta(e){return e===105||e===109||e===115}U.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},U.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(`Nothing to repeat`),!1},U.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ea(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ea(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}U.regexp_eatPatternCharacters=function(e){for(var t=e.pos,n=0;(n=e.current())!==-1&&!Ea(n);)e.advance();return e.pos!==t},U.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},U.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise(`Invalid group`);var t=this.options.ecmaVersion>=16,n=e.groupNames[e.lastStringValue];if(n)if(t)for(var r=0,i=n;r<i.length;r+=1)i[r].separatedFrom(e.branchID)||e.raise(`Duplicate capture group name`);else e.raise(`Duplicate capture group name`);t?(n||(e.groupNames[e.lastStringValue]=[])).push(e.branchID):e.groupNames[e.lastStringValue]=!0}},U.regexp_eatGroupName=function(e){if(e.lastStringValue=``,e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(`Invalid capture group name`)}return!1},U.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=``,this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=$r(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=$r(e.lastIntValue);return!0}return!1},U.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),Da(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Da(e){return I(e,!0)||e===36||e===95}U.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),Oa(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Oa(e){return Fr(e,!0)||e===36||e===95||e===8204||e===8205}U.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(`Invalid unicode escape`),e.raise(`Invalid escape`)),!1)},U.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var n=e.lastIntValue;if(e.switchU)return n>e.maxBackReference&&(e.maxBackReference=n),!0;if(n<=e.numCapturingParens)return!0;e.pos=t}return!1},U.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(`Invalid named reference`)}return!1},U.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},U.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},U.regexp_eatZero=function(e){return e.current()===48&&!Ba(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},U.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},U.regexp_eatControlLetter=function(e){var t=e.current();return ka(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function ka(e){return e>=65&&e<=90||e>=97&&e<=122}U.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var n=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(r&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=(i-55296)*1024+(o-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Aa(e.lastIntValue))return!0;r&&e.raise(`Invalid unicode escape`),e.pos=n}return!1};function Aa(e){return e>=0&&e<=1114111}U.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},U.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1};var ja=0,Ma=1,Na=2;U.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Pa(t))return e.lastIntValue=-1,e.advance(),Ma;var n=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((n=t===80)||t===112)){e.lastIntValue=-1,e.advance();var r;if(e.eat(123)&&(r=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return n&&r===Na&&e.raise(`Invalid property name`),r;e.raise(`Invalid property name`)}return ja};function Pa(e){return e===100||e===68||e===115||e===83||e===119||e===87}U.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var n=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,n,r),Ma}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,i)}return ja},U.regexp_validateUnicodePropertyNameAndValue=function(e,t,n){Yr(e.unicodeProperties.nonBinary,t)||e.raise(`Invalid property name`),e.unicodeProperties.nonBinary[t].test(n)||e.raise(`Invalid property value`)},U.regexp_validateUnicodePropertyNameOrValue=function(e,t){if(e.unicodeProperties.binary.test(t))return Ma;if(e.switchV&&e.unicodeProperties.binaryOfStrings.test(t))return Na;e.raise(`Invalid property name`)},U.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=``;Fa(t=e.current());)e.lastStringValue+=$r(t),e.advance();return e.lastStringValue!==``};function Fa(e){return ka(e)||e===95}U.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=``;Ia(t=e.current());)e.lastStringValue+=$r(t),e.advance();return e.lastStringValue!==``};function Ia(e){return Fa(e)||Ba(e)}U.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},U.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),n=this.regexp_classContents(e);return e.eat(93)||e.raise(`Unterminated character class`),t&&n===Na&&e.raise(`Negated character class may contain strings`),!0}return!1},U.regexp_classContents=function(e){return e.current()===93?Ma:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),Ma)},U.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var n=e.lastIntValue;e.switchU&&(t===-1||n===-1)&&e.raise(`Invalid character class`),t!==-1&&n!==-1&&t>n&&e.raise(`Range out of order in character class`)}}},U.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var n=e.current();(n===99||Ua(n))&&e.raise(`Invalid class escape`),e.raise(`Invalid escape`)}e.pos=t}var r=e.current();return r===93?!1:(e.lastIntValue=r,e.advance(),!0)},U.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},U.regexp_classSetExpression=function(e){var t=Ma,n;if(!this.regexp_eatClassSetRange(e))if(n=this.regexp_eatClassSetOperand(e)){n===Na&&(t=Na);for(var r=e.pos;e.eatChars([38,38]);){if(e.current()!==38&&(n=this.regexp_eatClassSetOperand(e))){n!==Na&&(t=Ma);continue}e.raise(`Invalid character in character class`)}if(r!==e.pos)return t;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise(`Invalid character in character class`);if(r!==e.pos)return t}else e.raise(`Invalid character in character class`);for(;;)if(!this.regexp_eatClassSetRange(e)){if(n=this.regexp_eatClassSetOperand(e),!n)return t;n===Na&&(t=Na)}},U.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var n=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;return n!==-1&&r!==-1&&n>r&&e.raise(`Range out of order in character class`),!0}e.pos=t}return!1},U.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?Ma:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)},U.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var n=e.eat(94),r=this.regexp_classContents(e);if(e.eat(93))return n&&r===Na&&e.raise(`Negated character class may contain strings`),r;e.pos=t}if(e.eat(92)){var i=this.regexp_eatCharacterClassEscape(e);if(i)return i;e.pos=t}return null},U.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var n=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return n}else e.raise(`Invalid escape`);e.pos=t}return null},U.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===Na&&(t=Na);return t},U.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return t===1?Ma:Na},U.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return this.regexp_eatCharacterEscape(e)||this.regexp_eatClassSetReservedPunctuator(e)?!0:e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1);var n=e.current();return n<0||n===e.lookahead()&&La(n)||Ra(n)?!1:(e.advance(),e.lastIntValue=n,!0)};function La(e){return e===33||e>=35&&e<=38||e>=42&&e<=44||e===46||e>=58&&e<=64||e===94||e===96||e===126}function Ra(e){return e===40||e===41||e===45||e===47||e>=91&&e<=93||e>=123&&e<=125}U.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return za(t)?(e.lastIntValue=t,e.advance(),!0):!1};function za(e){return e===33||e===35||e===37||e===38||e===44||e===45||e>=58&&e<=62||e===64||e===96||e===126}U.regexp_eatClassControlLetter=function(e){var t=e.current();return Ba(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},U.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(`Invalid escape`),e.pos=t}return!1},U.regexp_eatDecimalDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Ba(n=e.current());)e.lastIntValue=10*e.lastIntValue+(n-48),e.advance();return e.pos!==t};function Ba(e){return e>=48&&e<=57}U.regexp_eatHexDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Va(n=e.current());)e.lastIntValue=16*e.lastIntValue+Ha(n),e.advance();return e.pos!==t};function Va(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ha(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}U.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var n=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+n*8+e.lastIntValue:e.lastIntValue=t*8+n}else e.lastIntValue=t;return!0}return!1},U.regexp_eatOctalDigit=function(e){var t=e.current();return Ua(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Ua(e){return e>=48&&e<=55}U.regexp_eatFixedHexDigits=function(e,t){var n=e.pos;e.lastIntValue=0;for(var r=0;r<t;++r){var i=e.current();if(!Va(i))return e.pos=n,!1;e.lastIntValue=16*e.lastIntValue+Ha(i),e.advance()}return!0};var Wa=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new ni(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},W=Di.prototype;W.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword `+this.type.keyword),this.options.onToken&&this.options.onToken(new Wa(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},W.getToken=function(){return this.next(),new Wa(this)},typeof Symbol<`u`&&(W[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===z.eof,value:t}}}}),W.nextToken=function(){var e=this.curContext();if((!e||!e.preserveSpace)&&this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length)return this.finishToken(z.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},W.readToken=function(e){return I(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},W.fullCharCodeAt=function(e){var t=this.input.charCodeAt(e);if(t<=55295||t>=56320)return t;var n=this.input.charCodeAt(e+1);return n<=56319||n>=57344?t:(t<<10)+n-56613888},W.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)},W.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,n=this.input.indexOf(`*/`,this.pos+=2);if(n===-1&&this.raise(this.pos-2,`Unterminated comment`),this.pos=n+2,this.options.locations)for(var r=void 0,i=t;(r=Ur(this.input,i,this.pos))>-1;)++this.curLine,i=this.lineStart=r;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,n),t,this.pos,e,this.curPosition())},W.skipLineComment=function(e){for(var t=this.pos,n=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!Hr(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,n,this.curPosition())},W.skipSpace=function(){loop:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break loop}break;default:if(e>8&&e<14||e>=5760&&Wr.test(String.fromCharCode(e)))++this.pos;else break loop}}},W.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},W.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(z.ellipsis)):(++this.pos,this.finishToken(z.dot))},W.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(z.assign,2):this.finishOp(z.slash,1)},W.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=e===42?z.star:z.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++n,r=z.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(z.assign,n+1):this.finishOp(r,n)},W.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(z.assign,3):this.finishOp(e===124?z.logicalOR:z.logicalAND,2):t===61?this.finishOp(z.assign,2):this.finishOp(e===124?z.bitwiseOR:z.bitwiseAND,1)},W.readToken_caret=function(){return this.input.charCodeAt(this.pos+1)===61?this.finishOp(z.assign,2):this.finishOp(z.bitwiseXOR,1)},W.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||Br.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(z.incDec,2):t===61?this.finishOp(z.assign,2):this.finishOp(z.plusMin,1)},W.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+n)===61?this.finishOp(z.assign,n+1):this.finishOp(z.bitShift,n)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(n=2),this.finishOp(z.relational,n))},W.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(z.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(z.arrow)):this.finishOp(e===61?z.eq:z.prefix,1)},W.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(z.questionDot,2)}if(t===63)return e>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(z.assign,3):this.finishOp(z.coalesce,2)}return this.finishOp(z.question,1)},W.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),I(t,!0)||t===92))return this.finishToken(z.privateId,this.readWord1());this.raise(this.pos,`Unexpected character '`+$r(t)+`'`)},W.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(z.parenL);case 41:return++this.pos,this.finishToken(z.parenR);case 59:return++this.pos,this.finishToken(z.semi);case 44:return++this.pos,this.finishToken(z.comma);case 91:return++this.pos,this.finishToken(z.bracketL);case 93:return++this.pos,this.finishToken(z.bracketR);case 123:return++this.pos,this.finishToken(z.braceL);case 125:return++this.pos,this.finishToken(z.braceR);case 58:return++this.pos,this.finishToken(z.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(z.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(z.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,`Unexpected character '`+$r(e)+`'`)},W.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)},W.readRegexp=function(){for(var e,t,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,`Unterminated regular expression`);var r=this.input.charAt(this.pos);if(Br.test(r)&&this.raise(n,`Unterminated regular expression`),e)e=!1;else{if(r===`[`)t=!0;else if(r===`]`&&t)t=!1;else if(r===`/`&&!t)break;e=r===`\\\\`}++this.pos}var i=this.input.slice(n,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var s=this.regexpState||(this.regexpState=new Ca(this));s.reset(n,i,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(i,o)}catch{}return this.finishToken(z.regexp,{pattern:i,flags:o,value:c})},W.readInt=function(e,t,n){for(var r=this.options.ecmaVersion>=12&&t===void 0,i=n&&this.input.charCodeAt(this.pos)===48,a=this.pos,o=0,s=0,c=0,l=t??1/0;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(r&&u===95){i&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed in legacy octal numeric literals`),s===95&&this.raiseRecoverable(this.pos,`Numeric separator must be exactly one underscore`),c===0&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed at the first of digits`),s=u;continue}if(d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0,d>=e)break;s=u,o=o*e+d}return r&&s===95&&this.raiseRecoverable(this.pos-1,`Numeric separator is not allowed at the last of digits`),this.pos===a||t!=null&&this.pos-a!==t?null:o};function Ga(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,``))}function Ka(e){return typeof BigInt==`function`?BigInt(e.replace(/_/g,``)):null}W.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var n=this.readInt(e);return n??this.raise(this.start+2,`Expected number in radix `+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(n=Ka(this.input.slice(t,this.pos)),++this.pos):I(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(z.num,n)},W.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,`Invalid number`);var n=this.pos-t>=2&&this.input.charCodeAt(t)===48;n&&this.strict&&this.raise(t,`Invalid number`);var r=this.input.charCodeAt(this.pos);if(!n&&!e&&this.options.ecmaVersion>=11&&r===110){var i=Ka(this.input.slice(t,this.pos));return++this.pos,I(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(z.num,i)}n&&/[89]/.test(this.input.slice(t,this.pos))&&(n=!1),r===46&&!n&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(r===69||r===101)&&!n&&(r=this.input.charCodeAt(++this.pos),(r===43||r===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,`Invalid number`)),I(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`);var a=Ga(this.input.slice(t,this.pos),n);return this.finishToken(z.num,a)},W.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var n=++this.pos;t=this.readHexChar(this.input.indexOf(`}`,this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(n,`Code point out of bounds`)}else t=this.readHexChar(4);return t},W.readString=function(e){for(var t=``,n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated string constant`);var r=this.input.charCodeAt(this.pos);if(r===e)break;r===92?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):r===8232||r===8233?(this.options.ecmaVersion<10&&this.raise(this.start,`Unterminated string constant`),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Hr(r)&&this.raise(this.start,`Unterminated string constant`),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(z.string,t)};var qa={};W.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===qa)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},W.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw qa;this.raise(e,t)},W.readTmplToken=function(){for(var e=``,t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated template`);var n=this.input.charCodeAt(this.pos);if(n===96||n===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===z.template||this.type===z.invalidTemplate)?n===36?(this.pos+=2,this.finishToken(z.dollarBraceL)):(++this.pos,this.finishToken(z.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(z.template,e));if(n===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Hr(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`\n`;break;default:e+=String.fromCharCode(n);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else ++this.pos}},W.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case`\\\\`:++this.pos;break;case`$`:if(this.input[this.pos+1]!==`{`)break;case\"`\":return this.finishToken(z.invalidTemplate,this.input.slice(this.start,this.pos));case`\\r`:this.input[this.pos+1]===`\n`&&++this.pos;case`\n`:case`\\u2028`:case`\\u2029`:++this.curLine,this.lineStart=this.pos+1;break}this.raise(this.start,`Unterminated template`)},W.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`\n`;case 114:return`\\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return $r(this.readCodePoint());case 116:return`\t`;case 98:return`\\b`;case 118:return`\\v`;case 102:return`\\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,`Invalid escape sequence`),e){var n=this.pos-1;this.invalidStringToken(n,`Invalid escape sequence in template string`)}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),(r!==`0`||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return Hr(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),``):String.fromCharCode(t)}},W.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},W.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(Fr(i,r))this.pos+=i<=65535?1:2;else if(i===92){this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\\\uXXXX`),++this.pos;var o=this.readCodePoint();(t?I:Fr)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=$r(o),n=this.pos}else break;t=!1}return e+this.input.slice(n,this.pos)},W.readWord=function(){var e=this.readWord1(),t=z.name;return this.keywords.test(e)&&(t=zr[e]),this.finishToken(t,e)},Di.acorn={Parser:Di,version:`8.19.0`,defaultOptions:ii,Position:ti,SourceLocation:ni,getLineInfo:ri,Node:Xi,TokenType:L,tokTypes:z,keywordTypes:zr,TokContext:Hi,tokContexts:V,isIdentifierChar:Fr,isIdentifierStart:I,Token:Wa,isNewLine:Hr,lineBreak:Br,lineBreakG:Vr,nonASCIIwhitespace:Wr};var Ja={ecmaVersion:`latest`,sourceType:`script`,allowReturnOutsideFunction:!0},Ya=/\\w+(?![\\p{ID_Continue}$\\u200c\\u200d])/uy,Xa=/[A-Za-z_]\\w*(?![\\p{ID_Continue}$\\u200c\\u200d])/uy,Za=/^[$_]\\w+$/,Qa=/[\\n\\r\\u2028\\u2029]/,$a=/\\s*(?:[;},:)]|=(?![=>]))/y;function eo(e,t){return $a.lastIndex=t,$a.test(e)}var to=new Set([z.name,z.num,z.string,z.regexp,z.backQuote,z.bracketR,z.braceR,z.parenR,z.incDec,z._this,z._null,z._true,z._false]),no=class extends Di{constructor(...e){super(...e),this.operandBeforeLast=!0,this.operandHere=!0,this.breakBeforeLast=!1,this.breakHere=!1,this.ternaries=[],this.colonEndsTernary=!1,this.closedBlock=!1,this.typeBeforeLast=z.eof,this.lookahead=!0}readToken(e){let t=this;if(t.lastTokEnd=t.end,this.operandBeforeLast=this.operandHere,this.operandHere=t.exprAllowed,this.breakBeforeLast=this.breakHere,this.breakHere=Qa.test(t.input.slice(t.end,t.pos)),e===64||e===37){let n=t.pos,r=e===64?Ya:Xa;r.lastIndex=n+1;let i=r.exec(t.input)?.[0];if(i){let r=n+1+i.length,a=t.type===z.incDec&&(this.operandBeforeLast||this.breakBeforeLast),o=e===37?this.percentAt?.get(n):void 0;if(e===64||(o??(t.exprAllowed||a||this.lookahead&&ro(t,r)))){e===37&&this.transientsRead?.add(n),t.pos=r,t.finishToken(z.name,t.input.charAt(n)+i);return}}}super.readToken(e)}finishToken(e,t){let{context:n}=this,r=n.length;if(e===z.braceR){let e=n[r-1];this.closedBlock=e.token===`{`&&!e.isExpr}else if(e===z.question)this.ternaries[r]=(this.ternaries[r]??0)+1;else if(e===z.colon){let e=this.ternaries[r]??0;this.colonEndsTernary=e>0,e>0&&(this.ternaries[r]=e-1)}let i=this,a=i.type;this.prevValue=i.value;let o=e.keyword!==void 0&&(a===z.dot||a===z.questionDot)||(e===z._function||e===z._class)&&eo(i.input,i.pos);if(!o&&(e===z._function||e===z._class)){let t=e===z._function&&a===z.name&&this.prevValue===`async`&&!this.breakHere?this.typeBeforeLast:a;i.type=t===z.colon&&this.colonEndsTernary?z.parenL:t}this.typeBeforeLast=a,super.finishToken(o?z.name:e,t),e===z.name&&t===`of`&&(a===z._const||a===z._var||this.prevValue===`let`)&&(i.exprAllowed=!1)}braceIsBlock(e){if(e===z.colon&&this.colonEndsTernary)return!1;if(e===z.braceR&&this.closedBlock||e===z.name&&this.prevValue===`static`)return!0;if(this.breakHere&&to.has(e)){let{context:e}=this,t=e[e.length-1];if(t.token===`{`&&!t.isExpr)return!0}return super.braceIsBlock(e)}};function ro(e,t){if(!Qa.test(e.input.slice(e.end,e.pos)))return!1;let n=oo(e.input,t,`statements`,{afterOperand:!0});n.lookahead=!1;let r=0;try{for(;;){n.nextToken();let e=n.type;if(e===z.eof)return!1;if(r>0)io.has(e)?r++:ao.has(e)&&r--;else if(e===z.bracketL)r=1;else if(e===z.dot){if(n.nextToken(),n.type!==z.name&&!n.type.keyword)return!1}else return e===z.eq||e===z.assign}}catch{return!1}}var io=new Set([z.parenL,z.bracketL,z.braceL,z.dollarBraceL]),ao=new Set([z.parenR,z.bracketR,z.braceR]);function oo(e,t,n,{onComment:r,afterOperand:i=!1}={}){let a=new no(r?{...Ja,onComment:r}:Ja,e,t);return n===`expression`&&(a.type=z.parenL),i&&(a.exprAllowed=!1),a}var so=class extends SyntaxError{constructor(e,t,n,r){super(`${e} ${uo(t,n)}`+co(r,e=>lo(t,e))),this.reason=e,this.source=t,this.pos=n,this.bracket=r,this.name=`SyntaxError`}reasonIn(e,t){return this.reason+co(this.bracket,n=>{let{line:r,column:i}=ri(e,t+n);return`at line ${r}, column ${i+1}`})}};function co(e,t){return e?` (missing \"${e.closer}\" for the \"${e.open}\" ${t(e.pos)})`:``}function lo(e,t){let{line:n,column:r}=ri(e,t);return Qa.test(e)?`at line ${n}, column ${r+1}`:`at column ${r+1}`}function uo(e,t){let{column:n}=ri(e,t),r=t-n,i=e.slice(r).search(Qa),a=i<0?e.length:r+i,o=Math.max(r,t-30),s=Math.min(a,t+30),c=(o>r?`…`:``)+e.slice(o,t)+`▶`+e.slice(t,s)+(s<a?`…`:``);return`${lo(e,t)}: ${c.trim()}`}var fo=e=>e[e.length-1],po={\"(\":`)`,\"[\":`]`,\"{\":`}`,\"${\":`}`};function mo(e,t){if(!(t instanceof SyntaxError)||!(`pos`in t))throw t;let n=t.pos,r=t.message.replace(/ \\(\\d+:\\d+\\)$/,``),{open:i,token:a}=ho(e,n),o=n>=e.length||a===``,s=!1;r===`Unexpected token`?(r=o?`Unexpected end of code`:`Unexpected \"${a}\"`,s=!!i&&po[i.text]!==a&&(o||[`)`,`]`,`}`,`;`,`{`].includes(a))):r.startsWith(`Unterminated template`)&&(s=i?.text===\"${\");let c=s&&i?{open:i.text,closer:po[i.text],pos:i.pos}:void 0;return new so(r,e,n,c)}function ho(e,t){let n=[];for(let r of ko(e,0,`statements`)){if(`error`in r)break;if(r.start>=t||r.type===z.eof)return{open:fo(n),token:e.slice(r.start,r.end)};let i=e.slice(r.start,r.end);i in po?n.push({text:i,pos:r.start}):n.length&&po[fo(n).text]===i&&n.pop()}return{open:fo(n),token:e.charAt(t)}}function go(e,t=`expression`){let n=new Map;for(;;){let r=new Set;try{let i=_o(e,t,n,r),a={refs:[],strings:[]};return So(i,e,a,!1,!1),a.refs.sort((e,t)=>e.start-t.start),a}catch(t){let i=t.pos??-1;if(!(t instanceof SyntaxError)||n.has(i)||(Xa.lastIndex=i+1,e.charAt(i)!==`%`||!Xa.test(e)))throw t;n.set(i,!r.has(i))}}}function _o(e,t,n,r){try{let i=oo(e,0,t);if(i.percentAt=n,i.transientsRead=r,t===`statements`)return i.parse();i.nextToken();let a=i.parseExpression();if(i.type!==z.eof)throw Object.assign(SyntaxError(`Unexpected token`),{pos:i.start});return a}catch(t){throw mo(e,t)}}var vo=e=>typeof e==`object`&&!!e&&typeof e.type==`string`,yo={$:`story`,_:`temporary`,\"@\":`local`,\"%\":`transient`};function bo(e,t){let n=e.name,r=t.charAt(e.start);return r===n.charAt(0)&&(r===`@`||r===`%`||(r===`$`||r===`_`)&&Za.test(n))?[r,n.slice(1)]:null}function xo(e,t){if(!vo(e)||e.type!==`Identifier`)return;let n=t.charAt(e.start);if(n===`@`||n===`%`)throw new so(`\"${e.name}\" can't be a property name`,t,e.start)}function So(e,t,n,r,i){if(Array.isArray(e)){for(let i of e)So(i,t,n,r,!1);return}if(!vo(e))return;let a=(e,r=!1,i=!1)=>So(e,t,n,r,i);switch(e.type){case`Identifier`:{let a=bo(e,t);if(!a)return;if(r)throw new so(`\"${e.name}\" is a ${yo[a[0]]} variable and can't be declared`,t,e.start);n.refs.push({sigil:a[0],name:a[1],start:e.start,end:e.end,shorthand:i});return}case`Literal`:typeof e.value==`string`&&n.strings.push(t.slice(e.start+1,e.end-1));return;case`TemplateElement`:n.strings.push(e.value.raw);return;case`MemberExpression`:a(e.object),e.computed?a(e.property):xo(e.property,t);return;case`Property`:if(e.computed?a(e.key):e.shorthand||xo(e.key,t),e.shorthand){let t=e.value;t.type===`AssignmentPattern`?(a(t.left,r,!0),a(t.right)):a(t,r,!0)}else a(e.value,r);return;case`MethodDefinition`:case`PropertyDefinition`:e.computed?a(e.key):xo(e.key,t),a(e.value);return;case`LabeledStatement`:a(e.body);return;case`BreakStatement`:case`ContinueStatement`:case`MetaProperty`:case`PrivateIdentifier`:return;case`VariableDeclarator`:a(e.id,!0),a(e.init);return;case`FunctionDeclaration`:case`FunctionExpression`:case`ArrowFunctionExpression`:a(e.id,!0);for(let t of e.params)a(t,!0);a(e.body);return;case`ClassDeclaration`:case`ClassExpression`:a(e.id,!0),a(e.superClass),a(e.body);return;case`CatchClause`:a(e.param,!0),a(e.body);return;case`AssignmentPattern`:a(e.left,r),a(e.right);return;case`ObjectPattern`:case`ArrayPattern`:case`RestElement`:for(let t of[`properties`,`elements`,`argument`])a(e[t],r);return;default:for(let t in e){if(t===`type`||t===`start`||t===`end`)continue;let n=e[t];typeof n==`object`&&n&&a(n)}}}var Co=/[\\p{ID_Continue}$.]*/uy,wo=/[\\p{ID_Continue}$]*/uy,To=new Set([`of`,`get`,`set`,`static`,`async`]);function Eo(e,t,{goal:n=`expression`,stop:r}={}){let i=Oo(e,t,n,r);return i<0&&!r?Do(e,t,n):i}function Do(e,t,n){let r=oo(e,t,n);try{if(n===`statements`)r.parse();else if(r.nextToken(),r.parseExpression(),r.type===z.braceR)return r.start}catch(t){let n=t.pos??-1;if(e.charAt(n)===`}`)return n}return-1}function Oo(e,t,n,r){let i=[],a=-1,o=!1,s=t,c=!1,l=!1;for(;;){let t=-1;for(let u of ko(e,s,n,{afterOperand:c})){if(`error`in u){let{message:n}=u.error,a=i.includes(\"${\");if(!/^Unterminated/.test(n)&&!a){if(t=Math.max(u.pos,s)+1,c=!1,t>=e.length)return-1;break}let o=i.lastIndexOf(\"${\");if(!/^Unterminated template/.test(n)||o<0||l||r)return-1;l=!0,i.length=o,t=u.pos,c=!0;break}if(u.restarted&&i.includes(\"${\"))return-1;let n=u.type;if(n===z.eof||n===z.string&&o&&u.start===a)return-1;if(o=n===z.name&&!To.has(u.value)||n===z.num,a=u.end,n===z.braceL){if(r?.(u.start))return u.start;i.push(`{`)}else if(n===z.dollarBraceL)i.push(\"${\");else if(n===z.parenL)i.push(`(`);else if(n===z.bracketL)i.push(`[`);else if(n===z.parenR||n===z.bracketR)fo(i)===(n===z.parenR?`(`:`[`)&&i.pop();else if(n===z.braceR){let e=Math.max(i.lastIndexOf(`{`),i.lastIndexOf(\"${\"));if(e>=0)i.length=e;else if(!r)return u.start}}s=t,o=!1}}function*ko(e,t,n,r={}){let i=oo(e,t,n,r);for(;;){try{i.nextToken()}catch(t){let n=Math.min(t.pos??i.pos,e.length),a=t.message,o=(t,n,a)=>(i=oo(e,a,`statements`,{onComment:r.onComment,afterOperand:!0}),{type:t,start:n,end:a,value:void 0,restarted:!0}),s=e.charAt(i.start),c=/^Unterminated/.test(a);if(/^Unterminated string/.test(a)){let{end:t,closed:r}=Io(e,n);if(r){yield o(z.string,n,t);continue}}else if(!c&&i.start<=n&&(s===`\"`||s===`'`)){let{end:t,closed:n}=Io(e,i.start);if(n){yield o(z.string,i.start,t);continue}}else if(!c&&i.start<=n&&s===`/`){let t=Po(e,i.start);if(t>0){yield o(z.regexp,i.start,t);continue}}else if(!c&&i.start<=n&&/[\\d.]/.test(s)&&/\\d/.test(e.slice(i.start,i.start+2))){Co.lastIndex=i.start,Co.test(e),yield o(z.num,i.start,Co.lastIndex);continue}yield{error:t,pos:n};return}if(yield{type:i.type,start:i.start,end:i.end,value:i.value},i.type===z.eof)return}}function Ao(e,t,n=`expression`){return jo(e,0,t,0,n,!1)}function jo(e,t,n,r,i,a){let o=[],s=(e,t,n,r)=>{o.push([n,r])},c=(t,i)=>{for(let a=t;a<i;a++)n.code?.(e.charAt(a),a,r)},l=(t,i)=>{i>t&&n.literal?.(e.slice(t,i),t,r)},u=(e,t)=>{for(let[n,r]of o)r<=e||n>=t||(c(e,n),l(n,r),e=r);o.length=0,c(e,t)},d=[],f=0,p=ko(e,t,i,{onComment:s}),m=t,h;for(;;){let t=p.next().value;if(`error`in t){let n=Math.max(m,t.pos);if(u(m,n),n>=e.length)return e.length;if(/^Unterminated/.test(t.error.message))return l(n,e.length),e.length;c(n,n+1),m=n+1,p=ko(e,m,i,{onComment:s}),h=void 0;continue}let o=t.type;if(o===z.eof)return u(m,e.length),e.length;if(u(m,t.start),o===z.name){let i=Mo(e,t.start,t.value),a=h===z.dot||h===z.questionDot||(i===`$`||i===`_`)&&No(e,t.end,h);i&&!a?n.variable?.(i,e.slice(t.start+1,t.end),t.start,r):c(t.start,t.end)}else if(o===z.string||o===z.regexp||o===z.template||o===z.invalidTemplate)l(t.start,t.end);else if(o===z.backQuote)if(l(t.start,t.end),h===z.template||h===z.invalidTemplate){if(f--,a&&f===0)return t.end}else f++;else o===z.dollarBraceL?(l(t.start,t.end),d.push(\"${\"),r++):o===z.braceR&&fo(d)===\"${\"?(d.pop(),r--,l(t.start,t.end)):(o===z.braceL||o===z.parenL||o===z.bracketL?d.push(e.charAt(t.start)):(o===z.braceR||o===z.parenR||o===z.bracketR)&&d.length&&fo(d)!==\"${\"&&d.pop(),c(t.start,t.end));h=o,m=t.end}}function Mo(e,t,n){let r=e.charAt(t);return(r===`@`||r===`%`)&&n.charAt(0)===r||(r===`$`||r===`_`)&&Za.test(n)?r:null}function No(e,t,n){if(n!==z.braceL&&n!==z.comma)return!1;let r=/\\S/g;r.lastIndex=t;let i=r.exec(e)?.[0];return i===`:`||i===`(`}function Po(e,t){let n=!1;for(let r=t+1;r<e.length;r++){let t=e.charAt(r);if(Qa.test(t))return-1;if(t===`\\\\`)r++;else if(t===`[`)n=!0;else if(t===`]`)n=!1;else if(t===`/`&&!n)return wo.lastIndex=r+1,wo.test(e),wo.lastIndex}return-1}function Fo(e){if(e[0]!==`\"`&&e[0]!==`'`)return null;try{let t=oo(e,0,`expression`);return t.nextToken(),t.type===z.string&&t.end===e.length?t.value:null}catch{return null}}function Io(e,t){let n=e.charAt(t),r=t+1;for(;r<e.length;){let t=e.charAt(r);if(t===`\\\\`)r+=2;else if(t===n)return{end:r+1,closed:!0};else r++}return{end:e.length,closed:!1}}var Lo=/[\\p{L}\\p{N}_\\\\]/u;function Ro(e,t){let n=e[t],r=n===\"`\";for(let i=t+1;i<e.length;){let t=e[i];if(t===`\\\\`)i+=2;else if(t===n)return i+1;else if(!r&&t===`\n`)return-1;else if(r&&t===`$`&&e[i+1]===`{`){let t=zo(e,i+2);if(t===-1)return-1;i=t+1}else i++}return-1}function zo(e,t){Bo!==e&&(Bo=e,Vo.clear());let n=Vo.get(t);return n===void 0&&(n=Ho(e,t),Vo.set(t,n)),n}var Bo=``,Vo=new Map;function Ho(e,t){let n=0;for(;t<e.length;){let r=e[t];if(r===`{`)n++,t++;else if(r===`}`){if(n===0)return t;n--,t++}else if(r===\"`\"||(r===`\"`||r===`'`)&&!(t>0&&Lo.test(e[t-1]))){let n=Ro(e,t);t=n===-1?t+1:n}else t++}return-1}var Uo={closeBrace(e,t,n){let r=Eo(e,t);return r===-1?zo(e,n):r},rawBodyEnd(e,t,n){let r=`\\\\{/${n}\\\\s*\\\\}`,i=new RegExp(r,`gi`);i.lastIndex=t;let a=i.exec(e)?.index??-1;if(a===-1)return-1;let o=new RegExp(r,`iy`),s=Eo(e,t,{goal:`statements`,stop:t=>(o.lastIndex=t,o.test(e))});return s===-1?a:s}};function Wo(e){let t=e.toLowerCase();return t.startsWith(`on`)||t===`pattern`||t===`srcdoc`}function Go(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e.indexOf(`{`,r);if(i===-1){n+=e.slice(r);break}n+=e.slice(r,i),r=i+1;let a=Jn(e[r])?Uo.closeBrace(e,r,r):-1;if(a===-1){n+=`{`;continue}n&&t.push({text:n}),n=``;let o=e.slice(r,a);t.push(/^.\\w/.test(o)?{expr:o}:{verbatim:`{${o}}`}),r=a+1}return n&&t.push({text:n}),t}var Ko=new Set([`do`]),qo={...Uo,isBlock:Sr,isRaw:e=>Ko.has(e),isCodeAttribute:Wo},Jo=class extends Error{constructor(e,t,n,r){super(`${e} (line ${n}, column ${r})`),this.reason=e,this.offset=t,this.line=n,this.column=r,this.name=`MarkupError`}};function Yo(e,t){let n=1,r=0;for(let i=e.indexOf(`\n`);i!==-1&&i<t;)n++,r=i+1,i=e.indexOf(`\n`,r);return{line:n,column:t-r+1}}function Xo(e,t,n){let r=n.hooks?{...qo,...n.hooks}:qo;try{return vr(e,{startRule:t,text:n.text===!0,hooks:r})}catch(t){let n=t.location;if(t instanceof Error&&t.name===`SyntaxError`&&n){let{offset:r}=n.start,{line:i,column:a}=Yo(e,r);throw new Jo(t.message,r,i,a)}throw t}}function Zo(e,t={}){return Xo(e,`Markup`,t)}function Qo(e,t={}){return Xo(e,`Tokens`,t)}function $o(e,t={}){let n=[],r=[],i=e.lastIndexOf(`}`),{closeBrace:a}={...qo,...t.hooks},o=(e,n)=>{let r={...t.hooks,closeBrace:(e,t,r)=>n+Math.min(t,r)>i?-1:a(e,t,r)};try{return Qo(e,{...t,hooks:r}).map(e=>es(e,n))}catch(e){if(!(e instanceof Jo))throw e;return e}},s=0;for(;s<=e.length;){let t=e.slice(s),i=o(t,s);if(Array.isArray(i)){n.push(...i);break}let a=s+i.offset,{line:c,column:l}=Yo(e,a);r.push(new Jo(i.reason,a,c,l));let u=i.offset,d=o(t.slice(0,u),s);for(;!Array.isArray(d);)u=d.offset,d=o(t.slice(0,u),s);if(n.push(...d),u<t.length){let e=s+u;n.push({type:`text`,value:t[u],start:e,end:e+1})}s+=u+1}return{tokens:n,errors:r}}function es(e,t){if(t===0)return e;let n={...e,start:e.start+t,end:e.end+t};return n.type===`link`&&(n.targetStart+=t,n.targetEnd+=t),n}var ts=`__proto__`;function ns(e,t=e){return e===`__proto__`?`\"${t}\" cannot be used as a variable name (${ts} is reserved)`:void 0}function rs(e,t=e){let n=ns(e,t);if(n)throw TypeError(`spindle: ${n}`)}var G=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),is=(e,t)=>e&&G(e,t)?e[t]:void 0;function as(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0}):e[t]=n}function os(e,t=()=>!0){let n=Object.create(null);for(let r of e)if(r)for(let e of Object.keys(r)){let i=r[e];t(i)&&(n[e]=i)}return n}var K=(...e)=>os(e),ss=e=>Object.getPrototypeOf(e)===null,cs=e=>ss(e)?e:K(e);function ls(e,t,n){let r=K(e);return r[t]=n,r}var us=Object.freeze(K());function ds(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>is(e,n)!==is(t,n))}var fs=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0;function ps(e,t){let n=is(e,t);return fs(n)?n:0}function ms(e,t){let n=os([e],fs);return t!==void 0&&(n[t]=ps(e,t)+1),n}var hs=new yr;function gs(e,t,n,r=!1){let i=n.filter(e=>e!==`@children`);for(let e of i)e.startsWith(`@`)&&rs(e.slice(1),e);hs.set(e,{body:t,params:i,isBlock:r})}function _s(e){return hs.get(e)}function vs(e){for(let t of e){if(t.type===`variable`&&t.scope===`local`&&t.name===`children`||t.type===`html`&&vs(t.children))return!0;if(t.type===`macro`){if(vs(t.children))return!0;if(t.branches){for(let e of t.branches)if(vs(e.children))return!0}}}return!1}function ys(e,t){return e instanceof Error?e.message||t||String(e):typeof e==`string`&&e!==``?e:t??String(e)}function bs(e){let t=e.trim();return t.endsWith(`ms`)?parseFloat(t.slice(0,-2)):t.endsWith(`s`)?parseFloat(t.slice(0,-1))*1e3:parseFloat(t)}var xs=[],Ss=1,Cs=new Set;function ws(e){xs=e;for(let e of Cs)e()}function Ts(e,t){let n=ys(t).replace(/^spindle: /,``),r=xs.find(t=>t.context===e&&t.message===n);ws(r?xs.map(e=>e===r?{...e,count:e.count+1}:e):[...xs,{id:Ss++,context:e,message:n,count:1}])}function Es(e,t){return Error(`No passage named ${JSON.stringify(e)} (in passage ${JSON.stringify(t)})`)}function Ds(e){ws(xs.filter(t=>t.id!==e))}function Os(){return xs}function ks(e){return Cs.add(e),()=>{Cs.delete(e)}}function As(e){return/\\s/.test(e)}function js(e){return e===`(`||e===`[`||e===`{`}function Ms(e){return e===`)`||e===`]`||e===`}`}function Ns(e){return e.replace(/\\\\([\"'\\\\])/g,`$1`)}function Ps(e,t){let n=e[t];if(n!==`\"`&&n!==`'`)return null;let{end:r,closed:i}=Io(e,t);return i?{value:Ns(e.slice(t+1,r-1)),end:r}:null}function Fs(e){let t=Ps(e,0);return t&&t.end===e.length?t.value:null}function Is(e){return/^[\"']?(.+?)[\"']?$/s.exec(e)?.[1]??e}var Ls=/(?:[-+*/%&|^!~=<>?:,.]|(?:^|[^\\w$@.])(?:typeof|void|new|delete|in|instanceof|await|yield))$/;function Rs(e){let t=-1;if(Ao(e,{code(e,n,r){r===0&&!As(e)&&(t=n+1)},literal(e,n,r){let i=e.startsWith(`//`)||e.startsWith(`/*`);r===0&&!i&&(t=-1)},variable(e,n,r,i){i===0&&(t=-1)}}),t<0)return!1;let n=e.slice(0,t);return/(?:\\+\\+|--)$/.test(n)?!1:Ls.test(n)}function zs(e,t){let n=[],r=0;return Ao(e,{code(e,i,a){a>0||(js(e)?r++:Ms(e)?r--:r===0&&t(e)&&n.push(i))}}),n}function Bs(e,t){let n=[],r=0;for(let i of zs(e,t))n.push(e.slice(r,i)),r=i+1;return n.push(e.slice(r)),n}function Vs(e){return Hs(e)&&!Rs(e)}function Hs(e){let t=e[0];return!!(t===`\"`||t===`'`||t===\"`\"||/^[$_@]\\w|^%[A-Za-z_]/.test(e)||/\\d/.test(t)||(t===`-`||t===`+`)&&e.length>1&&/\\d/.test(e[1])||t===`(`||t===`[`||t===`{`||/^(?:true|false|null|undefined)(?![\\w$])/.test(e)||t===`!`&&e.length>1&&e[1]!==`=`)}function Us(e){let t=Bs(e,As).filter(Boolean);if(t.length<2)return null;for(let e of t)if(!Vs(e))return null;return t}function Ws(e){let t=Bs(e,e=>e===`,`).map(e=>e.trim()),n=t.length>1;if(t[t.length-1]===``&&t.pop(),!n&&t.length===1){let e=Us(t[0]);if(e)return e}return t}function Gs(e){let t=[],n=0;for(let r of[...zs(e,As),e.length])r>n&&t.push([n,r]),n=r+1;return t}var Ks=(e,[t,n])=>e.slice(t,n);function qs(e){return Fs(e)??Is(e)}var Js=class extends Error{constructor(e,t){super(`The ${e.name} must be a quoted string (\"…\" or '…'), ${t?`not ${t}`:`but it has no value`}`),this.name=`MacroArgumentError`}};function Ys(e,t,n){switch(n.spans?.set(e,[n.at,n.at+t.length]),e.type){case`string`:{let n=Fs(t);if(n===null)throw new Js(e,t);return n}case`text`:return qs(t);case`names`:return t.split(`,`).map(e=>e.trim());case`delay`:return bs(t);case`number`:return Number(t);case`options`:return tc(e.parameters??[],t,n);default:return t}}function Xs(e){return e.type===`flag`||e.type===`separator`?!1:e.type===`options`?{}:void 0}var Zs=/\\w+/y,Qs=/[-+]?(?:\\d+\\.?\\d*|\\.\\d+)/y,$s=/\\S+/y;function ec(e,t,n){return e.lastIndex=n,e.exec(t)?.[0]??null}function tc(e,t,{at:n,spans:r}){let i={},a=0;for(;a<t.length;){let o=ec(Zs,t,a);if(!o){a=Ps(t,a)?.end??a+1;continue}a+=o.length;let s,c=a;for(;c<t.length&&As(t[c]);)c++;let l=Ps(t,c),u=l||c===a?null:ec(Qs,t,c);l?(s=l.value,a=l.end):u&&(s=u,a=c+u.length);let d=e.find(e=>e.name===o);if(d&&d.type!==`flag`&&s!==void 0&&r?.set(d,[n+c,n+a]),d?.type===`string`&&!l)throw new Js(d,ec($s,t,c)??``);d?.type===`flag`?i[o]=!0:d?.type===`number`?i[o]=Number(s??0):d&&(i[o]=s)}return i}var nc=/^(?:[-+*/&|^=<>?:,.]|%(?![A-Za-z_]))/;function rc(e,t){let n=Gs(e);if(n.length<2)return null;if(Ks(e,n[n.length-1])===t){let t=[0,n[n.length-2][1]];if(!Rs(Ks(e,t)))return t}if(Ks(e,n[0])===t){let t=[n[1][0],e.length];if(!nc.test(Ks(e,t)))return t}return null}function ic(e,t){if(t===`=`){let t=zs(e,e=>e===`=`);for(let n=0;n<t.length;n++){let r=t[n];if(e[r+1]===`=`){n++;continue}if(e[r-1]!==`!`)return[r,r+1]}return null}let n=Gs(e);for(let r=1;r<n.length-1;r++)if(Ks(e,n[r])===t)return[n[r-1][1],n[r+1][0]];return null}var ac=e=>e.type===`expression`||e.type===`statements`||e.type===`passage`||e.type===`text`;function oc(e,t){let n=e.trim();return[n,n?t+e.indexOf(n):t]}function sc(e,t,n,{at:r,spans:i}){let[a,o]=oc(t??``,r);for(let r of e.filter(e=>e.type===`flag`)){let e=t===null?null:rc(a,r.name);n[r.name]=e!==null,e&&([a,o]=oc(Ks(a,e),o+e[0]))}let s=e.filter(e=>e.type!==`flag`);if(s.length===0)return;let c=s.findIndex((e,t)=>ac(e)&&!s.slice(t+1).some(ac)),l=c<0?s.length-1:c,u=(e,[t,n])=>t===n?Xs(e):Ys(e,a.slice(t,n),{at:o+t,spans:i});if(s.length===1){n[s[0].name]=u(s[0],[0,a.length]);return}let d=Gs(a),f=0,p=d.length;for(let e of s.slice(0,l))n[e.name]=f<p?u(e,d[f++]):Xs(e);let m=(e,t)=>{try{return u(e,t)}catch(e){if(e instanceof Js)return;throw e}};for(let e of s.slice(l+1).reverse()){let t=f<p&&!Rs(a.slice(0,d[p-1][0]))?m(e,d[p-1]):void 0;n[e.name]=t??Xs(e),t===void 0?i?.delete(e):p--}let h=s[l];n[h.name]=f<p?u(h,[d[f][0],d[p-1][1]]):Xs(h)}var cc={name:`delay`,type:`delay`,required:!0};function lc(e,t,n){let r={},[i,a]=oc(e,0),o=0;return t.forEach((e,s)=>{if(e.type!==`separator`)return;let c=i===null?null:ic(i,e.name);r[e.name]=c!==null;let l=c?i.slice(0,c[0]):i;sc(t.slice(o,s),l,r,{at:a,spans:n}),i=c?i.slice(c[1]):null,c&&(a+=c[1]),o=s+1}),sc(t.slice(o),i,r,{at:a,spans:n}),r}function uc(e){let t=e.trim(),n=Fo(t);return n===null?{kind:`expression`,expression:t}:{kind:`name`,name:n}}function dc(e,t,{storyData:n,currentPassage:r}){let i=String(t(e??``));if(n&&!n.passages.has(i))throw Es(i,r);return i}function fc(e){let t=e.trim(),n=Gs(t)[0];return n?Ks(t,n):``}var pc=[{name:`name`,type:`text`,holds:`text`,required:!0},{name:`parameters`,type:`text`,holds:`text`}];function mc({name:e=``,parameters:t=``}){return{name:e,params:t.split(/\\s+/).filter(e=>e.startsWith(`@`))}}function hc(e){return mc(lc(e,pc))}function gc(e){let t=[];for(let n of e){if(n.name!==`StoryInit`&&!n.tags?.includes(`widget`))continue;let e=[];for(let r of $o(n.content).tokens)if(r.type===`macro`&&r.name.toLowerCase()===`widget`){if(!r.isClose){e.push({rawArgs:r.rawArgs,isBlock:!1});continue}let n=e.pop();if(!n?.isBlock)continue;try{t.push(hc(n.rawArgs).name)}catch{}}else r.type===`variable`&&r.scope===`local`&&r.name===`children`&&e.length>0&&(e[e.length-1].isBlock=!0)}return t}function _c({name:e,params:t},n){let r=vs(n);gs(e,n,t,r),r&&Cr(e)}function vc(e,t){for(let n of e)if(n.type===`macro`&&n.name===`widget`&&n.rawArgs){let e=hc(n.rawArgs);try{_c(e,n.children)}catch(n){console.error(`spindle: widget \"${e.name}\" in passage \"${t}\" was not registered: ${ys(n)}`)}}}var yc=e=>Symbol.iterator in e,bc=e=>`entries`in e,xc=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Sc=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function Cc(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:yc(e)&&yc(t)?bc(e)&&bc(t)?xc(e,t):Sc(e,t):xc({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}var wc=_e(null);function Tc(...e){let t=A(),n=Le(wc);return Q(r=>{if(t.current&&n?.(r))return t.current;let i={};for(let t of e)i[t]=r[t];return Cc(t.current,i)?t.current:t.current=i})}function Ec(){let{variables:e,temporary:t,transient:n,renderCounts:r}=Tc(`variables`,`temporary`,`transient`,`renderCounts`),i=Le(Sp);return Fe(()=>[e,t,i,n],[e,t,i,n,r])}var Dc=1831565813;function Oc(e){let t=e|0;return()=>{t=t+Dc|0;let e=Math.imul(t^t>>>15,t|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function kc(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t}var Ac=!1,jc=``,Mc=0,Nc=null,Pc=0;function Fc(e,t=!0){let n;n=e===void 0?String(Date.now())+String(Math.random()):t?e+`|`+Date.now()+`|`+Math.random():e,jc=n,Mc=0,Nc=Oc(kc(n)),Ac=!0,Pc++}function Ic(e,t){Pc++,Lc(e,t)}function Lc(e,t){jc=e;let n=Math.imul(t%4294967296,Dc);Nc=Oc(kc(e)+n|0),Ac=!0,Mc=t}function Rc(){Pc++,Ac=!1,jc=``,Mc=0,Nc=null}function zc(e){let t={generation:Pc,seed:jc,pull:Mc};try{return e()}finally{Ac&&Pc===t.generation&&Mc!==t.pull&&Lc(t.seed,t.pull)}}function Bc(){return Ac?{seed:jc,pull:Mc}:null}function Vc(){return!Ac||!Nc?Math.random():(Mc++,Nc())}function Hc(e,t){return e>t&&([e,t]=[t,e]),Math.floor(Vc()*(t-e+1))+e}function Uc(){return Ac}function Wc(){return jc}function Gc(){return Mc}var Kc=500,qc={$:`variables`,_:`temporary`,\"@\":`locals`,\"%\":`transient`},Jc=/[\\p{ID_Continue}$\\u200c\\u200d]$/u;function Yc(e,t=`expression`){let n=t===`statements`?`s`+e:`e`+e,r=Xc.get(n);if(r!==void 0)return r;let{refs:i}=go(e,t),a=``,o=0;for(let t of i){let n=ns(t.name,t.sigil+t.name);if(n)throw SyntaxError(`spindle: ${n}`);a+=e.slice(o,t.start),t.shorthand?a+=`${t.name}: `:Jc.test(a.slice(-2))&&(a+=` `),a+=`${qc[t.sigil]}[\"${t.name}\"]`,o=t.end}return a+=e.slice(o),Xc.size>=Kc&&Xc.delete(Xc.keys().next().value),Xc.set(n,a),a}var Xc=new Map,Zc=500,Qc=new Map,$c=`const {currentPassage,previousPassage,visited,hasVisited,hasVisitedAny,hasVisitedAll,rendered,hasRendered,hasRenderedAny,hasRenderedAll,random,randomInt}=__fns;`;function el(e,t){let n=Qc.get(e);if(n)return Qc.delete(e),Qc.set(e,n),n;let r=Function(`variables`,`temporary`,`locals`,`__fns`,`transient`,$c+t);if(Qc.set(e,r),Qc.size>Zc){let e=Qc.keys().next().value;e!==void 0&&Qc.delete(e)}return r}function tl(){let e=Q.getState();return e.storyData?.passages.get(e.currentPassage)}function nl(){let e=Q.getState();if(e.historyIndex<=0)return;let t=e.history[e.historyIndex-1]?.passage;return t?e.storyData?.passages.get(t):void 0}function rl(e){let t=t=>ps(e(),t??Q.getState().currentPassage);return{count:t,has:e=>t(e)>0,any:(...e)=>e.some(e=>t(e)>0),all:(...e)=>e.every(e=>t(e)>0)}}function il(e,t){let n=rl(e),r=rl(t);return{currentPassage:tl,previousPassage:nl,visited:n.count,hasVisited:n.has,hasVisitedAny:n.any,hasVisitedAll:n.all,rendered:r.count,hasRendered:r.has,hasRenderedAny:r.any,hasRenderedAll:r.all}}var al=null;function ol(){return al??(al={...il(()=>Q.getState().visitCounts,()=>Q.getState().renderCounts),random:Vc,randomInt:Hc}),al}function sl(e){return ss(e)?e:Object.isExtensible(e)?(Object.setPrototypeOf(e,null),e):cs(e)}function cl(e,...[t,n,r=us,i=us]){return e(sl(t),sl(n),sl(r),ol(),sl(i))}function ll(e,...t){let n=`return (${Yc(e)}\\n);`;return cl(el(n,n),...t)}function ul(e,...t){let n=Yc(e,`statements`);cl(el(`exec:`+n,n),...t)}var dl=new yr;function fl(e,t){dl.set(e,t)}function pl(e){return dl.get(e)}var ml=new yr;function hl(e,t){t?ml.set(e,t):ml.delete(e)}function gl(e){return ml.get(e)}var _l=new br;function vl(e){_l.add(e)}function yl(e){return _l.has(e)}var bl=[`expression`,`statements`,`passage`,`variable`,`string`,`text`,`names`,`delay`,`number`,`flag`,`separator`,`options`],xl=[`markup`,`text`,`passage`,`expression`,`statements`];function Sl(e,t){let n=`Give a \\`string\\` or \\`text\\` parameter one of ${xl.join(`, `)} to hold (see docs/custom-macros.md#what-a-string-holds).`;for(let r of t){let t=r.type;if(!bl.includes(t))throw Cl(e,r,t===void 0?`has no type`:`has the unknown type ${JSON.stringify(t)}`,`Give it one of the types ${bl.join(`, `)} (see docs/custom-macros.md#parameter-types), or declare no parameters and read props.rawArgs.`);let i=r.holds;if(i!==void 0&&t!==`string`&&t!==`text`)throw Cl(e,r,`is of the type ${t}, which holds what it is`,n);if(i!==void 0&&!xl.includes(i))throw Cl(e,r,`holds the unknown ${JSON.stringify(i)}`,n);r.parameters&&Sl(e,r.parameters)}}function Cl(e,t,n,r){return Error(`spindle: The parameter \"${t.name}\" of the macro {${e}} ${n}. ${r}`)}var wl=new yr;function Tl(e,t){wl.set(e,t)}function El(e){return wl.get(e)?.parameters}function Dl(){return Array.from(wl.values())}function Ol(e){return e==null?``:String(e)}function kl(e,t,n){return e||t?b(`span`,{id:t,class:e},n):b(S,null,n)}function Al(e){return e.includes(`{`)||e.includes(`}`)}function jl(e,t){return e?.length?{nodes:e,outer:t??null}:null}var Ml=new Map,Nl=2e3;function Pl(e){let t=Ml.get(e);if(t===void 0){try{t={nodes:Zo(e,{text:!0})}}catch(e){t={error:e}}Ml.size>=Nl&&Ml.clear(),Ml.set(e,t)}return t}function Fl(e,t){return e.map(e=>{switch(e.type){case`text`:return{type:`text`,value:t(e.value)};case`html`:return{...e,children:Fl(e.children,t)};case`macro`:{let n={...e,children:Fl(e.children,t)};return e.branches&&(n.branches=e.branches.map(e=>({...e,children:Fl(e.children,t)}))),n}default:return e}})}var Il=100;function Ll(e,t,n){let r=n.split(`.`),i=r[0];rs(i,Kn[t]+i);let a=is(t===`variable`?e.variables:t===`temporary`?e.temporary:t===`transient`?e.transient:e.locals,i);for(let e=1;e<r.length;e++){if(a==null)return;a=a[r[e]]}return a}function Rl(e,t){return ll(e,t.variables,t.temporary,t.locals,t.transient)}var zl=class{constructor(){this.errors=[]}nodes(e,t,n){let r=``;for(let i of e)r+=this.node(i,t,n);return r}node(e,t,n){switch(e.type){case`text`:return e.value;case`variable`:if(e.scope===`local`&&e.name===`children`){let e=t.widgetChildren;return e?this.nested(`children`,e.nodes,t,n,{widgetChildren:e.outer}):``}return this.variable(e.scope,e.name,t);case`expression`:try{return Ol(Rl(e.expression,t))}catch(e){return this.errors.push({macro:`expression`,error:e}),``}case`html`:return this.nodes(e.children,t,n);case`macro`:return this.macro(e,t,n);default:return e}}variable(e,t,n){try{return Ol(Ll(n,e,t))}catch(n){return this.errors.push({macro:Kn[e]+t,error:n}),``}}nested(e,t,n,r,i={}){return r>=Il?(this.errors.push({macro:e,error:Error(`markup nested too deeply (a widget using itself?)`)}),``):this.nodes(t,{...n,...i},r+1)}macro(e,t,n){if(yl(e.name))return``;let r=_s(e.name);if(r){let i=t.locals;if(r.params.length>0){let n=e.rawArgs?Ws(e.rawArgs):[];i=K(t.locals),r.params.forEach((e,r)=>{let a,o=n[r];if(o!==void 0)try{a=Rl(o,t)}catch{a=void 0}i[e.startsWith(`@`)?e.slice(1):e]=a})}return this.nested(e.name,r.body,t,n,{locals:i,widgetChildren:jl(e.children,t.widgetChildren)})}let i=gl(e.name);if(!i){let t=pl(e.name)?`{${e.name}} has no text form, so it can't be used in an attribute value or label`:`unknown macro {${e.name}}`;return this.errors.push({macro:e.name,error:Error(t)}),``}let a={evaluate:e=>Rl(e,t),renderText:(r,i)=>this.nested(e.name,r,t,n,i?{locals:Bl(t.locals,i)}:{})};try{return i({rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},a)}catch(t){return this.errors.push({macro:e.name,error:t}),``}}};function Bl(e,t){for(let e of Object.keys(t))rs(e,`@${e}`);return K(e,t)}function Vl(e,t){let n=new zl;return{text:n.nodes(e,t,0),errors:n.errors}}function Hl(e,t){if(!Al(e))return{text:e,errors:[]};let n=Pl(e);return`error`in n?{text:e,errors:[{macro:`markup`,error:n.error}]}:Vl(n.nodes,t)}function Ul(e,t,n){let r=[],i=``;for(let a of Go(e))if(`text`in a)i+=n?n(a.text):a.text;else if(`verbatim`in a)i+=a.verbatim;else if(/^[$_@%][\\w.]+$/.test(a.expr)){let e=Gn[a.expr[0]];try{i+=Ol(Ll(t,e,a.expr.slice(1)))}catch(e){r.push({macro:a.expr,error:e})}}else try{i+=Ol(Rl(a.expr,t))}catch(e){r.push({macro:`expression`,error:e})}return{text:i,errors:r}}function Wl(){let[e,t,n,r]=Ec(),i=Le(Ap);return Fe(()=>({variables:e,temporary:t,locals:n,transient:r,widgetChildren:i}),[e,t,n,r,i])}function Gl(){let e=Wl();return Ie(t=>{if(t===void 0||!Al(t))return t;let{text:n,errors:r}=Hl(t,e);for(let{macro:e,error:n}of r)console.error(`spindle: {${e}} error in \"${t}\": ${ys(n)}`);return n},[e])}var Kl=0;Array.isArray;function q(e,t,n,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Kl,__i:-1,__u:0,__source:a,__self:o};if(typeof e==`function`&&(s=e.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return r.vnode&&r.vnode(u),u}var ql={variable:`variables`,temporary:`temporary`,transient:`transient`};function Jl({node:e}){let{name:t,scope:n}=e,r=Gl(),i=r(e.className),a=r(e.id),o=Le(Sp),s=t.split(`.`),c=s[0],l=Q(e=>n===`local`?void 0:is(e[ql[n]],c)),u=Kn[n],d=ns(c,u+c);if(d)return q(`span`,{class:`error`,children:`{${u}${t} error: ${d}}`});let f;f=n===`local`?is(o,c):l;for(let e=1;e<s.length;e++){if(f==null){f=void 0;break}let t=s[e];f=f[t]}return kl(i,a,Ol(f))}function Yl({node:e}){let{expression:t}=e,n=Gl(),r=n(e.className),i=n(e.id),[a,o,s,c]=Ec(),l;try{l=Ol(ll(t,a,o,s,c))}catch{l=`{error: ${t}}`}return kl(r,i,l)}function Xl(){return{nobr:Le(wp),inline:Le(Tp),raw:Le(Ep),locals:Le(Sp)}}function Zl({body:e,parentValues:t,ownKeys:n}){let r=Xl(),[i,a]=je({}),o=Fe(()=>K(t,n,i),[t,n,i]),s=A(o);s.current=o;let c=Ie(()=>s.current,[]),l=Ie((e,t)=>{rs(e,`@${e}`),s.current=ls(s.current,e,t),a(n=>({...n,[e]:t}))},[]),u=Fe(()=>({update:l,getValues:c}),[l,c]);return q(Cp.Provider,{value:u,children:q(Sp.Provider,{value:o,children:Cm(e,{...r,locals:o})})})}function Ql(e){let t=Gl();return kl(t(e.className),t(e.id),q($l,{...e}))}function $l({body:e,params:t,rawArgs:n,invocationChildren:r}){let i=Xl().locals,[a,o,s,c]=Ec(),l=Le(Ap),u=Fe(()=>jl(r,l),[r,l]),d=n?Ws(n):[],f=[];for(let e=0;e<t.length;e++){let t=d[e],n;if(t!==void 0)try{n=ll(t,a,o,s,c)}catch{n=void 0}f.push(n)}let p=Fe(()=>{let e=K();for(let n=0;n<t.length;n++)e[t[n].startsWith(`@`)?t[n].slice(1):t[n]]=f[n];return e},f);return q(Ap.Provider,{value:u,children:q(Zl,{body:e,parentValues:i,ownKeys:p})})}var eu=document.createElement(`i`);function tu(e){let t=`&`+e+`;`;eu.innerHTML=t;let n=eu.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function nu(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function ru(e,t){return e.length>0?(nu(e,e.length,0,t),e):t}var iu={}.hasOwnProperty;function au(e){let t={},n=-1;for(;++n<e.length;)ou(t,e[n]);return t}function ou(e,t){let n;for(n in t){let r=(iu.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){iu.call(r,a)||(r[a]=[]);let e=i[a];su(r[a],Array.isArray(e)?e:e?[e]:[])}}}function su(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);nu(e,0,0,r)}function cu(e){let t={},n=-1;for(;++n<e.length;)lu(t,e[n]);return t}function lu(e,t){let n;for(n in t){let r=(iu.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i)r[a]=i[a]}}function uu(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}var du={'\"':`quot`,\"&\":`amp`,\"<\":`lt`,\">\":`gt`};function fu(e){return e.replace(/[\"&<>]/g,t);function t(e){return`&`+du[e]+`;`}}function pu(e){return e.replace(/[\\t\\n\\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var mu=wu(/[A-Za-z]/),hu=wu(/[\\dA-Za-z]/),gu=wu(/[#-'*+\\--9=?A-Z^-~]/);function _u(e){return e!==null&&(e<32||e===127)}var vu=wu(/\\d/),yu=wu(/[\\dA-Fa-f]/),bu=wu(/[!-/:-@[-`{-~]/);function J(e){return e!==null&&e<-2}function xu(e){return e!==null&&(e<0||e===32)}function Y(e){return e===-2||e===-1||e===32}var Su=wu(/\\p{P}|\\p{S}/u),Cu=wu(/\\s/);function wu(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Tu(e,t){let n=fu(Eu(e||``));if(!t)return n;let r=n.indexOf(`:`),i=n.indexOf(`?`),a=n.indexOf(`#`),o=n.indexOf(`/`);return r<0||o>-1&&r>o||i>-1&&r>i||a>-1&&r>a||t.test(n.slice(0,r))?n:``}function Eu(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&hu(e.charCodeAt(n+1))&&hu(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=``),i&&(n+=i,i=0)}return t.join(``)+e.slice(r)}var Du={}.hasOwnProperty,Ou=/^(https?|ircs?|mailto|xmpp)$/i,ku=/^https?$/i;function Au(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=cu([{enter:{blockQuote:ne,codeFenced:ae,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:ce,codeText:Be,content:Te,definition:ye,definitionDestinationString:xe,definitionLabelString:h,definitionTitleString:h,emphasis:Re,htmlFlow:Fe,htmlText:Le,image:ue,label:h,link:de,listItemMarker:ee,listItemValue:T,listOrdered:C,listUnordered:w,paragraph:ie,reference:h,resource:he,resourceDestinationString:ge,resourceTitleString:h,setextHeading:De,strong:ze},exit:{atxHeading:ke,atxHeadingSequence:Ee,autolinkEmail:Je,autolinkProtocol:qe,blockQuote:re,characterEscapeValue:Me,characterReferenceMarkerHexadecimal:Ge,characterReferenceMarkerNumeric:Ge,characterReferenceValue:Ke,codeFenced:le,codeFencedFence:se,codeFencedFenceInfo:oe,codeFencedFenceMeta:S,codeFlowValue:Pe,codeIndented:le,codeText:Ve,codeTextData:Me,data:Me,definition:we,definitionDestinationString:Se,definitionLabelString:be,definitionTitleString:Ce,emphasis:He,hardBreakEscape:A,hardBreakTrailing:A,htmlFlow:Ie,htmlFlowData:Me,htmlText:Ie,htmlTextData:Me,image:k,label:pe,labelText:fe,lineEnding:Ne,link:k,listOrdered:te,listUnordered:E,paragraph:O,reference:S,referenceString:me,resource:S,resourceDestinationString:_e,resourceTitleString:ve,setextHeading:je,setextHeadingLineSequence:Ae,setextHeadingText:Oe,strong:Ue,thematicBreak:We}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===`lineEnding`||e[t][1].type===`lineEndingBlank`)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===`listOrdered`||e[t][1].type===`listUnordered`)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===`definition`&&(e[t][0]===`enter`?(o=ru(o,e.slice(n,t)),n=t):(a=ru(a,e.slice(n,t+1)),n=t+1));a=ru(a,o),a=ru(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];Du.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case`listItemPrefix`:t[0]===`exit`&&(a=!0);break;case`linePrefix`:break;case`lineEndingBlank`:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){return i.pop().join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`\n`)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):null;n===10||n===13||n===null||y()}function x(e){return m(`ignoreEncode`)?e:fu(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function w(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function T(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),10);t!==1&&_(` start=\"`+x(String(t))+`\"`)}}function ee(){m(`expectFirstItem`)?_(`>`):D(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function te(){D(),o.pop(),y(),_(`</ol>`)}function E(){D(),o.pop(),y(),_(`</ul>`)}function D(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function ne(){o.push(!1),b(),_(`<blockquote>`)}function re(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function ie(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function O(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function ae(){b(),_(`<pre><code`),p(`fencesCount`,0)}function oe(){_(` class=\"language-`+g()+`\"`)}function se(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function ce(){b(),_(`<pre><code>`)}function le(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function ue(){a.push({image:!0}),n=void 0}function de(){a.push({})}function fe(e){a[a.length-1].labelId=this.sliceSerialize(e)}function pe(){a[a.length-1].label=g()}function me(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function he(){h(),a[a.length-1].destination=``}function ge(){h(),p(`ignoreEncode`,!0)}function _e(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function ve(){a[a.length-1].title=g()}function k(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId,s=i.destination===void 0?r[pu(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src=\"`+Tu(s.destination,t.allowDangerousProtocol?void 0:ku)+`\" alt=\"`),v(i.label),_(`\"`)):_(`<a href=\"`+Tu(s.destination,t.allowDangerousProtocol?void 0:Ou)+`\"`),_(s.title?` title=\"`+s.title+`\"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function ye(){h(),a.push({})}function be(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function xe(){h(),p(`ignoreEncode`,!0)}function Se(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function Ce(){a[a.length-1].title=g()}function we(){let e=a[a.length-1],t=pu(e.labelId);g(),Du.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function Te(){p(`slurpAllLineEndings`,!0)}function Ee(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function De(){h(),p(`slurpAllLineEndings`)}function Oe(){p(`slurpAllLineEndings`,!0)}function ke(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function Ae(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===61?1:2)}function je(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function Me(e){v(x(this.sliceSerialize(e)))}function Ne(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function Pe(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function A(){_(`<br />`)}function Fe(){b(),Le()}function Ie(){p(`ignoreEncode`)}function Le(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function Re(){_(`<em>`)}function ze(){_(`<strong>`)}function Be(){p(`inCodeText`,!0),_(`<code>`)}function Ve(){p(`inCodeText`),_(`</code>`)}function He(){_(`</em>`)}function Ue(){_(`</strong>`)}function We(){b(),_(`<hr />`)}function Ge(e){p(`characterReferenceType`,e.type)}function Ke(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?uu(t,m(`characterReferenceType`)===`characterReferenceMarkerNumeric`?10:16):tu(t))),p(`characterReferenceType`)}function qe(e){let n=this.sliceSerialize(e);_(`<a href=\"`+Tu(n,t.allowDangerousProtocol?void 0:Ou)+`\">`),v(x(n)),_(`</a>`)}function Je(e){let t=this.sliceSerialize(e);_(`<a href=\"`+Tu(`mailto:`+t)+`\">`),v(x(t)),_(`</a>`)}}function X(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Y(r)?(e.enter(n),s(r)):t(r)}function s(r){return Y(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var ju={tokenize:Mu};function Mu(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),X(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return J(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var Nu={tokenize:Fu},Pu={tokenize:Iu};function Fu(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return nu(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Pu,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(Pu,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i=i||t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return J(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;nu(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Iu(e,t,n){return X(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Lu(e){if(e===null||xu(e)||Cu(e))return 1;if(Su(e))return 2}function Ru(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var zu={name:`attention`,resolveAll:Bu,tokenize:Vu};function Bu(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Hu(d,-c),Hu(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=ru(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=ru(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=ru(l,Ru(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=ru(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=ru(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,nu(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function Vu(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Lu(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=Lu(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function Hu(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Uu={name:`autolink`,tokenize:Wu};function Wu(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return mu(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||hu(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||hu(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||_u(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):gu(t)?(e.consume(t),l):n(t)}function u(e){return hu(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||hu(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var Gu={partial:!0,tokenize:Ku};function Ku(e,t,n){return r;function r(t){return Y(t)?X(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||J(e)?t(e):n(e)}}var qu={continuation:{tokenize:Yu},exit:Xu,name:`blockQuote`,tokenize:Ju};function Ju(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||(e.enter(`blockQuote`,{_container:!0}),n.open=!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return Y(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function Yu(e,t,n){let r=this;return i;function i(t){return Y(t)?X(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(qu,t,n)(r)}}function Xu(e){e.exit(`blockQuote`)}var Zu={name:`characterEscape`,tokenize:Qu};function Qu(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return bu(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var $u={name:`characterReference`,tokenize:ed};function ed(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=hu,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=yu,u):(e.enter(`characterReferenceValue`),a=7,o=vu,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===hu&&!tu(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var td={partial:!0,tokenize:id},nd={concrete:!0,name:`codeFenced`,tokenize:rd};function rd(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),Y(t)?X(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||J(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(td,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||J(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):Y(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),X(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||J(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||J(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&Y(t)?X(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||J(t)?e.check(td,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||J(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Y(t)?X(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Y(t)?X(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||J(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function id(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var ad={name:`codeIndented`,tokenize:sd},od={partial:!0,tokenize:cd};function sd(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),X(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):J(t)?e.attempt(od,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||J(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function cd(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):J(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):X(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):J(e)?i(e):n(e)}}var ld={name:`codeText`,previous:dd,resolve:ud,tokenize:fd};function ud(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function dd(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function fd(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):J(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||J(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var pd=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError(\"Cannot access index `\"+e+\"` in a splice buffer of size `\"+(this.left.length+this.right.length)+\"`\");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&md(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),md(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),md(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);md(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);md(this.left,t.reverse())}}};function md(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function hd(e){let t={},n=-1,r,i,a,o,s,c,l,u=new pd(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,gd(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return nu(e,0,1/0,u.slice(0)),!l}function gd(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var _d={resolve:yd,tokenize:bd},vd={partial:!0,tokenize:xd};function yd(e){return hd(e),e}function bd(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):J(t)?e.check(vd,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function xd(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),X(e,a,`linePrefix`)}function a(i){if(i===null||J(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function Sd(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||_u(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||J(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||xu(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||_u(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function Cd(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):J(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||J(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||(c=!Y(t)),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function wd(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):J(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),X(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||J(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function Td(e,t){let n;return r;function r(i){return J(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Y(i)?X(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Ed={name:`definition`,tokenize:Od},Dd={partial:!0,tokenize:kd};function Od(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return Cd.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=pu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return xu(t)?Td(e,l)(t):l(t)}function l(t){return Sd(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(Dd,d,d)(t)}function d(t){return Y(t)?X(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||J(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function kd(e,t,n){return r;function r(t){return xu(t)?Td(e,i)(t):n(t)}function i(t){return wd(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Y(t)?X(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||J(e)?t(e):n(e)}}var Ad={name:`hardBreakEscape`,tokenize:jd};function jd(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return J(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Md={name:`headingAtx`,resolve:Nd,tokenize:Pd};function Nd(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},nu(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Pd(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||xu(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||J(n)?(e.exit(`atxHeading`),t(n)):Y(n)?X(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||xu(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var Fd=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Id=[`pre`,`script`,`style`,`textarea`],Ld={concrete:!0,name:`htmlFlow`,resolveTo:Bd,tokenize:Vd},Rd={partial:!0,tokenize:Ud},zd={partial:!0,tokenize:Hd};function Bd(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Vd(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:se):mu(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):mu(a)?(e.consume(a),i=4,r.interrupt?t:se):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:se):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:E:m):n(i)}function h(t){return mu(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||xu(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Id.includes(l)?(i=1,r.interrupt?t(s):E(s)):Fd.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):E(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||hu(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:E):n(i)}function v(t){return Y(t)?(e.consume(t),v):ee(t)}function y(t){return t===47?(e.consume(t),ee):t===58||t===95||mu(t)?(e.consume(t),b):Y(t)?(e.consume(t),y):ee(t)}function b(t){return t===45||t===46||t===58||t===95||hu(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):Y(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):Y(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||J(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||xu(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||Y(e)?y(e):n(e)}function ee(t){return t===62?(e.consume(t),te):n(t)}function te(t){return t===null||J(t)?E(t):Y(t)?(e.consume(t),te):n(t)}function E(t){return t===45&&i===2?(e.consume(t),ie):t===60&&i===1?(e.consume(t),O):t===62&&i===4?(e.consume(t),ce):t===63&&i===3?(e.consume(t),se):t===93&&i===5?(e.consume(t),oe):J(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(Rd,le,D)(t)):t===null||J(t)?(e.exit(`htmlFlowData`),D(t)):(e.consume(t),E)}function D(t){return e.check(zd,ne,le)(t)}function ne(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),re}function re(t){return t===null||J(t)?D(t):(e.enter(`htmlFlowData`),E(t))}function ie(t){return t===45?(e.consume(t),se):E(t)}function O(t){return t===47?(e.consume(t),o=``,ae):E(t)}function ae(t){if(t===62){let n=o.toLowerCase();return Id.includes(n)?(e.consume(t),ce):E(t)}return mu(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),ae):E(t)}function oe(t){return t===93?(e.consume(t),se):E(t)}function se(t){return t===62?(e.consume(t),ce):t===45&&i===2?(e.consume(t),se):E(t)}function ce(t){return t===null||J(t)?(e.exit(`htmlFlowData`),le(t)):(e.consume(t),ce)}function le(n){return e.exit(`htmlFlow`),t(n)}}function Hd(e,t,n){let r=this;return i;function i(t){return J(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Ud(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Gu,t,n)}}var Wd={name:`htmlText`,tokenize:Gd};function Gd(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):mu(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):mu(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):J(t)?(o=d,O(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?ie(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):J(t)?(o=h,O(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?ie(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?ie(t):J(t)?(o=v,O(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):J(t)?(o=y,O(t)):(e.consume(t),y)}function b(e){return e===62?ie(e):y(e)}function x(t){return mu(t)?(e.consume(t),S):n(t)}function S(t){return t===45||hu(t)?(e.consume(t),S):C(t)}function C(t){return J(t)?(o=C,O(t)):Y(t)?(e.consume(t),C):ie(t)}function w(t){return t===45||hu(t)?(e.consume(t),w):t===47||t===62||xu(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),ie):t===58||t===95||mu(t)?(e.consume(t),ee):J(t)?(o=T,O(t)):Y(t)?(e.consume(t),T):ie(t)}function ee(t){return t===45||t===46||t===58||t===95||hu(t)?(e.consume(t),ee):te(t)}function te(t){return t===61?(e.consume(t),E):J(t)?(o=te,O(t)):Y(t)?(e.consume(t),te):T(t)}function E(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,D):J(t)?(o=E,O(t)):Y(t)?(e.consume(t),E):(e.consume(t),ne)}function D(t){return t===i?(e.consume(t),i=void 0,re):t===null?n(t):J(t)?(o=D,O(t)):(e.consume(t),D)}function ne(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||xu(t)?T(t):(e.consume(t),ne)}function re(e){return e===47||e===62||xu(e)?T(e):n(e)}function ie(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function O(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ae}function ae(t){return Y(t)?X(e,oe,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):oe(t)}function oe(t){return e.enter(`htmlTextData`),o(t)}}var Kd={name:`labelEnd`,resolveAll:Xd,resolveTo:Zd,tokenize:Qd},qd={tokenize:$d},Jd={tokenize:ef},Yd={tokenize:tf};function Xd(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&nu(e,0,e.length,n),e}function Zd(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=ru(s,e.slice(a+1,a+r+3)),s=ru(s,[[`enter`,u,t]]),s=ru(s,Ru(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=ru(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=ru(s,e.slice(o+1)),s=ru(s,[[`exit`,c,t]]),nu(e,a,e.length,s),e}function Qd(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(pu(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(qd,u,o?u:d)(t):t===91?e.attempt(Jd,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(Yd,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function $d(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return xu(t)?Td(e,a)(t):a(t)}function a(t){return t===41?u(t):Sd(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return xu(t)?Td(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?wd(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return xu(t)?Td(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function ef(e,t,n){let r=this;return i;function i(t){return Cd.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(pu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function tf(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var nf={name:`labelStartImage`,resolveAll:Kd.resolveAll,tokenize:rf};function rf(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var af={name:`labelStartLink`,resolveAll:Kd.resolveAll,tokenize:of};function of(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var sf={name:`lineEnding`,tokenize:cf};function cf(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),X(e,t,`linePrefix`)}}var lf={name:`thematicBreak`,tokenize:uf};function uf(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||J(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Y(t)?X(e,s,`whitespace`)(t):s(t))}}var df={continuation:{tokenize:hf},exit:_f,name:`list`,tokenize:mf},ff={partial:!0,tokenize:vf},pf={partial:!0,tokenize:gf};function mf(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:vu(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(lf,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return vu(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Gu,r.interrupt?n:u,e.attempt(ff,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Y(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function hf(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Gu,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,X(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Y(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(pf,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,X(e,e.attempt(df,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function gf(e,t,n){let r=this;return X(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function _f(e){e.exit(this.containerState.type)}function vf(e,t,n){let r=this;return X(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Y(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var yf={name:`setextUnderline`,resolveTo:bf,tokenize:xf};function bf(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function xf(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Y(t)?X(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||J(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Sf={tokenize:Cf};function Cf(e){let t=this,n=e.attempt(Gu,r,e.attempt(this.parser.constructs.flowInitial,i,X(e,e.attempt(this.parser.constructs.flow,i,e.attempt(_d,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var wf={resolveAll:Of()},Tf=Df(`string`),Ef=Df(`text`);function Df(e){return{resolveAll:Of(e===`text`?kf:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function Of(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function kf(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var Af=t({attentionMarkers:()=>Rf,contentInitial:()=>Mf,disable:()=>zf,document:()=>jf,flow:()=>Pf,flowInitial:()=>Nf,insideSpan:()=>Lf,string:()=>Ff,text:()=>If}),jf={42:df,43:df,45:df,48:df,49:df,50:df,51:df,52:df,53:df,54:df,55:df,56:df,57:df,62:qu},Mf={91:Ed},Nf={[-2]:ad,[-1]:ad,32:ad},Pf={35:Md,42:lf,45:[yf,lf],60:Ld,61:yf,95:lf,96:nd,126:nd},Ff={38:$u,92:Zu},If={[-5]:sf,[-4]:sf,[-3]:sf,33:nf,38:$u,42:zu,60:[Uu,Wd],91:af,92:[Ad,Zu],93:Kd,95:zu,96:ld},Lf={null:[zu,wf]},Rf={null:[42,95]},zf={null:[]};function Bf(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=ru(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=Ru(a,l.events,l),l.events):[]}function f(e,t){return Hf(p(e),t)}function p(e){return Vf(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,ee()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){J(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,ee()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&nu(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,ee()}}function ee(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Vf(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function Hf(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\\r`;break;case-4:o=`\n`;break;case-3:o=`\\r\n`;break;case-2:o=t?` `:`\t`;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function Uf(e){let t={constructs:au([Af,...(e||{}).extensions||[]]),content:n(ju),defined:[],document:n(Nu),flow:n(Sf),lazy:{},string:n(Tf),text:n(Ef)};return t;function n(e){return n;function n(n){return Bf(t,e,n)}}}function Wf(e){for(;!hd(e););return e}var Gf=/[\\0\\t\\n\\r]/g;function Kf(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&(i.charCodeAt(0)===65279&&u++,n=void 0);u<i.length;){if(Gf.lastIndex=u,c=Gf.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}function qf(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),Au(n)(Wf(Uf(n).document().write(Kf()(e,t,!0))))}var Jf={none:``,left:` align=\"left\"`,right:` align=\"right\"`,center:` align=\"center\"`};function Yf(){return{enter:{table(e){let t=e._align;this.lineEndingIfNeeded(),this.tag(`<table>`),this.setData(`tableAlign`,t)},tableBody(){this.tag(`<tbody>`)},tableData(){let e=Jf[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];e===void 0?this.buffer():(this.lineEndingIfNeeded(),this.tag(`<td`+e+`>`))},tableHead(){this.lineEndingIfNeeded(),this.tag(`<thead>`)},tableHeader(){let e=Jf[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];this.lineEndingIfNeeded(),this.tag(`<th`+e+`>`)},tableRow(){this.setData(`tableColumn`,0),this.lineEndingIfNeeded(),this.tag(`<tr>`)}},exit:{codeTextData(e){let t=this.sliceSerialize(e);this.getData(`tableAlign`)&&(t=t.replace(/\\\\([\\\\|])/g,Xf)),this.raw(this.encode(t))},table(){this.setData(`tableAlign`),this.setData(`slurpAllLineEndings`),this.lineEndingIfNeeded(),this.tag(`</table>`)},tableBody(){this.lineEndingIfNeeded(),this.tag(`</tbody>`)},tableData(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);t in e?(this.tag(`</td>`),this.setData(`tableColumn`,t+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag(`</thead>`)},tableHeader(){let e=this.getData(`tableColumn`);this.tag(`</th>`),this.setData(`tableColumn`,e+1)},tableRow(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);for(;t<e.length;)this.lineEndingIfNeeded(),this.tag(`<td`+Jf[e[t]]+`></td>`),t++;this.setData(`tableColumn`,t),this.lineEndingIfNeeded(),this.tag(`</tr>`)}}}}function Xf(e,t){return t===`|`?t:e}var Zf=class{constructor(){this.map=[]}add(e,t,n){Qf(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function Qf(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function $f(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function ep(){return{flow:{null:{name:`table`,tokenize:tp,resolveAll:np}}}}function tp(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):J(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Y(t)?X(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||xu(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Y(t)?X(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Y(t)?X(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||J(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Y(t)?X(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||J(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||J(n)?(e.exit(`tableRow`),t(n)):Y(n)?X(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||xu(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function np(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Zf;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ip(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=rp(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=rp(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=rp(f,t,o,i,n,d)):(o[0]=o[1],d=rp(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ip(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=$f(t.events,n))}return e}function rp(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},ap(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=ap(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=ap(t.events,n[2]),a=ap(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},ap(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ip(e,t,n,r,i){let a=[],o=ap(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function ap(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}function op(){return{enter:{strikethrough(){this.tag(`<del>`)}},exit:{strikethrough(){this.tag(`</del>`)}}}}function sp(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&nu(o,o.length,0,Ru(s,e.slice(r+1,n),t)),nu(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),nu(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Lu(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Lu(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}function cp(e){let t=[`codeIndented`];return e?.inline&&t.push(`list`,`headingAtx`,`setextUnderline`,`thematicBreak`,`blockQuote`,`codeFenced`,`table`),{allowDangerousHtml:!0,extensions:[ep(),sp(),{disable:{null:t}}],htmlExtensions:[Yf(),op()]}}function lp(e,t){let n=cp(t);return qf(e,{...n,extensions:[...n.extensions??[],hp(e),dp]})}var up=e=>{let t=e.length-2,n=e[t-1];return n&&n[0]===`exit`&&n[1].type===`data`&&(n[1].end=e[t][1].end,e.length=t),e},dp={text:{null:{name:`textData`,tokenize(e,t){let n=this,r=this.parser.constructs.text;function i(e){if(e===null)return!0;let t=r[e]??[];return(Array.isArray(t)?t:[t]).some(e=>!e.previous||e.previous.call(n,n.previous))}function a(n){return i(n)?(e.exit(`data`),t(n)):(e.consume(n),a)}return t=>(e.enter(`data`),e.consume(t),a)},resolveTo:up}}},fp=/[#-'*+\\--9=?A-Z^-~]/,pp=/[0-9A-Za-z]/,mp=/[A-Za-z]/;function hp(e){let t=e.charCodeAt(0)===65279?1:0,n=e.lastIndexOf(`-->`),r=e.lastIndexOf(`?>`),i=e.lastIndexOf(`]]>`),a=e.lastIndexOf(`>`);function o(t){return e[t]===`<`?e.startsWith(`\\x3C!--`,t)?n<t+2:e.startsWith(`<![CDATA[`,t)?i<t+9:e[t+1]===`!`&&mp.test(e[t+2]??``)?a<t+3:e[t+1]===`?`?r<t+2&&!s(t):!1:!1}function s(t){let n=t+1;for(;fp.test(e[n]??``);)n++;if(e[n]!==`@`)return!1;n++;let r=0,i=`atSignOrDot`;for(;;){let t=e[n]??``;if(i===`atSignOrDot`){if(!pp.test(t))return!1;i=`label`}else if(i===`label`){if(t===`>`)return!0;t===`.`?(n++,r=0,i=`atSignOrDot`):i=`value`}else{if(!((t===`-`||pp.test(t))&&r++<63))return!1;n++,i=t===`-`?`value`:`label`}}}let c={name:`unclosedHtml`,resolveTo:up,tokenize(e,n,r){let i=this.now().offset+t;return t=>t!==60||!o(i)?r(t):(e.enter(`data`),e.consume(t),e.exit(`data`),n)}};return{text:{60:c}}}function gp(e){let t=e.metadata[`data-source-file`],n=e.metadata[`data-source-line`];return t?n?` (${t}:${n})`:` (${t})`:``}function _p(){let e=Q.getState();if(!e.storyData)return``;let t=e.storyData.passages.get(e.currentPassage);return t?gp(t):``}function vp({macro:e,error:t}){return q(`span`,{class:`error`,title:String(t),children:`{${e} error${_p()}: ${ys(t)}}`})}function yp(e,t,n=_p()){console.error(`spindle: Error in {${e}}${n}:`,t)}function bp(e,t,n){let r=A();if(r.current===void 0){r.current=null;let i=_p();try{n()}catch(n){r.current={error:n},yp(`${e} ${t}`.trim(),n,i)}}return r.current?q(vp,{macro:e,error:r.current.error}):null}var xp={update:e=>{throw Error(`Cannot set @${e} — local variables require a {for}, widget, {link}, or {button} scope`)},getValues:()=>us},Sp=_e(us),Cp=_e(xp),wp=_e(!1),Tp=_e(!1),Ep=_e(!1),Dp=_e(!1),Op=`http://www.w3.org/2000/svg`,kp=new Set([`pre`,`textarea`,`style`]),Ap=_e(null);function jp(e,t){return`<span data-tw=${e}:${t}></span>`}var Mp=/(?:(?<=\\\\)\\uE000)?<span data-tw=([0-9a-z]+):(\\d+)><\\/span>/g,Np=``;function Pp(e,t){if(!e.includes(`<span data-tw=`))return[e];let n=[],r=0;for(let i of e.matchAll(Mp))i[1]===t.nonce&&(i.index>r&&n.push(e.slice(r,i.index)),n.push(parseInt(i[2],10)),r=i.index+i[0].length);return r<e.length&&n.push(e.slice(r)),n}function Fp(e,t){return Pp(e,t).map(e=>typeof e==`number`?t.components[e]:e)}function Ip({tag:e,attributes:t,placeholders:n,svg:r,children:i}){let a=Wl(),o=[],{props:s,direct:c}=Yp(t.map(([e,t,r])=>{let i=n[e];if(!i)return[e,t,r];let s=Vl(i,a);for(let t of s.errors)o.push([e,t]);return[e,s.text,r]}),r),l=Xp(c);return Rp(o,b(e,l?{...s,ref:l}:s,...i))}function Lp({tag:e,props:t,direct:n,children:r}){let i=Xp(n);return b(e,{...t,ref:i},...r)}function Rp(e,t){return e.length===0?t:q(S,{children:[e.map(([e,{macro:t,error:n}],r)=>q(vp,{macro:t,error:Error(`in attribute \"${e}\": ${ys(n)}`)},r)),t]})}function zp(e,t){if(e==null||e.nodeType!==Node.ELEMENT_NODE)return-1;let n=e.getAttribute(`data-tw`),r=`${t.nonce}:`;return n==null||!n.startsWith(r)?-1:parseInt(n.slice(r.length),10)}function Bp(e){let t=document.createElement(`template`);return t.innerHTML=e,t.content}function Vp(e,t,n=!1){let r=Bp(e.trim());if(n)for(let e of Array.from(r.childNodes))e.nodeType===Node.ELEMENT_NODE&&e.nodeName===`P`&&e.replaceWith(...Array.from(e.childNodes));return q(S,{children:Array.from(r.childNodes).map((e,n)=>Hp(e,n,t))})}function Hp(e,t,n){if(e.nodeType===Node.TEXT_NODE){let t=e.textContent??``;t.endsWith(`\\\\${Np}`)&&zp(e.nextSibling,n)!==-1&&(t=t.slice(0,-1));let r=Fp(t,n);return r.length===1?r[0]:r}if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.localName,a=zp(r,n);if(a!==-1)return n.components[a];let o=r.namespaceURI===Op,s=[],c;for(let{name:e,value:t}of Array.from(r.attributes)){s.push([e,t,t]);let r=Pp(t,n);r.every(e=>typeof e==`string`)||(c??(c={}),c[e]=r.map(e=>typeof e==`string`?{type:`text`,value:e}:n.nodes[e]))}let l=Array.from(r.childNodes).map((e,t)=>Hp(e,t,n));if(c)return q(Ip,{tag:i,attributes:s,placeholders:c,svg:o,children:l},t);let{props:u,direct:d}=Yp(s,o);return d.length>0?q(Lp,{tag:i,props:u,direct:d,children:l},t):b(i,{...u,key:t},...l)}return null}var Up=new Set(`a.abbr.b.bdi.bdo.br.button.cite.code.data.dfn.em.i.h1.h2.h3.h4.h5.h6.kbd.label.legend.mark.meter.option.output.p.progress.q.rp.rt.ruby.s.samp.small.span.strong.sub.summary.sup.time.u.var.wbr`.split(`.`)),Wp=new Set([`value`,`checked`,`selected`,`muted`]),Gp=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),Kp=new Set([...new Set([`key`,`ref`,`children`,`dangerouslySetInnerHTML`]),`class`,`className`]),qp=/^[A-Za-z_:][\\w:.-]*$/;function Jp(e,t,n){if(qp.test(t)){e.setAttribute(t,n);return}let r=Bp(`<i ${t}=\"\"></i>`).firstChild.attributes[0];if(!r)return;let i=r.cloneNode();i.value=n,e.setAttributeNode(i)}function Yp(e,t){let n={},r=[];for(let[i,a,o]of e){let e=i.toLowerCase();Gp.has(e)&&o!==``&&a===``||(!t&&Wp.has(e)?n[e]=e!==`value`&&o===``?!0:a:!qp.test(i)||e.startsWith(`on`)||e===`translate`||t&&(Kp.has(i)||i===`__proto__`)?r.push([i,a]):n[t?i:i.toUpperCase()]=a)}return{props:n,direct:r}}function Xp(e){let t=A(null);return Pe(()=>{let n=t.current;if(!(!n||e.length===0)){for(let[t,r]of e)Jp(n,t,r);return()=>{for(let[t]of e)n.removeAttribute(t)}}},[JSON.stringify(e)]),e.length>0?t:void 0}var Zp=new Map,Qp=new Map;function $p(e,t,n){if(!e.includes(`&`))return e;let r=t.get(e);return r===void 0&&(r=n(e)??e,t.set(e,r)),r}function em(e){return $p(e,Qp,e=>Bp(`<i title=\"${e.replace(/\"/g,`"`)}\"></i>`).firstChild.getAttribute(`title`))}function tm(e){return $p(e,Zp,e=>Bp(`<i>${e.replace(/</g,`<`)}</i>`).firstChild.textContent)}var nm=/\\{[$_@%]\\w/,rm=new Map,im=2e3;function am(e){let t=rm.get(e);return t===void 0&&(t=Pl(e),`nodes`in t&&e.includes(`&`)&&(t={nodes:Fl(t.nodes,em)}),rm.size>=im&&rm.clear(),rm.set(e,t)),t}function om(e,t,n,r){if(Wo(e)){if(!t.includes(`&`)&&!nm.test(t))return t;let i=Ul(t,n,em);for(let t of i.errors)r.push([e,t]);return i.text}if(!Al(t))return em(t);let i=am(t);if(`error`in i)return r.push([e,{macro:`markup`,error:i.error}]),em(t);let a=Vl(i.nodes,n);for(let t of a.errors)r.push([e,t]);return a.text}function sm(e){let t=e.findIndex(e=>e.type!==`text`||e.value.trim()!==``),n=e[t];return n?.type===`html`&&n.tag.toLowerCase()===`summary`?t:-1}function cm({node:e}){let t=Wl(),{nobr:n,locals:r,raw:i,inline:a}=Xl(),o=Le(Dp),s=e.tag.toLowerCase(),c=s===`svg`,l=!i&&(c||kp.has(s)),u=[],{props:d,direct:f}=Yp(Object.entries(e.attributes).map(([e,n])=>[e,om(e,n,t,u),n]),o||c),p=Xp(f);p&&(d.ref=p);let m=Up.has(s),h;if(e.children.length>0)if(i||l)h=hm(e.children);else{let t=s===`details`?sm(e.children):-1,i=e=>Cm(e,{nobr:n,locals:r,inline:m});h=t===-1?i(e.children):q(S,{children:[i(e.children.slice(0,t)),mm(e.children[t]),i(e.children.slice(t+1))]}),m!==a&&(h=q(Tp.Provider,{value:m,children:h}))}let g=b(e.tag,d,h);return c&&!o&&(g=q(Dp.Provider,{value:!0,children:g})),Rp(u,l?q(Ep.Provider,{value:!0,children:g}):g)}function lm(){let e=Le(Ap),t=Xl();return e?q(Ap.Provider,{value:e.outer,children:Cm(e.nodes,t)}):null}var um=new WeakMap,dm=0;function fm(e){let t=um.get(e);return t===void 0&&(t=`n${dm++}`,um.set(e,t)),t}function pm(e,t){if(yl(e.name))return null;let n={rawArgs:e.rawArgs,className:e.className,id:e.id},r=_s(e.name);if(r)return q(Ql,{...n,body:r.body,params:r.params,invocationChildren:e.children},t);let i=pl(e.name);return i?q(i,{...n,children:e.children,branches:e.branches},t):q(`span`,{class:`error`,children:`{unknown macro: ${e.name}}`},t)}function mm(e){if(e.type===`text`)return tm(e.value);let t=fm(e);switch(e.type){case`variable`:return e.scope===`local`&&e.name===`children`?q(lm,{},t):q(Jl,{node:e},t);case`expression`:return q(Yl,{node:e},t);case`macro`:return pm(e,t);case`html`:return q(cm,{node:e},t);default:return e}}function hm(e){return e.length===0?null:e.map(e=>mm(e))}var gm=/[*_`#|~\\[>\\\\\\-+=\\r]|!\\[|\\d+[.)]|&#?[a-zA-Z0-9]+;| {2}\\n|<[!?]/,_m=/(?:\\r\\n|\\r(?!\\n)|\\n)\\s*[\\r\\n]/,vm=/<span data-tw=[0-9a-z]+:\\d+><\\/span>/g,ym=` \t\\r\n`;function bm(e,t,n,r){let i=t;if(n===1)for(;i<e.length&&r.includes(e[i]);)i++;else for(;i>0&&r.includes(e[i-1]);)i--;return i}function xm(e){return e.includes(`\n`)?e.split(`\n`).map((e,t,n)=>{let r=t===0?0:bm(e,0,1,` \t`),i=t===n.length-1?e.length:bm(e,e.length,-1,` \t`);return e.slice(r,Math.max(r,i))}).join(`\n`):e}function Sm(e,t,n){let r=Fp(xm(e),t).filter(e=>e!==``);return n?q(S,{children:r}):b(`p`,null,...r)}function Cm(e,t){if(e.length===0)return null;if(t?.raw)return hm(e);if(!e.some(e=>e.type===`text`&&(e.value.trim()!==``||_m.test(e.value))))return e.map(e=>mm(e));let n=[],r={nonce:Math.random().toString(36).slice(2,10)||`0`,components:n,nodes:[]},i=``;for(let t=0;t<e.length;t++){let a=e[t];if(a.type===`text`){i+=a.value;continue}let o=n.length;n.push(mm(a)),r.nodes.push(a),i.endsWith(`\\\\`)&&(i+=Np),i+=jp(r.nonce,o)}let a=!!(t?.nobr||t?.inline),o=i.slice(0,bm(i,0,1,ym)),s=o.length===i.length?``:i.slice(bm(i,i.length,-1,ym)),c=i.slice(o.length,i.length-s.length),l=e=>a&&(o||s)?q(S,{children:[o,e,s]}):e,u=i.replace(vm,``);return!gm.test(u)&&!_m.test(u)?l(Sm(c,r,a)):l(Vp(lp(i,{inline:t?.inline}),r,a))}var wm=2**32-1,Tm=wm-1,Em=class extends Error{constructor(e,t,n,r){super(e),this.name=`DevalueError`,this.path=t.join(``),this.value=n,this.root=r}},Dm=Symbol();function Om(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r];i===Dm?n.push(`.get(${t(e[++r])})`):typeof i==`number`?n.push(`[${i}]`):n.push(Vm(i))}return n}var km=Object.getOwnPropertyNames(Object.prototype).sort().join(`\\0`);function Am(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\\0`)===km}function jm(e){return Object.prototype.toString.call(e).slice(8,-1)}function Mm(e){return typeof Buffer<`u`&&Buffer.isBuffer(e)}function Nm(e){switch(e){case`\"`:return`\\\\\"`;case`<`:return`\\\\u003C`;case`\\\\`:return`\\\\\\\\`;case`\n`:return`\\\\n`;case`\\r`:return`\\\\r`;case`\t`:return`\\\\t`;case`\\b`:return`\\\\b`;case`\\f`:return`\\\\f`;case`\\u2028`:return`\\\\u2028`;case`\\u2029`:return`\\\\u2029`;default:return e<` `?`\\\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`:``}}var Pm=/[\"<\\\\\\u0000-\\u001f\\u2028\\u2029]/;function Fm(e){if(!Pm.test(e)&&e.isWellFormed())return`\"${e}\"`;let t=``,n=0,r=e.length;for(let i=0;i<r;i+=1){let a=e.charCodeAt(i);if(a>=55296&&a<=57343){if(a<=56319&&i+1<r&&(e.charCodeAt(i+1)&64512)==56320){i+=1;continue}t+=e.slice(n,i)+`\\\\u${a.toString(16)}`,n=i+1;continue}let o=Nm(e[i]);o&&(t+=e.slice(n,i)+o,n=i+1)}return`\"${n===0?e:t+e.slice(n)}\"`}var Im=64,Lm=new Map;function Rm(e){if(e.length>Im)return Fm(e);let t=Lm.get(e);return t===void 0&&(Lm.size>=1024&&Lm.clear(),t=Fm(e),Lm.set(e,t)),t}function zm(e){let t=Object.getOwnPropertySymbols(e);return t.length===0?t:t.filter(t=>Object.getOwnPropertyDescriptor(e,t)?.enumerable)}var Bm=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Vm(e){return Bm.test(e)?`.`+e:`[`+JSON.stringify(e)+`]`}function Hm(e){return!(!Number.isInteger(e)||e<0||e>Tm)}function Um(e){return!(!Number.isInteger(e)||e<0||e>wm)}function Wm(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Hm(+e)}function Gm(e){for(var t=e.length-1;t>=0&&!Wm(e[t]);t--);return t+1}function Km(e){let t=Object.keys(e);return t.length=Gm(t),t}function qm(e){return new Uint8Array(e).toBase64()}function Jm(e){return Uint8Array.fromBase64(e).buffer}function Ym(e){return Buffer.from(e).toString(`base64`)}function Xm(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function Zm(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r){let i=t.subarray(e,e+r);n+=String.fromCharCode.apply(null,i)}return btoa(n)}function Qm(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer}var $m=typeof Uint8Array.fromBase64==`function`,eh=typeof process==`object`&&process.versions?.node!==void 0,th=$m?qm:eh?Ym:Zm,nh=$m?Jm:eh?Xm:Qm;function rh(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}var ih=Object.freeze({kind:`not-plain`}),ah=Object.freeze({kind:`symbol-keys`}),oh=Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>jm(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>(Mm(e)&&(e=new Uint8Array(e)),{buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Km(e),shapeOf:e=>Am(e)?zm(e).length>0?ah:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:ih,get:(e,t)=>e[t]}),sh=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,`byteLength`)?.get,ch=typeof SharedArrayBuffer>`u`?void 0:Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype,`byteLength`)?.get,lh=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{try{sh.call(t)}catch(e){if(!ch)throw e;ch.call(t)}let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[Tm]=void 0,delete t[Tm],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function uh(){throw Error(`Invalid input`)}function dh(e,t,n){return fh(JSON.parse(e),t,n)}function fh(e,t,n){let r=rh(lh,n?.operations);if(typeof e==`number`)return c(e,!0);(!Array.isArray(e)||e.length===0)&&uh();let i=e,a=Array(i.length),o=null;function s(e){return(!Hm(e)||e>=i.length)&&uh(),i[e]}function c(e,n=!1){if(e===-1)return r.fromPrimitive(void 0);if(e===-3)return r.fromPrimitive(NaN);if(e===-4)return r.fromPrimitive(1/0);if(e===-5)return r.fromPrimitive(-1/0);if(e===-6)return r.fromPrimitive(-0);if((n||typeof e!=`number`)&&uh(),e in a)return a[e];e>=i.length&&uh();let l=i[e];if(!l||typeof l!=`object`)a[e]=r.fromPrimitive(l);else if(Array.isArray(l))if(typeof l[0]==`string`){let n=l[0],u=t&&Object.hasOwn(t,n)?t[n]:void 0;if(u){let t=l[1];if(typeof t!=`number`&&(t=i.push(l[1])-1),Object.hasOwn(a,t))return a[e]=u(a[t]);if(o??(o=new Set),o.has(t))throw Error(`Invalid circular reference`);return o.add(t),a[e]=u(c(t)),o.delete(t),a[e]}switch(n){case`Date`:a[e]=r.fromISOString(l[1]);break;case`Set`:let t=r.createSet();a[e]=t;for(let e=1;e<l.length;e+=1)r.addValue(t,c(l[e]));break;case`Map`:let i=r.createMap();a[e]=i;for(let e=1;e<l.length;e+=2)r.addEntry(i,c(l[e]),c(l[e+1]));break;case`RegExp`:a[e]=r.fromRegExpInfo(l[1],l[2]);break;case`Object`:{let t=l[1];if(!(t===-3||t===-4||t===-5||t===-6)){let e=s(t),n=Array.isArray(e)&&e[0]===`BigInt`;(e===void 0||typeof e==`object`)&&!n&&uh()}a[e]=r.box(c(t));break}case`BigInt`:a[e]=r.fromPrimitive(BigInt(l[1]));break;case`null`:let o=r.createNullPrototypeObject();a[e]=o;for(let e=1;e<l.length;e+=2){let t=l[e];if(typeof t!=`string`)throw Error(`Cannot parse an object with a non-string key`);if(t===`__proto__`)throw Error(\"Cannot parse an object with a `__proto__` property\");r.set(o,t,c(l[e+1]))}break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:case`DataView`:{let t=l[1],i=s(t);(!Array.isArray(i)||i[0]!==`ArrayBuffer`)&&uh();let o=c(t);a[e]=r.fromViewInfo(n,o,l[2],l[3]);break}case`ArrayBuffer`:{let t=l[1];if(typeof t!=`string`)throw Error(`Invalid ArrayBuffer encoding`);a[e]=r.fromArrayBuffer(nh(t));break}case`URL`:case`URLSearchParams`:case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:a[e]=r.fromStringValue(n,l[1]);break;default:throw Error(`Unknown type ${n}`)}}else if(l[0]===-7){let t=l[1];Um(t)||uh();let n=r.createSparseArray(t);a[e]=n;for(let e=2;e<l.length;e+=2){let i=l[e];(!Hm(i)||i>=t)&&uh(),r.set(n,i,c(l[e+1]))}}else{let t=r.createArray(l.length);a[e]=t;for(let e=0;e<l.length;e+=1){let n=l[e];n!==-2&&r.set(t,e,c(n))}}else{let t=r.createObject();a[e]=t;for(let e of Object.keys(l)){if(e===`__proto__`)throw Error(\"Cannot parse an object with a `__proto__` property\");r.set(t,e,c(l[e]))}}return a[e]}return c(0)}function ph(e,t,n){let r=mh(!1,e,t,n);return typeof r==`string`?r:`[${r.join(`,`)}]`}function mh(e,t,n,r){let i=rh(oh,r?.operations),a=[],o=new Map,s=[];if(n)for(let e of Object.getOwnPropertyNames(n))s.push({key:e,fn:n[e]});let c=[],l=0;function u(e,n){throw new Em(e,Om(c,e=>{let t=i.typeOf(e);return t!==`object`&&t!==`function`&&t!==`symbol`?hh(i.toPrimitive(e)):`...`}),n,t)}function d(t,n){let r=i.typeOf(t);if(r===`undefined`)return-1;let f;if(r===`number`){if(f=i.toPrimitive(t),Number.isNaN(f))return-3;if(f===1/0)return-4;if(f===-1/0)return-5;if(f===0&&1/f<0)return-6}let p=i.identify(t);if(o.has(p))return o.get(p);n??(n=l++),o.set(p,n);for(let{key:e,fn:r}of s){let i=r(t);if(i)return a[n]=`[\"${e}\",${d(i)}]`,n}r===`function`?u(`Cannot stringify a function`,t):r===`symbol`&&u(`Cannot stringify a Symbol primitive`,t);let m=``;if(r!==`object`)m=hh(r===`number`?f:i.toPrimitive(t));else if(i.isThenable(t)){e||u(`Cannot stringify a Promise or thenable — use stringifyAsync instead`,t);let r=c.slice();m=i.toPromise(t).then(e=>{c=r;let t=d(e,n);t<0&&(a[n]=t)}),m.catch(()=>{})}else{let e=i.tagOf(t);switch(e){case`Number`:case`String`:case`Boolean`:case`BigInt`:m=`[\"Object\",${d(i.unbox(t))}]`;break;case`Date`:m=`[\"Date\",\"${i.toISOString(t)}\"]`;break;case`URL`:m=`[\"URL\",${Fm(i.toStringValue(t))}]`;break;case`URLSearchParams`:m=`[\"URLSearchParams\",${Fm(i.toStringValue(t))}]`;break;case`RegExp`:let{source:n,flags:r}=i.regExpInfo(t);m=r?`[\"RegExp\",${Fm(n)},\"${r}\"]`:`[\"RegExp\",${Fm(n)}]`;break;case`Array`:{let e=!1,n=i.lengthOf(t);m=`[`;for(let r=0;r<n;r+=1)if(r>0&&(m+=`,`),i.hasOwn(t,r))c.push(r),m+=d(i.get(t,r)),c.pop();else if(e)m+=-2;else{let r=i.indicesOf(t),a=r.length,o=String(n).length;if((n-a)*3>4+o+a*(o+1)){m=`[-7,`+n;for(let e=0;e<r.length;e++){let n=r[e];c.push(+n),m+=`,`+n+`,`+d(i.get(t,n)),c.pop()}break}else e=!0,m+=-2}m+=`]`;break}case`Set`:m=`[\"Set\"`;for(let e of i.valuesOf(t))m+=`,${d(e)}`;m+=`]`;break;case`Map`:m=`[\"Map\"`;for(let[e,n]of i.entriesOf(t))c.push(Dm,e),m+=`,${d(e)},${d(n)}`,c.pop(),c.pop();m+=`]`;break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:{let n=i.viewInfo(t);m=`[\"`+e+`\",`+d(n.buffer),n.byteLength!==n.bufferByteLength&&(m+=`,${n.byteOffset},${n.length}`),m+=`]`;break}case`DataView`:{let n=i.viewInfo(t);m=`[\"`+e+`\",`+d(n.buffer),n.byteLength!==n.bufferByteLength&&(m+=`,${n.byteOffset},${n.byteLength}`),m+=`]`;break}case`ArrayBuffer`:m=`[\"ArrayBuffer\",\"${th(i.toArrayBuffer(t))}\"]`;break;case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:m=`[\"${e}\",${Fm(i.toStringValue(t))}]`;break;default:{let e=i.shapeOf(t);if(e.kind===`not-plain`&&u(`Cannot stringify arbitrary non-POJOs`,t),e.kind===`symbol-keys`&&u(`Cannot stringify POJOs with symbolic keys`,t),e.kind===`null-proto`){m=`[\"null\"`;for(let n of e.keys)n===`__proto__`&&u(`Cannot stringify objects with __proto__ keys`,t),c.push(n),m+=`,${Rm(n)},${d(i.get(t,n))}`,c.pop();m+=`]`}else{m=`{`;let n=!1;for(let r of e.keys)r===`__proto__`&&u(`Cannot stringify objects with __proto__ keys`,t),n&&(m+=`,`),n=!0,c.push(r),m+=`${Rm(r)}:${d(i.get(t,r))}`,c.pop();m+=`}`}}}}return a[n]=m,n}let f=d(t);return f<0?`${f}`:a}function hh(e){let t=typeof e;return t===`string`?Fm(e):e===void 0?`-1`:e===0&&1/e<0?`-6`:t===`bigint`?`[\"BigInt\",\"${e}\"]`:String(e)}var gh=e=>Object.prototype.toString.call(e).slice(8,-1),_h=e=>gh(e).startsWith(`Temporal.`),vh=e=>e instanceof Number||e instanceof String||e instanceof Boolean||gh(e)===`BigInt`;function yh(e){return e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof URL||e instanceof URLSearchParams||e instanceof Error||vh(e)||_h(e)}function bh(e){if(!yh(e))return;let t=e instanceof Error?`Error`:gh(e);return`${/^[AEIOU]/.test(t)?`an`:`a`} ${t}`}var xh=e=>e!==`4294967295`&&String(Number(e)>>>0)===e;function Sh(e){let t=Object.keys(e);return Array.isArray(e)?t.filter(e=>!xh(e)):t}var Ch=new Map,wh=new Map;function Th(e,t){Ch.set(e,t),wh.set(t,e)}function Eh(e){let t=Object.getPrototypeOf(e);return t===null?void 0:wh.get(t.constructor)}var Dh=`c:`,Oh=`E:`,kh=`S`,Ah=`K`,jh=`R`,Mh=new Map([Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.AggregateError].map(e=>[e.prototype,e.name])),Nh=new Map([...Mh].map(([e,t])=>[t,e.constructor])),Ph=[`message`,`cause`,`errors`],Fh=e=>typeof e==`object`&&!!e,Ih=e=>Fh(e)&&Object.getPrototypeOf(e)===Object.prototype,Lh=e=>TypeError(`spindle: Malformed data for class \"${e}\"`),Rh=(e,t,n)=>{Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0})};function zh(e){if(Object.getOwnPropertySymbols(e).length>0)throw TypeError(`spindle: Cannot save an object with symbol keys`)}function Bh(e,t=Object.keys(e)){zh(e);let n={};if(e instanceof Error)for(let t of Ph)G(e,t)&&Rh(n,t,e[t]);for(let r of t)Rh(n,r,e[r]);return n}var Vh={Array,Map,Set};function Hh(e){let t=()=>Bh(e,Sh(e));if(Array.isArray(e)){let n=Array(e.length);for(let t=0;t<e.length;t++)t in e&&(n[t]=e[t]);return[`Array`,n,t()]}return e instanceof Map?[`Map`,Array.from(Map.prototype.entries.call(e)),t()]:e instanceof Set?[`Set`,Array.from(Set.prototype.values.call(e)),t()]:Bh(e)}function Uh(e){for(let t of Ph)G(e,t)&&Object.defineProperty(e,t,{enumerable:!1})}var Wh=e=>e.length===1&&JSON.stringify(e).length>3;function Gh(){let e={};for(let[t,n]of Ch)e[Dh+t]=e=>Fh(e)&&Object.getPrototypeOf(e)===n.prototype&&Hh(e);for(let[t,n]of Mh)e[Oh+n]=e=>Fh(e)&&Object.getPrototypeOf(e)===t&&Bh(e);return e[kh]=e=>{if(typeof e!=`symbol`)return!1;let t=Symbol.keyFor(e);return t!==void 0&&[t]},e[jh]=e=>e instanceof RegExp&&e.lastIndex!==0&&[e.source,e.flags,e.lastIndex],e[Ah]=e=>{if(!Ih(e))return!1;let t=Object.keys(e);if(!t.some(Wh))return!1;if(zh(e),t.includes(`__proto__`))throw TypeError(`spindle: Cannot save a property named \"__proto__\"`);return t.flatMap(t=>[t,e[t]])},e}var Kh=new WeakMap;function qh(e,t,n){let[r,i,a]=n,o=typeof r==`string`&&G(Vh,r)?Vh[r]:void 0;if(n.length!==3||!o||!(t.prototype instanceof o)||G(n,1)&&!Array.isArray(i)||G(n,2)&&!Ih(a))throw Lh(e);let s=Kh.get(n);if(s||(s=Object.setPrototypeOf(new o,t.prototype),Kh.set(n,s)),Array.isArray(i)&&Jh(s,i),Ih(a))for(let e of Object.keys(a))Rh(s,e,a[e]);return s}function Jh(e,t){if(Array.isArray(e)){e.length=t.length;for(let n=0;n<t.length;n++)G(t,n)?e[n]=t[n]:delete e[n]}else if(e instanceof Map){Map.prototype.clear.call(e);for(let n of t){if(!Array.isArray(n)||n.length!==2)throw TypeError(`spindle: Malformed map entries`);Map.prototype.set.call(e,n[0],n[1])}}else{Set.prototype.clear.call(e);for(let n of t)Set.prototype.add.call(e,n)}}function Yh(e){return t=>{if(Array.isArray(t))return qh(e,Xh(e),t);if(!Ih(t)){if(Fh(t)&&Eh(t)===e)return t;throw Lh(e)}let n=Xh(e);if(Object.values(Vh).some(e=>n.prototype instanceof e))throw Lh(e);return Object.setPrototypeOf(t,n.prototype),t instanceof Error&&Uh(t),t}}function Xh(e){let t=Ch.get(e);if(!t)throw TypeError(`spindle: The save holds an instance of class \"${e}\", which is not registered`);return t}function Zh(e){let t=Nh.get(e);if(t)return n=>{if(Object.getPrototypeOf(n)===t.prototype)return n;if(!Ih(n))throw TypeError(`spindle: Malformed data for \"${e}\"`);return Object.setPrototypeOf(n,t.prototype),Uh(n),n}}var Qh=new WeakMap;function $h(e){if(!Array.isArray(e)||e.length%2!=0)throw TypeError(`spindle: Malformed object entries`);let t=Qh.get(e);t||Qh.set(e,t={});for(let n=0;n<e.length&&G(e,n);n+=2){let r=e[n];if(typeof r!=`string`||r===`__proto__`)throw TypeError(`spindle: Malformed object entries`);Rh(t,r,G(e,n+1)?e[n+1]:void 0)}return t}var eg=new Proxy({},{getOwnPropertyDescriptor(e,t){let n=tg(t);return n&&{value:n,enumerable:!0,configurable:!0}},get:(e,t)=>tg(t)});function tg(e){if(typeof e==`string`){if(e===kh)return e=>{if(!Array.isArray(e)||typeof e[0]!=`string`)throw TypeError(`spindle: Malformed symbol`);return Symbol.for(e[0])};if(e===Ah)return $h;if(e===jh)return e=>{if(!Array.isArray(e)||typeof e[0]!=`string`||typeof e[1]!=`string`||!Number.isSafeInteger(e[2]))throw TypeError(`spindle: Malformed regular expression`);let t=new RegExp(e[0],e[1]);return t.lastIndex=e[2],t};if(e.startsWith(Dh))return Yh(e.slice(2));if(e.startsWith(Oh))return Zh(e.slice(2))}}function ng(e,t){if(!(e instanceof Error)||e.name!==`DevalueError`)return e instanceof Error?e:Error(String(e));let{path:n,value:r}=e,i=n?` (at ${n})`:``,a=e.message;return typeof r==`function`?a=`Cannot save a function`:Fh(r)&&/non-POJO/.test(e.message)?a=`Cannot save an instance of class \"${Object.getPrototypeOf(r)?.constructor?.name??`?`}\", which is not registered (see Story.registerClass)`:typeof r==`symbol`?a=`Cannot save a unique symbol (only Symbol.for() symbols)`:/symbolic keys/.test(e.message)?a=`Cannot save an object with symbol keys`:/__proto__/.test(e.message)&&(a=`Cannot save a property named \"__proto__\"`),TypeError(`spindle: ${a}${i}`)}function rg(e){try{return ph(e,Gh())}catch(t){throw ng(t,e)}}function ig(e){return dh(e,eg)}var ag=class extends Error{constructor(){super(`This save was made by an incompatible version of Spindle`),this.name=`IncompatibleSaveError`}},og={};function sg(e){if(typeof e!=`number`||!Number.isInteger(e)||e<1||e>1)throw new ag}function cg(e,t){sg(e);let n=t;for(let t=e;t<1;t++){let e=og[t];if(!e)throw new ag;n=e(n)}return n}var lg=e=>e&&new Map(Object.entries(e));function ug(e){if(!(e instanceof TypeError))return e;let t=e.message.replace(/\\(at \\.variables(?=[.[]|\\))/,`(at $`).replace(/\\(at \\.history\\[(\\d+)\\]\\.variables(.*)\\)$/,(e,t,n)=>`(at $${n} in history moment ${t})`).replace(/\\(at \\$\\.?/,`(at $`);return t===e.message?e:TypeError(t)}function dg(e){try{return{formatVersion:1,data:rg({...e,visitCounts:lg(e.visitCounts),renderCounts:lg(e.renderCounts)})}}catch(e){throw ug(e)}}var fg=()=>Error(`Invalid save data`);function pg(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function mg(e){return e==null?!0:pg(e)&&typeof e.seed==`string`&&typeof e.pull==`number`&&Number.isInteger(e.pull)&&e.pull>=0}var hg=e=>pg(e)&&typeof e.passage==`string`&&pg(e.variables)&&typeof e.timestamp==`number`&&mg(e.prng),gg=e=>e===void 0||Array.isArray(e)&&Array.from(e).every(e=>pg(e)&&typeof e.condition==`string`&&pg(e.options)),_g=e=>e===void 0||e instanceof Map&&[...e.keys()].every(e=>typeof e==`string`);function vg(e){if(!pg(e)||typeof e.passage!=`string`||!pg(e.variables))return!1;let{history:t,historyIndex:n}=e;return!Array.isArray(t)||t.length===0||!Array.from(t).every(hg)||typeof n!=`number`||!Number.isInteger(n)||n<0||n>=t.length||t[n].passage!==e.passage?!1:_g(e.visitCounts)&&_g(e.renderCounts)&&mg(e.prng)&&gg(e.watchers)}var yg=e=>e instanceof Map?ms(Object.fromEntries(e)):void 0;function bg(e){if(typeof e!=`object`||!e)throw fg();let{formatVersion:t,data:n}=e;if(sg(t),typeof n!=`string`)throw fg();let r=ig(cg(t,n));if(!vg(r))throw fg();let i={...r,visitCounts:yg(r.visitCounts),renderCounts:yg(r.renderCounts)};return i.visitCounts===void 0&&delete i.visitCounts,i.renderCounts===void 0&&delete i.renderCounts,i}var xg=`Invalid save file format`;function Sg(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Cg=[`id`,`passage`,`ifid`,`playthroughId`,`createdAt`,`updatedAt`,`title`];function wg(e){let t=console.warn;console.warn=()=>{};try{bg(e)}finally{console.warn=t}}function Tg(e){if(!Sg(e))throw Error(xg);if(!G(e,`formatVersion`))throw e.version===1?new ag:Error(xg);if(sg(e.formatVersion),typeof e.ifid!=`string`)throw Error(xg);let t=e.save;if(!Sg(t)||!Sg(t.meta))throw Error(xg);let n=t.meta;if(Cg.some(e=>typeof n[e]!=`string`))throw Error(xg);try{wg(t.payload)}catch(e){throw e instanceof ag?e:Error(xg)}}function Eg(e){try{return Tg(e),!0}catch{return!1}}function Dg(e){return JSON.stringify(e).length}function Og(e){return{saves:e(`saves`,{ifid:e=>e.meta.ifid,playthroughId:e=>e.meta.playthroughId}),playthroughs:e(`playthroughs`,{ifid:e=>e.ifid}),meta:e(`meta`,{})}}var kg={autosave:`autosave.`,slot:`slot.`,slotIndex:`slotIndex.`,playthroughCount:`playthroughCount.`,currentPlaythrough:`currentPlaythroughId.`};function Ag(e,t){let{slot:n,...r}=kg;return Object.values(r).some(n=>e===n+t)||e.startsWith(n)&&e.endsWith(`.${t}`)}function jg(e,{saves:t,playthroughs:n,meta:r},i){async function a(e,t,n,r){let i=(await e.find(n,r)).map(t);for(let t of i)await e.delete(t);return i}async function o(e){for(let t of await r.keys())e(t)&&await r.delete(t)}let s=e=>e.meta.id,c=e=>e.id;return{type:e,putSave:e=>t.put(e.meta.id,e),getSave:e=>t.get(e),deleteSave:e=>t.delete(e),getSavesByIfid:e=>t.find(`ifid`,e),deleteSavesByIfid:async e=>{await a(t,s,`ifid`,e)},deleteSavesByPlaythrough:e=>a(t,s,`playthroughId`,e),putPlaythrough:e=>n.put(e.id,e),getPlaythroughsByIfid:e=>n.find(`ifid`,e),deletePlaythroughsByIfid:async e=>{await a(n,c,`ifid`,e)},deletePlaythroughById:e=>n.delete(e),getMeta:e=>r.get(e),setMeta:(e,t)=>r.put(e,t),deleteMeta:e=>r.delete(e),deleteMetaByPrefix:e=>o(t=>t.startsWith(e)),deleteMetaByIfid:e=>o(t=>Ag(t,e)),getAllMetaKeys:()=>r.keys(),destroy:i}}function Mg(){let e=e=>structuredClone(e),t=[];function n(n,r){let i=new Map;return t.push(i),{get:async t=>e(i.get(t)),put:async(t,n)=>{i.set(t,e(n))},delete:async e=>{i.delete(e)},find:async(t,n)=>[...i.values()].filter(e=>r[t](e)===n).map(e),keys:async()=>[...i.keys()]}}return jg(`memory`,Og(n),async()=>{for(let e of t)e.clear()})}var Ng={saves:`spindle.save.`,playthroughs:`spindle.pt.`,meta:`spindle.meta.`},Pg={\"saves.ifid\":`spindle.idx.saves.`,\"saves.playthroughId\":`spindle.idx.saves-pt.`,\"playthroughs.ifid\":`spindle.idx.pt.`};function Fg(e){let t=localStorage.getItem(e);if(t!==null)try{return JSON.parse(t)}catch{return}}function Ig(e,t){localStorage.setItem(e,JSON.stringify(t))}function Lg(e){localStorage.removeItem(e)}function Rg(e){return Fg(e)??[]}function zg(e,t){let n=Rg(e);n.includes(t)||(n.push(t),Ig(e,n))}function Bg(e,t){let n=Rg(e).filter(e=>e!==t);n.length>0?Ig(e,n):Lg(e)}var Vg=e=>Object.keys(localStorage).filter(t=>t.startsWith(e));function Hg(){function e(e,t){let n=Ng[e],r=Object.entries(t).map(([t,n])=>({field:t,read:n,prefix:Pg[`${e}.${t}`]})),i=e=>r.map(t=>`${t.prefix}${t.read(e)}`);return{get:async e=>Fg(`${n}${e}`),async put(e,t){let r=Fg(`${n}${e}`),a=i(t);if(r!==void 0)for(let t of i(r))a.includes(t)||Bg(t,e);Ig(`${n}${e}`,t);for(let t of a)zg(t,e)},async delete(e){let t=Fg(`${n}${e}`);if(t!==void 0)for(let n of i(t))Bg(n,e);Lg(`${n}${e}`)},async find(e,t){let i=r.find(t=>t.field===e),a=[];for(let e of Rg(`${i.prefix}${t}`)){let t=Fg(`${n}${e}`);t!==void 0&&a.push(t)}return a},keys:async()=>Vg(n).map(e=>e.slice(n.length))}}return jg(`localstorage`,Og(e),async()=>{for(let e of Vg(`spindle.`))Lg(e)})}var Ug=`spindle`,Wg=1,Gg={saves:{keyPath:`meta.id`,indexes:{ifid:`meta.ifid`,playthroughId:`meta.playthroughId`}},playthroughs:{keyPath:`id`,indexes:{ifid:`ifid`}},meta:{keyPath:`key`,indexes:{}}};function Kg(){let e=null;function t(){return e||(e=new Promise((t,n)=>{let r=indexedDB.open(Ug,Wg);r.onupgradeneeded=()=>{let e=r.result;for(let[t,{keyPath:n,indexes:r}]of Object.entries(Gg)){if(e.objectStoreNames.contains(t))continue;let i=e.createObjectStore(t,{keyPath:n});for(let[e,t]of Object.entries(r))i.createIndex(e,t,{unique:!1})}},r.onsuccess=()=>{let n=r.result;n.onversionchange=()=>{n.close(),e=null},t(n)},r.onerror=()=>n(r.error)}),e)}function n(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function r(e){let r=e===`meta`,i=async(r,i)=>{let a=(await t()).transaction(e,r),o=n(i(a.objectStore(e)));if(r===`readonly`)return o;let s=new Promise((e,t)=>{a.oncomplete=()=>e(),a.onabort=()=>t(a.error??new DOMException(`Transaction aborted`,`AbortError`))}),[c]=await Promise.all([o,s]);return c};return{async get(e){let t=await i(`readonly`,t=>t.get(e));return r?t?.value:t},async put(e,t){await i(`readwrite`,n=>n.put(r?{key:e,value:t}:t))},async delete(e){await i(`readwrite`,t=>t.delete(e))},async find(e,t){return await i(`readonly`,n=>n.index(e).getAll(t))??[]},keys:async()=>await i(`readonly`,e=>e.getAllKeys())}}return jg(`indexeddb`,Og(r),async()=>{(await t()).close(),e=null,await new Promise((e,t)=>{let n=indexedDB.deleteDatabase(Ug);n.onsuccess=()=>e(),n.onerror=()=>t(n.error),n.onblocked=()=>t(Error(`Cannot clear the saved data: another tab or window of this site still has it open. Close the other tabs and try again.`))})})}var qg=null;async function Jg(){try{if(typeof indexedDB<`u`)return await new Promise((e,t)=>{let n=indexedDB.open(`__spindle_probe__`,1);n.onsuccess=()=>{n.result.close(),indexedDB.deleteDatabase(`__spindle_probe__`),e()},n.onerror=()=>t(n.error)}),Kg()}catch{}try{if(typeof localStorage<`u`){let e=`__spindle_probe__`;localStorage.setItem(e,`1`);let t=localStorage.getItem(e);if(localStorage.removeItem(e),t===`1`)return Hg()}}catch{}return Mg()}var Yg=null;function Z(){if(qg)return Promise.resolve(qg);if(!Yg){let e=Jg().then(t=>(Yg===e&&(qg=t),t));Yg=e}return Yg}function Xg(){qg=null,Yg=null}function Zg(){return qg?.type??`memory`}function Qg(e,t){let n=e;for(let e of t){if(n==null||e in Object.prototype&&!G(Object(n),e))return;n=n[e]}return n}var $g=e=>e===`length`||/^(0|[1-9]\\d*)$/.test(e),e_=bh;function t_(e){let t=Array.isArray(e)?Array(e.length):Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Object.defineProperty(t,n,{value:e[n],enumerable:!0,writable:!0,configurable:!0});return t}function n_(e,t,n,r={}){let i=o_(e,t,r.createMissing??!1);i[t[t.length-1]]=n}function r_(e,t){let n=t[t.length-1];i_(t);let r=e;for(let e of t.slice(0,-1)){if(typeof r!=`object`||!r||!G(r,e))return;r=r[e]}if(typeof r!=`object`||!r||!G(r,n))return;let i=o_(e,t,!1);if(Array.isArray(i)&&Nt(i)&&t.length>1){let r=zn(i).slice();delete r[Number(n)];let a=o_(e,t.slice(0,-1),!1);a[t[t.length-2]]=r;return}delete i[n]}function i_(e){if(e.includes(`__proto__`))throw TypeError(`spindle: Cannot use \"__proto__\" in a variable path (\"${e.join(`.`)}\")`)}function a_(e,t,n,r){let i=e_(e)??(Array.isArray(e)&&!$g(t)?`an array`:``);if(i)throw TypeError(`spindle: Cannot set property \"${t}\" on ${i} (at \"${n.slice(0,r).join(`.`)}\")`)}function o_(e,t,n){i_(t);let r=Nt(e),i=e;for(let e=0;e<t.length-1;e++){let a=t[e];a_(i,a,t,e);let o=G(i,a)?i[a]:void 0;if(typeof o!=`object`||!o){if(!n)throw TypeError(`spindle: Cannot set property \"${t[e+1]}\" on ${o===null?`null`:typeof o} (at \"${t.slice(0,e+1).join(`.`)}\")`);o={},i[a]=o}else r&&!Nt(o)&&!e_(o)&&(o=t_(o),i[a]=o);i=o}return a_(i,t[t.length-1],t,t.length-1),i}function s_(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function c_(e,t,n,r){if(n(t),Eh(e)===void 0)return t;Object.setPrototypeOf(t,Object.getPrototypeOf(e));for(let n of Sh(e))as(t,n,r(n));return t}var l_=[`message`,`cause`,`errors`];function u_(e,t={}){let n=t.seen??new Map,r=(e,t)=>(n.set(e,t),t);function i(e,t){for(let n of Object.keys(e))as(t,n,c(e[n]));for(let n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&(t[n]=c(e[n]));return t}function a(e){if(e instanceof Date)return r(e,new Date(e.getTime()));if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,r(e,t)}if(e instanceof ArrayBuffer)return r(e,e.slice(0));if(ArrayBuffer.isView(e)){let t=c(e.buffer);if(e instanceof DataView)return r(e,new DataView(t,e.byteOffset,e.byteLength));let n=e.constructor,i=e.length;return r(e,new n(t,e.byteOffset,i))}if(e instanceof URL)return r(e,new URL(e.href));if(e instanceof URLSearchParams)return r(e,new URLSearchParams(e));if(vh(e))return r(e,Object(e.valueOf()));if(_h(e))return e;if(e instanceof Error){let t=r(e,Object.create(Object.getPrototypeOf(e)));for(let n of[...l_,`stack`])if(G(e,n)){let r=e[n];Object.defineProperty(t,n,{value:o(c(r),r),writable:!0,configurable:!0})}return i(e,t)}}function o(e,n){let r=t.settle;return r&&g_(e)&&g_(n)?r(e,n):e}let s=(e,t)=>c_(e,t,t=>r(e,t),t=>c(e[t]));function c(e){if(typeof e!=`object`||!e)return e;let l=e;if(n.has(l))return n.get(l);if(Array.isArray(e)){let t=s(l,Array(e.length));for(let n=0;n<e.length;n++)n in e&&(t[n]=c(e[n]));return t}if(e instanceof Map){let t=s(l,new Map);for(let[n,r]of e)Map.prototype.set.call(t,o(c(n),n),c(r));return t}if(e instanceof Set){let t=s(l,new Set);for(let n of e)Set.prototype.add.call(t,o(c(n),n));return t}let u=a(l);if(u!==void 0)return u;let d=Eh(l)!==void 0||s_(e);return!d&&t.keepUnregistered?e:i(l,r(l,d?Object.create(Object.getPrototypeOf(l)):{}))}return c(e)}function d_(e,t){return S_(e,t,f_())}function f_(){let e=new Map;return(t,n)=>{let r=e.get(t);if(r?.has(n))return!0;r?r.add(n):e.set(t,new Set([n]))}}function p_(e=new Map,t=new Map){let n=[],r=((r,i)=>{let a=e.get(r);if(a!==void 0)return a===i;if(t.has(i))return!1;e.set(r,i),t.set(i,r),n.push([r,i])});return r.strict=!0,r.added=n,r}function m_(e,t){return S_(e,t,p_())}function h_(e,t){if(!g_(e)||!g_(t))return t;let n=new Map,r=new Map,i=e=>g_(e)?u_(e,{keepUnregistered:!0,seen:n}):e;function a(e,t){let i=p_(r,n);if(S_(e,t,i))return!0;for(let[e,t]of i.added)r.delete(e),n.delete(t);return!1}function o(e,t){if(!g_(t))return t;let r=n.get(t);if(r!==void 0)return r;if(!g_(e))return i(t);if(a(e,t))return e;let s=e,c=t,l=e=>o(G(s,e)?s[e]:void 0,c[e]),u=e=>c_(t,e,e=>n.set(t,e),l);if(t instanceof Map&&e instanceof Map){let n=u(new Map);for(let[r,a]of t)Map.prototype.set.call(n,i(r),o(e.get(r),a));return n}if(Array.isArray(t)&&Array.isArray(e)){let n=u(Array(t.length));for(let r=0;r<t.length;r++)r in t&&(n[r]=o(e[r],t[r]));return n}if(w_(e,t,!1)){let e=Object.create(Object.getPrototypeOf(t));n.set(t,e);for(let t of Object.keys(c))as(e,t,l(t));return e}return i(t)}return o(e,t)}var g_=e=>typeof e==`object`&&!!e;function __(e,t){let n=ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),r=ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t);if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}function v_(e,t,n){if(e instanceof Date)return Object.is(e.getTime(),t.getTime());if(e instanceof RegExp)return String(e)===String(t)&&e.lastIndex===t.lastIndex;if(ArrayBuffer.isView(e)){let r=t;return e.byteOffset===r.byteOffset&&e.byteLength===r.byteLength&&S_(e.buffer,r.buffer,n)}if(e instanceof ArrayBuffer)return __(e,t);if(e instanceof URL||e instanceof URLSearchParams)return String(e)===String(t);if(vh(e))return Object.is(e.valueOf(),t.valueOf());if(_h(e))return String(e)===String(t);if(e instanceof Error)return l_.every(r=>G(e,r)===G(t,r)&&S_(e[r],t[r],n))&&y_(e,t,n)}function y_(e,t,n,r=Object.keys){let i=e,a=t,o=r(i);if(o.length!==r(a).length)return!1;for(let e of o)if(!G(a,e)||!S_(i[e],a[e],n))return!1;return!0}var b_=new Set([Array.prototype,Map.prototype,Set.prototype]);function x_(e,t,n){return b_.has(Object.getPrototypeOf(e))||y_(e,t,n,Sh)}function S_(e,t,n){if(Object.is(e,t)&&!(n.strict&&g_(e)))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let r=n(e,t);if(r!==void 0)return r;if(e instanceof Map||e instanceof Set){let r=t;if(e.size!==r.size)return!1;let i=e.entries(),a=r.entries();for(let e=i.next(),t=a.next();!e.done;e=i.next(),t=a.next())if(!S_(e.value,t.value,n))return!1;return x_(e,t,n)}let i=v_(e,t,n);if(i!==void 0)return i;if(Array.isArray(e)){let r=t;if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(t in e!=t in r||!S_(e[t],r[t],n))return!1;return x_(e,t,n)}return y_(e,t,n)}function C_(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!yh(e)}function w_(e,t,n){return n&&(Array.isArray(e)||Array.isArray(t))?Array.isArray(e)&&Array.isArray(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t):C_(e)&&C_(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function T_(e,t,n){let r=[],i=(e,t,i)=>{Object.is(t,i)||(w_(t,i,n)?r.push({key:e,kind:`nested`,before:t,after:i}):d_(t,i)||r.push({key:e,kind:`changed`,after:i}))};if(Array.isArray(t)){let n=e,a=t;for(let e=0;e<Math.min(n.length,a.length);e++){let t=String(e);e in n&&e in a?i(t,n[e],a[e]):e in n?r.push({key:t,kind:`deleted`,hole:!0}):e in a&&r.push({key:t,kind:`added`,after:a[e]})}let o=n.length;for(let e=n.length;e<a.length;e++){if(!(e in a))continue;let t=e-o;r.push({key:String(e),kind:`added`,after:a[e],...t?{gap:t}:{}}),o=e+1}for(let e=a.length;e<n.length;e++)r.push({key:String(e),kind:`deleted`});return a.length>o&&r.push({key:`length`,kind:`holes`,after:a.length-o}),r}for(let n of Object.keys(t))G(e,n)?i(n,e[n],t[n]):r.push({key:n,kind:`added`,after:t[n]});for(let n of Object.keys(e))G(t,n)||r.push({key:n,kind:`deleted`});return r}function E_(e,t,n=!1){let r=[],i=new Set,a=new WeakMap,o=0;return(function e(t,s,c){if(i.has(s)){o++;return}if(a.get(s)?.has(t))return;i.add(s);let l=r.length,u=o;for(let i of T_(t,s,n)){let n=[...c,i.key];i.kind===`nested`?e(i.before,i.after,n):r.push(i.kind===`deleted`?{path:n,deleted:!0,...i.hole?{hole:!0}:{}}:{path:n,deleted:!1,value:i.after,...i.kind===`added`&&Array.isArray(s)&&Number(i.key)>=t.length?{appended:!0,...i.gap?{gap:i.gap}:{}}:{}})}if(r.length===l&&o===u){let e=a.get(s)??new Set;e.add(t),a.set(s,e)}i.delete(s)})(e,t,[]),r}var D_=e=>JSON.stringify(e);function O_(e,t){for(let n=1;n<=e.length;n++)if(t.has(D_(e.slice(0,n))))return!0;return!1}var k_=(e,t)=>`\\0${e}${t}`,A_=e=>e.startsWith(`\\0`);function j_(e){let t=[];if(e instanceof Map){let n=0;for(let[r,i]of e)t.push([k_(`k`,n),r],[k_(`v`,n),i]),n++}else if(e instanceof Set){let n=0;for(let r of e)t.push([k_(`s`,n++),r])}else if(e instanceof Error)for(let n of[`cause`,`errors`])G(e,n)&&t.push([k_(n===`cause`?`c`:`e`,0),e[n]]);else if(ArrayBuffer.isView(e))t.push([k_(`b`,0),e.buffer]);else return;return t}function M_(e,t){let n=e,r=0;for(let e=0;e<t.length;e++)if(A_(t[e])){if(n=Qg(n,t.slice(r,e)),!g_(n))return;n=j_(n)?.find(([n])=>n===t[e])?.[1],r=e+1}return r===t.length?n:Qg(n,t.slice(r))}function N_(e,t,n){let r=M_(e,t.slice(0,-1)),i=/^\\0v(\\d+)$/.exec(t[t.length-1]);if(!(r instanceof Map)||!i)return!1;let a=[...r.keys()][Number(i[1])];return r.set(a,n),!0}function P_(e,t=new Set,n=!1){let r=new Map,i=[];function a(e,t){let a=r.get(e);if(a){a.push(t);return}r.set(e,[t]),C_(e)||Array.isArray(e)?o(e,t):n&&j_(e)&&i.push([e,t])}function o(e,n){for(let r of Object.keys(e)){let i=e[r];if(!g_(i))continue;let o=[...n,r];t.has(D_(o))||a(i,o)}}o(e,[]);for(let[e,t]of i)for(let[n,r]of j_(e))g_(r)&&a(r,[...t,n]);return r}function F_(e,t,n){return new Map([...P_(e,t,n)].map(([e,t])=>[e,t[0]]))}function I_(e){return[...P_(e,void 0,!0).values()].filter(e=>e.length>1)}function L_(e,t,n,r,i){let a=[],o=j_(e),s=j_(t);if(o&&s){if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)||(e instanceof Map||e instanceof Set)&&e.size!==t.size)return!1;let n=new Map(s);for(let[e,t]of o)n.has(e)&&a.push([e,t,n.get(e)])}else if((C_(e)||Array.isArray(e))&&w_(e,t,!0))for(let n of Object.keys(t))G(e,n)&&a.push([n,e[n],t[n]]);return a.some(([e,t,a])=>{if(!g_(t)||!g_(a))return!1;let o=[...n,e],s=i.get(a);return D_(r.get(t))!==D_(s)||D_(s)===D_(o)&&L_(t,a,o,r,i)})}function R_(e,t){let n=F_(e,void 0,!0),r=F_(t,void 0,!0),i=[];return(function e(t,a,o){for(let s of Object.keys(a)){if(!G(t,s))continue;let c=t[s],l=a[s];if(!g_(c)||!g_(l))continue;let u=[...o,s],d=n.get(c),f=r.get(l),p=D_(u);D_(d)===D_(f)?D_(f)===p&&j_(c)&&L_(c,l,u,n,r)&&i.push({path:u,deleted:!1,value:l,alias:!0}):i.push({path:u,deleted:!1,value:l,alias:!0}),(C_(c)||Array.isArray(c))&&w_(c,l,!0)&&D_(f)===p&&D_(d)===p&&e(c,l,u)}})(e,t,[]),i}function z_(e,t,n=!1){let r=E_(e,t,n),i=new Set(r.map(e=>D_(e.path))),a=[];for(let n of R_(e,t))O_(n.path,i)||(i.add(D_(n.path)),a.push(n));return[...a,...r]}function B_(e,t){return F_(e,new Set(t.map(e=>D_(e.path))),!0)}function V_(e,t){return new class extends Map{has(n){if(super.has(n))return!0;let r=e.get(n);if(!r)return!1;let i=M_(t,r);return g_(i)&&(Array.isArray(i)?Array.isArray(n):Object.getPrototypeOf(i)===Object.getPrototypeOf(n))?(super.set(n,i),!0):!1}}}function H_(e,t){let n=Qg(e,t.path.slice(0,-1));if(typeof n!=`object`||!n)return t.deleted;let r=t.path[t.path.length-1];return G(n,r)?!t.deleted&&d_(n[r],t.value):t.deleted}function U_(e,t,n){t.some(A_)?N_(e,t,n):n_(e,t,n)}function W_(e,t){let n=e;t.deleted?r_(n,t.path):n_(n,t.path,t.value)}var G_=new Set([`storyinit`,`beforerestart`,`actionsChanged`,`variableChanged`,`beforesave`,`aftersave`,`beforeload`,`afterload`,`beforenavigate`,`afternavigate`,`passagerender`,`dialogrender`]),K_=new Map;function q_(e,t){if(!G_.has(e))throw Error(`spindle: Unknown event \"${e}\".`);let n=K_.get(e);return n||(n=new Set,K_.set(e,n)),n.add(t),()=>{n.delete(t)}}function J_(e,t){let n=K_.get(e);if(n)for(let e of[...n])t(e)}function Y_(e,...t){J_(e,e=>e(...t))}function X_(e,...t){J_(e,n=>{try{n(...t)}catch(t){console.error(`spindle: Error in ${e} handler:`,t)}})}var Z_=null,Q_=null;function $_(e){Z_=e}function ev(e){Q_=e}function tv(e){return zc(()=>nv(e))}function nv(e){if(Q_)try{let t=Function(`passage`,`variables`,Q_)(e.passage,e.variables);if(typeof t==`string`&&t.trim())return t.trim()}catch{}if(Z_)try{let t=Z_(e);if(typeof t==`string`&&t.trim())return t.trim()}catch{}let t=new Date().toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});return`${e.passage} - ${t}`}var rv=Promise.resolve();function iv(e){let t=rv.then(e);return rv=t.catch(()=>{}),t}function av(e){return(...t)=>iv(()=>e(...t))}var ov=e=>av(async t=>e(await(await Z()).getSave(t))),sv=e=>av(async(t,n)=>e(await zv(t,n))),cv=av(lv);async function lv(e,t=xt()){let n=await Z();return await Fv(`spindle-playthrough-count:${e}`,async()=>{let r=await fv(e),i={id:t,ifid:e,createdAt:new Date().toISOString(),label:`Playthrough ${r}`};await n.putPlaythrough(i),await n.setMeta(dv(e),r)}),await n.setMeta(pv(e),t),ay(e,t),t}var uv=/^Playthrough (\\d+)$/;function dv(e){return`${kg.playthroughCount}${e}`}async function fv(e){let t=await Z(),n=await t.getMeta(dv(e))??0;for(let r of await t.getPlaythroughsByIfid(e)){let e=uv.exec(r.label);e&&(n=Math.max(n,Number(e[1])))}return n+1}function pv(e){return`${kg.currentPlaythrough}${e}`}var mv=av(hv);async function hv(e,t){let n=await Z();await gv(e,t,new Date().toISOString());let r=pv(e);await n.getMeta(r)!==t&&await n.setMeta(r,t),ay(e,t)}async function gv(e,t,n){let r=await Z();(await r.getPlaythroughsByIfid(e)).some(e=>e.id===t)||await r.putPlaythrough({id:t,ifid:e,createdAt:n,label:`Imported`})}function _v(e){return iv(async()=>{let t=await Z(),n=oy(e),r=n!==void 0&&(await t.getPlaythroughsByIfid(e)).some(e=>e.id===n)?n:await t.getMeta(pv(e))??await lv(e);return ay(e,r),{id:r,knownSaves:await Yv(e)}})}function vv(e,t,n,r){try{let i=n();return zc(()=>Y_(`beforesave`,e,t)),r(i()).then(t=>(zc(()=>Y_(`aftersave`,e)),t))}catch(e){return Promise.reject(e)}}function yv(e,t){let n=dg(t);return{meta:{...e,estimatedBytes:Dg(n)},payload:n}}var bv=av(xv);async function xv(e,t,n,r={}){let i=await t;if(!i)throw Error(`No playthrough`);let a=new Date().toISOString(),o=yv({id:xt(),ifid:e,playthroughId:i,createdAt:a,updatedAt:a,title:tv(n),passage:n.passage,custom:r},n);return await(await Z()).putSave(o),o}var Sv=av(Cv);async function Cv(e,t,n,r){let i=await r,a=await Z(),o=await a.getSave(e);if(!o)return;let s=yv({...o.meta,...i?{playthroughId:i}:{},updatedAt:new Date().toISOString(),title:o.meta.userTitle===!0?o.meta.title:tv(t),passage:t.passage,...n==null?{}:{custom:{...o.meta.custom,...n}}},t);return await a.putSave(s),s}var wv=e=>e&&bg(e.payload),Tv=e=>bg(e);ov(wv);function Ev(e){return iv(async()=>{let t=await Z(),n=await t.getSave(e);await t.deleteSave(e),n&&await Hv(n.meta.ifid,t=>t===e)})}function Dv(e,t){return iv(async()=>{let n=await Z(),r=await n.getSave(e);if(!r)return;let i={...r,meta:{...r.meta,title:t,userTitle:!0,updatedAt:new Date().toISOString()}};await n.putSave(i)})}var Ov=av(async function(e){let t=await Z(),[n,r]=await Promise.all([t.getSavesByIfid(e),t.getPlaythroughsByIfid(e)]),i=new Map;for(let e of r)i.set(e.id,e);let a=new Map;for(let e of n){let t=e.meta.playthroughId,n=a.get(t);n?n.push(e):a.set(t,[e])}for(let e of a.values())e.sort((e,t)=>new Date(t.meta.updatedAt).getTime()-new Date(e.meta.updatedAt).getTime());let o=[],s=[...i.values()].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());for(let e of s){let t=a.get(e.id)??[];o.push({playthrough:e,saves:t})}for(let[t,n]of a)i.has(t)||o.push({playthrough:{id:t,ifid:e,createdAt:n[0]?.meta.createdAt??new Date().toISOString(),label:`Unknown Playthrough`},saves:n});return o}),kv=kg.autosave,Av=kg.slot,jv=kg.slotIndex;function Mv(e){return e!=null&&e!==``}function Nv(e,t){return Mv(t)?`${Av}${t}.${e}`:`${kv}${e}`}var Pv=e=>`${jv}${e}`;async function Fv(e,t){let n;try{n=navigator.locks}catch{}if(!n)return t();let r=!1;try{return await n.request(e,()=>(r=!0,t()))}catch(e){if(r)throw e;return t()}}async function Iv(e,t){let n=await Z();await Fv(`spindle-slot-index:${e}`,async()=>{let r=await n.getMeta(Pv(e))??[],i=t(r);i!==r&&await n.setMeta(Pv(e),i)})}async function Lv(e){return[void 0,...(await(await Z()).getMeta(Pv(e))??[]).filter(Mv)]}async function Rv(e,t){return(await Z()).getMeta(Nv(e,t))}async function zv(e,t){let n=await Rv(e,t);return n?(await Z()).getSave(n):void 0}async function Bv(e,t,n){await(await Z()).setMeta(Nv(e,t),n),Mv(t)&&await Iv(e,e=>e.includes(t)?e:[...e,t])}async function Vv(e,t){await(await Z()).deleteMeta(Nv(e,t)),Mv(t)&&await Iv(e,e=>e.filter(e=>e!==t))}async function Hv(e,t){for(let n of await Lv(e)){let r=await Rv(e,n);r&&t(r)&&await Vv(e,n)}}var Uv=e=>({isAutosave:!Mv(e),...Mv(e)?{slot:e}:{}});function Wv(e,t){return{slot:Mv(t)?t:``,title:e.meta.title,passage:e.meta.passage,createdAt:e.meta.createdAt,updatedAt:e.meta.updatedAt,custom:e.meta.custom??{}}}function Gv(e,t,n,r,i){return iv(async()=>{let a=await t,o=await Rv(e,r);if(o){let e=await Cv(o,n,i,a);if(e)return e}let s=await xv(e,a,n,{...Uv(r),...i});return await Bv(e,r,s.meta.id),s})}async function Kv(e,t){return await zv(e,t)!==void 0}sv(wv);function qv(e,t,n){return iv(async()=>{let r=await zv(e,t);if(!r)return;let i=bg(r.payload);n?.(i);let{playthroughId:a}=r.meta;return a&&await hv(e,a),{payload:i,playthroughId:a}})}var Jv=av(Yv);async function Yv(e){let t=Object.create(null);for(let n of await Lv(e))await Kv(e,n)&&(t[n??``]=!0);return t}var Xv=av(Zv);async function Zv(e,t){let n=await zv(e,t);return n?Wv(n,t):null}var Qv=av(async e=>{let t=[];for(let n of await Lv(e)){let r=await Zv(e,n);r&&t.push(r)}return t}),$v=av(async(e,t)=>{let n=await Rv(e,t);n&&(await(await Z()).deleteSave(n),await Vv(e,t))}),ey=`spindle.session.`;function ty(e,t){let n=JSON.stringify(dg(t));try{sessionStorage.setItem(`${ey}${e}`,n)}catch(e){return{error:e}}}function ny(e){try{let t=sessionStorage.getItem(`${ey}${e}`);return t?bg(JSON.parse(t)):void 0}catch(t){t instanceof ag&&(console.warn(`spindle: ${t.message}; the session was not restored.`),ry(e));return}}function ry(e){try{sessionStorage.removeItem(`${ey}${e}`)}catch{}}var iy=`${ey}playthrough.`;function ay(e,t){try{sessionStorage.setItem(`${iy}${e}`,t)}catch{}}function oy(e){try{return sessionStorage.getItem(`${iy}${e}`)||void 0}catch{return}}function sy(e){if(e)return{formatVersion:1,ifid:e.meta.ifid,exportedAt:new Date().toISOString(),save:e}}var cy=ov(sy);async function ly(e,t){if(Tg(e),e.ifid!==t)throw Error(`Save is from a different story (expected IFID ${t}, got ${e.ifid})`);let n=u_(e.save);return n.meta.id=xt(),n.meta.updatedAt=new Date().toISOString(),n.meta.ifid=t,await gv(t,n.meta.playthroughId,n.meta.createdAt),n}function uy(e,t){return iv(async()=>{let n=await ly(e,t);return await(await Z()).putSave(n),n})}var dy=sv(sy);function fy(e,t,n){return iv(async()=>{let r=await ly(e,t),{slot:i,...a}=r.meta.custom??{};r.meta.custom={...a,...Uv(n)};let o=await Z(),s=await Rv(t,n);return await o.putSave(r),await Bv(t,n,r.meta.id),s&&await o.deleteSave(s),Wv(r,n)})}var py=av(async function(e){let t=await Z(),n=await t.getSavesByIfid(e),r=await t.getPlaythroughsByIfid(e),i=0;for(let e of n)if(e.meta.estimatedBytes!=null)i+=e.meta.estimatedBytes;else{let n=Dg(e.payload);e.meta.estimatedBytes=n,await t.putSave(e),i+=n}return{saveCount:n.length,playthroughCount:r.length,totalBytes:i,backend:t.type}});function my(e){return iv(async()=>{let t=await Z();await t.deleteSavesByIfid(e),await t.deletePlaythroughsByIfid(e),await t.deleteMetaByIfid(e),ry(e)})}var hy=av(gy);async function gy(){await(await Z()).destroy(),Xg();try{let e=[];for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n?.startsWith(`spindle.session.`)&&e.push(n)}for(let t of e)sessionStorage.removeItem(t)}catch{}}function _y(e,t,n){return iv(async()=>{let r=await Z(),i=await r.deleteSavesByPlaythrough(t);await r.deletePlaythroughById(t);let a=new Set(i);if(await Hv(e,e=>a.has(e)),n&&await n.current===t)return await lv(e,n.id),!0;let o=pv(e);return await r.getMeta(o)===t&&await r.deleteMeta(o),!1})}var vy=null;function yy(){vy&&(ge(null,vy),vy.remove(),vy=null)}function by(){yy();let e=Q.getState();if(!e.storyData)return;let t=e.storyData.passages.get(`StoryInit`);if(t){let e=Zo(t.content);vc(e,`StoryInit`);let n=document.createElement(`div`);n.style.display=`none`,document.body.appendChild(n),vy=n,ge(b(()=>Cm(e),null),n),tx()}let n=e.storyData.passages.get(`SaveTitle`);n&&ev(n.content)}function xy(e){by();let t=e?Ox(Q.getState().storyData,e):void 0;t!==void 0&&(console.warn(`spindle: discarding the saved session: the story no longer has the passage \"${t}\"`),e=void 0),e&&Q.getState().loadFromPayload(e),Y_(`storyinit`),e||tx()}var Sy=[`variables`,`temporary`,`transient`],Cy=[];function wy(){return Cy[Cy.length-1]?.work}function Ty(){let e=Q.getState(),t=wy();return t?{...e,...t}:e}var Ey=e=>u_(e,{keepUnregistered:!0});function Dy(e,t){let n=t?V_(t,e):new Map,r=(r,i)=>{let a=t?.get(i);if(!a||!Nt(r))return r;let o=zn(r);return a.some(A_)||n_(e,a,o),n.set(i,o),o};return e=>u_(e,{keepUnregistered:!0,seen:n,settle:r})}var Oy=e=>{let t=new Map;return n=>{let r=t.get(n);return r||(r=Dy(n,e?.(n)),t.set(n,r)),r}};function ky(e){return nn(Ey(e),!0)}function Ay(e,t=new Set){if(typeof e!=`object`||!e||t.has(e)||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return!0;if(!Object.isFrozen(e))return!1;if(t.add(e),e instanceof Map){for(let[n,r]of e)if(!Ay(n,t)||!Ay(r,t))return!1}else if(e instanceof Set){for(let n of e)if(!Ay(n,t))return!1}return Reflect.ownKeys(e).every(n=>{let r=Object.getOwnPropertyDescriptor(e,n);return!r||!(`value`in r)||Ay(r.value,t)})}function jy(e){return Ay(e)?e:ky(e)}function My(e,t,n=Cy,r=Ny){let[i,a]=t.path;for(let o of n)for(let n of[o.work,o.base])try{W_(n,t.deleted?t:{...t,value:r(n)(t.value)})}catch{let t=e[i][a];G(e[i],a)?n[i][a]=Ey(Nt(t)?zn(t):t):delete n[i][a]}}var Ny=e=>Dy(e),Py=new Set(Sy),Fy=new Ln({autoFreeze:!1}),Iy=!1;function Ly(e,t){let n=[],r=e;for(let e of t){if(!C_(r))break;let t=String(e);n.push(t),r=G(r,t)?r[t]:void 0}return n}function Ry(e,t){let n=Qg(e,t.slice(0,-1)),r=t[t.length-1];return C_(n)&&G(n,r)?{path:t,deleted:!1,value:n[r]}:{path:t,deleted:!0}}function zy(e,t,n){if(n.some(e=>e.path.length===1))return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>!G(e,n)||e[n]!==t[n]).map(e=>Ry(t,[e]));let r=new Set,i=[];for(let e of n){let n=Ly(t,e.path.slice(1)),a=JSON.stringify(n);r.has(a)||(r.add(a),i.push(Ry(t,n)))}return i}function By(e){if(Iy){Iy=!1;return}if(Cy.length===0)return;Wy(Ky());let t=Cy[Cy.length-1],n={...Q.getState(),variables:t.work.variables,temporary:t.work.temporary,transient:t.work.transient},[r,i]=Fy.produceWithPatches(n,e),a=Sy.flatMap(e=>{let t=i.filter(t=>t.path[0]===e);return t.length?zy(n[e],r[e],t).map(t=>({...t,path:[e,...t.path]})):[]}),o=B_(Uy(t.work),a),s=Oy(()=>o),c=(e,t)=>e.deleted?e:{...e,value:s(t)(e.value)};for(let e of a)W_(t.work,c(e,t.work));return e=>{let i=e;for(let e of Object.keys(r)){let t=r[e];!Py.has(e)&&t!==n[e]&&(i[e]=t)}let o=e;for(let e of a){let[n,r]=e.path;try{W_(o,c(e,o))}catch{G(t.work[n],r)?o[n][r]=Ey(t.work[n][r]):delete o[n][r]}My(o,e,Cy,s)}}}function Vy(e,t,n){let r=n.map(e=>D_(e.path).slice(0,-1));for(let[n,...i]of I_(t)){let t=[n,...i].map(e=>D_(e).slice(0,-1));if(r.some(e=>t.some(t=>e.startsWith(t))))try{let t=M_(e,n);if(typeof t!=`object`||!t)continue;for(let n of i)U_(e,n,t)}catch{}}}function Hy(e){let t=new Map;return{variables:u_(e.variables,{keepUnregistered:!0,seen:t}),temporary:u_(e.temporary,{keepUnregistered:!0,seen:t}),transient:u_(e.transient,{keepUnregistered:!0,seen:t})}}var Uy=e=>({variables:e.variables,temporary:e.temporary,transient:e.transient});function Wy(e){let t=e.map(({scope:e,keepRunning:t})=>({scope:e,keepRunning:t,changes:Gy(e.base,e.work)})),n=t.filter(({changes:e})=>e.length>0);if(n.length===0)return;for(let{scope:e,keepRunning:t}of n)t&&(e.base=Hy(e.work));Iy=!0;try{Q.getState().updateVariables(r)}finally{Iy=!1}function r(e){t.forEach(({scope:n,changes:r},i)=>{let a=B_(n.work,r),o=Dy(e,a),s=t.slice(0,i).map(e=>e.scope),c=Oy(()=>a),l=new Set;for(let t of r){let[r,i]=t.path,a=D_([r,i]);if(!l.has(a))try{if(t.deleted){H_(e,t)||W_(e,t);continue}let n=t.alias?o(t.value):void 0;if(t.alias?Object.is(Qg(e,t.path),n):H_(e,t))continue;W_(e,{...t,value:t.alias?n:o(t.value)})}catch{e[r][i]=o(n.work[r][i]),l.add(a)}}Vy(e,n.work,r);for(let t of r)My(e,t,s,c)})}}var Gy=(e,t)=>z_(e,t),Ky=()=>Cy.map(e=>({scope:e,keepRunning:!0}));function qy(e){let t=Q.getState(),n=Uy(t),r=z_(e.base,n),i=Dy(e.work,B_(n,r));for(let t of r)try{W_(e.work,t.deleted?t:{...t,value:i(t.value)})}catch{let[r,a]=t.path;G(n[r],a)?e.work[r][a]=i(n[r][a]):delete e.work[r][a]}e.base=Hy(t)}function Jy(e){if(Cy.length===0)return e();Wy(Ky());let t=Cy.splice(0);try{return e()}finally{Cy.push(...t);for(let e of t)qy(e)}}function Yy(e){Wy(Ky());let t=B_(Uy(wy()??Q.getState()),[]),n=Xy(),r=Dy(n.work,t);try{e(n.work,r)}finally{Cy.pop()}Wy([...Ky(),{scope:n,keepRunning:!1}])}function Xy(){let e=wy()??Q.getState(),t={work:Hy(e),base:Hy(e)};return Cy.push(t),t}function Zy(e,t,n){let r=cs(u_(t,{keepUnregistered:!0})),i=Xy();try{ul(e,i.work.variables,i.work.temporary,r,i.work.transient)}finally{Cy.pop()}Wy([...Ky(),{scope:i,keepRunning:!1}]);let a=new Set(z_(t,r,!0).map(e=>e.path[0]));for(let e of I_(r))if(e.some(e=>a.has(e[0])))for(let n of e)r[n[0]]!==t[n[0]]&&a.add(n[0]);for(let e of Object.keys(r))a.has(e)&&n(e,r[e]);for(let e of Object.keys(t))G(r,e)||n(e,void 0)}var Qy=[],$y=!1,eb=[],tb=null,nb=null;function rb(e){let t=Ty();try{return!!ll(e,t.variables,t.temporary,{},t.transient)}catch{return!1}}function ib(e,t,n){let r=typeof t==`function`,i=r?void 0:t,a=r?t:void 0,o={name:i?.name,condition:e,callback:a,options:i,lastResult:rb(e),priority:i?.priority??0,macroKey:n};return Qy.push(o),Qy.sort((e,t)=>t.priority-e.priority),()=>{Qy=Qy.filter(e=>e!==o)}}function ab(e,t){return ib(e,t)}function ob(e,t){let n=Object.fromEntries(Object.entries(t).sort(([e],[t])=>e<t?-1:1)),r=JSON.stringify([e,n]);Qy.some(e=>e.macroKey===r)||ib(e,t,r)}function sb(){return Qy.filter(e=>e.macroKey!==void 0&&e.options).map(e=>({condition:e.condition,options:{...e.options}}))}function cb(e){Qy=Qy.filter(e=>e.macroKey===void 0);for(let{condition:t,options:n}of e)ob(t,n)}function lb(e){Qy=Qy.filter(t=>t.name!==e)}function ub(e){let{callback:t,options:n}=e;if(t){t();return}if(n){if(n.run)try{Zy(n.run,{},()=>{})}catch(t){console.error(`spindle: Error in watch run action for \"${e.condition}\":`,t)}n.dialog&&(eb.push({passageName:n.dialog}),tb?.()),n.goto&&Q.getState().navigate(n.goto)}}var db=10;function fb(){for(let e=0;e<db;e++){let e=!1,t=[...Qy];for(let n of t){if(!Qy.includes(n))continue;let t=rb(n.condition),r=!n.lastResult;n.lastResult=t,t&&r&&(e=!0,n.options?.once&&(Qy=Qy.filter(e=>e!==n)),ub(n))}if(!e)break}}function pb(){if(!$y){$y=!0;try{fb()}finally{$y=!1}}}var mb=0;function hb(){if(mb===0)return;let e=$y;$y=!0;try{fb()}finally{$y=e}}function gb(){let e=Q.getState();mb++;let t=Q.subscribe(t=>{let n=e;e=t,t.navigationId===n.navigationId&&(t.variables===n.variables&&t.temporary===n.temporary&&t.transient===n.transient&&t.renderCounts===n.renderCounts||pb())}),n=!0;return()=>{n&&(n=!1,mb--,t())}}function _b(){for(let e of Qy)e.lastResult=rb(e.condition)}function vb(){Qy=[],eb=[],nb?.closeAll()}function yb(e){return tb=e,eb.length>0&&e(),()=>{tb===e&&(tb=null)}}function bb(){return eb.shift()}function xb(){return eb.length}function Sb(e){nb?nb.push(e):(eb.push(e),tb?.())}function Cb(){eb=[]}function wb(e){return nb=e,()=>{nb===e&&(nb=null)}}var Tb=[];function Eb(e){return Tb.push(e),()=>{let t=Tb.lastIndexOf(e);t>=0&&Tb.splice(t,1)}}function Db(){let e=Tb[Tb.length-1];e?e():nb?.close()}function Ob(){Cb();for(let e of[...Tb].reverse())e();nb?.closeAll()}function kb(){return Tb.length>0||(nb?.isOpen()??!1)}Vn(),Hn();var Ab=new Set([`StoryInit`,`StoryInterface`,`StoryVariables`,`StoryTransients`,`StoryLoading`,`SaveTitle`,`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]),jb=K(),Mb=[],Nb=K();function Pb(e,t){let n=[];for(let r of Object.keys(e))G(t,r)||n.push({key:r,deleted:!0});let r=new Map,i=e=>n.push({key:e,deleted:!1,value:u_(t[e],{keepUnregistered:!0,seen:r})}),a=[];for(let n of Object.keys(t))!G(e,n)||!Object.is(e[n],t[n])?i(n):typeof t[n]==`object`&&t[n]!==null&&a.push(n);for(let e=r.size>0;e;){e=!1;for(let n of a){let o=new Map;if(u_(t[n],{keepUnregistered:!0,seen:o}),[...o.keys()].some(e=>r.has(e))){i(n),a.splice(a.indexOf(n),1),e=!0;break}}}return{forward:n}}function Fb(e,t){let n=Object.create(Object.getPrototypeOf(e));for(let t of Object.keys(e))as(n,t,e[t]);for(let e of t)e.deleted?delete n[e.key]:as(n,e.key,e.value);return n}function Ib(e){let t=Mb.length-1;t<0?jb=e:Mb[t]=Pb(zb(t),e)}function Lb(e,t){let n=jb;for(let r=0;r<e;r++)r>0&&(n=Fb(n,Mb[r-1].forward)),t(n,r)}function Rb(e,t){return{passage:e.passage,variables:t,timestamp:e.timestamp,prng:e.prng}}function zb(e){let t=jb;for(let n=0;n<e;n++)t=Fb(t,Mb[n].forward);return t}var Bb=[];function Vb(e){let{storyData:t,currentPassage:n,variables:r,history:i,historyIndex:a,visitCounts:o,renderCounts:s}=e();if(t){if(Bb.length>i.length&&(Bb.length=i.length),Bb.length<i.length)if(i.length-Bb.length===1){let e=i.length-1;Bb[e]=Rb(i[e],r)}else Lb(i.length,(e,t)=>{t>=Bb.length&&(Bb[t]=Rb(i[t],e))});return ty(t.ifid,{passage:n,variables:r,history:Bb,historyIndex:a,visitCounts:o,renderCounts:s,prng:Bc(),watchers:sb()})}}var Hb=`The game could not be saved for a page reload; a reload goes back to the last passage it could save:`,Ub=`The story could not go to another passage:`;function Wb(e,t){let n;try{let t=Vb(e);t&&Ts(Hb,t.error)}catch(e){n={error:e},Ts(Hb,e)}try{t?.()}finally{if(n)throw n.error}}function Gb(e){let t=e.history.length-e.maxHistory;if(t<=0)return!1;let n=Math.min(e.historyIndex,t),r=n+e.maxHistory;for(let e=0;e<n;e++)jb=Fb(jb,Mb[e].forward);return e.history=e.history.slice(n,r),Mb=Mb.slice(n,r-1),Bb=Bb.slice(n,r),e.historyIndex-=n,!0}var Kb=!1,qb=[],Jb=null;function Yb(e,t){let n=Jb;if(Jb=null,!n||e().navigationId!==n.navigationId)return;e().variables!==n.variables&&Ib(e().variables),Nb=e().variables;let r=Bc(),i=e().history[e().historyIndex].prng;(r?.seed!==i?.seed||r?.pull!==i?.pull)&&t(e=>{e.history[e.historyIndex].prng=r})}var Xb=e=>({...e});function Zb(e){jb=e,Mb=[],Nb=e,Bb=[]}function Qb(e){let t=K(u_(e));return Zb(u_(t)),t}function $b(e,t,n,r){e.currentPassage=t,e.navigationId++,e.variables=n,e.transient=K(u_(r)),e.temporary=K(),e.history=[{passage:t,timestamp:Date.now()}],e.historyIndex=0}function ex(e,t,n){let{historyIndex:r,history:i}=e(),a=r+n;if(a<0||a>=i.length)return;Yb(e,t);let o=e().currentPassage,s=i[a].passage;Y_(`beforenavigate`,s);let c=u_(zb(a));t(e=>{e.historyIndex+=n,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=c,e.temporary=K()}),_b(),Nb=e().variables,Dx(e().history[e().historyIndex]),Wb(e,()=>Y_(`afternavigate`,s,o))}function tx(){let{history:e,historyIndex:t,variables:n}=Q.getState();if(e.length!==1||t!==0)return;Zb(n);let r=Bc();Q.setState(e=>{e.history[0].prng=r})}var nx=Promise.resolve(``),rx=0,ix=!1;function ax(){return ix?``:Q.getState().playthroughId}function ox(){let e=ax();return nx.then(t=>e||t)}function sx(e){Q.getState().playthroughId!==e&&Q.setState(t=>{t.playthroughId=e})}function cx(e){let t=++rx;return ix=!0,nx=e.then(e=>(t===rx&&(ix=!1,sx(e)),e)),nx}function lx(e,t){++rx,ix=!1,nx=t.then(()=>e,()=>e),sx(e)}function ux(e){let t=xt();lx(t,cv(e,t).catch(e=>{console.error(`spindle: failed to start new playthrough`,e)}))}function dx(e,t){ax()!==t&&lx(t,mv(e,t).catch(e=>{console.error(`spindle: failed to switch to the loaded playthrough`,e)}))}var fx=0,px=0,mx=null;function hx(){px=++fx}var gx=[],_x=!1;function vx(e){_x&&gx.push(e)}function yx(){_x=!0}function bx(){for(let e of gx)e();gx=[],_x=!1}function xx(e){return typeof e==`string`&&e!==``?e:null}function Sx(e){let{history:t,historyIndex:n}=e;if(!Number.isInteger(n))return;let r=t[n];if(!(!r||r.passage!==e.passage)&&!(typeof r.variables!=`object`||r.variables===null))return r}function Cx(e,t,n){let r=e.history[e.historyIndex];if(!r)return;let i=z_(t,n,!0);if(i.length===0)return;let a=u_(r.variables),o=V_(B_(n,i),a),s=e=>u_(e,{seen:o});for(let e of i)wx(a,n,e,s);r.variables=h_(r.variables,a)}function wx(e,t,n,r){let{path:i}=n,a=e,o=0;for(;o<i.length-1;o++){let e=i[o],n=G(a,e)?a[e]:void 0,s=Qg(t,i.slice(0,o+1));if(!w_(n,s,!0)){Tx(a,e,r(s));return}a=n}let s=i[o];n.deleted?Tx(a,s,void 0,n):Tx(a,s,r(n.value),n)}function Tx(e,t,n,r){let i=r?.deleted??!1;if(Array.isArray(e)){let a=Number(t);i?r&&`hole`in r?delete e[a]:e.length=Math.min(e.length,a):r&&`appended`in r?(e.length+=r.gap??0,e.push(n)):t===`length`&&r?e.length+=n:a<e.length&&(e[a]=n)}else i?delete e[t]:as(e,t,n)}function Ex(e){e?Ic(e.seed,e.pull):Rc()}function Dx(e){e&&Ex(e.prng)}function Ox(e,t){if(e)return[t.passage,...t.history.map(e=>e.passage)].find(t=>!e.passages.has(t))}function kx(e,t){let n=Ox(e,t);if(n!==void 0)throw Error(`The save refers to the passage \"${n}\", which this version of the story does not have`)}var Ax=[`variables`,`temporary`,`transient`];function jx(e){for(let t of Ax){let n=e[t];ss(n)||(e[t]=K(Nt(n)?zn(n):n))}}var Mx=[`navigate`,`goBack`,`goForward`,`restart`,`save`,`load`,`getSavePayload`,`loadFromPayload`];function Nx(e){return(t,n,r)=>{let i=((e,n)=>{if(n){t(e,!0);return}let r=typeof e==`function`?e:t=>{Object.assign(t,e)},i=By(r);t(e=>{(i??r)(e),jx(e)})});r.setState=i;let a=e(i,n,r);for(let e of Mx){let t=a[e];a[e]=(...e)=>Jy(()=>t(...e))}return a}}var Px=e=>Wn(Nx(e));function Fx(e){return e.catch(()=>{}),e}function Ix(e,t,n){return Fx(e.catch(e=>{throw console.error(t,e),n?.(e),e}))}function Lx(e,t,n){e(e=>{let r=t??``;if(n)e.knownSaves={...e.knownSaves,[r]:!0};else{let{[r]:t,...n}=e.knownSaves;e.knownSaves=n}})}function Rx(e,t,n,r){let i=n.then(()=>{t(e=>{e.knownSaves={}})});return e().restart(),Ix(i,r)}var Q=bt()(Px((e,t)=>({storyData:null,currentPassage:``,navigationId:0,variables:K(),variableDefaults:{},transient:K(),transientDefaults:{},temporary:K(),history:[],historyIndex:-1,visitCounts:ms(),renderCounts:ms(),knownSaves:{},playthroughId:``,maxHistory:40,quickSaveKey:`F6`,quickLoadKey:`F9`,saveError:null,loadError:null,transitionConfig:null,nextTransition:null,nobr:!1,renderDeferred:!1,setMaxHistory:n=>{let r=!1;e(e=>{e.maxHistory=Math.max(1,Math.round(n)),r=Gb(e)}),r&&Wb(t)},setQuickSaveKey:t=>{e(e=>{e.quickSaveKey=xx(t)})},setQuickLoadKey:t=>{e(e=>{e.quickLoadKey=xx(t)})},init:(n,r={},i={})=>{let a=n.passagesById.get(n.startNode);if(!a)throw Error(`spindle: Start passage (pid=${n.startNode}) not found.`);let o=Qb(r);e(e=>{e.storyData=n,e.playthroughId=``,e.variableDefaults=r,e.transientDefaults=i,$b(e,a.name,o,i),e.visitCounts=ms(null,a.name),e.renderCounts=ms(null,a.name)}),Nb=t().variables,hx(),cx(_v(n.ifid).then(({id:t,knownSaves:n})=>(e(e=>{e.knownSaves=n}),t)).catch(e=>(console.error(`spindle: failed to init save system`,e),``)))},navigate:n=>{if(Kb){qb.push(n);return}let{storyData:r}=t();if(!r)return;if(Ab.has(n)){console.error(`spindle: Cannot navigate to special passage \"${n}\".`);return}if(!r.passages.has(n)){let e=Es(n,t().currentPassage);console.error(`spindle: ${e.message}`),Ts(Ub,e);return}let i=t().currentPassage;Y_(`beforenavigate`,n);let a=Pb(Nb,t().variables);e(e=>{e.temporary=K(),e.currentPassage=n,e.navigationId++,e.history=e.history.slice(0,e.historyIndex+1),Mb.length=e.historyIndex,Bb.length>e.historyIndex+1&&(Bb.length=e.historyIndex+1),Mb.push(a),e.history.push({passage:n,timestamp:Date.now(),prng:Bc()}),e.historyIndex=e.history.length-1,Gb(e),e.visitCounts=ms(e.visitCounts,n),e.renderCounts=ms(e.renderCounts,n)}),Jb={navigationId:t().navigationId,variables:t().variables},Kb=!0;try{hb()}finally{Kb=!1}let o=qb;qb=[],Yb(t,e),Wb(t,()=>{Y_(`afternavigate`,n,i);for(let e of o)t().navigate(e)})},goBack:()=>ex(t,e,-1),goForward:()=>ex(t,e,1),setVariable:(t,n)=>{e(e=>{rs(t,`$${t}`),e.variables[t]=n})},setTemporary:(t,n)=>{e(e=>{rs(t,`_${t}`),e.temporary[t]=n})},deleteVariable:t=>{e(e=>{rs(t,`$${t}`),delete e.variables[t]})},deleteTemporary:t=>{e(e=>{rs(t,`_${t}`),delete e.temporary[t]})},setTransient:(t,n)=>{e(e=>{rs(t,`%${t}`),e.transient[t]=n})},deleteTransient:t=>{e(e=>{rs(t,`%${t}`),delete e.transient[t]})},updateVariables:t=>{e(e=>{t(e)})},trackRender:t=>{e(e=>{e.renderCounts=ms(e.renderCounts,t)})},restart:()=>{let{storyData:n,variableDefaults:r,transientDefaults:i}=t();if(!n)return;let a=n.passagesById.get(n.startNode);if(!a)return;e(e=>{e.renderDeferred=!1}),Y_(`beforerestart`),ux(n.ifid),hx();let o=t().renderDeferred;bx(),Rc(),vb();let s=Qb(r);e(e=>{$b(e,a.name,s,i),e.visitCounts=ms(null,a.name),e.renderCounts=ms(null,a.name),o||(e.renderDeferred=!1)}),Nb=t().variables,yx(),by(),ry(n.ifid),Y_(`storyinit`),tx()},save:(n,r)=>{let{storyData:i}=t();if(!i)return Promise.resolve();let a=ox();return Ix(vv(n,r,t().beginSave,async t=>{e(e=>{e.saveError=null}),await Gv(i.ifid,a,t,n,r),Lx(e,n,!0)}),`spindle: failed to save`,t=>e(e=>{e.saveError=ys(t,`Failed to save`)}))},load:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();e(e=>{e.loadError=null});let i=ox(),a=qv(r.ifid,n,e=>kx(r,e)),o=cx(Promise.all([i,a.catch(()=>void 0)]).then(([e,t])=>t?.playthroughId||e)),s=++fx;return Ix(a.then(async e=>{await o,e&&(px>s||(mx=s,t().loadFromPayload(e.payload,n)))}),`spindle: failed to load save`,t=>e(e=>{e.loadError=ys(t,`Failed to load`)}))},hasSave:e=>{let{storyData:n,knownSaves:r}=t();return n?G(r,e??``):!1},getSaveInfo:async e=>{let{storyData:n}=t();return n?Xv(n.ifid,e):null},listSaves:async()=>{let{storyData:e}=t();return e?Qv(e.ifid):[]},deleteSave:n=>{let{storyData:r}=t();return r?Ix($v(r.ifid,n).then(()=>Lx(e,n,!1)),`spindle: failed to delete save`):Promise.resolve()},exportSave:async e=>{let{storyData:n}=t();return n?await dy(n.ifid,e)??null:null},importSave:async(n,r)=>{let{storyData:i}=t();if(!i)throw Error(`spindle: Story is not initialized.`);let a=await fy(n,i.ifid,r);return Lx(e,r,!0),a},clearGameData:()=>{let{storyData:n}=t();return n?Rx(t,e,my(n.ifid),`spindle: failed to clear game data`):Promise.resolve()},clearAllData:()=>Rx(t,e,hy(),`spindle: failed to clear all data`),deletePlaythrough:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();let i=r.ifid,a=ax(),o=nx,s=xt(),c=_y(i,n,{current:a||o,id:s});return n!==``&&n===a?lx(s,c):a===``&&cx(c.then(e=>e?s:o,()=>o)),Ix(c.then(async()=>{let t=await Jv(r.ifid);e(e=>{e.knownSaves=t})}),`spindle: failed to delete playthrough`)},getSavePayload:()=>{let{currentPassage:e,variables:n,history:r,historyIndex:i,visitCounts:a,renderCounts:o}=t(),s=[];return Lb(r.length,(e,t)=>{let n=Xb(e);s.push(Rb(r[t],t===0?n:h_(s[t-1].variables,n)))}),{passage:e,variables:h_(s[i]?.variables,Xb(n)),history:s,historyIndex:i,visitCounts:{...a},renderCounts:{...o},prng:Bc(),watchers:sb()}},beginSave:()=>{let e=t().variables;return()=>{let n=t().getSavePayload();return Cx(n,e,t().variables),n}},loadFromPayload:(n,r,i)=>{let a=mx;mx=null;let o=a??++fx;if(n.history.length===0){console.warn(`loadFromPayload: rejecting payload with empty history`);return}kx(t().storyData,n),px=o,Y_(`beforeload`,r);let s=t().storyData?.ifid;i&&s&&dx(s,i);let c=Sx(n),l=u_(n.history.map(e=>e.variables)).map(e=>K(e));jb=u_(l[0]),Mb=l.slice(1).map((e,t)=>Pb(l[t],e)),Bb=n.history.map((e,t)=>Rb(e,l[t])),e(e=>{e.currentPassage=n.passage,e.navigationId++,e.variables=K(u_(c?.variables??n.variables)),e.history=n.history.map(e=>({passage:e.passage,timestamp:e.timestamp,prng:e.prng})),e.historyIndex=Math.max(0,Math.min(n.historyIndex,e.history.length-1)),Gb(e),e.visitCounts=ms(n.visitCounts),e.renderCounts=ms(n.renderCounts),e.temporary=K(),e.transient=K(u_(t().transientDefaults))}),n.watchers&&cb(n.watchers),_b(),Nb=zb(t().historyIndex),Ex(c?.prng===void 0?n.prng:c.prng),Wb(t,()=>zc(()=>Y_(`afterload`,r)))},getHistoryVariables:e=>u_(zb(e)),setTransition:t=>{e(e=>{e.transitionConfig=t})},setNextTransition:t=>{e(e=>{e.nextTransition=t})},consumeNextTransition:()=>{let n=t().nextTransition;return n!==null&&e(e=>{e.nextTransition=null}),n},deferRender:()=>{e(e=>{e.renderDeferred=!0})},clearDeferredRender:()=>{e(e=>{e.renderDeferred=!1})}}))),zx=`<header class=\"story-menubar\">{story-title}{back}{forward}{restart}{quicksave}{quickload}{saves}{settings}</header>\n{passage}`;function Bx(){let{storyData:e}=Tc(`storyData`),t=e?.passages.get(`StoryInterface`),n=t===void 0?zx:t.content,r=t?.tags.includes(`nobr`)??!1,i=Fe(()=>{try{return q(S,{children:hm(Zo(n))})}catch(e){return q(`span`,{class:`error`,children:[`Error in StoryInterface: `,ys(e)]})}},[n]);return r?q(wp.Provider,{value:!0,children:i}):i}var Vx=[`a[href]`,`area[href]`,`button:not([disabled])`,`input:not([disabled]):not([type=\"hidden\"])`,`select:not([disabled])`,`textarea:not([disabled])`,`iframe`,`summary`,`[contenteditable]`,`[tabindex]`].join(`,`);function Hx(e){for(let t=e.parentElement;t;t=t.parentElement)if(!(t.localName!==`details`||t.hasAttribute(`open`))&&!Array.from(t.children).find(e=>e.localName===`summary`)?.contains(e))return!0;return!1}function Ux(e){let{visibility:t}=getComputedStyle(e);if(t===`hidden`||t===`collapse`)return!1;for(let t=e;t;t=t.parentElement)if(getComputedStyle(t).display===`none`)return!1;return!Hx(e)}function Wx(e){return!e.hidden&&!e.closest(`[hidden], [inert]`)&&!e.matches(`:disabled`)&&Ux(e)}function Gx(e){let t=e.getAttribute(`tabindex`);return t===null||!/^\\s*[+-]?\\d+\\s*$/.test(t)?null:parseInt(t,10)}function Kx(e){let t=Gx(e);if(t!==null&&t<0||e.hasAttribute(`contenteditable`)&&!e.matches(`a[href], button, input, select, textarea, iframe, summary`)&&(!e.isContentEditable||e.parentElement?.isContentEditable))return!1;if(e.localName===`summary`){let n=e.parentElement;if(n?.localName!==`details`||Array.from(n.children).find(e=>e.localName===`summary`)!==e)return t!==null}if(e instanceof HTMLInputElement&&e.type===`radio`&&e.name){let t=Array.from((e.form??e.getRootNode()).querySelectorAll(`input[type=\"radio\"]`)).filter(t=>t.name===e.name&&t.form===e.form&&(Gx(t)??0)>=0&&Wx(t));return e===(t.find(e=>e.checked)??t[0])}return!0}function qx(e){let t=Array.from(e.querySelectorAll(Vx)).filter(e=>Wx(e)&&Kx(e)),n=e=>Math.max(Gx(e)??0,0);return[...t.filter(e=>n(e)>0).sort((e,t)=>n(e)-n(t)),...t.filter(e=>n(e)===0)]}var Jx=[];function Yx(e,t,n,r){Pe(()=>{let n=e.current;if(!n)return;let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i={panel:n};Jx.push(i);let a=n.querySelector(t)??n;return(n.querySelector(`[autofocus]`)??qx(a)[0]??n).focus(),()=>{let e=Jx.indexOf(i);e!==-1&&Jx.splice(e,1);let t=document.activeElement;(!t||t===document.body||n.contains(t))&&r?.isConnected&&r.focus()}},[]),Pe(()=>{let t=e.current;if(!t)return;let i=e=>{if(Jx[Jx.length-1]?.panel!==t)return;if(e.key===`Escape`){if(!n)return;e.preventDefault(),e.stopPropagation(),r();return}if(e.key!==`Tab`)return;let i=qx(t),a=i[0],o=i[i.length-1],s=document.activeElement,c=s!==t&&t.contains(s);!a||!o?(e.preventDefault(),t.focus()):e.shiftKey&&(s===a||!c)?(e.preventDefault(),o.focus()):!e.shiftKey&&(s===o||!c)&&(e.preventDefault(),a.focus())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[n,r])}var Xx=_e(null);function Zx({passageName:e,fallbackMarkup:t,panelClass:n,onClose:r,dismissible:i=!0,showCloseButton:a=i}){let o=A(r);o.current=r;let s=Ie(()=>o.current(),[]),{storyData:c}=Tc(`storyData`),l=e?c?.passages.get(e):void 0,u=l?.content??t,d=l?.tags.includes(`nobr`)??!1,f=Fe(()=>{if(!u)return q(`div`,{class:`error`,children:`Dialog: no content available`});try{let e=Cm(Zo(u),d?{nobr:!0}:void 0);return d?q(wp.Provider,{value:!0,children:e}):e}catch(e){return q(`div`,{class:`error`,children:[`Error in dialog: `,ys(e)]})}},[u,d]),p=A(null);Yx(p,`.dialog-body`,i,s),Pe(()=>Eb(s),[s]),Pe(()=>{p.current&&X_(`dialogrender`,e??``,p.current)},[]);let m=e=>{i&&e.target===e.currentTarget&&s()},h=n?`dialog-panel ${n}`:`dialog-panel`;return q(Xx.Provider,{value:s,children:q(`div`,{class:`dialog-overlay`,onClick:m,children:q(`div`,{ref:p,class:h,role:`dialog`,\"aria-modal\":`true`,tabIndex:-1,children:[a&&q(`button`,{type:`button`,class:`dialog-close`,\"aria-label\":`Close`,onClick:s,children:`✕`}),q(`div`,{class:`dialog-body`,children:f})]})})})}function Qx(){let[e,t]=je([]),n=A(e);n.current=e;let r=Ie(e=>{t(t=>[...t,e])},[]),i=Ie(()=>{t(e=>e.slice(0,-1))},[]),a=Ie(()=>{t([])},[]);return Ne(()=>wb({close:i,closeAll:a,push:r,isOpen:()=>n.current.length>0}),[i,a,r]),Ne(()=>yb(()=>{let e=[];for(;xb()>0;){let t=bb();t&&e.push(t)}e.length>0&&t(t=>[...t,...e])}),[]),e.length===0?null:q(S,{children:e.map((e,t)=>q(Zx,{passageName:e.passageName,panelClass:e.panelClass,onClose:i,showCloseButton:e.showCloseButton,dismissible:e.dismissible},`${e.passageName}-${t}`))})}function $x(){let[e,t]=je(Os);return Ne(()=>(t(Os()),ks(()=>t(Os()))),[]),e.length===0?null:q(`div`,{class:`spindle-error-banners`,children:e.map(e=>q(`div`,{class:`spindle-error-banner`,role:`alert`,children:[q(`span`,{class:`spindle-error-banner-context`,children:e.context}),` `,q(`span`,{class:`spindle-error-banner-message`,children:e.message}),e.count>1&&q(`span`,{class:`spindle-error-banner-count`,children:` (×${e.count})`}),q(`button`,{type:`button`,class:`spindle-error-banner-dismiss`,\"aria-label\":`Dismiss`,onClick:()=>Ds(e.id),children:`✕`})]},e.id))})}async function eS(){try{await Q.getState().save()}catch(e){Ts(`The game could not be saved:`,e)}}async function tS(){try{await Q.getState().load()}catch(e){Ts(`The saved game could not be loaded:`,e)}}function nS(){let{storyData:e,currentPassage:t,nobr:n}=Tc(`storyData`,`currentPassage`,`nobr`);if(Ne(()=>{let e=e=>{let{quickSaveKey:t,quickLoadKey:n}=Q.getState();t!==null&&e.key===t?(e.preventDefault(),eS()):n!==null&&e.key===n&&(e.preventDefault(),tS())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!e||!t)return q(`div`,{class:`loading`,children:`Loading...`});let r=q(S,{children:[q(Bx,{}),q(Qx,{}),q($x,{})]});return q(wp.Provider,{value:n,children:r})}var rS=`http://www.w3.org/1999/xhtml`,iS=new Set([`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`embed`,`frame`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]);function aS(e){let t=``;for(let n of Array.from(e.childNodes))n.nodeType===Node.TEXT_NODE?t+=n.data:n.nodeType===Node.COMMENT_NODE?t+=`\\x3C!--${n.data}-->`:n.nodeType===Node.ELEMENT_NODE&&(t+=oS(n));return t}function oS(e){let t=e.localName,n=`<${t}`;for(let t of Array.from(e.attributes))n+=` ${t.name}=${sS(t.name,t.value)}`;if(n+=`>`,e.namespaceURI===rS&&iS.has(t))return n;let r=t===`template`?e.content:e;return`${n}${aS(r)}</${t}>`}function sS(e,t){let n=Wo(e),r=n?`on`:`a`;return[`\"${t}\"`,`'${t}'`].find(e=>{let t;try{t=Qo(`<i ${r}=${e}>`)}catch(e){if(e instanceof Jo)return!1;throw e}let n=t[0];return t.length===1&&n?.type===`html`&&n.attributes[r]===e.slice(1,-1)})??`\"${cS(t,n)}\"`}function cS(e,t){let n=e=>e.replace(/\"/g,`"`);if(t)return Go(e).map(e=>`text`in e?n(e.text):`expr`in e?`{${e.expr}}`:e.verbatim).join(``);let r;try{r=Qo(e,{text:!0})}catch(t){if(t instanceof Jo)return n(e);throw t}return r.map(t=>{let r=e.slice(t.start,t.end);return t.type===`text`?n(r):r}).join(``)}function lS(){let e=document.querySelector(`tw-storydata`);if(!e)throw Error(`spindle: No <tw-storydata> element found in the document.`);let t=e.getAttribute(`name`)||`Untitled`,n=parseInt(e.getAttribute(`startnode`)||`1`,10),r=e.getAttribute(`ifid`)||``,i=e.getAttribute(`format`)||``,a=e.getAttribute(`format-version`)||``,o=e.querySelector(`[type=\"text/twine-css\"]`)?.textContent||``,s=e.querySelector(`[type=\"text/twine-javascript\"]`)?.textContent||``,c=new Map,l=new Map;for(let t of e.querySelectorAll(`tw-passagedata`)){let e=parseInt(t.getAttribute(`pid`)||`0`,10),n=t.getAttribute(`name`)||``,r=(t.getAttribute(`tags`)||``).split(/\\s+/).filter(e=>e.length>0),i=aS(t),a={},o=new Set([`pid`,`name`,`tags`]);for(let e of t.attributes)o.has(e.name)||(a[e.name]=e.value);let s={pid:e,name:n,tags:r,metadata:a,content:i};c.set(n,s),l.set(e,s)}return{name:t,startNode:n,ifid:r,format:i,formatVersion:a,passages:c,passagesById:l,userCSS:o,userScript:s}}var uS=new Map,dS=K(),fS=!1,pS=null;function mS(){return`spindle.${Q.getState().storyData?.ifid||`unknown`}.settings`}function hS(){try{localStorage.setItem(mS(),JSON.stringify(dS))}catch{}}function gS(){if(!fS){if(!Q.getState().storyData?.ifid){pS||(pS=Q.subscribe(e=>{e.storyData?.ifid&&(pS?.(),pS=null,gS())}));return}fS=!0;try{let e=localStorage.getItem(mS());if(e){let t=JSON.parse(e);typeof t==`object`&&t&&!Array.isArray(t)&&(dS=K(dS,t))}}catch{}}}function _S(e,t){uS.set(e,t),G(dS,e)||(dS[e]=t.config.default),gS()}function vS(e,t){let n=is(dS,e);return typeof n==typeof t?n:t}var yS={addToggle(e,t){_S(e,{type:`toggle`,config:t})},addList(e,t){_S(e,{type:`list`,config:t})},addRange(e,t){_S(e,{type:`range`,config:t})},get(e){return is(dS,e)},getToggle(e){return vS(e,!1)},getList(e){return vS(e,``)},getRange(e){return vS(e,0)},set(e,t){dS[e]=t,hS()},getAll(){return{...dS}},getDefinitions(){return uS},hasAny(){return uS.size>0}},bS=0,xS=256,SS=[];function CS(e){SS.push({version:++bS,segments:e}),SS.length>xS&&SS.shift()}function wS(){return bS}function TS(e,t,n,r,i){return SS.some(({version:a,segments:o})=>a<=e?!1:typeof r==`object`&&r?o.some((e,n)=>Qg(t,o.slice(0,n+1))===r):o[o.length-1]===String(i)&&Qg(t,o.slice(0,-1))===n)}var ES=[`target`,`variable`,`options`,`value`,`disabled`],DS=new Map,OS=new Map;function kS(e,t,n){if(n)return n;let r=`${e}:${t}`,i=OS.get(r)??0,a;do i++,a=i===1?r:`${r}:${i}`;while(DS.has(a));return OS.set(r,i),a}function AS(e){let t=e.id,n={action:e},r=DS.get(t);return r?(console.warn(`spindle: two mounted controls share the action ID \"${t}\"; Story.getActions() lists only the newer one.`),r.push(n)):DS.set(t,[n]),FS(),{update(e){let r=DS.get(t);r?.includes(n)&&(n.action=e,r[r.length-1]===n&&FS())},unregister(){let e=DS.get(t),r=e?e.indexOf(n):-1;!e||r===-1||(e.splice(r,1),e.length===0&&DS.delete(t),r===e.length&&FS())}}}function jS(){return Array.from(DS.values(),NS)}function MS(e){let t=DS.get(e);return t&&NS(t)}function NS(e){return e[e.length-1].action}function PS(){OS.clear()}function FS(){Y_(`actionsChanged`)}function IS(e){let t=A(``),n=A(e.perform);n.current=e.perform,t.current||(t.current=kS(e.type,e.key,e.authorId));let r=t.current,i=()=>{let t={id:r,type:e.type,label:e.label,perform:(...e)=>n.current(...e)};for(let n of ES)e[n]!==void 0&&Object.assign(t,{[n]:e[n]});return t},a=A(null);Pe(()=>{let e=AS(i());return a.current=e,()=>e.unregister()},[r]);let o=A(!1);return Pe(()=>{if(!o.current){o.current=!0;return}a.current?.update(i())},[e.type,e.label,e.target,e.variable,e.disabled,e.value,JSON.stringify(e.options)]),r}function LS(e){return e.map(e=>e.type===`text`?e.value:``).join(``)}function RS(e){let{variable:t=``,placeholder:n=``}=lc(e,[{name:`variable`,type:`variable`},{name:`placeholder`,type:`string`}]);return{varName:t.replace(/[\"']/g,``),placeholder:n}}var zS=[{name:`value`,type:`string`,holds:`text`,required:!0}],BS=new Map([[`option`,zS]]);function VS(e){return BS.get(e.toLowerCase())}function HS(e){let t=[];for(let n of e)if(n.type===`macro`&&n.name===`option`){let{value:e}=lc(n.rawArgs,zS);t.push(e??``)}return t}function US(e,t){let n=`macro-${e}`;return t?`${n} ${t}`:n}var WS={useState:je,useRef:A,useEffect:Ne,useLayoutEffect:Pe,useCallback:Ie,useMemo:Fe,useContext:Le};function $(e,t=`builtin`){let n=e.parameters??[];Sl(e.name,n);function r(t){let r=t.className,i=t.id,a;e.interpolate&&(a=Gl(),r=a(r),i=a(i));let{update:o,getValues:s}=Le(Cp),c=Xl(),l=(e,t)=>Cm(e,{...c,...t}),u;try{u=lc(t.rawArgs,n)}catch(t){if(t instanceof Js)return b(vp,{macro:e.name,error:t});throw t}let d={args:u,collectText:LS,sourceLocation:_p,parseVarArgs:RS,extractOptions:HS,h:b,renderNodes:l,renderInlineNodes:hm,hooks:WS,useAction:IS,className:r,id:i,resolve:a,cls:US(e.name,r),mutate:e=>Zy(e,s(),o),update:o,getValues:s,wrap:e=>kl(r,i,e)};if(e.merged){d.merged=Ec();let e=d.merged;d.evaluate=t=>ll(t,e[0],e[1],e[2],e[3])}if(e.storeVar){let n=fc(t.rawArgs).replace(/[\"']/g,``);if(n.startsWith(`%`))return b(`span`,{class:`error`},`{${e.name}}: transient variables (%${n.slice(1)}) cannot be bound to input macros`);let r=n.replace(/[\"']/g,``).replace(/^\\$/,``),i=r.split(`.`);if(i.includes(`__proto__`))return b(`span`,{class:`error`},`{${e.name}}: \"$${r}\" cannot be bound: ${ts} is reserved`);d.varName=r,d.value=Q(e=>Qg(e.variables,i)),d.getValue=()=>Qg(Ty().variables,i),d.setValue=e=>{CS(i),Yy((t,n)=>{n_(t.variables,i,n(e),{createMissing:!0})})}}try{return e.render(t,d)}catch(t){if(t instanceof Js)return b(vp,{macro:e.name,error:t});throw t}}fl(e.name,r);let i=e.text;hl(e.name,i&&((e,t)=>i(e,{...t,args:lc(e.rawArgs,n)})));let a=e.block===!0||e.block!==!1&&(e.subMacros?.length??0)>0;if(Tl(e.name,{name:e.name,block:a,subMacros:e.subMacros??[],storeVar:e.storeVar,interpolate:e.interpolate,merged:e.merged,description:e.description,parameters:e.parameters&&[...e.parameters],source:t}),e.subMacros)for(let t of e.subMacros)vl(t);a&&Cr(e.name)}var GS=null;function KS(e){GS=e}function qS(){return GS}var JS=null,YS=null;function XS(){return YS}var ZS=!1;function QS(){if(ZS)return;ZS=!0;let e=Q.getState().variables,t=Q.getState().transient;Q.subscribe(n=>{let r={},i=(e,t,n)=>{for(let i of ds(e,t))r[n+i]={from:is(e,i),to:is(t,i)}};i(e,n.variables,``),i(t,n.transient,`%`),e=n.variables,t=n.transient,Object.keys(r).length>0&&Y_(`variableChanged`,r)})}var $S=null,eC=null,tC=new Set;function nC(e,t=[]){$S=new Set(e),eC=new Set(t),tC.clear()}function rC(e){let t=e.startsWith(`%`),n=t||e.startsWith(`$`)?e.slice(1):e;return rs(n.split(`.`)[0],e),{isTransient:t,key:n}}function iC(e,t){let n=e?eC:$S;if(!n)return;let r=t.split(`.`)[0];if(n.has(r))return;let i=(e?`%`:`$`)+r;tC.has(i)||(tC.add(i),console.warn(`spindle: Story.set() wrote ${i}, which is not declared in ${e?`StoryTransients`:`StoryVariables`}. Passages cannot reference it; check the name or declare it.`))}function aC(e,t,n){let{isTransient:r,key:i}=rC(t),a=r?e.transient:e.variables;i.includes(`.`)?n_(a,i.split(`.`),n):a[i]=n}function oC(e){return((...t)=>Q.getState()[e](...t))}function sC(){return{get(e){let{isTransient:t,key:n}=rC(e),r=wy(),i=r??Q.getState(),a=t?i.transient:i.variables,o=n.includes(`.`)?Qg(a,n.split(`.`)):is(a,n);return r?ky(o):jy(o)},set(e,t){let n=typeof e==`string`?[[e,t]]:Object.entries(e);for(let[e]of n){let{isTransient:t,key:n}=rC(e);iC(t,n)}if(n.some(([e])=>e.includes(`.`))){Yy((e,t)=>{for(let[r,i]of n)aC(e,r,t(i))});return}Q.getState().updateVariables(e=>{for(let[t,r]of n)aC(e,t,r)})},goto:oC(`navigate`),back:oC(`goBack`),forward:oC(`goForward`),restart:oC(`restart`),save:oC(`save`),load:oC(`load`),hasSave:oC(`hasSave`),getSaveInfo:oC(`getSaveInfo`),listSaves:oC(`listSaves`),deleteSave:oC(`deleteSave`),exportSave:oC(`exportSave`),importSave:oC(`importSave`),...il(()=>Q.getState().visitCounts,()=>Q.getState().renderCounts),get title(){return Q.getState().storyData?.name||``},get passage(){return Q.getState().currentPassage},settings:yS,registerClass(e,t){Th(e,t)},defineMacro(e){$(e,`user`)},getMacroRegistry(){return Dl()},saves:{setTitleGenerator(e){$_(e)}},storage:{async getInfo(){let e=Q.getState().storyData?.ifid;return e?py(e):{saveCount:0,playthroughCount:0,totalBytes:0,backend:Zg()}},async getQuota(){if(typeof navigator<`u`&&navigator.storage?.estimate)try{let e=await navigator.storage.estimate();return{usage:e.usage??0,quota:e.quota??0,estimateSupported:!0}}catch{}return{usage:0,quota:0,estimateSupported:!1}},clearGameData:oC(`clearGameData`),clearAllData:oC(`clearAllData`),deletePlaythrough:oC(`deletePlaythrough`),get backend(){return Zg()}},getActions(){return jS()},performAction(e,t){let n=MS(e);if(!n)throw Error(`spindle: Action \"${e}\" not found.`);if(n.disabled)throw Error(`spindle: Action \"${e}\" is disabled.`);n.perform(t)},on(e,t){e===`variableChanged`&&QS();let n=q_(e,t);return vx(n),n},async waitForActions(){await new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))});let e=()=>qS()===Q.getState().navigationId;return qS()!==null&&!e()&&!Q.getState().renderDeferred&&await new Promise(t=>{let n=q_(`passagerender`,()=>{e()&&(n(),t())})}),jS()},watch(e,t){return ab(e,t)},unwatch(e){lb(e)},openDialog(e,t){Sb({passageName:e,panelClass:t?.panelClass,showCloseButton:t?.showCloseButton,dismissible:t?.dismissible})},closeDialog(){Db()},closeAllDialogs(){Ob()},isDialogOpen(){return kb()},setNobr(e){Q.setState({nobr:e})},setCSS(e){let t=document.getElementById(`spindle-styles`);t&&(t.disabled=!e)},setTransition(e){Q.getState().setTransition(e)},setNextTransition(e){Q.getState().setNextTransition(e)},deferRender(){Q.getState().deferRender(),YS=new Promise(e=>{JS=e})},ready(){JS&&(Q.getState().clearDeferredRender(),JS(),JS=null,YS=null)},random(){return Vc()},randomInt(e,t){return Hc(e,t)},config:{get maxHistory(){return Q.getState().maxHistory},set maxHistory(e){Q.getState().setMaxHistory(e)},get quickSaveKey(){return Q.getState().quickSaveKey},set quickSaveKey(e){Q.getState().setQuickSaveKey(e)},get quickLoadKey(){return Q.getState().quickLoadKey},set quickLoadKey(e){Q.getState().setQuickLoadKey(e)}},prng:{init(e,t){Fc(e,t);let{historyIndex:n}=Q.getState();Q.setState(e=>{let t=e.history[n];t&&(t.prng=Bc())})},isEnabled(){return Uc()},get seed(){return Wc()},get pull(){return Gc()}}}}function cC(){window.Story=sC()}var lC=null;function uC(e){let t=lC;lC=new Map;try{return e()}finally{lC=t}}function dC(e,t){let n=t[0]+e,r=lC?.get(n);if(r)return r;try{r=go(e,t)}catch(e){if(!(e instanceof so))throw e;r=e}return lC?.set(n,r),r}var fC=new Set([`if`,`elseif`,`case`]),pC=new Set([`dialog`]);function mC(e,t){return e.map(e=>e.parameters?{...e,parameters:mC(e.parameters,t)}:(e.type===`string`||e.type===`text`)&&!e.holds?{...e,holds:t}:e)}function hC(e){let t=new yr;for(let{name:n,parameters:r,interpolate:i}of e)r&&t.set(n,mC(r,gC(i)));return e=>{let n=t.get(e);if(!n){let r=VS(e);r&&t.set(e,n=mC(r,`text`))}return n}}var gC=e=>e?`markup`:`text`;function _C(e){if(e.type===`expression`||e.type===`passage`)return`expression`;if(e.type===`statements`)return`statements`}function vC(e){if(!(e.type!==`string`&&e.type!==`text`))return e.holds??`markup`}function*yC(e,t,n){let r=(e,n)=>t.findIndex((t,r)=>r>e&&t.type===`macro`&&t.isClose&&t.name.toLowerCase()===n);for(let i=0;i<t.length;i++){let a=t[i];if(a.type===`link`)yield{kind:`passage`,name:a.target,offset:a.targetStart,length:a.targetEnd-a.targetStart,macro:`link`,label:e.slice(a.start,a.end)},a.display.includes(`{`)&&(yield{kind:`text`,text:a.display,offset:xC(e,a.display,a.start),where:`In the label of a link: `});else if(a.type===`expression`)yield{kind:`code`,code:a.expression,offset:a.end-1-a.expression.length,goal:`expression`,label:`{${a.expression}}`};else if(a.type===`html`){let t=a.start;for(let[n,r]of Object.entries(a.attributes)){let i=xC(e,r,t);if(t=i+r.length,!Wo(n)){yield{kind:`text`,text:r,offset:i,where:`In the ${n} attribute of <${a.tag}>: `};continue}let o=0;for(let e of Go(r)){if(!(`expr`in e))continue;let t=xC(r,e.expr,o);o=t+e.expr.length,yield{kind:`code`,code:e.expr,offset:i+t,goal:`expression`,label:`{${e.expr}} in the ${n} attribute of <${a.tag}>`}}}}else if(a.type===`macro`&&!a.isClose){let o=a.name.toLowerCase();if(o===`do`){let n=r(i,o);if(n<0)continue;yield{kind:`code`,code:e.slice(a.end,t[n].start),offset:a.end,goal:`statements`,label:`{do}`},i=n;continue}let s=a.rawArgs;if(pC.has(o)){let n=r(i,o),s=t.slice(i+1,n);if(n>i+1&&s.every(e=>e.type===`text`)){let r=e.slice(a.end,t[n].start),i=r.trim();yield{kind:`passage`,name:i.replace(/^[\"']|[\"']$/g,``),offset:a.end+r.indexOf(i),length:i.length,macro:o,label:e.slice(a.start,a.end)}}}if(!s)continue;let c=`{${a.name} ${s}}`,l=e.slice(a.start,a.end-1),u=a.start+l.trimEnd().length-s.length;if(fC.has(o)){yield{kind:`code`,code:s,offset:u,goal:`expression`,label:c};continue}let d=n(o);d&&(yield*bC(s,u,d,a.name,c))}}}function*bC(e,t,n,r,i){let a,o=new Map;try{a=lc(e,n,o)}catch(e){if(!(e instanceof Js))throw e;yield{kind:`argument-error`,message:e.message,offset:t,label:i};return}let s=r.toLowerCase();function*c(n,a){for(let l of n){let n=a[l.name];if(l.type===`options`&&l.parameters){yield*c(l.parameters,n??{});continue}let u=o.get(l);if(typeof n!=`string`||!n.trim()||!u)continue;let[d,f]=u,p=e.slice(d,f),m=e=>({kind:`passage`,name:e,offset:t+d,length:f-d,macro:s,label:i}),h=_C(l);if(l.type===`passage`){let e=uc(n);if(e.kind===`name`){yield m(e.name);continue}}if(h){let e={kind:`code`,code:n,offset:t+d,goal:h,label:i};l.type===`passage`&&(e.passage=!0,e.macro=s),yield e;continue}let g=t+d+(n!==p&&/^[\"']/.test(p)?1:0),_=vC(l);_===`expression`||_===`statements`?yield{kind:`code`,code:n,offset:g,goal:_,label:i,inString:!0}:_===`passage`?yield m(n):_===`markup`&&(yield{kind:`text`,text:n,offset:g,where:`In the ${l.name} of {${r}}: `})}}yield*[...c(n,a)].sort((e,t)=>e.offset-t.offset)}function xC(e,t,n){let r=e.indexOf(t,n);if(r>=0)return r;let i=e.indexOf(t);return i>=0?i:n}var SC=new Set([`StoryVariables`,`StoryTransients`,`SaveTitle`]),CC=[`script`,`stylesheet`],wC=new Set([`elseif`,`else`,`case`,`default`,`next`]);function TC(e){let t=e.file?` (${e.file}${e.fileLine?`:${e.fileLine}`:``})`:``;return`Passage \"${e.passage}\", line ${e.line}, column ${e.column}${t}: ${e.message}`}function EC(e,t){let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r++){let i=[r];for(let a=1;a<=t.length;a++)i[a]=Math.min(n[a]+1,i[a-1]+1,n[a-1]+(e[r-1]===t[a-1]?0:1));n=i}return n[t.length]}function DC(e,t,n){let r=e.toLowerCase(),i=``,a=Math.max(2,Math.floor(r.length/3))+1;for(let e of t){let t=EC(r,e.toLowerCase());t<a&&(i=e,a=t)}return i?` Did you mean ${n(i)}?`:``}var OC=` (a passage name is a quoted string or an expression)`,kC=/^[A-Za-z][\\w$]*$/;function AC(e){try{return hc(e).name.toLowerCase()||void 0}catch{return}}function jC(e,t){let n=[],r=t.isBlockMacro?{isBlock:t.isBlockMacro}:void 0,i=(e,t,r)=>{let{line:i,column:a}=Yo(e.content,t),o={passage:e.name,line:i,column:a,message:r},s=e.metadata?.[`data-source-file`];if(s){o.file=s;let t=Number(e.metadata?.[`data-source-line`]);t&&(o.fileLine=t+i)}n.push(o)},a=[],o=new Set,s=new Set;for(let n of e){if(s.add(n.name),SC.has(n.name)||n.tags?.some(e=>CC.includes(e)))continue;let e=!t.only||t.only(n);try{let t=Qo(n.content);for(let e of t){if(e.type!==`macro`||e.isClose||e.name.toLowerCase()!==`widget`)continue;let t=AC(e.rawArgs);t&&o.add(t)}if(!e)continue;Zo(n.content,{hooks:r}),a.push([n,t])}catch(t){if(!(t instanceof Jo))throw t;e&&i(n,t.offset,t.reason)}}let c=[...t.macroNames??[],...o],l=(e,n,r,a)=>{for(let s of n){if(s.type!==`macro`||s.isClose)continue;let n=s.name.toLowerCase();wC.has(n)||o.has(n)||t.isKnownMacro(n)||i(e,r+s.start,`${a}Unknown macro {${s.name}}.${DC(s.name,c,e=>`{${e}}`)}`)}},u=t.parametersOf??(()=>void 0),d=(e,n,a,o,c)=>{l(e,a,o,c);for(let l of yC(n,a,u)){let n=o+l.offset;if(l.kind===`argument-error`){i(e,n,`${c}${l.message} in ${l.label}`);continue}if(l.kind===`passage`){if(t.checkPassageNames!==!1&&!s.has(l.name)){let t=DC(l.name,s,JSON.stringify);i(e,n,`${c}No passage named ${JSON.stringify(l.name)} in ${l.label}.${t}`)}continue}if(l.kind===`code`){let t=dC(l.code,l.goal),r=l.code.trim();if(t instanceof so){let r=t.reasonIn(e.content,n);i(e,n+t.pos,`${c}${r} in ${l.label}`+(l.passage?OC:``))}else l.passage&&kC.test(r)&&i(e,n,`${c}Unquoted passage name in ${l.label}: write ${JSON.stringify(r)}${OC}`);continue}if(l.text.includes(`{`))try{Zo(l.text,{text:!0,hooks:r});let t=Qo(l.text,{text:!0});d(e,l.text,t,n,l.where)}catch(t){if(!(t instanceof Jo))throw t;i(e,n+t.offset,l.where+t.reason)}}};for(let[e,t]of a)uC(()=>d(e,e.content,t,0,``));return n}function MC(e,t){try{return Qo(e,{text:t})}catch(e){if(e instanceof Jo)return[];throw e}}function NC(e){let t=e.replace(/[.*+?^${}()|[\\]\\\\]/g,`\\\\$&`);return RegExp(`^${t}(\\\\w+)\\\\s*=\\\\s*(.+)$`)}var PC=/\\$(\\w+(?:\\.\\w+)*)/y,FC=/^[\"']\\$(\\w+(?:\\.\\w+)*)[\"']?$/,IC=new Set([`number`,`string`,`boolean`]),LC={string:Object(``),number:Object(0),boolean:Object(!1)};function RC(e){if(Array.isArray(e))return{type:`array`};if(e===null)return{type:`null`};if(typeof e==`object`){let t=new Map;for(let[n,r]of Object.entries(e))t.set(n,RC(r));return{type:`object`,fields:t}}let t=typeof e;if(!IC.has(t))throw Error(`Unsupported type \"${t}\" for value ${String(e)}. Expected number, string, boolean, array, or object.`);return{type:t}}function zC(e,t=`$`){let n=new Map,r=NC(t),i=t===`%`?`StoryTransients`:`StoryVariables`;for(let a of e.split(`\n`)){let e=a.trim();if(!e)continue;let o=e.match(r);if(!o)throw Error(`${i}: Invalid declaration: \"${e}\". Expected: ${t}name = value`);let[,s,c]=o,l=ns(s,t+s);if(l)throw Error(`${i}: ${l}`);let u;try{u=Function(`return (`+c+`)`)()}catch(e){throw Error(`${i}: Failed to evaluate \"${t}${s} = ${c}\": ${ys(e)}`)}let d;try{d=RC(u)}catch(e){throw Error(`${i}: ${ys(e)}`)}n.set(s,{...d,name:s,default:u})}return n}function BC(e,t){let n=e.split(`.`),r=n[0],i=ns(r,`$`+r);if(i)return i;let a=t.get(r);if(!a)return`Undeclared variable: $${e}`;let o=a;for(let e=1;e<n.length;e++){let t=n[e];if(o.type===`array`||o.type===`null`)return null;let r=LC[o.type];if(r&&t in r){let e=typeof r[t];if(!IC.has(e))return null;o={type:e};continue}if(o.type!==`object`||!o.fields)return`Cannot access field \"${t}\" on $${n.slice(0,e).join(`.`)} (type: ${o.type})`;let i=o.fields.get(t);if(!i)return null;o=i}return null}var VC=[`checkbox`,`cycle`,`listbox`,`numberbox`,`radiobutton`,`textarea`,`textbox`],HC=new Set;function UC(e,t){for(let n of Go(e))`expr`in n&&GC(n.expr,t)}function WC(e,t,n=HC){e.includes(`{`)&&YC(e,MC(e,!0),n,t)}function GC(e,t,n=`expression`){let r=dC(e,n);if(r instanceof so){KC(e,t,n);return}for(let n of r.refs)n.sigil===`$`&&(PC.lastIndex=n.start,t(PC.exec(e)[1]))}function KC(e,t,n){Ao(e,{variable(n,r,i){n===`$`&&(PC.lastIndex=i,t(PC.exec(e)[1]))},literal(){}},n)}function qC(e,t,n,r){uC(()=>YC(e,MC(e,!1),t,n,r))}function JC(e,t,n){if(e.rawArgs){if(t){let r=[...bC(e.rawArgs,0,t,e.name,``)];if(!r.some(e=>e.kind===`argument-error`)){for(let e of r)e.kind===`code`?GC(e.code,n,e.goal):e.kind===`text`&&WC(e.text,n);return}}GC(e.rawArgs,n)}}function YC(e,t,n,r,i=()=>void 0){for(let a=0;a<t.length;a++){let o=t[a];if(o.type===`variable`)o.scope===`variable`&&o.name&&r(o.name);else if(o.type===`link`)WC(o.display,r);else if(o.type===`expression`)GC(o.expression,r);else if(o.type===`html`)for(let[e,t]of Object.entries(o.attributes))Wo(e)?UC(t,r):WC(t,r,n);else if(o.type===`macro`&&!o.isClose){if(JC(o,i(o.name),r),o.className&&WC(o.className,r),o.id&&WC(o.id,r),n.has(o.name.toLowerCase())){let e=o.rawArgs.trim().split(/\\s+/)[0]??``,t=FC.exec(e);t?r(t[1]):/^[\"'`]/.test(e)||GC(e,r)}if(o.name.toLowerCase()===`do`){let n=a+1;for(;n<t.length;){let e=t[n];if(e.type===`macro`&&e.isClose&&e.name.toLowerCase()===`do`)break;n++}n<t.length&&(GC(e.slice(o.end,t[n].start),r,`statements`),a=n)}}}}function XC(e,t,n=VC,r=El){let i=[],a=new Set(Array.from(n,e=>e.toLowerCase()));for(let[n,o]of e)SC.has(n)||qC(o.content,a,e=>{let r=BC(e,t);r&&i.push(`Passage \"${n}\": ${r}`)},r);return i}function ZC(e){let t=K();for(let[n,r]of e)t[n]=r.default;return t}$({name:`set`,parameters:[{name:`code`,type:`statements`,required:!0}],render({rawArgs:e},t){return bp(`set`,e,()=>t.mutate(e))}}),$({name:`print`,parameters:[{name:`expression`,type:`expression`,required:!0}],interpolate:!0,merged:!0,render({rawArgs:e},t){try{return t.wrap(Ol(t.evaluate(e)))}catch(e){return q(vp,{macro:`print`,error:e})}},text({rawArgs:e},t){return Ol(t.evaluate(e))}});var QC=Symbol(`unset`);function $C(e,t){if(!t[`=`])throw Error(`{computed}: expected \"target = expression\", got \"${e}\"`);let{target:n=``,expression:r=``}=t;if(!n.match(/^[$_@]\\w+$/))throw Error(`{computed}: target must be $name, _name, or @name, got \"${n}\"`);return rs(n.slice(1),n),{target:n,expr:r}}function ew(e,t,n,r,i,a,o,s,c){let l=_p(),u,d=o.current,f=!1,{navigationId:p}=Q.getState();try{let{variables:a,temporary:o,transient:c}=Ty();r||(d=is(n?o:a,t),f=p!==s.current),u=ll(e,a,o,i(),c)}catch(e){yp(`computed ${a}`,e,l);return}if(s.current=p,!m_(o.current,u)||f&&!m_(d,u))if(o.current=u,r)try{c(t,u)}catch(e){yp(`computed ${a}`,e,l)}else{let e=Q.getState();n?e.setTemporary(t,u):e.setVariable(t,u)}}$({name:`computed`,merged:!0,parameters:[{name:`target`,type:`variable`,required:!0},{name:`=`,type:`separator`},{name:`expression`,type:`expression`,required:!0}],render({rawArgs:e},t){let n,r;try{({target:n,expr:r}=$C(e,t.args))}catch(e){return q(vp,{macro:`computed`,error:e})}let i=n.startsWith(`@`),a=n.startsWith(`_`),o=n.slice(1),s=i?t.update:null,c=t.hooks.useRef(QC),l=t.hooks.useRef(-1),u=()=>ew(r,o,a,i,t.getValues,e,c,l,s),d=t.hooks.useRef(!1);return d.current||(d.current=!0,u()),t.hooks.useLayoutEffect(u,[t.merged]),null}});function tw(e){if(e.current===void 0||e.max===void 0)throw Error(`meter requires two arguments: {meter currentExpr maxExpr}`);return{currentExpr:e.current,maxExpr:e.max,labelMode:e.label??``}}function nw(e,t,n){return n===`none`?null:n===`%`?`${t===0?0:Math.round(e/t*100)}%`:n?`${e} ${n} / ${t} ${n}`:`${e} / ${t}`}$({name:`meter`,interpolate:!0,merged:!0,parameters:[{name:`current`,type:`expression`,required:!0},{name:`max`,type:`expression`,required:!0},{name:`label`,type:`string`,holds:`markup`}],render(e,t){try{let{currentExpr:e,maxExpr:n,labelMode:r}=tw({...t.args,label:t.resolve?.(t.args.label)}),i=Number(t.evaluate(e)),a=Number(t.evaluate(n)),o=a===0?0:Math.max(0,Math.min(100,i/a*100)),s=nw(i,a,r),c=t.cls;return q(`div`,{class:c,id:t.id,children:[q(`div`,{class:`macro-meter-fill`,style:`width: ${o}%`}),s!=null&&q(`span`,{class:`macro-meter-label`,children:s})]})}catch(e){return q(vp,{macro:`meter`,error:e})}}});function rw(e,t){let n=null;for(let r of e)if(r.rawArgs===``)n=r;else if(t(r.rawArgs))return r;return n}function iw(e,t){return kl(t.resolve(e.className),t.resolve(e.id),t.renderNodes(e.children))}function aw(e,t){let n=e.findIndex(e=>e.rawArgs===``);return rw(n<0?e:e.slice(0,n+1),e=>!!t(e))}$({name:`if`,block:!0,interpolate:!0,merged:!0,render({branches:e=[]},t){let n;try{n=aw(e,t.evaluate)}catch(e){return q(vp,{macro:`if`,error:e})}return n?iw(n,t):null},text({branches:e=[]},t){let n=aw(e,t.evaluate);return n?t.renderText(n.children):``}});function ow(e){try{return sw(e,[])}catch{return`<unkeyable>`}}function sw(e,t){switch(typeof e){case`string`:return JSON.stringify(e);case`number`:return Number.isFinite(e)?JSON.stringify(e):String(e);case`boolean`:return String(e);case`bigint`:return`${e}n`;case`undefined`:return`undefined`;case`symbol`:return e.description===void 0?`Symbol()`:`Symbol(${JSON.stringify(e.description)})`;case`function`:return`<function ${JSON.stringify(e.name)}>`}if(e===null)return`null`;let n=e,r=t.indexOf(n);if(r!==-1)return`<cycle ${t.length-r}>`;if(e instanceof Date)return`Date(${e.getTime()})`;if(e instanceof RegExp)return`RegExp(${String(e)}@${e.lastIndex})`;t.push(n);try{if(Array.isArray(e))return`[${Array.from(e,e=>sw(e,t)).join(`,`)}]`;if(e instanceof Map)return`Map[${[...e].map(([e,n])=>`[${sw(e,t)},${sw(n,t)}]`).join(`,`)}]`;if(e instanceof Set)return`Set[${[...e].map(e=>sw(e,t)).join(`,`)}]`;let r=n,i=Object.keys(r).map(e=>`${JSON.stringify(e)}:${sw(r[e],t)}`).join(`,`),a=Eh(n);return a===void 0?`{${i}}`:`Class(${JSON.stringify(a)}){${i}}`}finally{t.pop()}}function cw(e,t){if(!t.of)throw Error(`{for} requires \"of\" keyword: {for ${e}}`);let[n=``,r=null]=t.variables??[],i=t.list??``;if(!n.startsWith(`@`))throw Error(`{for} loop variable must use @ prefix: got \"${n}\"`);if(r&&!r.startsWith(`@`))throw Error(`{for} index variable must use @ prefix: got \"${r}\"`);return rs(n.slice(1),n),r&&rs(r.slice(1),r),{itemVar:n.slice(1),indexVar:r?r.slice(1):null,listExpr:i}}function lw({parentValues:e,itemVar:t,itemValue:n,indexVar:r,indexValue:i,children:a}){return q(Zl,{body:a,parentValues:e,ownKeys:Fe(()=>({[t]:n,...r?{[r]:i}:void 0}),[t,n,r,i])})}$({name:`for`,block:!0,interpolate:!0,merged:!0,parameters:[{name:`variables`,type:`names`,required:!0},{name:`of`,type:`separator`},{name:`list`,type:`expression`,required:!0}],render({rawArgs:e,children:t=[]},n){let r=Le(Sp),i=n.hooks.useRef({contents:[],generations:[],next:0,edits:wS()}).current,a,o;try{a=cw(e,n.args);let t=n.evaluate(a.listExpr);if(!Array.isArray(t))return q(`span`,{class:`error`,children:`{for error: expression did not evaluate to an array}`});o=t}catch(e){return q(vp,{macro:`for`,error:e})}let{itemVar:s,indexVar:c}=a,l=i.edits,{variables:u}=Ty();i.edits=wS();let d=o.map((e,t)=>{let n=ow(e);return(i.generations[t]===void 0||n!==i.contents[t]&&!TS(l,u,o,e,t))&&(i.generations[t]=i.next++),i.contents[t]=n,i.generations[t]});i.contents.length=i.generations.length=o.length;let f=o.map((e,n)=>q(lw,{parentValues:r,itemVar:s,itemValue:e,indexVar:c,indexValue:n,children:t},`${n}-${d[n]}`));return n.wrap(f)},text({rawArgs:e,children:t=[]},n){let{itemVar:r,indexVar:i,listExpr:a}=cw(e,n.args),o=n.evaluate(a);if(!Array.isArray(o))throw Error(`expression did not evaluate to an array`);return o.map((e,a)=>n.renderText(t,{[r]:e,...i?{[i]:a}:void 0})).join(``)}}),$({name:`do`,block:!0,render({children:e=[]},t){let n=t.collectText(e);return bp(`do`,``,()=>t.mutate(n))}});function uw(e){return new Proxy(K(),{get:(t,n)=>typeof n==`string`?is(e(),n):void 0,has:(t,n)=>typeof n==`string`&&G(e(),n),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>{let r=Object.getOwnPropertyDescriptor(e(),n);return r?{...r,configurable:!0}:void 0}})}var dw=_e({stop:()=>{}});$({name:`repeat`,block:!0,interpolate:!0,parameters:[cc],render({children:e=[]},t){let{useState:n,useEffect:r,useCallback:i}=t.hooks,a=t.args.delay??0,[o,s]=n(0),[c,l]=n(!1),u=i(()=>l(!0),[]);if(r(()=>{if(c)return;let e=setInterval(()=>{s(e=>e+1)},a);return()=>clearInterval(e)},[a,c]),o===0&&!c)return null;let d=q(dw.Provider,{value:{stop:u},children:q(`span`,{children:t.renderNodes(e)},o)});return t.className||t.id?q(`span`,{id:t.id,class:t.cls,children:d}):d}});var fw=()=>!0;function pw(){let e=Le(Cp),{nobr:t,inline:n}=Xl(),r=Le(Ap),i=Le(dw),a=Le(Xx),o=A([]);Ne(()=>()=>{for(let e of o.current.splice(0))ge(null,e)},[]);let s=s=>{let c=uw(e.getValues),l=document.createElement(`div`);ge(q(wc.Provider,{value:fw,children:q(Cp.Provider,{value:e,children:q(Sp.Provider,{value:c,children:q(wp.Provider,{value:t,children:q(Tp.Provider,{value:n,children:q(Ap.Provider,{value:r,children:q(dw.Provider,{value:i,children:q(Xx.Provider,{value:a,children:Cm(s,{nobr:t,inline:n,locals:c})})})})})})})})}),l),o.current.push(l)};return e=>Jy(()=>s(e))}$({name:`button`,block:!0,interpolate:!0,parameters:[{name:`label`,type:`text`,holds:`markup`,required:!0}],render({rawArgs:e,children:t=[]},n){let r=n.resolve?.(n.args.label??``)??e,i=pw(),a=()=>i(t);return n.useAction({type:`button`,key:e,authorId:n.id,label:r,perform:a}),q(`button`,{type:`button`,id:n.id,class:n.cls,onClick:a,children:r})}}),$({name:`link`,block:!0,interpolate:!0,merged:!0,parameters:[{name:`text`,type:`string`,holds:`markup`,required:!0},{name:`passage`,type:`passage`}],render({children:e=[]},t){let n=t.resolve?.(t.args.text??``)??``,r=null,i;if(t.args.passage!==void 0)try{r=dc(t.args.passage,t.evaluate,Q.getState())}catch(e){i={error:e}}let a=pw(),o=()=>{i||(a(e),r&&Q.getState().navigate(r))};return t.useAction({type:`link`,key:r||n,authorId:t.id,label:n,target:r??void 0,disabled:i?!0:void 0,perform:o}),i?q(vp,{macro:`link`,error:i.error}):q(`a`,{id:t.id,class:t.cls,href:`#`,onClick:e=>{e.preventDefault(),o()},children:n})}});function mw(e,t,n){return rw(t.slice(1),t=>e===n(t))}$({name:`switch`,subMacros:[`case`,`default`],parameters:[{name:`expression`,type:`expression`,required:!0}],interpolate:!0,merged:!0,render({rawArgs:e,branches:t=[]},n){let r;try{r=n.evaluate(e)}catch(e){return q(vp,{macro:`switch`,error:e})}let i;try{i=mw(r,t,n.evaluate)}catch(e){return q(vp,{macro:`case`,error:e})}return i?iw(i,n):null},text({rawArgs:e,branches:t=[]},n){let r=mw(n.evaluate(e),t,n.evaluate);return r?n.renderText(r.children):``}});var hw=[cc];$({name:`timed`,subMacros:[`next`],interpolate:!0,parameters:hw,render({branches:e=[]},t){let{useState:n,useEffect:r,useMemo:i}=t.hooks,a=i(()=>e.map(e=>({delay:lc(e.rawArgs,hw).delay??0,nodes:e.children,className:e.className,id:e.id})),[e]),[o,s]=n(-1);if(r(()=>{if(o>=a.length-1)return;let e=o+1,t=a[e].delay,n=setTimeout(()=>{s(e)},t);return()=>clearTimeout(n)},[o,a]),o<0)return t.wrap(null);let c=a[o];return t.wrap(kl(t.resolve(c.className),t.resolve(c.id),t.renderNodes(c.nodes)))}}),$({name:`stop`,render(e,t){let{stop:n}=t.hooks.useContext(dw);return t.hooks.useLayoutEffect(()=>{n()},[n]),null}});function gw(e,t,n){let r=document.createRange();if(!r.getClientRects)return;let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),a=n,o;for(let e=i.nextNode();e&&a>0;e=i.nextNode()){let t=e.nodeValue?.length??0;o={node:e,offset:Math.min(a,t)},a-=t}if(!o)return`inset(0 100% 0 0)`;r.setStart(e,0),r.setEnd(o.node,o.offset);let s=r.getClientRects();if(s.length===0)return;let c=t.getBoundingClientRect(),l=``;for(let e of Array.from(s)){if(e.width===0&&e.height===0)continue;let t=(e.left-c.left).toFixed(2),n=(e.top-c.top).toFixed(2);l+=`M${t} ${n}h${e.width.toFixed(2)}v${e.height.toFixed(2)}h-${e.width.toFixed(2)}z`}return l?`path(\"${l}\")`:void 0}$({name:`type`,block:!0,interpolate:!0,parameters:[cc],render({children:e=[]},t){let{useState:n,useEffect:r,useLayoutEffect:i,useRef:a}=t.hooks,o=t.args.delay??0,s=a(null),c=a(null),[l,u]=n(),[d,f]=n(null),p=d??0,[m,h]=n(0),g=a(0);g.current=m,r(()=>{s.current&&f((s.current.textContent||``).length)}),r(()=>{if(p===0||g.current>=p)return;let e=setInterval(()=>{h(t=>t>=p?(clearInterval(e),t):t+1)},o);return()=>clearInterval(e)},[p,o]);let _=d!==null&&m>=p;i(()=>{let e=s.current,t=c.current;if(!e||!t||p===0||_){u(void 0);return}let n=()=>u(gw(e,t,m));return n(),window.addEventListener(`resize`,n),()=>window.removeEventListener(`resize`,n)},[m,p,_]);let v=[`macro-type`,_?`macro-type-done`:``,t.className||``].filter(Boolean).join(` `);return q(`span`,{id:t.id,class:v,ref:s,children:[q(`span`,{ref:c,class:`macro-type-inner`,style:{display:`inline`,visibility:d===null?`hidden`:`visible`,clipPath:l},children:t.renderInlineNodes(e)}),!_&&p>0&&q(`span`,{class:`macro-type-cursor`})]})}}),$({name:`widget`,block:!0,parameters:pc,render({children:e=[]},t){let n,r;try{let e=mc(t.args);for(let t of e.params)rs(t.slice(1),t);n=e}catch(e){r=e}let{name:i,params:a}=n??{name:``,params:[]},o=JSON.stringify(e),s=a.join(`,`);return t.hooks.useLayoutEffect(()=>{n&&_c(n,e)},[i,o,s]),r?q(vp,{macro:`widget`,error:r}):null}}),$({name:`story-title`,render(e,t){let n=Q(e=>e.storyData?.name||``),r=t.className?`story-title ${t.className}`:`story-title`;return q(`span`,{id:t.id,class:r,children:n})},text:()=>Q.getState().storyData?.name||``});function _w(e,t){return t?`${e} (${t})`:e}function vw(e){$({name:e.name,render(t,n){if(e.hidden?.())return null;let[r,i]=je(!1),a=e.setup?.()??{perform:()=>{}},{disabled:o,title:s=e.title}=a,c=n.className?`menubar-button ${n.className}`:`menubar-button`,l=e.dialog?()=>i(!0):e.confirm?()=>{confirm(e.confirm)&&a.perform()}:a.perform;return n.useAction({type:e.actionType,key:e.name,authorId:n.id,label:typeof e.label==`string`?e.label:e.name,disabled:o,perform:e.dialog?()=>i(!0):a.perform}),q(S,{children:[q(`button`,{type:`button`,id:n.id,class:c,onClick:l,disabled:o,title:s,children:e.label}),e.dialog&&r&&q(Zx,{passageName:e.dialog.passageName,fallbackMarkup:e.dialog.fallbackMarkup,panelClass:e.dialog.panelClass,onClose:()=>i(!1),showCloseButton:e.dialog.showCloseButton})]})}})}vw({name:`back`,label:`← Back`,actionType:`back`,setup:()=>({perform:Q(e=>e.goBack),disabled:!Q(e=>e.historyIndex>0)})}),vw({name:`forward`,label:`Forward →`,actionType:`forward`,setup:()=>({perform:Q(e=>e.goForward),disabled:!Q(e=>e.historyIndex<e.history.length-1)})}),vw({name:`quicksave`,label:`QuickSave`,actionType:`save`,setup:()=>{let{quickSaveKey:e}=Tc(`quickSaveKey`);return{perform:eS,title:_w(`Quick Save`,e)}}}),vw({name:`quickload`,label:`QuickLoad`,actionType:`load`,confirm:`Load saved game? Current progress will be lost.`,setup:()=>{let{hasSave:e,quickLoadKey:t}=Tc(`hasSave`,`quickLoadKey`,`knownSaves`);return{perform:tS,disabled:!e(),title:_w(`Quick Load`,t)}}}),vw({name:`restart`,label:`↺ Restart`,actionType:`restart`,confirm:`Restart the story? All progress will be lost.`,setup:()=>({perform:Q(e=>e.restart)})}),vw({name:`saves`,label:`Saves`,actionType:`dialog`,dialog:{passageName:`SaveLoad`,fallbackMarkup:`{save-manager}`,panelClass:`dialog-saves`}}),vw({name:`settings`,label:`Settings`,actionType:`dialog`,hidden:()=>!yS.hasAny(),dialog:{passageName:`Settings`,fallbackMarkup:`{settings-controls}`,panelClass:`dialog-settings`}}),$({name:`dialog`,block:!0,interpolate:!0,parameters:[{name:`label`,type:`text`,holds:`markup`,required:!0},{name:`noclose`,type:`flag`}],render({children:e=[]},t){let[n,r]=t.hooks.useState(!1),{noclose:i}=t.args,a=t.resolve(t.args.label??``),o=t.collectText(e).trim().replace(/^[\"']|[\"']$/g,``);return q(S,{children:[q(`button`,{type:`button`,id:t.id,class:t.cls,onClick:()=>r(!0),children:a}),n&&q(Zx,{passageName:o,onClose:()=>r(!1),showCloseButton:!i})]})}});function yw(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}function bw(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function xw(){let[e,t]=je(`load`),[n,r]=je([]),[i,a]=je(!0),[o,s]=je(null),[c,l]=je(()=>new Set),[u,d]=je(null),f=A(!1),[p,m]=je(``),h=A(null),g=A(null),_=Le(Xx),{storyData:v,playthroughId:y,beginSave:b,loadFromPayload:x}=Tc(`storyData`,`playthroughId`,`beginSave`,`loadFromPayload`),S=v?.ifid??``,[C,w]=je(!1),T=Ie(async()=>{if(!S)return;let e=await Ov(S);w(Zg()===`memory`),r(e),a(!1)},[S]);Ne(()=>{T()},[T]),Ne(()=>{u&&h.current&&(h.current.focus(),h.current.select())},[u]);let ee=A(!0),te=A(),E=A(),D=(e,t=`success`)=>{ee.current&&(clearTimeout(te.current),s({text:e,type:t}),te.current=window.setTimeout(()=>s(null),3e3))};Ne(()=>(ee.current=!0,()=>{ee.current=!1,clearTimeout(te.current),clearTimeout(E.current)}),[]);let ne=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},re=async()=>{if(!S)return;let e=ox();try{await vv(void 0,void 0,b,async t=>bv(S,e,t)),D(C?`Save created (temporary)`:`Save created`),await T()}catch{D(`Failed to create save`,`error`)}},ie=async e=>{let t=ox();try{await vv(void 0,void 0,b,async n=>{if(!await Sv(e,n,void 0,t))throw Error(`Save not found`)}),D(`Save overwritten`),await T()}catch{D(`Failed to overwrite save`,`error`)}},O=async e=>{try{x(Tv(e.payload),void 0,e.meta.playthroughId),D(`Game loaded`),_&&(E.current=window.setTimeout(_,500)),await T()}catch{D(`Failed to load save`,`error`)}},ae=async e=>{if(confirm(`Delete this save?`))try{await Ev(e);let t=await Jv(S);Q.setState(e=>{e.knownSaves=t}),D(`Save deleted`),await T()}catch{D(`Failed to delete save`,`error`)}},oe=e=>{f.current=!1,d(e.meta.id),m(e.meta.title)},se=async()=>{if(!(!u||!p.trim()))try{await Dv(u,p.trim()),d(null),D(`Save renamed`),await T()}catch{D(`Failed to rename`,`error`)}},ce=e=>{e.key===`Enter`?se():e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),f.current=!0,d(null))},le=()=>{f.current||se()},ue=async e=>{try{let t=await cy(e);if(!t)return;let n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`save-${t.save.meta.title.replace(/[^a-z0-9]/gi,`_`)}.json`,i.click(),URL.revokeObjectURL(r),D(`Save exported`)}catch{D(`Failed to export save`,`error`)}},de=()=>{g.current?.click()},fe=async e=>{let t=e.target,n=t.files?.[0];if(n){t.value=``;try{let e=await n.text(),t=JSON.parse(e);if(!Eg(t))throw Error(`Invalid save file format`);await uy(t,S),D(`Save imported`),await T()}catch(e){D(ys(e,`Failed to import save`),`error`)}}},pe=n.reduce((e,t)=>e+t.saves.length,0);return q(`div`,{class:`save-manager`,children:[q(`div`,{class:`saves-header`,children:q(`div`,{class:`saves-header-left`,children:q(`div`,{class:`saves-mode-toggle`,children:[q(`button`,{type:`button`,class:e===`save`?`active`:``,onClick:()=>t(`save`),children:`Save`}),q(`button`,{type:`button`,class:e===`load`?`active`:``,onClick:()=>t(`load`),children:`Load`})]})})}),C&&q(`div`,{class:`saves-notice`,role:`status`,children:`Saves can not be kept in this browser: they are lost when the page is reloaded or closed. Export a save to keep it.`}),q(`div`,{class:`saves-toolbar`,children:[q(`button`,{type:`button`,class:`saves-toolbar-button`,onClick:de,children:`Import`}),q(`input`,{ref:g,type:`file`,accept:`.json`,style:`display:none`,onChange:fe})]}),q(`div`,{class:`saves-body`,children:[i?q(`div`,{class:`saves-empty`,children:`Loading...`}):pe===0&&e===`load`?q(`div`,{class:`saves-empty`,children:`No saves yet`}):n.map(t=>{let n=c.has(t.playthrough.id),r=t.playthrough.id===y;return e===`save`&&!r||e===`load`&&t.saves.length===0&&!r?null:q(`div`,{class:`playthrough-group`,children:[q(`button`,{type:`button`,class:`playthrough-header`,\"aria-expanded\":!n,onClick:()=>ne(t.playthrough.id),children:[q(`span`,{class:`playthrough-chevron ${n?``:`open`}`,\"aria-hidden\":`true`,children:`▶`}),q(`span`,{class:`playthrough-label`,children:[t.playthrough.label,r?` (current)`:``]}),q(`span`,{class:`playthrough-date`,children:bw(t.playthrough.createdAt)})]}),!n&&q(`div`,{class:`playthrough-saves`,children:[t.saves.map(t=>q(`div`,{class:`save-slot`,children:[q(`div`,{class:`save-slot-info`,children:[u===t.meta.id?q(`input`,{ref:h,class:`save-rename-input`,value:p,onInput:e=>m(e.target.value),onKeyDown:ce,onBlur:le}):q(`div`,{class:`save-slot-title`,children:t.meta.title}),q(`div`,{class:`save-slot-meta`,children:[q(`span`,{children:t.meta.passage}),q(`span`,{children:yw(t.meta.updatedAt)})]})]}),q(`div`,{class:`save-slot-actions`,children:[e===`save`?q(`button`,{type:`button`,class:`save-slot-action primary`,onClick:()=>ie(t.meta.id),children:`Save Here`}):q(`button`,{type:`button`,class:`save-slot-action primary`,onClick:()=>O(t),children:`Load`}),q(`button`,{type:`button`,class:`save-slot-action`,onClick:()=>oe(t),children:`Rename`}),q(`button`,{type:`button`,class:`save-slot-action`,onClick:()=>ue(t.meta.id),children:`Export`}),q(`button`,{type:`button`,class:`save-slot-action danger`,onClick:()=>ae(t.meta.id),children:`Delete`})]})]},t.meta.id)),e===`save`&&r&&q(`button`,{type:`button`,class:`save-slot-new`,onClick:re,children:`+ New Save`})]})]},t.playthrough.id)}),e===`save`&&!i&&!n.some(e=>e.playthrough.id===y)&&q(`div`,{class:`playthrough-group`,children:q(`div`,{class:`playthrough-saves`,children:q(`button`,{type:`button`,class:`save-slot-new`,onClick:re,children:`+ New Save`})})})]}),o&&q(`div`,{class:`saves-status ${o.type===`error`?`error`:``}`,children:o.text})]})}$({name:`save-manager`,render(){return q(xw,{})}});function Sw({name:e,def:t}){let[n,r]=je(()=>yS.get(e)),i=t=>{r(t),yS.set(e,t)};switch(t.type){case`toggle`:return q(`label`,{class:`settings-row`,children:[q(`span`,{children:t.config.label}),q(`input`,{type:`checkbox`,checked:!!n,onChange:e=>i(e.target.checked)})]});case`list`:return q(`label`,{class:`settings-row`,children:[q(`span`,{children:t.config.label}),q(`select`,{value:String(n),onChange:e=>i(e.target.value),children:t.config.options.map(e=>q(`option`,{value:e,children:e},e))})]});case`range`:return q(`label`,{class:`settings-row`,children:[q(`span`,{children:[t.config.label,`: `,String(n)]}),q(`input`,{type:`range`,min:t.config.min,max:t.config.max,step:t.config.step,value:Number(n),onInput:e=>i(parseFloat(e.target.value))})]})}}function Cw(){let e=yS.getDefinitions();return q(`div`,{class:`settings-controls`,children:Array.from(e.entries()).map(([e,t])=>q(Sw,{name:e,def:t},e))})}$({name:`settings-controls`,render(){return q(Cw,{})}}),$({name:`include`,interpolate:!0,merged:!0,parameters:[{name:`inline`,type:`flag`},{name:`passage`,type:`passage`,required:!0}],render(e,t){let{storyData:n}=Tc(`storyData`),{inline:r}=t.args,i=``,a;try{i=dc(t.args.passage,t.evaluate,Q.getState())}catch(e){a={error:e}}let o=n?.passages.get(i),s=t.hooks.useMemo(()=>o?Zo(o.content):null,[o]),c=!a&&!!o;if(t.hooks.useEffect(()=>{c&&Q.getState().trackRender(i)},[c,i]),!n)return null;if(a)return q(vp,{macro:`include`,error:a.error});if(!o||!s)return null;let l=o.tags.includes(`nobr`),u=r?t.renderInlineNodes(s):t.renderNodes(s,l?{nobr:!0}:void 0);return l?t.wrap(t.h(wp.Provider,{value:!0},u)):t.wrap(u)}}),$({name:`nobr`,block:!0,render({children:e=[]},t){return t.wrap(t.h(wp.Provider,{value:!0},t.renderNodes(e,{nobr:!0})))},text:({children:e=[]},t)=>t.renderText(e)}),$({name:`goto`,merged:!0,parameters:[{name:`passage`,type:`passage`,required:!0}],render(e,t){let[n,r]=t.hooks.useState();return t.hooks.useLayoutEffect(()=>{let e=t.sourceLocation();try{let e=Q.getState();e.navigate(dc(t.args.passage,t.evaluate,e))}catch(t){yp(`goto`,t,e),r({error:t})}},[]),n?q(vp,{macro:`goto`,error:n.error}):null}}),$({name:`unset`,parameters:[{name:`variable`,type:`variable`,required:!0}],render({rawArgs:e},t){return bp(`unset`,e,()=>{let e=Q.getState(),n=t.args.variable??``;if(/^[$_%@][^.]*\\./.test(n))t.mutate(`delete ${n}`);else if(n.startsWith(`$`))e.deleteVariable(n.slice(1));else if(n.startsWith(`_`))e.deleteTemporary(n.slice(1));else if(n.startsWith(`%`))e.deleteTransient(n.slice(1));else if(n.startsWith(`@`))t.update(n.slice(1),void 0);else throw Error(`{unset} expects a variable ($name, _name, %name, or @name), got \"${n}\"`)})}});var ww={name:`variable`,type:`variable`,required:!0};function Tw(e,t){return e.useAction({key:`$${e.varName}`,authorId:e.id,variable:e.varName,value:e.value,...t})}function Ew(e,t,n=e=>e===void 0?``:String(e)){$({name:e,storeVar:!0,parameters:[ww,{name:`placeholder`,type:`string`,holds:`text`}],render(r,i){let a=i.args.placeholder??``;Tw(i,{type:e,label:a||i.varName,perform:e=>i.setValue(n(e))});let o=i.hooks.useRef(null),s=o.current!==null&&n(o.current)===i.value&&t===`number`?o.current:Ol(i.value);return b(t?`input`:`textarea`,{type:t,id:i.id,class:i.cls,value:s,placeholder:a,onInput:e=>{let t=e.target.value;o.current=t,i.setValue(n(t))}})}})}Ew(`textbox`,`text`),Ew(`numberbox`,`number`,e=>e===void 0?0:Number(e)),Ew(`textarea`),$({name:`checkbox`,storeVar:!0,parameters:[ww,{name:`label`,type:`text`,holds:`text`}],render(e,t){let n=t.args.label??``;return Tw(t,{type:`checkbox`,label:n||t.varName||``,value:!!t.value,perform:e=>t.setValue(e===void 0?!t.value:!!e)}),q(`label`,{id:t.id,class:t.cls,children:[q(`input`,{type:`checkbox`,checked:!!t.value,onChange:()=>t.setValue(!t.value)}),n?` ${n}`:null]})}}),$({name:`radiobutton`,storeVar:!0,parameters:[ww,{name:`value`,type:`text`,holds:`text`,required:!0},{name:`label`,type:`text`,holds:`text`}],render(e,t){let n=t.args.value??``,r=t.args.label??``;return Tw(t,{type:`radiobutton`,key:`$${t.varName}:${n}`,label:r||n,perform:()=>t.setValue(n)}),q(`label`,{id:t.id,class:t.cls,children:[q(`input`,{type:`radio`,name:`radio-${t.varName}`,checked:t.value===n,onChange:()=>t.setValue(n)}),r?` ${r}`:null]})}}),$({name:`listbox`,subMacros:[`option`],storeVar:!0,parameters:[ww],render({children:e=[]},t){let n=t.extractOptions(e);return Tw(t,{type:`listbox`,label:t.varName,options:n,perform:e=>{e!==void 0&&t.setValue(String(e))}}),q(`select`,{id:t.id,class:t.cls,value:Ol(t.value),onChange:e=>t.setValue(e.target.value),children:n.map(e=>q(`option`,{value:e,children:e},e))})}}),$({name:`cycle`,block:!0,storeVar:!0,parameters:[ww],render({children:e=[]},t){let n=t.extractOptions(e),r=()=>{if(n.length===0)return;let e=t.getValue(),r=(n.indexOf(String(e))+1)%n.length;t.setValue(n[r])};return Tw(t,{type:`cycle`,label:t.value==null?n[0]||``:String(t.value),options:n,perform:e=>{e===void 0?r():t.setValue(e)}}),q(`button`,{type:`button`,id:t.id,class:t.cls,onClick:r,children:t.value==null?n[0]||``:String(t.value)})}}),$({name:`span`,block:!0,render({children:e=[]},t){return t.wrap(t.renderNodes(e))},text:({children:e=[]},t)=>t.renderText(e)});var Dw=new WeakMap;function Ow(e){let t=Dw.get(e);if(t&&t.content===e.content)return t.ast;let n=Zo(e.content);return Dw.set(e,{content:e.content,ast:n}),n}function kw(e){return Cm(Ow(e),e.tags.includes(`nobr`)?{nobr:!0}:void 0)}function Aw(e){if(!e)return null;try{return kw(e)}catch(t){return console.error(`spindle: Error in ${e.name}:`,t),null}}var jw=new Set([`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]);function Mw({passage:e,dataTransition:t,navigationId:n}){let{storyData:r}=Tc(`storyData`),i=jw.has(e.name),[a,o]=je(!1),s=Fe(()=>{try{return kw(e)}catch(t){return q(`div`,{class:`error`,children:[`Error parsing passage “`,e.name,`”`,gp(e),`: `,ys(t)]})}},[e.content,e.name]),c=e=>i?void 0:r?.passages.get(e),l=c(`PassageHeader`),u=c(`PassageFooter`),d=c(`PassageDone`),f=Fe(()=>Aw(l),[l?.content]),p=Fe(()=>Aw(u),[u?.content]);Ne(()=>(d&&o(!0),()=>o(!1)),[e.name]);let m=Fe(()=>a?Aw(d):null,[a,d?.content]),h=A(null);Pe(()=>{n!==void 0&&KS(n),h.current&&X_(`passagerender`,e.name,h.current)},[e.name,n]);let g=e.tags.includes(`nobr`),_=q(`div`,{ref:h,class:`passage`,\"data-passage\":e.name,\"data-tags\":e.tags.join(` `),\"data-transition\":t,children:[f&&q(`div`,{class:`passage-header`,children:f}),s,p&&q(`div`,{class:`passage-footer`,children:p}),m&&q(`div`,{hidden:!0,children:m})]});return g?q(wp.Provider,{value:!0,children:_}):_}var Nw=new Set([`none`,`fade`,`fade-through`,`crossfade`]),Pw={type:`fade-through`,duration:300,pause:50};function Fw(e){let t=e.find(e=>e.startsWith(`transition:`));if(!t)return null;let n=t.slice(11);if(!Nw.has(n))return console.warn(`Unknown transition type: \"${n}\"`),null;let r={type:n};for(let t of e)if(t.startsWith(`duration:`)){let e=Number(t.slice(9));Number.isNaN(e)||(r.duration=e)}else if(t.startsWith(`pause:`)){let e=Number(t.slice(6));Number.isNaN(e)||(r.pause=e)}return r}function Iw(e){return{type:e.type,duration:e.duration??Pw.duration,pause:e.pause??Pw.pause}}function Lw(e,t,n){let r=Fw(e);return r?Iw(r):t?Iw(t):n?Iw(n):{...Pw}}function Rw(e,t){let n=e.cloneNode(!0);n.removeAttribute(`id`);let r=n.querySelectorAll(`[id]`);for(let e=0;e<r.length;e++)r[e].removeAttribute(`id`);n.style.pointerEvents=`none`,n.style.userSelect=`none`,n.setAttribute(`inert`,``),n.setAttribute(`aria-hidden`,`true`);let i=n.querySelectorAll(`audio, video`);for(let e=0;e<i.length;e++){let t=i[e];t.pause?.(),t.muted=!0}return n.classList.remove(`passage`),n.classList.add(`passage-snapshot`),n.setAttribute(`data-transition`,t),n}function zw(e,t){e.style.setProperty(`--passage-in-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-out-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-pause`,`${t.pause/1e3}s`)}function Bw(e,t){if(!e)return null;zw(e,t);let n=e.querySelector(`.passage`);return n?Rw(n,t.type):null}function Vw(e){if(!e)return;e.classList.remove(`passage-container--crossfading`);let t=e.querySelectorAll(`.passage-snapshot`);for(let e=0;e<t.length;e++)t[e].remove()}function Hw(e){return window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches?{...e,duration:Math.min(e.duration,10),pause:0}:e}$({name:`passage`,interpolate:!0,render(e,t){let{currentPassage:n,navigationId:r,storyData:i,renderDeferred:a}=Tc(`currentPassage`,`navigationId`,`storyData`,`renderDeferred`),[o,s]=je({passage:n,id:r}),c=o.passage,l=e=>s({passage:e,id:r}),u=A(`fade`),d=A(0),f=o.id,p=Ie(e=>e.navigationId!==f,[f]),m=A(null),h=A(null),g=A([]),_=Ie(()=>{for(let e of g.current)clearTimeout(e);g.current=[],Vw(h.current)},[]);Ne(()=>_,[_]),Ne(()=>{let e=Q.getState(),{history:t,historyIndex:a,transitionConfig:s}=e,f=d.current;d.current=t.length;let p=!c,m=t.length===1&&a===0&&f>1,v=t.length>1&&a===t.length-1&&f>1&&Math.abs(t.length-f)>1;if(r===o.id)return;let y=e.consumeNextTransition();_();let b=i?.passages.get(n);if(!b){u.current=`none`,l(n);return}if(p||m||v){u.current=`fade`,l(n);return}let x=Hw(Lw(b.tags,y,s));u.current=x.type;let S=h.current;if(x.type===`none`){l(n);return}if(x.type===`fade`){S&&zw(S,x),l(n);return}let C=x.type===`fade-through`||x.type===`crossfade`?Bw(S,x):null;if(!S||!C){l(n);return}if(x.type===`fade-through`){S.appendChild(C),l(``);let e=x.duration+x.pause,t=setTimeout(()=>{l(n)},e),r=e+x.duration;g.current=[t,setTimeout(()=>{Vw(S)},r)];return}S.classList.add(`passage-container--crossfading`),S.appendChild(C),l(n),g.current=[setTimeout(()=>{Vw(S)},x.duration)]},[r]);let v=c&&!a?o.id:null,y=A(v);Pe(()=>{if(v===null)return;let e=y.current;if(y.current=v,e===null||e===v)return;let t=h.current?.querySelector(`.passage`);t&&t.getBoundingClientRect().top<0&&t.scrollIntoView?.({block:`start`})},[v]);let b=a?i?.passages.get(`StoryLoading`)??null:c?i?.passages.get(c):null;if(!b&&c&&!a)return q(`div`,{class:`error`,children:[`Error: Passage “`,c,`” not found.`]});let x=i?.passages.get(`PassageReady`),S=!a&&o.id!==r&&m.current?m.current:b&&q(Mw,{passage:b,dataTransition:a?`none`:u.current,navigationId:a?void 0:o.id},a?`loading`:`nav-${o.id}`);return m.current=S||null,q(`div`,{id:t.id??`story`,class:t.className??`story`,children:[!a&&x&&q(`div`,{hidden:!0,children:kw(x)},`ready-${r}`),q(`div`,{class:`passage-container`,ref:h,children:S&&q(wc.Provider,{value:p,children:S})})]})}}),$({name:`watch`,parameters:[{name:`condition`,type:`string`,holds:`expression`,required:!0},{name:`options`,type:`options`,parameters:[{name:`goto`,type:`string`,holds:`passage`},{name:`dialog`,type:`string`,holds:`passage`},{name:`run`,type:`string`,holds:`statements`},{name:`name`,type:`string`,holds:`text`},{name:`priority`,type:`number`},{name:`once`,type:`flag`}]}],render(e,t){let{hooks:n}=t,{condition:r,options:i}=t.args;if(r===void 0)return null;let a=n.useRef(!1);return a.current||(a.current=!0,ob(r,i)),null}}),$({name:`unwatch`,parameters:[{name:`name`,type:`text`,holds:`text`,required:!0}],render(e,t){let n=t.args.name??``,r=t.hooks.useRef(!1);return r.current||(r.current=!0,lb(n)),null}});var Uw=`*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#e0e0e0;background-color:#1a1a2e;min-height:100vh;margin:0;padding:0;font-family:Georgia,Times New Roman,serif;line-height:1.75}tw-storydata{display:none!important}#story{max-width:42em;margin:0 auto;padding:2em 1.5em}.passage-container{position:relative}.passage-container--crossfading{display:grid}.passage-container--crossfading>*{grid-area:1/1}.passage{animation:passage-fade-in var(--passage-in-duration,.3s) ease}.passage[data-transition=none]{animation:none}.passage-snapshot{animation:passage-fade-out var(--passage-out-duration,.3s) ease forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes passage-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes passage-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.passage,.passage-snapshot{animation-duration:10ms!important}}.macro-button{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;font-size:.95em;transition:background .2s,border-color .2s}.macro-button:hover{background:#64b5f640;border-color:#90caf9}.macro-button:active{background:#64b5f659}.error{color:#ef5350;background:#ef53501a;border:1px solid #ef5350;border-radius:4px;padding:1em;font-family:monospace}.spindle-error-banners{z-index:300;flex-direction:column;gap:.5em;width:min(42em,100% - 1.5em);display:flex;position:fixed;top:.75em;left:50%;transform:translate(-50%)}.spindle-error-banner{color:#ffcdd2;background:#2b1a1e;border:1px solid #ef5350;border-radius:4px;padding:.75em 2.75em .75em 1em;font-size:.9em;line-height:1.5;position:relative;box-shadow:0 2px 12px #00000080}.spindle-error-banner-message{color:#ef9a9a;font-family:monospace}.spindle-error-banner-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;font-size:1em;position:absolute;top:.5em;right:.5em}.spindle-error-banner-dismiss:hover{color:#fff}.loading{text-align:center;opacity:.6;padding:2em}.story-menubar{z-index:100;background:#16213e;border-bottom:1px solid #ffffff14;align-items:center;gap:.5em;padding:.5em 1.5em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.9em;display:flex;position:sticky;top:0}.story-title{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.menubar-button{color:#9e9e9e;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:.35em .7em;transition:color .2s,background .2s}.menubar-button:hover{color:#e0e0e0;background:#ffffff14}.menubar-button:disabled{opacity:.4;cursor:default}.menubar-button:disabled:hover{color:#9e9e9e;background:0 0}.dialog-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog-panel{color:#e0e0e0;background:#16213e;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex;position:relative}.dialog-panel:focus{outline:none}.dialog-saves{max-width:550px}.dialog-settings{max-width:400px}.dialog-settings .dialog-body{padding-top:2.25em}.dialog-close{z-index:1;color:#9e9e9e;cursor:pointer;background:0 0;border:none;padding:.25em;font-size:1.1em;line-height:1;position:absolute;top:.75em;right:.75em}.dialog-close:hover{color:#e0e0e0}.dialog-body{flex:1;min-height:0;overflow-y:auto}.settings-controls{flex-direction:column;gap:1em;padding:1em 1.25em;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:1em;display:flex}.settings-row select,.settings-row input[type=range]{accent-color:#64b5f6}.settings-row select{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.settings-row input[type=checkbox]{accent-color:#64b5f6;width:1.1em;height:1.1em}.save-manager{flex-direction:column;flex:1;min-height:0;display:flex}.saves-header{border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:1em 3em 1em 1.25em;font-weight:600;display:flex}.saves-header-left{align-items:center;gap:.75em;display:flex}.saves-mode-toggle{border:1px solid #ffffff26;border-radius:4px;gap:0;display:flex;overflow:hidden}.saves-mode-toggle button{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:none;padding:.3em .8em;font-size:.85em;font-weight:600;transition:background .2s,color .2s}.saves-mode-toggle button.active{color:#64b5f6;background:#64b5f633}.saves-mode-toggle button:hover:not(.active){color:#e0e0e0}.saves-body{flex:1;min-height:0;padding:.75em 1.25em;overflow-y:auto}.saves-empty{text-align:center;opacity:.5;padding:2em 1em;font-size:.9em}.saves-toolbar{border-bottom:1px solid #ffffff14;flex-shrink:0;gap:.5em;padding:.5em 1.25em;display:flex}.saves-toolbar-button{color:#9e9e9e;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.3em .7em;font-size:.8em;transition:background .2s,color .2s}.saves-toolbar-button:hover{color:#e0e0e0;background:#ffffff1a}.playthrough-group{margin-bottom:.75em}.playthrough-header{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;color:#9e9e9e;background:0 0;border:0;align-items:center;gap:.5em;width:100%;padding:.4em 0;font-family:inherit;font-size:.85em;transition:color .2s;display:flex}.playthrough-header:hover{color:#e0e0e0}.playthrough-chevron{font-size:.7em;transition:transform .2s;display:inline-block}.playthrough-chevron.open{transform:rotate(90deg)}.playthrough-label{font-weight:600}.playthrough-date{opacity:.6;font-size:.9em}.playthrough-saves{flex-direction:column;gap:.4em;padding-left:.25em;display:flex}.save-slot{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:.75em;padding:.5em .6em;transition:background .15s;display:flex}.save-slot:hover{background:#ffffff0f}.save-slot-info{flex:1;min-width:0}.save-slot-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;font-weight:500;overflow:hidden}.save-slot-meta{color:#9e9e9e;gap:.75em;font-size:.75em;display:flex}.save-slot-actions{flex-shrink:0;gap:.3em;display:flex}.save-slot-action{color:#9e9e9e;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:.2em .5em;font-size:.75em;transition:color .2s,background .2s}.save-slot-action:hover{color:#e0e0e0;background:#ffffff14}.save-slot-action.primary{color:#64b5f6;border-color:#64b5f64d}.save-slot-action.primary:hover{background:#64b5f626}.save-slot-action.danger:hover{color:#ef5350;background:#ef53501a}.save-slot-new{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:1px dashed #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-top:.25em;padding:.5em;font-size:.8em;transition:color .2s,border-color .2s,background .2s;display:flex}.save-slot-new:hover{color:#64b5f6;background:#64b5f60d;border-color:#64b5f64d}.saves-notice{color:#ffb74d;background:#ffb74d14;border-bottom:1px solid #ffb74d4d;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status{color:#81c784;text-align:center;border-top:1px solid #ffffff14;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status.error{color:#ef5350;background:0 0;border:none;border-radius:0;padding:.5em 1.25em;font-family:inherit}.save-rename-input{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #64b5f666;border-radius:3px;width:100%;padding:.15em .4em;font-size:.9em}.save-rename-input:focus{border-color:#64b5f6;outline:none}.macro-link{color:#64b5f6;cursor:pointer;border-bottom:1px solid #64b5f64d;text-decoration:none;transition:color .2s,border-color .2s}.macro-link:hover{color:#90caf9;border-bottom-color:#90caf9}.macro-link:active{color:#42a5f5}.macro-textbox,.macro-numberbox,.macro-textarea{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-textbox:focus,.macro-numberbox:focus,.macro-textarea:focus{border-color:#64b5f6;outline:none}.macro-textarea{resize:vertical;min-height:3em}.macro-checkbox,.macro-radiobutton{cursor:pointer;align-items:center;gap:.3em;display:inline-flex}.macro-checkbox input,.macro-radiobutton input{accent-color:#64b5f6}.macro-listbox{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-cycle{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;transition:background .2s,border-color .2s}.macro-cycle:hover{background:#64b5f640;border-color:#90caf9}.macro-meter{background:#2a2a3e;border:1px solid #444;border-radius:.3em;width:100%;height:1.4em;position:relative;overflow:hidden}.macro-meter-fill{background:#64b5f6;height:100%;transition:width .3s}.macro-meter-label{color:#e0e0e0;text-shadow:0 1px 2px #000c;pointer-events:none;justify-content:center;align-items:center;font-size:.85em;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.md{display:contents}.passage p{margin:.6em 0}.passage p:first-child{margin-top:0}.passage p:last-child{margin-bottom:0}.passage h1,.passage h2,.passage h3,.passage h4,.passage h5,.passage h6{color:#f0f0f0;margin:1em 0 .4em;line-height:1.3}.passage h1{font-size:1.8em}.passage h2{font-size:1.5em}.passage h3{font-size:1.25em}.passage h4{font-size:1.1em}.passage h5{font-size:1em}.passage h6{opacity:.8;font-size:.9em}.passage code{background:#ffffff14;border-radius:3px;padding:.15em .35em;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.9em}.passage pre{background:#0000004d;border:1px solid #ffffff14;border-radius:6px;margin:.8em 0;padding:1em;overflow-x:auto}.passage pre code{background:0 0;border-radius:0;padding:0;font-size:.85em}.passage blockquote{color:#b0b0b0;border-left:3px solid #64b5f680;margin:.8em 0;padding:.4em 1em}.passage blockquote p{margin:.3em 0}.passage ul,.passage ol{margin:.6em 0;padding-left:1.8em}.passage li{margin:.2em 0}.passage hr{border:none;border-top:1px solid #ffffff1f;margin:1.2em 0}.passage table{border-collapse:collapse;width:100%;margin:.8em 0}.passage th,.passage td{text-align:left;border:1px solid #ffffff1f;padding:.5em .75em}.passage th{background:#ffffff0f;font-weight:600}.passage tr:nth-child(2n){background:#ffffff05}.passage del{opacity:.5}.passage strong{color:#f0f0f0}.macro-type-cursor:after{content:\"█\";color:#64b5f6;animation:.7s step-end infinite type-blink}.macro-type-done .macro-type-cursor:after{display:none}@keyframes type-blink{50%{opacity:0}}`;function Ww(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.style.cssText=`font-family:monospace;padding:2rem;max-width:60rem;margin:0 auto`;let r=document.createElement(`h1`);r.style.color=`#c00`,r.textContent=`Story Validation Errors`,n.appendChild(r);let i=document.createElement(`ul`);i.style.cssText=`line-height:1.6`;for(let e of t){let t=document.createElement(`li`);t.textContent=e,i.appendChild(t)}n.appendChild(i),e.appendChild(n)}function Gw(e){let t=document.getElementById(`root`);throw t&&Ww(t,e),Error(`spindle: ${e.length} validation error(s):\\n${e.join(`\n`)}`)}function Kw(e,t){let n=Dl().filter(e=>e.storeVar).map(e=>e.name);return XC(e.passages,t,n)}function qw(e,t){let n=Dl();return jC(e.passages.values(),{isKnownMacro:e=>!!pl(e)||yl(e)||!!_s(e),macroNames:n.map(e=>e.name),parametersOf:hC(n),only:t}).map(TC)}function Jw(){let e=lS(),t=document.createElement(`style`);if(t.id=`spindle-styles`,t.textContent=Uw,document.head.appendChild(t),cC(),e.userCSS){let t=document.createElement(`style`);t.textContent=e.userCSS,document.head.appendChild(t)}if(e.userScript)try{Function(e.userScript)()}catch(e){console.error(`spindle: Error in story JavaScript:`,e)}document.dispatchEvent(new CustomEvent(`:storystartup`));let n={},r=e.passages.get(`StoryVariables`);if(!r){let e=`Missing StoryVariables passage. Add a :: StoryVariables passage to declare your variables.`,t=document.getElementById(`root`);throw t&&Ww(t,[e]),Error(`spindle: ${e}`)}let i=zC(r.content);for(let t of gc(e.passages.values()))Cr(t);let a=Kw(e,i);a.push(...qw(e,e=>e.name===`StoryInit`));let o={},s=e.passages.get(`StoryTransients`);if(s){let e=zC(s.content,`%`);for(let t of e.keys())i.has(t)&&a.push(`StoryTransients: Variable \"${t}\" is already declared in StoryVariables. Names must be unique across scopes.`);o=ZC(e)}a.length>0&&Gw(a),n=ZC(i),nC(Object.keys(n),Object.keys(o)),Q.getState().init(e,n,o),yx();for(let[,t]of e.passages)t.tags.includes(`widget`)&&vc(Zo(t.content),t.name);xy(ny(e.ifid));let c=[...Kw(e,i),...qw(e,e=>e.name!==`StoryInit`)];c.length>0&&Gw(c);let l=Q.getState().navigationId;Q.subscribe(e=>{e.navigationId!==l&&(l=e.navigationId,PS())}),gb();let u=e.passages.get(`StoryInterface`);u&&!u.content.includes(`{passage}`)&&console.warn(`spindle: StoryInterface passage does not contain {passage}. The current passage will not be displayed.`);let d=document.getElementById(`root`);if(!d)throw Error(`spindle: No <div id=\"root\"> element found.`);ge(q(nS,{}),d);let f=XS();f?f.then(()=>{document.dispatchEvent(new CustomEvent(`:storyready`))}):document.dispatchEvent(new CustomEvent(`:storyready`))}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,Jw):Jw();</script>\n </head>\n <body>\n <div id=\"root\"></div>\n {{STORY_DATA}}\n </body>\n</html>\n"})
|
|
1
|
+
window.storyFormat({"name":"spindle","version":"0.59.16","author":"Rohal12","description":"A Preact-based story format for Twine 2.","image":"","url":"","license":"Unlicense","proofing":false,"source":"<!doctype html>\n<html>\n <head>\n <meta charset=\"UTF-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1\"\n />\n <title>{{STORY_NAME}}</title>\n <link\n id=\"favicon\"\n rel=\"icon\"\n type=\"image/svg+xml\"\n href=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cdefs%3E%3ClinearGradient id='sg' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0%25' stop-color='%23c4b5fd'/%3E%3Cstop offset='50%25' stop-color='%238b5cf6'/%3E%3Cstop offset='100%25' stop-color='%235b21b6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%237c3aed' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(55,16,16)'/%3E%3Cellipse cx='16' cy='16' rx='13' ry='5' stroke='%238b5cf6' stroke-width='1.8' fill='none' opacity='.85' transform='rotate(-55,16,16)'/%3E%3Cpath d='M16 3Q19.5 9 20.5 16 19.5 23 16 29 12.5 23 11.5 16 12.5 9 16 3Z' fill='url(%23sg)'/%3E%3C/svg%3E\"\n />\n <script type=\"module\" crossorigin>var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel=\"modulepreload\"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var n,r,i,a,o,s,c,l,u,d,f,p,m={},h=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,_=Array.isArray;function v(e,t){for(var n in t)e[n]=t[n];return e}function y(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function b(e,t,r){var i,a,o,s={};for(o in t)o==`key`?i=t[o]:o==`ref`?a=t[o]:s[o]=t[o];if(arguments.length>2&&(s.children=arguments.length>3?n.call(arguments,2):r),typeof e==`function`&&e.defaultProps!=null)for(o in e.defaultProps)s[o]===void 0&&(s[o]=e.defaultProps[o]);return x(e,s,i,a,null)}function x(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++i,__i:-1,__u:0};return o==null&&r.vnode!=null&&r.vnode(s),s}function S(e){return e.children}function C(e,t){this.props=e,this.context=t}function w(e,t){if(t==null)return e.__?w(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?w(e):null}function T(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,i=[],a=[],o=v({},t);o.__v=t.__v+1,r.vnode&&r.vnode(o),se(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,i,n??w(t),!!(32&t.__u),a),o.__v=t.__v,o.__.__k[o.__i]=o,le(i,o,a),t.__e=t.__=null,o.__e!=n&&ee(o)}}function ee(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),ee(e)}function E(e){(!e.__d&&(e.__d=!0)&&a.push(e)&&!D.__r++||o!=r.debounceRendering)&&((o=r.debounceRendering)||s)(D)}function D(){try{for(var e,t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,T(e)}finally{a.length=D.__r=0}}function O(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,g,_,v,y,b=r&&r.__k||h,x=t.length;for(c=te(n,t,b,c,x),d=0;d<x;d++)(p=n.__k[d])!=null&&(f=p.__i!=-1&&b[p.__i]||m,p.__i=d,v=se(e,p,f,i,a,o,s,c,l,u),g=p.__e,p.ref&&f.ref!=p.ref&&(f.ref&&fe(f.ref,null,p),u.push(p.ref,p.__c||g,p)),_==null&&g!=null&&(_=g),(y=!!(4&p.__u))||f.__k===p.__k?c=ne(p,c,e,y):typeof p.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),p.__u&=-7);return n.__e=_,c}function te(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?o=e.__k[a]=x(null,o,null,null,null):_(o)?o=e.__k[a]=x(S,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,c=a+f,o.__=e,o.__b=e.__b+1,s=null,(l=o.__i=k(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=w(s)),pe(s,s));return r}function ne(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=ne(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=w(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function re(e,t){return t=t||[],e==null||typeof e==`boolean`||(_(e)?e.some(function(e){re(e,t)}):t.push(e)),t}function k(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&(2&l.__u)==0;if(l===null&&s==null||u&&s==l.key&&c==l.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function ie(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n==null?``:typeof n!=`number`||g.test(t)?n:n+`px`}function ae(e,t,n,r,i){var a,o;n:if(t==`style`)if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||ie(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||ie(e.style,t,n[t])}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(l,`$1`)),o=t.toLowerCase(),t=o in e||t==`onFocusOut`||t==`onFocusIn`?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n.u=r.u:(n.u=u,e.addEventListener(t,a?f:d,a)):e.removeEventListener(t,a?f:d,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function oe(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=u++;else if(t.t<n.u)return;return n(r.event?r.event(t):t)}}}function se(e,t,n,i,a,o,s,c,l,u){var d,f,p,m,g,b,x,w,T,ee,E,D,te,ne,re,k=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[c=t.__e=n.__e]),(d=r.__b)&&d(t);n:if(typeof k==`function`)try{if(w=t.props,T=k.prototype&&k.prototype.render,ee=(d=k.contextType)&&i[d.__c],E=d?ee?ee.props.value:d.__:i,n.__c?x=(f=t.__c=n.__c).__=f.__E:(T?t.__c=f=new k(w,E):(t.__c=f=new C(w,E),f.constructor=k,f.render=me),ee&&ee.sub(f),f.state||(f.state={}),f.__n=i,p=f.__d=!0,f.__h=[],f._sb=[]),T&&f.__s==null&&(f.__s=f.state),T&&k.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=v({},f.__s)),v(f.__s,k.getDerivedStateFromProps(w,f.__s))),m=f.props,g=f.state,f.__v=t,p)T&&k.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),T&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(T&&k.getDerivedStateFromProps==null&&w!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(w,E),t.__v==n.__v||!f.__e&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(w,f.__s,E)){t.__v!=n.__v&&(f.props=w,f.state=f.__s,f.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),h.push.apply(f.__h,f._sb),f._sb=[],f.__h.length&&s.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(w,f.__s,E),T&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,g,b)})}if(f.context=E,f.props=w,f.__P=e,f.__e=!1,D=r.__r,te=0,T)f.state=f.__s,f.__d=!1,D&&D(t),d=f.render(f.props,f.state,f.context),h.push.apply(f.__h,f._sb),f._sb=[];else do f.__d=!1,D&&D(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(f.__d&&++te<25);f.state=f.__s,f.getChildContext!=null&&(i=v(v({},i),f.getChildContext())),T&&!p&&f.getSnapshotBeforeUpdate!=null&&(b=f.getSnapshotBeforeUpdate(m,g)),ne=d!=null&&d.type===S&&d.key==null?ue(d.props.children):d,c=O(e,_(ne)?ne:[ne],t,n,i,a,o,s,c,l,u),f.base=t.__e,t.__u&=-161,f.__h.length&&s.push(f),x&&(f.__E=f.__=null)}catch(e){if(t.__v=null,l||o!=null)if(e.then){for(t.__u|=l?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;o[o.indexOf(c)]=null,t.__e=c}else{for(re=o.length;re--;)y(o[re]);ce(t)}else t.__e=n.__e,t.__k=n.__k,e.then||ce(t);r.__e(e,t,n)}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):c=t.__e=de(n.__e,t,n,i,a,o,s,l,u);return(d=r.diffed)&&d(t),128&t.__u?void 0:c}function ce(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(ce))}function le(e,t,n){for(var i=0;i<n.length;i++)fe(n[i],n[++i],n[++i]);r.__c&&r.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){r.__e(e,t.__v)}})}function ue(e){return typeof e!=`object`||!e||e.__b>0?e:_(e)?e.map(ue):v({},e)}function de(e,t,i,a,o,s,c,l,u){var d,f,p,h,g,v,b,x=i.props||m,S=t.props,C=t.type;if(C==`svg`?o=`http://www.w3.org/2000/svg`:C==`math`?o=`http://www.w3.org/1998/Math/MathML`:o||(o=`http://www.w3.org/1999/xhtml`),s!=null){for(d=0;d<s.length;d++)if((g=s[d])&&`setAttribute`in g==!!C&&(C?g.localName==C:g.nodeType==3)){e=g,s[d]=null;break}}if(e==null){if(C==null)return document.createTextNode(S);e=document.createElementNS(o,C,S.is&&S),l&&(r.__m&&r.__m(t,s),l=!1),s=null}if(C==null)x===S||l&&e.data==S||(e.data=S);else{if(s=s&&n.call(e.childNodes),!l&&s!=null)for(x={},d=0;d<e.attributes.length;d++)x[(g=e.attributes[d]).name]=g.value;for(d in x)g=x[d],d==`dangerouslySetInnerHTML`?p=g:d==`children`||d in S||d==`value`&&`defaultValue`in S||d==`checked`&&`defaultChecked`in S||ae(e,d,null,g,o);for(d in S)g=S[d],d==`children`?h=g:d==`dangerouslySetInnerHTML`?f=g:d==`value`?v=g:d==`checked`?b=g:l&&typeof g!=`function`||x[d]===g||ae(e,d,g,x[d],o);if(f)l||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(p&&(e.innerHTML=``),O(t.type==`template`?e.content:e,_(h)?h:[h],t,i,a,C==`foreignObject`?`http://www.w3.org/1999/xhtml`:o,s,c,s?s[0]:i.__k&&w(i,0),l,u),s!=null)for(d=s.length;d--;)y(s[d]);l||(d=`value`,C==`progress`&&v==null?e.removeAttribute(`value`):v!=null&&(v!==e[d]||C==`progress`&&!v||C==`option`&&v!=x[d])&&ae(e,d,v,x[d],o),d=`checked`,b!=null&&b!=e[d]&&ae(e,d,b,x[d],o))}return e}function fe(e,t,n){try{if(typeof e==`function`){var i=typeof e.__u==`function`;i&&e.__u(),i&&t==null||(e.__u=e(t))}else e.current=t}catch(e){r.__e(e,n)}}function pe(e,t,n){var i,a;if(r.unmount&&r.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||fe(i,null,t)),(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){r.__e(e,t)}i.base=i.__P=null}if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&pe(i[a],t,n||typeof e.type!=`function`);n||y(e.__e),e.__c=e.__=e.__e=void 0}function me(e,t,n){return this.constructor(e,n)}function he(e,t,i){var a,o,s,c;t==document&&(t=document.documentElement),r.__&&r.__(e,t),o=(a=typeof i==`function`)?null:i&&i.__k||t.__k,s=[],c=[],se(t,e=(!a&&i||t).__k=b(S,null,[e]),o||m,m,t.namespaceURI,!a&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,s,!a&&i?i:o?o.__e:t.firstChild,a,c),le(s,e,c)}function ge(e){function t(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&n.forEach(function(e){e.__e=!0,E(e)})},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}return t.__c=`__cC`+ p++,t.__=e,t.Provider=t.__l=(t.Consumer=function(e,t){return e.children(t)}).contextType=t,t}n=h.slice,r={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(t){e=t}throw e}},i=0,C.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=v({},this.state);typeof e==`function`&&(e=e(v({},n),this.props)),e&&v(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),E(this))},C.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},C.prototype.render=S,a=[],s=typeof Promise==`function`?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c=function(e,t){return e.__v.__b-t.__v.__b},D.__r=0,l=/(PointerCapture)$|Capture$/i,u=0,d=oe(!1),f=oe(!0),p=0;var _e,A,ve,ye,be=0,xe=[],j=r,Se=j.__b,Ce=j.__r,we=j.diffed,Te=j.__c,Ee=j.unmount,De=j.__;function Oe(e,t){j.__h&&j.__h(A,e,be||t),be=0;var n=A.__H||(A.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function ke(e){return be=1,Ae(He,e)}function Ae(e,t,n){var r=Oe(_e++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):He(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=A,!A.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a&&a.call(this,e,t,n)||o};A.__f=!0;var a=A.shouldComponentUpdate,o=A.componentWillUpdate;A.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},A.shouldComponentUpdate=i}return r.__N||r.__}function je(e,t){var n=Oe(_e++,3);!j.__s&&Ve(n.__H,t)&&(n.__=e,n.u=t,A.__H.__h.push(n))}function Me(e,t){var n=Oe(_e++,4);!j.__s&&Ve(n.__H,t)&&(n.__=e,n.u=t,A.__h.push(n))}function M(e){return be=5,Ne(function(){return{current:e}},[])}function Ne(e,t){var n=Oe(_e++,7);return Ve(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Pe(e,t){return be=8,Ne(function(){return e},t)}function Fe(e){var t=A.context[e.__c],n=Oe(_e++,9);return n.c=e,t?(n.__??(n.__=!0,t.sub(A)),t.props.value):e.__}function Ie(){for(var e;e=xe.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(ze),t.__h.some(Be),t.__h=[]}catch(n){t.__h=[],j.__e(n,e.__v)}}}j.__b=function(e){A=null,Se&&Se(e)},j.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),De&&De(e,t)},j.__r=function(e){Ce&&Ce(e),_e=0;var t=(A=e.__c).__H;t&&(ve===A?(t.__h=[],A.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.some(ze),t.__h.some(Be),t.__h=[],_e=0)),ve=A},j.diffed=function(e){we&&we(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(xe.push(t)!==1&&ye===j.requestAnimationFrame||((ye=j.requestAnimationFrame)||Re)(Ie)),t.__H.__.some(function(e){e.u&&(e.__H=e.u),e.u=void 0})),ve=A=null},j.__c=function(e,t){t.some(function(e){try{e.__h.some(ze),e.__h=e.__h.filter(function(e){return!e.__||Be(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],j.__e(n,e.__v)}}),Te&&Te(e,t)},j.unmount=function(e){Ee&&Ee(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{ze(e)}catch(e){t=e}}),n.__H=void 0,t&&j.__e(t,n.__v))};var Le=typeof requestAnimationFrame==`function`;function Re(e){var t,n=function(){clearTimeout(r),Le&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Le&&(t=requestAnimationFrame(n))}function ze(e){var t=A,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),A=t}function Be(e){var t=A;e.__c=e.__(),A=t}function Ve(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function He(e,t){return typeof t==`function`?t(e):t}function Ue(e,t){for(var n in t)e[n]=t[n];return e}function We(e,t){for(var n in e)if(n!==`__source`&&!(n in t))return!0;for(var r in t)if(r!==`__source`&&e[r]!==t[r])return!0;return!1}function Ge(e,t){var n=t(),r=ke({t:{__:n,u:t}}),i=r[0].t,a=r[1];return Me(function(){i.__=n,i.u=t,Ke(i)&&a({t:i})},[e,n,t]),je(function(){return Ke(i)&&a({t:i}),e(function(){Ke(i)&&a({t:i})})},[e]),n}function Ke(e){try{return!((t=e.__)===(n=e.u())&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}var t,n}function qe(e,t){this.props=e,this.context=t}(qe.prototype=new C).isPureReactComponent=!0,qe.prototype.shouldComponentUpdate=function(e,t){return We(this.props,e)||We(this.state,t)};var Je=r.__b;r.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Je&&Je(e)},typeof Symbol<`u`&&Symbol.for;var Ye=r.__e;r.__e=function(e,t,n,r){if(e.then){for(var i,a=t;a=a.__;)if((i=a.__c)&&i.__c)return t.__e??(t.__e=n.__e,t.__k=n.__k),i.__c(e,t)}Ye(e,t,n,r)};var Xe=r.unmount;function Ze(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(e){typeof e.__c==`function`&&e.__c()}),e.__c.__H=null),(e=Ue({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(e){return Ze(e,t,n)})),e}function Qe(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(e){return Qe(e,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function $e(){this.__u=0,this.o=null,this.__b=null}function et(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function tt(){this.i=null,this.l=null}r.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Xe&&Xe(e)},($e.prototype=new C).__c=function(e,t){var n=t.__c,r=this;r.o??(r.o=[]),r.o.push(n);var i=et(r.__v),a=!1,o=function(){a||r.__z||(a=!0,n.__R=null,i?i(c):c())};n.__R=o;var s=n.__P;n.__P=null;var c=function(){if(!--r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=Qe(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=s,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(o,o)},$e.prototype.componentWillUnmount=function(){this.o=[]},$e.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement(`div`),r=this.__v.__k[0].__c;this.__v.__k[0]=Ze(this.__b,n,r.__O=r.__P)}this.__b=null}var i=t.__a&&b(S,null,e.fallback);return i&&(i.__u&=-33),[b(S,null,t.__a?null:e.children),i]};var nt=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!==`t`||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};(tt.prototype=new C).__a=function(e){var t=this,n=et(t.__v),r=t.l.get(e);return r[0]++,function(i){var a=function(){t.props.revealOrder?(r.push(i),nt(t,e,r)):i()};n?n(a):a()}},tt.prototype.render=function(e){this.i=null,this.l=new Map;var t=re(e.children);e.revealOrder&&e.revealOrder[0]===`b`&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},tt.prototype.componentDidUpdate=tt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){nt(e,n,t)})};var rt=typeof Symbol<`u`&&Symbol.for&&Symbol.for(`react.element`)||60103,it=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,at=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,ot=/[A-Z0-9]/g,st=typeof document<`u`,ct=function(e){return(typeof Symbol<`u`&&typeof Symbol()==`symbol`?/fil|che|rad/:/fil|che|ra/).test(e)};C.prototype.isReactComponent=!0,[`componentWillMount`,`componentWillReceiveProps`,`componentWillUpdate`].forEach(function(e){Object.defineProperty(C.prototype,e,{configurable:!0,get:function(){return this[`UNSAFE_`+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var lt=r.event;r.event=function(e){return lt&&(e=lt(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var ut={configurable:!0,get:function(){return this.class}},dt=r.vnode;r.vnode=function(e){typeof e.type==`string`&&function(e){var t=e.props,n=e.type,r={},i=n.indexOf(`-`)==-1;for(var a in t){var o=t[a];if(!(a===`value`&&`defaultValue`in t&&o==null||st&&a===`children`&&n===`noscript`||a===`class`||a===`className`)){var s=a.toLowerCase();a===`defaultValue`&&`value`in t&&t.value==null?a=`value`:a===`download`&&!0===o?o=``:s===`translate`&&o===`no`?o=!1:s[0]===`o`&&s[1]===`n`?s===`ondoubleclick`?a=`ondblclick`:s!==`onchange`||n!==`input`&&n!==`textarea`||ct(t.type)?s===`onfocus`?a=`onfocusin`:s===`onblur`?a=`onfocusout`:at.test(a)&&(a=s):s=a=`oninput`:i&&it.test(a)?a=a.replace(ot,`-$&`).toLowerCase():o===null&&(o=void 0),s===`oninput`&&r[a=s]&&(a=`oninputCapture`),r[a]=o}}n==`select`&&(r.multiple&&Array.isArray(r.value)&&(r.value=re(t.children).forEach(function(e){e.props.selected=r.value.indexOf(e.props.value)!=-1})),r.defaultValue!=null&&(r.value=re(t.children).forEach(function(e){e.props.selected=r.multiple?r.defaultValue.indexOf(e.props.value)!=-1:r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,`className`,ut)):t.className&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=rt,dt&&dt(e)};var ft=r.__r;r.__r=function(e){ft&&ft(e),e.__c};var pt=r.diffed;r.diffed=function(e){pt&&pt(e);var t=e.props,n=e.__e;n!=null&&e.type===`textarea`&&`value`in t&&t.value!==n.value&&(n.value=t.value==null?``:t.value)};var mt=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},ht=(e=>e?mt(e):mt),gt=e=>e;function _t(e){function t(t=gt){let n=Pe(()=>t(e.getState()),[t]);return Ge(e.subscribe,n)}return Object.assign(t,e)}function vt(){return e=>_t(ht()(e))}function yt(){if(typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`));return[t.slice(0,4).join(``),t.slice(4,6).join(``),t.slice(6,8).join(``),t.slice(8,10).join(``),t.slice(10).join(``)].join(`-`)}var bt=Symbol.for(`immer-nothing`),xt=Symbol.for(`immer-draftable`),N=Symbol.for(`immer-state`);function St(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Ct=Object,wt=Ct.getPrototypeOf,Tt=`constructor`,Et=`prototype`,Dt=`configurable`,Ot=`enumerable`,kt=`writable`,At=`value`,jt=e=>!!e&&!!e[N];function Mt(e){return e?Ft(e)||Ht(e)||!!e[xt]||!!e[Tt]?.[xt]||Ut(e)||Wt(e):!1}var Nt=Ct[Et][Tt].toString(),Pt=new WeakMap;function Ft(e){if(!e||!Gt(e))return!1;let t=wt(e);if(t===null||t===Ct[Et])return!0;let n=Ct.hasOwnProperty.call(t,Tt)&&t[Tt];if(n===Object)return!0;if(!Kt(n))return!1;let r=Pt.get(n);return r===void 0&&(r=Function.toString.call(n),Pt.set(n,r)),r===Nt}function It(e,t,n=!0){Lt(e)===0?(n?Reflect.ownKeys(e):Ct.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function Lt(e){let t=e[N];return t?t.type_:Ht(e)?1:Ut(e)?2:Wt(e)?3:0}var Rt=(e,t,n=Lt(e))=>n===2?e.has(t):Ct[Et].hasOwnProperty.call(e,t),zt=(e,t,n=Lt(e))=>n===2?e.get(t):e[t],Bt=(e,t,n,r=Lt(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Vt(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Ht=Array.isArray,Ut=e=>e instanceof Map,Wt=e=>e instanceof Set,Gt=e=>typeof e==`object`,Kt=e=>typeof e==`function`,qt=e=>typeof e==`boolean`;function Jt(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Yt=e=>Gt(e)?e?.[N]:null,Xt=e=>e.copy_||e.base_,Zt=e=>{let t=Yt(e);return t?t.copy_??t.base_:e},Qt=e=>e.modified_?e.copy_:e.base_;function $t(e,t){if(Ut(e))return new Map(e);if(Wt(e))return new Set(e);if(Ht(e))return Array[Et].slice.call(e);let n=Ft(e);if(t===!0||t===`class_only`&&!n){let t=Ct.getOwnPropertyDescriptors(e);delete t[N];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[kt]===!1&&(a[kt]=!0,a[Dt]=!0),(a.get||a.set)&&(t[i]={[Dt]:!0,[kt]:!0,[Ot]:a[Ot],[At]:e[i]})}return Ct.create(wt(e),t)}else{let t=wt(e);if(t!==null&&n)return{...e};let r=Ct.create(t);return Ct.assign(r,e)}}function en(e,t=!1){return rn(e)||jt(e)||!Mt(e)?e:(Lt(e)>1&&Ct.defineProperties(e,{set:nn,add:nn,clear:nn,delete:nn}),Ct.freeze(e),t&&It(e,(e,t)=>{en(t,!0)},!1),e)}function tn(){St(2)}var nn={[At]:tn};function rn(e){return e===null||!Gt(e)?!0:Ct.isFrozen(e)}var an=`MapSet`,on=`Patches`,sn=`ArrayMethods`,cn={};function ln(e){let t=cn[e];return t||St(0,e),t}var un=e=>!!cn[e];function dn(e,t){cn[e]||(cn[e]=t)}var fn,pn=()=>fn,P=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:un(an)?ln(an):void 0,arrayMethodsPlugin_:un(sn)?ln(sn):void 0});function F(e,t){t&&(e.patchPlugin_=ln(on),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function mn(e){hn(e),e.drafts_.forEach(I),e.drafts_=null}function hn(e){e===fn&&(fn=e.parent_)}var gn=e=>fn=P(fn,e);function I(e){let t=e[N];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function _n(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[N].modified_&&(mn(t),St(4)),Mt(e)&&(e=vn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[N].base_,e,t)}else e=vn(t,n);return yn(t,e,!0),mn(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===bt?void 0:e}function vn(e,t){if(rn(t))return t;let n=t[N];if(!n)return Dn(t,e.handledSet_,e);if(!xn(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);Tn(n,e)}return n.copy_}function yn(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&en(t,n)}function bn(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var xn=(e,t)=>e.scope_===t,Sn=[];function Cn(e,t,n,r){let i=Xt(e),a=e.type_;if(r!==void 0&&zt(i,r,a)===t){Bt(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;It(i,(e,n)=>{if(jt(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??Sn;for(let e of o)Bt(i,e,n,a)}function wn(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!xn(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Qt(i);Cn(e,i.draft_??i,a,n),Tn(i,r)})}function Tn(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}bn(e)}}function En(e,t,n){let{scope_:r}=e;if(jt(n)){let i=n[N];xn(i,r)&&i.callbacks_.push(function(){Pn(e),Cn(e,n,Qt(i),t)})}else Mt(n)&&e.callbacks_.push(function(){let i=Xt(e);e.type_===3?i.has(n)&&Dn(n,r.handledSet_,r):zt(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Dn(zt(e.copy_,t,e.type_),r.handledSet_,r)})}function Dn(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||jt(e)||t.has(e)||!Mt(e)||rn(e)?e:(t.add(e),It(e,(r,i)=>{if(jt(i)){let t=i[N];xn(t,n)&&(Bt(e,r,Qt(t),e.type_),bn(t))}else Mt(i)&&Dn(i,t,n)}),e)}function L(e,t){let n=Ht(e),r={type_:n?1:0,scope_:t?t.scope_:pn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=On;n&&(i=[r],a=kn);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var On={get(e,t){if(t===N)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Xt(e);if(!Rt(i,t,e.type_))return jn(e,i,t);let a=i[t];if(e.finalized_||!Mt(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Jt(t))return a;if(a===An(e.base_,t)){Pn(e);let n=e.type_===1?+t:t,r=In(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Xt(e)},ownKeys(e){return Reflect.ownKeys(Xt(e))},set(e,t,n){let r=Mn(Xt(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=An(Xt(e),t),i=r?.[N];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Vt(n,r)&&(n!==void 0||Rt(e.base_,t,e.type_)))return!0;Pn(e),Nn(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),En(e,t,n),!0)},deleteProperty(e,t){return Pn(e),An(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Nn(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Xt(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[kt]:!0,[Dt]:e.type_!==1||t!==`length`,[Ot]:r[Ot],[At]:n[t]}},defineProperty(){St(11)},getPrototypeOf(e){return wt(e.base_)},setPrototypeOf(){St(12)}},kn={};for(let e in On){let t=On[e];kn[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}kn.deleteProperty=function(e,t){return kn.set.call(this,e,t,void 0)},kn.set=function(e,t,n){return On.set.call(this,e[0],t,n,e[0])};function An(e,t){let n=e[N];return(n?Xt(n):e)[t]}function jn(e,t,n){let r=Mn(t,n);return r?At in r?r[At]:r.get?.call(e.draft_):void 0}function Mn(e,t){if(!(t in e))return;let n=wt(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=wt(n)}}function Nn(e){e.modified_||(e.modified_=!0,e.parent_&&Nn(e.parent_))}function Pn(e){e.copy_||(e.assigned_=new Map,e.copy_=$t(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Fn=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(Kt(e)&&!Kt(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}Kt(t)||St(6),n!==void 0&&!Kt(n)&&St(7);let r;if(Mt(e)){let i=gn(this),a=In(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?mn(i):hn(i)}return F(i,n),_n(r,i)}else if(!e||!Gt(e)){if(r=t(e),r===void 0&&(r=e),r===bt&&(r=void 0),this.autoFreeze_&&en(r,!0),n){let t=[],i=[];ln(on).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else St(1,e)},this.produceWithPatches=(e,t)=>{if(Kt(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},qt(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),qt(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),qt(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Mt(e)||St(8),jt(e)&&(e=Ln(e));let t=gn(this),n=In(t,e,void 0);return n[N].isManual_=!0,hn(t),n}finishDraft(e,t){let n=e&&e[N];(!n||!n.isManual_)&&St(9);let{scope_:r}=n;return F(r,t),_n(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=ln(on).applyPatches_;return jt(e)?r(e,t):this.produce(e,e=>r(e,t))}};function In(e,t,n,r){let[i,a]=Ut(t)?ln(an).proxyMap_(t,n):Wt(t)?ln(an).proxySet_(t,n):L(t,n);return(n?.scope_??pn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?wn(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function Ln(e){return jt(e)||St(10,e),Rn(e)}function Rn(e){if(!Mt(e)||rn(e))return e;let t=e[N],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=$t(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=$t(e,!0);return It(n,(e,t)=>{Bt(n,e,Rn(t))},r),t&&(t.finalized_=!1),n}function zn(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Yt(zt(e,n.key_)),i=zt(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||Rt(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=zt(n,r),!Gt(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[N];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;It(e.assigned_,(e,l)=>{let u=zt(o,e,c),f=zt(s,e,c),p=l?Rt(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===bt?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=Lt(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===Tt)&&St(19),Kt(o)&&n===Et&&St(19),o=zt(o,n),Gt(o)||St(18,i.join(`/`))}let s=Lt(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:St(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:St(17,a)}}),e}function u(e){if(!Mt(e))return e;if(Ht(e))return e.map(u);if(Ut(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(Wt(e))return new Set(Array.from(e).map(u));let t=Object.create(wt(e));for(let n in e)t[n]=u(e[n]);return Rt(e,xt)&&(t[xt]=e[xt]),t}function d(e){return jt(e)?u(e):e}dn(on,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}function Bn(){class e extends Map{constructor(e,t){super(),this[N]={type_:2,parent_:t,scope_:t?t.scope_:pn(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:e,draft_:this,isManual_:!1,revoked_:!1,callbacks_:[]}}get size(){return Xt(this[N]).size}has(e){return Xt(this[N]).has(e)}set(e,t){let r=this[N];return o(r),(!Xt(r).has(e)||Xt(r).get(e)!==t)&&(n(r),Nn(r),r.assigned_.set(e,!0),r.copy_.set(e,t),r.assigned_.set(e,!0),En(r,e,t)),this}delete(e){if(!this.has(e))return!1;let t=this[N];return o(t),n(t),Nn(t),t.base_.has(e)?t.assigned_.set(e,!1):t.assigned_.delete(e),t.copy_.delete(e),!0}clear(){let e=this[N];o(e),Xt(e).size&&(n(e),Nn(e),e.assigned_=new Map,It(e.base_,t=>{e.assigned_.set(t,!1)}),e.copy_.clear())}forEach(e,t){let n=this[N];Xt(n).forEach((n,r,i)=>{e.call(t,this.get(r),r,this)})}get(e){let t=this[N];o(t);let r=Xt(t).get(e);if(t.finalized_||!Mt(r)||r!==t.base_.get(e))return r;let i=In(t.scope_,r,t,e);return n(t),t.copy_.set(e,i),i}keys(){return Xt(this[N]).keys()}values(){let e=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let t=e.next();return t.done?t:{done:!1,value:this.get(t.value)}}}}entries(){let e=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let t=e.next();if(t.done)return t;let n=this.get(t.value);return{done:!1,value:[t.value,n]}}}}[Symbol.iterator](){return this.entries()}}function t(t,n){let r=new e(t,n);return[r,r[N]]}function n(e){e.copy_||(e.assigned_=new Map,e.copy_=new Map(e.base_))}class r extends Set{constructor(e,t){super(),this[N]={type_:3,parent_:t,scope_:t?t.scope_:pn(),modified_:!1,finalized_:!1,copy_:void 0,base_:e,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1,assigned_:void 0,callbacks_:[]}}get size(){return Xt(this[N]).size}has(e){let t=this[N];return o(t),t.copy_?!!(t.copy_.has(e)||t.drafts_.has(e)&&t.copy_.has(t.drafts_.get(e))):t.base_.has(e)}add(e){let t=this[N];return o(t),this.has(e)||(a(t),Nn(t),t.copy_.add(e),En(t,e,e)),this}delete(e){if(!this.has(e))return!1;let t=this[N];return o(t),a(t),Nn(t),t.copy_.delete(e)||(t.drafts_.has(e)?t.copy_.delete(t.drafts_.get(e)):!1)}clear(){let e=this[N];o(e),Xt(e).size&&(a(e),Nn(e),e.copy_.clear())}values(){let e=this[N];return o(e),a(e),e.copy_.values()}entries(){let e=this[N];return o(e),a(e),e.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(e,t){let n=this.values(),r=n.next();for(;!r.done;)e.call(t,r.value,r.value,this),r=n.next()}}function i(e,t){let n=new r(e,t);return[n,n[N]]}function a(e){e.copy_||(e.copy_=new Set,e.base_.forEach(t=>{if(Mt(t)){let n=In(e.scope_,t,e,t);e.drafts_.set(t,n),e.copy_.add(n)}else e.copy_.add(t)}))}function o(e){e.revoked_&&St(3,JSON.stringify(Xt(e)))}function s(e){if(e.type_===3&&e.copy_){let t=new Set(e.copy_);e.copy_.clear(),t.forEach(t=>{e.copy_.add(Zt(t))})}}dn(an,{proxyMap_:t,proxySet_:i,fixSetContents:s})}var Vn=new Fn().produce,Hn=e=>(t,n,r)=>(r.setState=(e,n,...r)=>t(typeof e==`function`?Vn(e):e,n,...r),e(r.setState,n,r)),Un={$:`variable`,_:`temporary`,\"@\":`local`,\"%\":`transient`},Wn=Object.fromEntries(Object.entries(Un).map(([e,t])=>[t,e])),Gn=new Set(Object.keys(Un));function Kn(e){return e!==void 0&&Gn.has(e)}function qn(e,t){return t.className&&(e.className=t.className),t.id&&(e.id=t.id),e}var Jn={SIGIL_SCOPES:Un,withSelectors:qn},Yn=`{`,Xn=`}`,{SIGIL_SCOPES:Zn,withSelectors:Qn}=Jn,$n=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),er={elseif:`if`,else:`if`,case:`switch`,default:`switch`,next:`timed`},tr=new Set([`if`,`switch`,`timed`]),nr=[[`|`,!1],[`->`,!1],[`<-`,!0]],rr={},ir=/^<[a-zA-Z0-9.!#$%&'*+/=?^_`|~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*>$/;function ar(e,t){let n=(n,r)=>{let i=e.slice(n,r),a=i.trim(),o=t+n+(a?i.indexOf(a):0);return{value:a,start:o,end:o+a.length}};for(let[t,r]of nr){let i=e.indexOf(t);if(i===-1)continue;let a=n(0,i),o=n(i+t.length,e.length),[s,c]=r?[o,a]:[a,o];return{display:s.value,target:c.value,targetStart:c.start,targetEnd:c.end}}let r=n(0,e.length);return{display:r.value,target:r.value,targetStart:r.start,targetEnd:r.end}}function or(e){return`\"`+e.replace(/[\\\\\"]/g,`\\\\$&`)+`\"`}function sr(e){let t=[],n=``;for(let[r,i]of e)i&&(r===`.`?t.push(i):n=i);return Qn({},{className:t.join(` `),id:n})}function cr(e){return e.lex===`html`?(e.isClose?`</`:`<`)+e.tag+`>`:Yn+(e.isClose?`/`:``)+e.name+Xn}function lr(e){return e.lex===`html`?`</`+e.tag+`>`:Yn+`/`+e.name+Xn}function ur(e){return`line `+e.start.line+`, column `+e.start.column}function dr(e,t){return e.lex===t.lex&&e.lower===t.lower}function fr(e,t,n){return n.lex=e,n.start=t.start.offset,n.end=t.end.offset,n.loc=t,n}function pr(e){switch(e.lex){case`text`:return{type:`text`,value:e.value};case`link`:return Qn({type:`macro`,name:`link`,rawArgs:or(e.display)+` `+or(e.target),children:[]},e);case`variable`:return Qn({type:`variable`,name:e.name,scope:e.scope},e);case`expression`:return Qn({type:`expression`,expression:e.expression},e);default:return e}}function mr(e){let t={start:e.start,end:e.end};switch(e.lex){case`text`:return{type:`text`,value:e.value,...t};case`link`:return Qn({type:`link`,display:e.display,target:e.target,targetStart:e.targetStart,targetEnd:e.targetEnd,...t},e);case`variable`:return Qn({type:`variable`,name:e.name,scope:e.scope,...t},e);case`expression`:return Qn({type:`expression`,expression:e.expression,...t},e);case`macro`:return Qn({type:`macro`,name:e.name,rawArgs:e.rawArgs,isClose:e.isClose,...t},e);case`html`:return{type:`html`,tag:e.tag,attributes:e.attributes,isClose:e.isClose,isSelfClose:e.isSelfClose,...t}}}function hr(e,t){let n=[],r=null,i=e=>{if(e!=null){if(Array.isArray(e))return e.forEach(i);if(e.lex===`text`&&!e.escape&&r&&r.lex===`text`&&!r.escape&&r.end===e.start){r.value+=e.value,r.end=e.end;return}n.push(e),r=e}};return i(e),t?n.map(t):n}var gr=class extends SyntaxError{constructor(e,t,n,r){super(e),this.expected=t,this.found=n,this.location=r,this.name=`SyntaxError`}format(e){let t=`Error: `+this.message;if(this.location){let n=null,r=e.find(e=>e.source===this.location.source);r&&(n=r.text.split(/\\r\\n|\\n|\\r/g));let i=this.location.start,a=this.location.source&&typeof this.location.source.offset==`function`?this.location.source.offset(i):i,o=this.location.source+`:`+a.line+`:`+a.column;if(n){let e=this.location.end,r=``.padEnd(a.line.toString().length,` `),s=n[i.line-1],c=(i.line===e.line?e.column:s.length+1)-i.column||1;t+=`\n --> `+o+`\n`+r+` |\n`+a.line+` | `+s+`\n`+r+` | `+``.padEnd(i.column-1,` `)+``.padEnd(c,`^`)}else t+=`\n at `+o}return t}static buildMessage(e,t){function n(e){return e.codePointAt(0).toString(16).toUpperCase()}let r=Object.prototype.hasOwnProperty.call(RegExp.prototype,`unicode`)?RegExp(`[\\\\p{C}\\\\p{Mn}\\\\p{Mc}]`,`gu`):null;function i(e){return r?e.replace(r,e=>`\\\\u{`+n(e)+`}`):e}function a(e){return i(e.replace(/\\\\/g,`\\\\\\\\`).replace(/\"/g,`\\\\\"`).replace(/\\0/g,`\\\\0`).replace(/\\t/g,`\\\\t`).replace(/\\n/g,`\\\\n`).replace(/\\r/g,`\\\\r`).replace(/[\\x00-\\x0F]/g,e=>`\\\\x0`+n(e)).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,e=>`\\\\x`+n(e)))}function o(e){return i(e.replace(/\\\\/g,`\\\\\\\\`).replace(/\\]/g,`\\\\]`).replace(/\\^/g,`\\\\^`).replace(/-/g,`\\\\-`).replace(/\\0/g,`\\\\0`).replace(/\\t/g,`\\\\t`).replace(/\\n/g,`\\\\n`).replace(/\\r/g,`\\\\r`).replace(/[\\x00-\\x0F]/g,e=>`\\\\x0`+n(e)).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g,e=>`\\\\x`+n(e)))}let s={literal(e){return`\"`+a(e.text)+`\"`},class(e){let t=e.parts.map(e=>Array.isArray(e)?o(e[0])+`-`+o(e[1]):o(e));return`[`+(e.inverted?`^`:``)+t.join(``)+`]`+(e.unicode?`u`:``)},any(){return`any character`},end(){return`end of input`},other(e){return e.description}};function c(e){return s[e.type](e)}function l(e){let t=e.map(c);if(t.sort(),t.length>0){let e=1;for(let n=1;n<t.length;n++)t[n-1]!==t[n]&&(t[e]=t[n],e++);t.length=e}switch(t.length){case 1:return t[0];case 2:return t[0]+` or `+t[1];default:return t.slice(0,-1).join(`, `)+`, or `+t[t.length-1]}}function u(e){return e?`\"`+a(e)+`\"`:`end of input`}return`Expected `+l(e)+` but `+u(t)+` found.`}};function _r(e,t){t=t===void 0?{}:t;let n={},r=t.grammarSource,i={Markup:An,Tokens:Hn,SelectorsPrefix:yr},a=An,o=`\\x3C!--`,s=/^[^\\\\{[<]/,c=/^[{}]/,l=/^[$_@%(!\\/a-zA-Z]/,u=/^[.#]/,d=/^[a-zA-Z0-9_\\-]/,f=/^[$_@%]/,p=/^[a-zA-Z0-9_.]/,m=/^[$_@%(!]/,h=/^[a-zA-Z]/,g=/^[^ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF}]/,_=/^[a-zA-Z0-9.!#$%&'*+\\/=?\\^_`|~\\-]/,v=/^[a-zA-Z0-9.\\-]/,y=/^[\\t-\\r \\/>\\xA0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,b=/^[a-zA-Z0-9\\-]/,x=/^[\\t-\\r \"'\\/<->{}\\xA0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,S=/^[^\"]/,C=/^[^']/,w=/^[\"']/,T=/^[^ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF>]/,ee=/^[ \\t\\n\\r\\v\\f\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]/,E=wn(),D=Cn([`\\\\`,`{`,`[`,`<`],!0,!1,!1),O=Sn(`\\x3C!--`,!1),te=Sn(`>`,!1),ne=Sn(`->`,!1),re=Sn(`-->`,!1),k=Sn(`\\\\`,!1),ie=Cn([`{`,`}`],!1,!1,!1),ae=Sn(`{`,!1),oe=Cn([`$`,`_`,`@`,`%`,`(`,`!`,`/`,[`a`,`z`],[`A`,`Z`]],!1,!1,!1),se=Sn(`<`,!1),ce=Sn(`[`,!1),le=Sn(`[[`,!1),ue=Sn(`]]`,!1),de=Sn(` `,!1),fe=Cn([`.`,`#`],!1,!1,!1),pe=Cn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`_`,`-`],!1,!1,!1),me=Cn([`$`,`_`,`@`,`%`],!1,!1,!1),he=Cn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`_`,`.`],!1,!1,!1),ge=Sn(`}`,!1),_e=Cn([`$`,`_`,`@`,`%`,`(`,`!`],!1,!1,!1),A=Sn(`/`,!1),ve=Cn([[`a`,`z`],[`A`,`Z`]],!1,!1,!1),ye=Cn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``,`}`],!0,!1,!1),be=Cn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`.`,`!`,`#`,`$`,`%`,`&`,`'`,`*`,`+`,`/`,`=`,`?`,`^`,`_`,\"`\",`|`,`~`,`-`],!1,!1,!1),xe=Sn(`@`,!1),j=Cn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`.`,`-`],!1,!1,!1),Se=Cn([[`\t`,`\\r`],` `,`/`,`>`,`\\xA0`,` `,[` `,` `],[`\\u2028`,`\\u2029`],` `,` `,` `,``],!1,!1,!1),Ce=Sn(`</`,!1),we=Cn([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`-`],!1,!1,!1),Te=Cn([[`\t`,`\\r`],` `,`\"`,`'`,`/`,[`<`,`>`],`{`,`}`,`\\xA0`,` `,[` `,` `],[`\\u2028`,`\\u2029`],` `,` `,` `,``],!1,!1,!1),Ee=Sn(`=`,!1),De=Sn(`\"`,!1),Oe=Cn([`\"`],!0,!1,!1),ke=Sn(`'`,!1),Ae=Cn([`'`],!0,!1,!1),je=Cn([`\"`,`'`],!1,!1,!1),Me=Cn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``,`>`],!0,!1,!1),M=Cn([` `,`\t`,`\n`,`\\r`,`\\v`,`\\f`,`\\xA0`,` `,[` `,` `],`\\u2028`,`\\u2029`,` `,` `,` `,``],!1,!1,!1);function Ne(e){return e}function Pe(e){B(cr(e)+` must be directly inside {`+er[e.lower]+Xn,e.loc)}function Fe(e){B(cr(e)+` closes nothing: no `+(e.lex===`html`?`<`+e.tag+`>`:Yn+e.name+Xn)+` is open here`,e.loc)}function Ie(e){return hr(e,pr)}function Le(e){return e.kind===`open`}function Re(e){return zr=e.lower,Ir.isRaw(zr)}function ze(e,t){return t}function Be(e){return Ir.isBlock(e.lower)}function Ve(e,t){return t}function He(e){return null}function Ue(e,t){return Hr(e,t)}function We(){return!R}function Ge(e){return!e.isSelfClose}function Ke(e,t){return t}function qe(e,t){let n={type:`html`,tag:e.tag,attributes:e.attributes,children:[]};return t&&(Vr(e,t),n.children=t.children),n}function Je(e,t,n){return{children:e,branches:t,end:n}}function Ye(e,t){return{tag:e,children:t}}function Xe(){return null}function Ze(e){return e.kind===`branch`}function Qe(e){return e}function $e(e){return e.kind===`close`}function et(e){return e}function tt(){return!R}function nt(e){return e}function rt(t){return z(Ir.rawBodyEnd(e,t,zr))}function it(e){return Lr-vn()}function at(e,t,n){return{children:t?[{type:`text`,value:t}]:[],branches:[],end:n}}function ot(){return{children:[],branches:[],end:null}}function st(e){return hr(e,mr)}function ct(){return!R}function lt(e){return e}function ut(){return!R}function dt(e){return $n.has(e.lower)?null:e}function ft(e){return zr=e.lower,e.kind===`open`&&Ir.isRaw(zr)}function pt(e,t){return t}function mt(e,t){return t?[e,t]:e}function ht(t){return z(Ir.rawBodyEnd(e,t,zr))}function gt(e){return Lr-vn()}function _t(e,t,n){let r={start:{offset:e},end:{offset:e+t.length}};return[t?fr(`text`,r,{value:t}):null,n]}function vt(){return vn()}function yt(e){return fr(`text`,yn(),{value:e})}function bt(e){return fr(`text`,yn(),{value:e})}function xt(e){return e.length%2==1}function N(e,t){return t}function St(t,n){let r=yn(),i=e.charAt(r.end.offset);if(R){if(!n&&i!==Yn&&i!==Xn)return fr(`text`,r,{value:t});let e=fr(`text`,r,{value:`\\\\`.repeat(t.length>>1)+(n||``)});return e.escape=!0,e}if(!n)return fr(`text`,r,{value:t});let a=fr(`text`,r,{value:t.slice(1)});a.end=r.end.offset-2;let o=fr(`text`,r,{value:n});return o.start=r.end.offset-2,o.escape=!0,t.length>1?[a,o]:o}function Ct(){return fr(`text`,yn(),{value:Yn})}function wt(){return!R}function Tt(){return fr(`text`,yn(),{value:`<`})}function Et(){return fr(`text`,yn(),{value:`[`})}function Dt(){return!R}function Ot(e,t,n){return Qn(fr(`link`,yn(),ar(n,t)),e)}function kt(){return!R}function At(){B(`Unclosed link: [[ without ]]`,yn())}function jt(e){return sr(e)}function Mt(){return rr}function Nt(e,t){return{...e,end:t}}function Pt(e,t){return[e,t]}function Ft(e,t,n){return Qn(fr(`variable`,yn(),{name:n,scope:Zn[t]}),e)}function It(e,t){return Qn(fr(`expression`,yn(),{expression:t}),e)}function Lt(){B(`Unclosed `+Yn+e.substr(yn().end.offset,1)+`…: no } ends it`,yn())}function Rt(t){return z(Ir.closeBrace(e,t,t))}function zt(e){return Lr-vn()}function Bt(e,t){return t}function Vt(t,n,r,i,a){return z(Ir.closeBrace(e,a,n))}function Ht(e,t,n,r,i){return Lr-vn()}function Ut(e,t,n,r,i,a){return a}function Wt(e,t,n,r,i,a){let o=yn(),s=r.toLowerCase(),c=fr(`macro`,o,{name:r,lower:s,rawArgs:``,isClose:!!n});return a===null&&B(`Unclosed `+Yn+(n?`/`:``)+r+`…: no } ends the macro`,o),c.rawArgs=a.trim(),n?(e!==rr&&B(`A closing tag takes no selectors: `+cr(c),o),c.rawArgs&&B(`A closing tag takes no arguments: `+Yn+`/`+r+` `+c.rawArgs+Xn,o),c.kind=`close`):(Qn(c,e),c.kind=Object.prototype.hasOwnProperty.call(er,s)?`branch`:`open`),c}function Gt(e){B(`A closing tag starts with a letter after `+Yn+`/`,yn())}function Kt(e){return ir.test(e)}function qt(e){return fr(`text`,yn(),{value:e})}function Jt(){return!R}function Yt(e){return $n.has(e.lower)}function Xt(e){return null}function Zt(e,t,n){let r=e.toLowerCase();return fr(`html`,yn(),{tag:e,lower:r,attributes:Br(t),isClose:!1,isSelfClose:!!n||$n.has(r)})}function Qt(t,n){let r=e.charAt(n);r||B(`Unclosed tag <`+t+`: no > ends it (write < for a < that starts no tag)`,yn());let i={source:yn().source,start:{offset:n,line:0,column:0},end:{offset:n+1,line:0,column:0}};B(`Unexpected `+JSON.stringify(r)+` in the tag <`+t+`>: expected an attribute, or > to end the tag`,i)}function $t(e){return fr(`html`,yn(),{tag:e,lower:e.toLowerCase(),attributes:{},isClose:!0,isSelfClose:!1})}function en(e){return Rr=Ir.isCodeAttribute(e),!0}function tn(e,t){return t}function nn(e,t){return[e,t??``]}function rn(e){return e}function an(e){return e}function on(e){B(`Unclosed attribute value: the `+e+` here has no closing `+e,yn())}function sn(){return!Rr}function cn(e){return e.length%2==1}function ln(){return!Rr}function un(t,n){return z(Ir.closeBrace(e,n,t))}function dn(e,t){return Lr-vn()}function fn(){return!Rr}function pn(){return Rr}let P=t.peg$currPos|0,F=P,mn=[{line:1,column:1}],hn=P,gn=t.peg$maxFailExpected||[],I=t.peg$silentFails|0,_n;if(t.startRule){if(!(t.startRule in i))throw Error(`Can't start parsing from rule \"`+t.startRule+`\".`);a=i[t.startRule]}function vn(){return F}function yn(){return Dn(F,P)}function bn(e,t){throw t=t===void 0?Dn(F,P):t,On(e,t)}function xn(t=P){let n=e.codePointAt(t);return n===void 0?``:String.fromCodePoint(n)}function Sn(e,t){return{type:`literal`,text:e,ignoreCase:t}}function Cn(e,t,n,r){return{type:`class`,parts:e,inverted:t,ignoreCase:n,unicode:r}}function wn(){return{type:`any`}}function Tn(){return{type:`end`}}function En(t){let n=mn[t],r;if(n)return n;if(t>=mn.length)r=mn.length-1;else for(r=t;!mn[--r];);for(n=mn[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return mn[t]=n,n}function Dn(e,t,n){let i=En(e),a=En(t),o={source:r,start:{offset:e,line:i.line,column:i.column},end:{offset:t,line:a.line,column:a.column}};return n&&r&&typeof r.offset==`function`&&(o.start=r.offset(o.start),o.end=r.offset(o.end)),o}function L(e){P<hn||(P>hn&&(hn=P,gn=[]),gn.push(e))}function On(e,t){return new gr(e,null,null,t)}function kn(e,t,n){return new gr(gr.buildMessage(e,t),e,t,n)}function An(){let e,t,r;return e=P,t=Mn(),r=jn(),r===n?(P=e,e=n):(F=e,e=Ne(t)),e}function jn(){let t,r;return t=P,I++,e.length>P?(r=e.charAt(P),P++):(r=n,I===0&&L(E)),I--,r===n?t=void 0:(P=t,t=n),t===n&&(t=P,r=zn(),r!==n&&(F=t,r=Pe(r)),t=r,t===n&&(t=P,r=Bn(),r!==n&&(F=t,r=Fe(r)),t=r)),t}function Mn(){let e,t,r;for(e=P,t=[],r=Nn();r!==n;)t.push(r),r=Nn();return F=e,t=Ie(t),e=t,e}function Nn(){let e;return e=Kn(),e===n&&(e=Jn(),e===n&&(e=qn(),e===n&&(e=or(),e===n&&(e=Er(),e===n&&(e=Fn(),e===n&&(e=Dr(),e===n&&(e=Sr(),e===n&&(e=Pn(),e===n&&(e=nr()))))))))),e}function Pn(){let e,t,r,i,a,o;return e=P,t=wr(),t===n?(P=e,e=n):(F=P,r=Le(t),r=r?void 0:n,r===n?(P=e,e=n):(i=P,F=P,a=Re(t),a=a?void 0:n,a===n?(P=i,i=n):(o=Vn(),o===n?(P=i,i=n):(F=i,i=ze(t,o))),i===n&&(i=P,F=P,a=Be(t),a=a?void 0:n,a===n?(P=i,i=n):(o=In(),o===n?(P=i,i=n):(F=i,i=Ve(t,o))),i===n&&(i=P,a=``,F=i,a=He(t),i=a)),i===n?(P=e,e=n):(F=e,e=Ue(t,i)))),e}function Fn(){let e,t,r,i,a,o;return e=P,F=P,t=We(),t=t?void 0:n,t===n?(P=e,e=n):(r=Or(),r===n?(P=e,e=n):(i=P,F=P,a=Ge(r),a=a?void 0:n,a===n?(P=i,i=n):(o=In(),o===n?(P=i,i=n):(F=i,i=Ke(r,o))),i===n&&(i=null),F=e,e=qe(r,i))),e}function In(){let e,t,r,i;if(e=P,t=Mn(),t!==n){for(r=[],i=Ln();i!==n;)r.push(i),i=Ln();i=Rn(),i===n?(P=e,e=n):(F=e,e=Je(t,r,i))}else P=e,e=n;return e}function Ln(){let e,t,r;return e=P,t=zn(),t===n?(P=e,e=n):(r=Mn(),r===n?(P=e,e=n):(F=e,e=Ye(t,r))),e}function Rn(){let t,r,i;return t=Bn(),t===n&&(t=P,r=P,I++,e.length>P?(i=e.charAt(P),P++):(i=n,I===0&&L(E)),I--,i===n?r=void 0:(P=r,r=n),r!==n&&(F=t,r=Xe()),t=r),t}function zn(){let e,t,r;return e=P,t=wr(),t===n?(P=e,e=n):(F=P,r=Ze(t),r=r?void 0:n,r===n?(P=e,e=n):(F=e,e=Qe(t))),e}function Bn(){let e,t,r;return e=P,t=wr(),t===n?(P=e,e=n):(F=P,r=$e(t),r=r?void 0:n,r===n?(P=e,e=n):(F=e,e=et(t))),e===n&&(e=P,F=P,t=tt(),t=t?void 0:n,t===n?(P=e,e=n):(r=kr(),r===n?(P=e,e=n):(F=e,e=nt(r)))),e}function Vn(){let t,r,i,a,o,s,c,l;if(t=P,r=Gn(),F=P,i=rt(r),i=i?void 0:n,i!==n){for(a=P,o=it(r),s=P,c=[],c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));c.length<(o|0)?(P=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,P),a===n?(P=t,t=n):(o=Bn(),o===n?(P=t,t=n):(F=t,t=at(r,a,o)))}else P=t,t=n;return t===n&&(t=P,r=``,F=t,r=ot(),t=r),t}function Hn(){let e,t,r;for(e=P,t=[],r=Un();r!==n;)t.push(r),r=Un();return F=e,t=st(t),e=t,e}function Un(){let e,t,r,i,a;return e=Kn(),e===n&&(e=Jn(),e===n&&(e=qn(),e===n&&(e=or(),e===n&&(e=Er(),e===n&&(e=P,F=P,t=ct(),t=t?void 0:n,t===n?(P=e,e=n):(r=Or(),r===n?(P=e,e=n):(F=e,e=lt(r))),e===n&&(e=P,F=P,t=ut(),t=t?void 0:n,t===n?(P=e,e=n):(r=kr(),r===n?(P=e,e=n):(F=e,e=dt(r))),e===n&&(e=Sr(),e===n&&(e=P,t=wr(),t===n?(P=e,e=n):(r=P,F=P,i=ft(t),i=i?void 0:n,i===n?(P=r,r=n):(a=Wn(),a===n?(P=r,r=n):(F=r,r=pt(t,a))),r===n&&(r=null),F=e,e=mt(t,r)),e===n&&(e=nr()))))))))),e}function Wn(){let t,r,i,a,o,s,c,l;if(t=P,r=Gn(),F=P,i=ht(r),i=i?void 0:n,i!==n){for(a=P,o=gt(r),s=P,c=[],c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));c.length<(o|0)?(P=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,P),a===n?(P=t,t=n):(o=Bn(),o===n?(P=t,t=n):(F=t,t=_t(r,a,o)))}else P=t,t=n;return t}function Gn(){let e,t;return e=P,t=``,F=e,t=vt(),e=t,e}function Kn(){let t,r,i,a;if(t=P,r=P,i=[],a=e.charAt(P),s.test(a)?P++:(a=n,I===0&&L(D)),a!==n)for(;a!==n;)i.push(a),a=e.charAt(P),s.test(a)?P++:(a=n,I===0&&L(D));else i=n;return r=i===n?i:e.substring(r,P),r!==n&&(F=t,r=yt(r)),t=r,t}function qn(){let t,r,i,a,s,c,l,u,d;if(t=P,r=P,i=P,e.substr(P,4)===o?(a=o,P+=4):(a=n,I===0&&L(O)),a!==n){if(e.charCodeAt(P)===62?(s=`>`,P++):(s=n,I===0&&L(te)),s===n&&(e.substr(P,2)===`->`?(s=`->`,P+=2):(s=n,I===0&&L(ne)),s===n)){for(s=P,c=[],l=P,u=P,I++,e.substr(P,3)===`-->`?(d=`-->`,P+=3):(d=n,I===0&&L(re)),I--,d===n?u=void 0:(P=u,u=n),u===n?(P=l,l=n):(e.length>P?(d=e.charAt(P),P++):(d=n,I===0&&L(E)),d===n?(P=l,l=n):(u=[u,d],l=u));l!==n;)c.push(l),l=P,u=P,I++,e.substr(P,3)===`-->`?(d=`-->`,P+=3):(d=n,I===0&&L(re)),I--,d===n?u=void 0:(P=u,u=n),u===n?(P=l,l=n):(e.length>P?(d=e.charAt(P),P++):(d=n,I===0&&L(E)),d===n?(P=l,l=n):(u=[u,d],l=u));e.substr(P,3)===`-->`?(l=`-->`,P+=3):(l=n,I===0&&L(re)),l===n?(P=s,s=n):(c=[c,l],s=c)}s===n?(P=i,i=n):(a=[a,s],i=a)}else P=i,i=n;return r=i===n?i:e.substring(r,P),r!==n&&(F=t,r=bt(r)),t=r,t}function Jn(){let t,r,i,a,o;if(t=P,r=P,i=[],e.charCodeAt(P)===92?(a=`\\\\`,P++):(a=n,I===0&&L(k)),a!==n)for(;a!==n;)i.push(a),e.charCodeAt(P)===92?(a=`\\\\`,P++):(a=n,I===0&&L(k));else i=n;return r=i===n?i:e.substring(r,P),r===n?(P=t,t=n):(i=P,F=P,a=xt(r),a=a?void 0:n,a===n?(P=i,i=n):(o=e.charAt(P),c.test(o)?P++:(o=n,I===0&&L(ie)),o===n?(P=i,i=n):(F=i,i=N(r,o))),i===n&&(i=null),F=t,t=St(r,i)),t}function nr(){let t,r,i,a,o,s;return t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r===n?(P=t,t=n):(i=P,I++,a=P,o=vr(),o===n?(P=a,a=n):(s=e.charAt(P),l.test(s)?P++:(s=n,I===0&&L(oe)),s===n?(P=a,a=n):(o=[o,s],a=o)),I--,a===n?i=void 0:(P=i,i=n),i===n?(P=t,t=n):(F=t,t=Ct())),t===n&&(t=P,r=P,I++,i=P,F=P,a=wt(),a=a?void 0:n,a===n?(P=i,i=n):(o=kr(),o===n?(P=i,i=n):(a=[a,o],i=a)),I--,i===n?r=void 0:(P=r,r=n),r===n?(P=t,t=n):(e.charCodeAt(P)===60?(i=`<`,P++):(i=n,I===0&&L(se)),i===n?(P=t,t=n):(F=t,t=Tt())),t===n&&(t=P,e.charCodeAt(P)===91?(r=`[`,P++):(r=n,I===0&&L(ce)),r!==n&&(F=t,r=Et()),t=r)),t}function or(){let t,r,i,a,o,s,c;return t=P,F=P,r=Dt(),r=r?void 0:n,r===n?(P=t,t=n):(e.substr(P,2)===`[[`?(i=`[[`,P+=2):(i=n,I===0&&L(le)),i===n?(P=t,t=n):(a=vr(),a===n?(P=t,t=n):(o=Gn(),s=P,c=_r(),s=e.substring(s,P),e.substr(P,2)===`]]`?(c=`]]`,P+=2):(c=n,I===0&&L(ue)),c===n?(P=t,t=n):(F=t,t=Ot(a,o,s))))),t===n&&(t=P,F=P,r=kt(),r=r?void 0:n,r===n?(P=t,t=n):(e.substr(P,2)===`[[`?(i=`[[`,P+=2):(i=n,I===0&&L(le)),i===n?(P=t,t=n):(F=t,t=At()))),t}function _r(){let t,r,i,a;for(t=[],r=P,i=P,I++,e.substr(P,2)===`]]`?(a=`]]`,P+=2):(a=n,I===0&&L(ue)),a===n&&(e.substr(P,2)===`[[`?(a=`[[`,P+=2):(a=n,I===0&&L(le))),I--,a===n?i=void 0:(P=i,i=n),i===n?(P=r,r=n):(e.length>P?(a=e.charAt(P),P++):(a=n,I===0&&L(E)),a===n?(P=r,r=n):(i=[i,a],r=i));r!==n;)t.push(r),r=P,i=P,I++,e.substr(P,2)===`]]`?(a=`]]`,P+=2):(a=n,I===0&&L(ue)),a===n&&(e.substr(P,2)===`[[`?(a=`[[`,P+=2):(a=n,I===0&&L(le))),I--,a===n?i=void 0:(P=i,i=n),i===n?(P=r,r=n):(e.length>P?(a=e.charAt(P),P++):(a=n,I===0&&L(E)),a===n?(P=r,r=n):(i=[i,a],r=i));return t}function vr(){let t,r,i;if(t=P,r=[],i=br(),i!==n)for(;i!==n;)r.push(i),i=br();else r=n;return r===n?(P=t,t=n):(e.charCodeAt(P)===32?(i=` `,P++):(i=n,I===0&&L(de)),i===n&&(i=null),F=t,t=jt(r)),t===n&&(t=P,r=``,F=t,r=Mt(),t=r),t}function yr(){let t,r,i,a,o;if(t=P,r=vr(),r!==n){for(i=Gn(),a=[],e.length>P?(o=e.charAt(P),P++):(o=n,I===0&&L(E));o!==n;)a.push(o),e.length>P?(o=e.charAt(P),P++):(o=n,I===0&&L(E));F=t,t=Nt(r,i)}else P=t,t=n;return t}function br(){let t,r,i,a,o;if(t=P,r=e.charAt(P),u.test(r)?P++:(r=n,I===0&&L(fe)),r!==n){for(i=P,a=[],o=xr();o!==n;)a.push(o),o=xr();i=e.substring(i,P),F=t,t=Pt(r,i)}else P=t,t=n;return t}function xr(){let t,r,i,a,o;if(t=e.charAt(P),d.test(t)?P++:(t=n,I===0&&L(pe)),t===n)if(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r!==n)if(i=e.charAt(P),f.test(i)?P++:(i=n,I===0&&L(me)),i!==n){for(a=[],o=e.charAt(P),p.test(o)?P++:(o=n,I===0&&L(he));o!==n;)a.push(o),o=e.charAt(P),p.test(o)?P++:(o=n,I===0&&L(he));e.charCodeAt(P)===125?(o=`}`,P++):(o=n,I===0&&L(ge)),o===n?(P=t,t=n):(r=[r,i,a,o],t=r)}else P=t,t=n;else P=t,t=n;return t}function Sr(){let t,r,i,a,o,s,c;if(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r!==n)if(i=vr(),i!==n)if(a=e.charAt(P),f.test(a)?P++:(a=n,I===0&&L(me)),a!==n){for(o=P,s=[],c=e.charAt(P),p.test(c)?P++:(c=n,I===0&&L(he));c!==n;)s.push(c),c=e.charAt(P),p.test(c)?P++:(c=n,I===0&&L(he));o=e.substring(o,P),e.charCodeAt(P)===125?(s=`}`,P++):(s=n,I===0&&L(ge)),s===n?(P=t,t=n):(F=t,t=Ft(i,a,o))}else P=t,t=n;else P=t,t=n;else P=t,t=n;return t===n&&(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r===n?(P=t,t=n):(i=vr(),i===n?(P=t,t=n):(a=P,I++,o=e.charAt(P),m.test(o)?P++:(o=n,I===0&&L(_e)),I--,o===n?a=n:(P=a,a=void 0),a===n?(P=t,t=n):(o=Cr(),o===n?(P=t,t=n):(e.charCodeAt(P)===125?(s=`}`,P++):(s=n,I===0&&L(ge)),s===n?(P=t,t=n):(F=t,t=It(i,o)))))),t===n&&(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r===n?(P=t,t=n):(i=vr(),i===n?(P=t,t=n):(a=P,I++,o=e.charAt(P),m.test(o)?P++:(o=n,I===0&&L(_e)),I--,o===n?a=n:(P=a,a=void 0),a===n?(P=t,t=n):(F=t,t=Lt()))))),t}function Cr(){let t,r,i,a,o,s,c,l;if(t=P,r=Gn(),F=P,i=Rt(r),i=i?void 0:n,i!==n){for(a=P,o=zt(r),s=P,c=[],c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));l!==n;)c.push(l),c.length>=(o|0)?l=n:e.length>P?(l=e.charAt(P),P++):(l=n,I===0&&L(E));c.length<(o|0)?(P=s,s=n):s=c,o=s,a=o===n?o:e.substring(a,P),a===n?(P=t,t=n):(F=t,t=Bt(r,a))}else P=t,t=n;return t}function wr(){let t,r,i,a,o,s,c,l,u,d,f,p,m,h;if(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r!==n)if(i=vr(),i!==n)if(a=Gn(),e.charCodeAt(P)===47?(o=`/`,P++):(o=n,I===0&&L(A)),o===n&&(o=null),s=Tr(),s!==n){if(c=Gn(),l=P,F=P,u=Vt(i,a,o,s,c),u=u?void 0:n,u!==n){for(d=P,f=Ht(i,a,o,s,c),p=P,m=[],m.length>=(f|0)?h=n:e.length>P?(h=e.charAt(P),P++):(h=n,I===0&&L(E));h!==n;)m.push(h),m.length>=(f|0)?h=n:e.length>P?(h=e.charAt(P),P++):(h=n,I===0&&L(E));m.length<(f|0)?(P=p,p=n):p=m,f=p,d=f===n?f:e.substring(d,P),d===n?(P=l,l=n):(e.charCodeAt(P)===125?(f=`}`,P++):(f=n,I===0&&L(ge)),f===n?(P=l,l=n):(F=l,l=Ut(i,a,o,s,c,d)))}else P=l,l=n;l===n&&(l=null),F=t,t=Wt(i,a,o,s,c,l)}else P=t,t=n;else P=t,t=n;else P=t,t=n;return t===n&&(t=P,e.charCodeAt(P)===123?(r=`{`,P++):(r=n,I===0&&L(ae)),r===n?(P=t,t=n):(i=vr(),i===n?(P=t,t=n):(e.charCodeAt(P)===47?(a=`/`,P++):(a=n,I===0&&L(A)),a===n?(P=t,t=n):(F=t,t=Gt(i))))),t}function Tr(){let t,r,i,a,o;if(t=P,r=P,i=e.charAt(P),h.test(i)?P++:(i=n,I===0&&L(ve)),i!==n){for(a=[],o=e.charAt(P),g.test(o)?P++:(o=n,I===0&&L(ye));o!==n;)a.push(o),o=e.charAt(P),g.test(o)?P++:(o=n,I===0&&L(ye));i=[i,a],r=i}else P=r,r=n;return t=r===n?r:e.substring(t,P),t}function Er(){let t,r,i,a,o,s,c,l;if(t=P,r=P,i=P,e.charCodeAt(P)===60?(a=`<`,P++):(a=n,I===0&&L(se)),a!==n){if(o=[],s=e.charAt(P),_.test(s)?P++:(s=n,I===0&&L(be)),s!==n)for(;s!==n;)o.push(s),s=e.charAt(P),_.test(s)?P++:(s=n,I===0&&L(be));else o=n;if(o!==n)if(e.charCodeAt(P)===64?(s=`@`,P++):(s=n,I===0&&L(xe)),s!==n){if(c=[],l=e.charAt(P),v.test(l)?P++:(l=n,I===0&&L(j)),l!==n)for(;l!==n;)c.push(l),l=e.charAt(P),v.test(l)?P++:(l=n,I===0&&L(j));else c=n;c===n?(P=i,i=n):(e.charCodeAt(P)===62?(l=`>`,P++):(l=n,I===0&&L(te)),l===n?(P=i,i=n):(a=[a,o,s,c,l],i=a))}else P=i,i=n;else P=i,i=n}else P=i,i=n;return r=i===n?i:e.substring(r,P),r===n?(P=t,t=n):(F=P,i=Kt(r),i=i?void 0:n,i===n?(P=t,t=n):(F=t,t=qt(r))),t}function Dr(){let e,t,r,i;return e=P,F=P,t=Jt(),t=t?void 0:n,t===n?(P=e,e=n):(r=kr(),r===n?(P=e,e=n):(F=P,i=Yt(r),i=i?void 0:n,i===n?(P=e,e=n):(F=e,e=Xt(r)))),e}function Or(){let t,r,i,a,o,s,c;if(t=P,e.charCodeAt(P)===60?(r=`<`,P++):(r=n,I===0&&L(se)),r!==n)if(i=Ar(),i!==n){for(a=[],o=jr();o!==n;)a.push(o),o=jr();o=Pr(),e.charCodeAt(P)===47?(s=`/`,P++):(s=n,I===0&&L(A)),s===n&&(s=null),e.charCodeAt(P)===62?(c=`>`,P++):(c=n,I===0&&L(te)),c===n?(P=t,t=n):(F=t,t=Zt(i,a,s))}else P=t,t=n;else P=t,t=n;if(t===n)if(t=P,e.charCodeAt(P)===60?(r=`<`,P++):(r=n,I===0&&L(se)),r!==n)if(i=Ar(),i!==n)if(a=P,I++,o=e.charAt(P),y.test(o)?P++:(o=n,I===0&&L(Se)),o===n&&(o=P,I++,e.length>P?(s=e.charAt(P),P++):(s=n,I===0&&L(E)),I--,s===n?o=void 0:(P=o,o=n)),I--,o===n?a=n:(P=a,a=void 0),a!==n){for(o=[],s=jr();s!==n;)o.push(s),s=jr();s=Pr(),c=Gn(),F=t,t=Qt(i,c)}else P=t,t=n;else P=t,t=n;else P=t,t=n;return t}function kr(){let t,r,i,a;return t=P,e.substr(P,2)===`</`?(r=`</`,P+=2):(r=n,I===0&&L(Ce)),r===n?(P=t,t=n):(i=Ar(),i===n?(P=t,t=n):(Pr(),e.charCodeAt(P)===62?(a=`>`,P++):(a=n,I===0&&L(te)),a===n?(P=t,t=n):(F=t,t=$t(i)))),t}function Ar(){let t,r,i,a,o;if(t=P,r=P,i=e.charAt(P),h.test(i)?P++:(i=n,I===0&&L(ve)),i!==n){for(a=[],o=e.charAt(P),b.test(o)?P++:(o=n,I===0&&L(we));o!==n;)a.push(o),o=e.charAt(P),b.test(o)?P++:(o=n,I===0&&L(we));i=[i,a],r=i}else P=r,r=n;return t=r===n?r:e.substring(t,P),t}function jr(){let t,r,i,a,o,s,c;if(t=P,Pr(),r=P,i=[],a=P,o=P,I++,s=e.charAt(P),x.test(s)?P++:(s=n,I===0&&L(Te)),I--,s===n?o=void 0:(P=o,o=n),o===n?(P=a,a=n):(e.length>P?(s=e.charAt(P),P++):(s=n,I===0&&L(E)),s===n?(P=a,a=n):(o=[o,s],a=o)),a!==n)for(;a!==n;)i.push(a),a=P,o=P,I++,s=e.charAt(P),x.test(s)?P++:(s=n,I===0&&L(Te)),I--,s===n?o=void 0:(P=o,o=n),o===n?(P=a,a=n):(e.length>P?(s=e.charAt(P),P++):(s=n,I===0&&L(E)),s===n?(P=a,a=n):(o=[o,s],a=o));else i=n;return r=i===n?i:e.substring(r,P),r===n?(P=t,t=n):(F=P,i=en(r),i=i?void 0:n,i===n?(P=t,t=n):(a=P,o=Pr(),e.charCodeAt(P)===61?(s=`=`,P++):(s=n,I===0&&L(Ee)),s===n?(P=a,a=n):(Pr(),c=Mr(),c===n?(P=a,a=n):(F=a,a=tn(r,c))),a===n&&(a=null),F=t,t=nn(r,a))),t}function Mr(){let t,r,i,a,o;if(t=P,e.charCodeAt(P)===34?(r=`\"`,P++):(r=n,I===0&&L(De)),r!==n){for(i=P,a=[],o=Nr(),o===n&&(o=e.charAt(P),S.test(o)?P++:(o=n,I===0&&L(Oe)));o!==n;)a.push(o),o=Nr(),o===n&&(o=e.charAt(P),S.test(o)?P++:(o=n,I===0&&L(Oe)));i=e.substring(i,P),e.charCodeAt(P)===34?(a=`\"`,P++):(a=n,I===0&&L(De)),a===n?(P=t,t=n):(F=t,t=rn(i))}else P=t,t=n;if(t===n){if(t=P,e.charCodeAt(P)===39?(r=`'`,P++):(r=n,I===0&&L(ke)),r!==n){for(i=P,a=[],o=Nr(),o===n&&(o=e.charAt(P),C.test(o)?P++:(o=n,I===0&&L(Ae)));o!==n;)a.push(o),o=Nr(),o===n&&(o=e.charAt(P),C.test(o)?P++:(o=n,I===0&&L(Ae)));i=e.substring(i,P),e.charCodeAt(P)===39?(a=`'`,P++):(a=n,I===0&&L(ke)),a===n?(P=t,t=n):(F=t,t=an(i))}else P=t,t=n;if(t===n&&(t=P,r=e.charAt(P),w.test(r)?P++:(r=n,I===0&&L(je)),r!==n&&(F=t,r=on(r)),t=r,t===n)){for(t=P,r=[],i=e.charAt(P),T.test(i)?P++:(i=n,I===0&&L(Me));i!==n;)r.push(i),i=e.charAt(P),T.test(i)?P++:(i=n,I===0&&L(Me));t=e.substring(t,P)}}return t}function Nr(){let t,r,i,a,o,s,l,u,d,p,m,g,_,v;if(t=P,F=P,r=sn(),r=r?void 0:n,r!==n){if(i=P,a=[],e.charCodeAt(P)===92?(o=`\\\\`,P++):(o=n,I===0&&L(k)),o!==n)for(;o!==n;)a.push(o),e.charCodeAt(P)===92?(o=`\\\\`,P++):(o=n,I===0&&L(k));else a=n;i=a===n?a:e.substring(i,P),i===n?(P=t,t=n):(a=P,F=P,o=cn(i),o=o?void 0:n,o===n?(P=a,a=n):(s=e.charAt(P),c.test(s)?P++:(s=n,I===0&&L(ie)),s===n?(P=a,a=n):(o=[o,s],a=o)),a===n&&(a=null),r=[r,i,a],t=r)}else P=t,t=n;if(t===n){if(t=P,F=P,r=ln(),r=r?void 0:n,r!==n)if(e.charCodeAt(P)===123?(i=`{`,P++):(i=n,I===0&&L(ae)),i!==n)if(a=vr(),a!==n)if(o=Gn(),e.charCodeAt(P)===47?(s=`/`,P++):(s=n,I===0&&L(A)),s===n&&(s=null),l=Tr(),l!==n)if(u=Gn(),F=P,d=un(o,u),d=d?void 0:n,d!==n){for(p=P,m=dn(o,u),g=P,_=[],_.length>=(m|0)?v=n:e.length>P?(v=e.charAt(P),P++):(v=n,I===0&&L(E));v!==n;)_.push(v),_.length>=(m|0)?v=n:e.length>P?(v=e.charAt(P),P++):(v=n,I===0&&L(E));_.length<(m|0)?(P=g,g=n):g=_,m=g,p=m===n?m:e.substring(p,P),p===n?(P=t,t=n):(e.charCodeAt(P)===125?(m=`}`,P++):(m=n,I===0&&L(ge)),m===n?(P=t,t=n):(r=[r,i,a,o,s,l,u,d,p,m],t=r))}else P=t,t=n;else P=t,t=n;else P=t,t=n;else P=t,t=n;else P=t,t=n;t===n&&(t=P,F=P,r=fn(),r=r?void 0:n,r===n?(P=t,t=n):(e.charCodeAt(P)===123?(i=`{`,P++):(i=n,I===0&&L(ae)),i===n?(P=t,t=n):(a=vr(),a===n?(P=t,t=n):(o=P,I++,s=P,e.charCodeAt(P)===47?(l=`/`,P++):(l=n,I===0&&L(A)),l===n&&(l=null),u=e.charAt(P),h.test(u)?P++:(u=n,I===0&&L(ve)),u===n?(P=s,s=n):(l=[l,u],s=l),I--,s===n?o=void 0:(P=o,o=n),o===n?(P=t,t=n):(s=Cr(),s===n?(P=t,t=n):(e.charCodeAt(P)===125?(l=`}`,P++):(l=n,I===0&&L(ge)),l===n?(P=t,t=n):(r=[r,i,a,o,s,l],t=r)))))),t===n&&(t=P,F=P,r=pn(),r=r?void 0:n,r===n?(P=t,t=n):(e.charCodeAt(P)===123?(i=`{`,P++):(i=n,I===0&&L(ae)),i===n?(P=t,t=n):(a=P,I++,o=e.charAt(P),f.test(o)?P++:(o=n,I===0&&L(me)),I--,o===n?a=n:(P=a,a=void 0),a===n?(P=t,t=n):(o=Cr(),o===n?(P=t,t=n):(e.charCodeAt(P)===125?(s=`}`,P++):(s=n,I===0&&L(ge)),s===n?(P=t,t=n):(r=[r,i,a,o,s],t=r)))))))}return t}function Pr(){let e,t;for(e=[],t=Fr();t!==n;)e.push(t),t=Fr();return e}function Fr(){let t;return t=e.charAt(P),ee.test(t)?P++:(t=n,I===0&&L(M)),t}let R=t.text===!0,Ir=t.hooks,Lr=-1,Rr=!1,zr=``;function z(e){return Lr=e,e>=0}function B(e,t){bn(e,t)}function Br(e){let t={},n=new Set;for(let[r,i]of e){let e=r.toLowerCase();n.has(e)||(n.add(e),Object.defineProperty(t,r,{value:i,enumerable:!0,writable:!0,configurable:!0}))}return t}function Vr(e,t){for(let n of t.branches){let t=er[n.tag.lower];(e.lex!==`macro`||e.lower!==t)&&B(cr(n.tag)+` must be directly inside {`+t+Xn+`, not inside `+cr(e),n.tag.loc)}t.end||B(`Unclosed `+cr(e)+`: no `+lr(e)+` closes it`,e.loc),dr(e,t.end)||B(cr(t.end)+` found where `+lr(e)+` should close the `+cr(e)+` opened at `+ur(e.loc),t.end.loc)}function Hr(e,t){let n={type:`macro`,name:e.lower,rawArgs:e.rawArgs,children:[]};if(!t)return Qn(n,e);if(Vr(e,t),n.children=t.children,tr.has(e.lower)){n.branches=[Qn({rawArgs:e.rawArgs,children:t.children},e)];for(let e of t.branches)n.branches.push(Qn({rawArgs:e.tag.rawArgs,children:e.children},e.tag));n.children=[]}else Qn(n,e);return n}_n=a();let Ur=_n!==n&&P===e.length;function Wr(){throw _n!==n&&P<e.length&&L(Tn()),kn(gn,hn<e.length?xn(hn):null,hn<e.length?Dn(hn,hn+1):Dn(hn,hn))}if(t.peg$library)return{peg$result:_n,peg$currPos:P,peg$FAILED:n,peg$maxFailExpected:gn,peg$maxFailPos:hn,peg$success:Ur,peg$throw:Ur?void 0:Wr};if(Ur)return _n;Wr()}var vr=class extends Map{get(e){return super.get(e.toLowerCase())}set(e,t){return super.set(e.toLowerCase(),t)}has(e){return super.has(e.toLowerCase())}delete(e){return super.delete(e.toLowerCase())}},yr=class{constructor(e=[]){this.names=new vr;for(let t of e)this.add(t)}add(e){this.names.set(e,!0)}has(e){return this.names.has(e)}delete(e){this.names.delete(e)}},br=new yr([`if`,`for`,`do`,`button`,`link`,`listbox`,`cycle`,`switch`,`timed`,`repeat`,`type`,`widget`,`span`,`nobr`]);function xr(e){return br.has(e)}function Sr(e){br.add(e)}var Cr=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,31,4,33,15,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,7,0,259,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,481,1,61,4,4,5,9,7,3,6,31,3,149,2,12,2,9,1,3,0,33,1,1357,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],wr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,13,65,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,18,21,18,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,18,0,182,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,22,0,239,18,16,0,2,12,2,33,125,0,80,921,103,111,6,206,13,310,2314,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7386,37,33,96,114,14,913,15,50,7710,3,2,6,2,1,2,296,10,0,30,2,3,0,15,4,8,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,340,2,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,129,15,6,55,50,49,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4382,2,5773,3,7472,16,621,2467,541,1507,4938,6,8489,39815,11327],Tr=`·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄ-ؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・`,Er=`ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-Ა-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿ-ℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ--ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ`,Dr={3:`abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile`,5:`class enum extends super const export import`,6:`enum`,strict:`implements interface let package private protected public static yield`,strictBind:`eval arguments`},Or=`break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this`,kr={5:Or,\"5module\":Or+` export import`,6:Or+` const class extends export import super`},Ar=/^in(stanceof)?$/,jr=RegExp(`[`+Er+`]`),Mr=RegExp(`[`+Er+Tr+`]`);function Nr(e,t){for(var n=65536,r=0;r<t.length;r+=2){if(n+=t[r],n>e)return!1;if(n+=t[r+1],n>=e)return!0}return!1}function Pr(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&jr.test(String.fromCharCode(e)):t===!1?!1:Nr(e,wr)}function Fr(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&Mr.test(String.fromCharCode(e)):t===!1?!1:Nr(e,wr)||Nr(e,Cr)}var R=function(e,t){t===void 0&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function Ir(e,t){return new R(e,{beforeExpr:!0,binop:t})}var Lr={beforeExpr:!0},Rr={startsExpr:!0},zr={};function z(e,t){return t===void 0&&(t={}),t.keyword=e,zr[e]=new R(e,t)}var B={num:new R(`num`,Rr),regexp:new R(`regexp`,Rr),string:new R(`string`,Rr),name:new R(`name`,Rr),privateId:new R(`privateId`,Rr),eof:new R(`eof`),bracketL:new R(`[`,{beforeExpr:!0,startsExpr:!0}),bracketR:new R(`]`),braceL:new R(`{`,{beforeExpr:!0,startsExpr:!0}),braceR:new R(`}`),parenL:new R(`(`,{beforeExpr:!0,startsExpr:!0}),parenR:new R(`)`),comma:new R(`,`,Lr),semi:new R(`;`,Lr),colon:new R(`:`,Lr),dot:new R(`.`),question:new R(`?`,Lr),questionDot:new R(`?.`),arrow:new R(`=>`,Lr),template:new R(`template`),invalidTemplate:new R(`invalidTemplate`),ellipsis:new R(`...`,Lr),backQuote:new R(\"`\",Rr),dollarBraceL:new R(\"${\",{beforeExpr:!0,startsExpr:!0}),eq:new R(`=`,{beforeExpr:!0,isAssign:!0}),assign:new R(`_=`,{beforeExpr:!0,isAssign:!0}),incDec:new R(`++/--`,{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new R(`!/~`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ir(`||`,1),logicalAND:Ir(`&&`,2),bitwiseOR:Ir(`|`,3),bitwiseXOR:Ir(`^`,4),bitwiseAND:Ir(`&`,5),equality:Ir(`==/!=/===/!==`,6),relational:Ir(`</>/<=/>=`,7),bitShift:Ir(`<</>>/>>>`,8),plusMin:new R(`+/-`,{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ir(`%`,10),star:Ir(`*`,10),slash:Ir(`/`,10),starstar:new R(`**`,{beforeExpr:!0}),coalesce:Ir(`??`,1),_break:z(`break`),_case:z(`case`,Lr),_catch:z(`catch`),_continue:z(`continue`),_debugger:z(`debugger`),_default:z(`default`,Lr),_do:z(`do`,{isLoop:!0,beforeExpr:!0}),_else:z(`else`,Lr),_finally:z(`finally`),_for:z(`for`,{isLoop:!0}),_function:z(`function`,Rr),_if:z(`if`),_return:z(`return`,Lr),_switch:z(`switch`),_throw:z(`throw`,Lr),_try:z(`try`),_var:z(`var`),_const:z(`const`),_while:z(`while`,{isLoop:!0}),_with:z(`with`),_new:z(`new`,{beforeExpr:!0,startsExpr:!0}),_this:z(`this`,Rr),_super:z(`super`,Rr),_class:z(`class`,Rr),_extends:z(`extends`,Lr),_export:z(`export`),_import:z(`import`,Rr),_null:z(`null`,Rr),_true:z(`true`,Rr),_false:z(`false`,Rr),_in:z(`in`,{beforeExpr:!0,binop:7}),_instanceof:z(`instanceof`,{beforeExpr:!0,binop:7}),_typeof:z(`typeof`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:z(`void`,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:z(`delete`,{beforeExpr:!0,prefix:!0,startsExpr:!0})},Br=/\\r\\n?|\\n|\\u2028|\\u2029/,Vr=new RegExp(Br.source,`g`);function Hr(e){return e===10||e===13||e===8232||e===8233}function Ur(e,t,n){n===void 0&&(n=e.length);for(var r=t;r<n;r++){var i=e.charCodeAt(r);if(Hr(i))return r<n-1&&i===13&&e.charCodeAt(r+1)===10?r+2:r+1}return-1}var Wr=/[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/,Gr=/(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g,Kr=Object.prototype,qr=Kr.hasOwnProperty,Jr=Kr.toString,Yr=Object.hasOwn||(function(e,t){return qr.call(e,t)}),Xr=Array.isArray||(function(e){return Jr.call(e)===`[object Array]`}),Zr=Object.create(null);function Qr(e){return Zr[e]||(Zr[e]=RegExp(`^(?:`+e.replace(/ /g,`|`)+`)$`))}function $r(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}var ei=/(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/,ti=function(e,t){this.line=e,this.column=t};ti.prototype.offset=function(e){return new ti(this.line,this.column+e)};var ni=function(e,t,n){this.start=t,this.end=n,e.sourceFile!==null&&(this.source=e.sourceFile)};function ri(e,t){for(var n=1,r=0;;){var i=Ur(e,r,t);if(i<0)return new ti(n,t-r);++n,r=i}}var ii={ecmaVersion:null,sourceType:`script`,strict:!1,onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,startLocation:null,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},ai=!1;function oi(e){var t={};for(var n in ii)t[n]=e&&Yr(e,n)?e[n]:ii[n];if(t.ecmaVersion===`latest`?t.ecmaVersion=1e8:t.ecmaVersion==null?(!ai&&typeof console==`object`&&console.warn&&(ai=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved??(t.allowReserved=t.ecmaVersion<5),(!e||e.allowHashBang==null)&&(t.allowHashBang=t.ecmaVersion>=14),Xr(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}if(Xr(t.onComment)&&(t.onComment=si(t,t.onComment)),t.sourceType===`commonjs`&&t.allowAwaitOutsideFunction)throw Error(`Cannot use allowAwaitOutsideFunction with sourceType: commonjs`);return t}function si(e,t){return function(n,r,i,a,o,s){var c={type:n?`Block`:`Line`,value:r,start:i,end:a};e.locations&&(c.loc=new ni(this,o,s)),e.ranges&&(c.range=[i,a]),t.push(c)}}var ci=1,li=2,ui=4,di=8,fi=16,pi=32,mi=64,hi=128,gi=256,_i=512,vi=1024,yi=ci|li|gi;function bi(e,t){return li|(e?ui:0)|(t?di:0)}var xi=0,Si=1,Ci=2,wi=3,Ti=4,Ei=5,Di=function(e,t,n){this.options=e=oi(e),this.sourceFile=e.sourceFile,this.keywords=Qr(kr[e.ecmaVersion>=6?6:e.sourceType===`module`?`5module`:5]);var r=``;e.allowReserved!==!0&&(r=Dr[e.ecmaVersion>=6?6:e.ecmaVersion===5?5:3],e.sourceType===`module`&&(r+=` await`)),this.reservedWords=Qr(r);var i=(r?r+` `:``)+Dr.strict;this.reservedWordsStrict=Qr(i),this.reservedWordsStrictBind=Qr(i+` `+Dr.strictBind),this.input=String(t),this.containsEsc=!1,this.pos=n||0,this.curLine=1,e.startLocation?(this.lineStart=this.pos-e.startLocation.column,this.curLine=e.startLocation.line):n?(this.lineStart=this.input.lastIndexOf(`\n`,n-1)+1,this.options.locations&&(this.curLine=this.input.slice(0,this.lineStart).split(Br).length)):this.lineStart=0,this.type=B.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType===`module`,this.strict=this.inModule||e.strict===!0||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&e.allowHashBang&&this.input.slice(0,2)===`#!`&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType===`commonjs`?li:ci),this.regexpState=null,this.privateNameStack=[]},Oi={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};Di.prototype.parse=function(){var e=this,t=this.options.program||this.startNode();return this.nextToken(),this.catchStackOverflow(function(){return e.parseTopLevel(t)})},Oi.inFunction.get=function(){return(this.currentVarScope().flags&li)>0},Oi.inGenerator.get=function(){return(this.currentVarScope().flags&di)>0},Oi.inAsync.get=function(){return(this.currentVarScope().flags&ui)>0},Oi.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(gi|_i))return!1;if(t&li)return(t&ui)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},Oi.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&ci)},Oi.allowSuper.get=function(){return(this.currentThisScope().flags&mi)>0||this.options.allowSuperOutsideMethod},Oi.allowDirectSuper.get=function(){return(this.currentThisScope().flags&hi)>0},Oi.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Oi.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(gi|_i)||t&li&&!(t&fi))return!0}return!1},Oi.allowUsing.get=function(){var e=this.currentScope().flags;return!(e&vi||!this.inModule&&e&ci)},Oi.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&gi)>0},Di.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var n=this,r=0;r<e.length;r++)n=e[r](n);return n},Di.parse=function(e,t){return new this(t,e).parse()},Di.parseExpressionAt=function(e,t,n){var r=new this(n,e,t);return r.nextToken(),r.parseExpression()},Di.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(Di.prototype,Oi);var ki=Di.prototype,Ai=/^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;ki.strictDirective=function(e){if(this.options.ecmaVersion<5)return!1;for(;;){Gr.lastIndex=e,e+=Gr.exec(this.input)[0].length;var t=Ai.exec(this.input.slice(e));if(!t)return!1;if((t[1]||t[2])===`use strict`){Gr.lastIndex=e+t[0].length;var n=Gr.exec(this.input),r=n.index+n[0].length,i=this.input.charAt(r);return i===`;`||i===`}`||Br.test(n[0])&&!(/[(`.[+\\-/*%<>=,?^&]/.test(i)||i===`!`&&this.input.charAt(r+1)===`=`||i===`i`&&ji(this,r))}e+=t[0].length,Gr.lastIndex=e,e+=Gr.exec(this.input)[0].length,this.input[e]===`;`&&e++}};function ji(e,t){for(var n=t+1,r=Math.min(e.input.length,t+11);n<r;){var i=e.fullCharCodeAt(n);if(!Fr(i,!0))break;n+=i<=65535?1:2}return n===t+2&&e.input.slice(t,n)===`in`||n===t+10&&e.input.slice(t,n)===`instanceof`}ki.eat=function(e){return this.type===e?(this.next(),!0):!1},ki.isContextual=function(e){return this.type===B.name&&this.value===e&&!this.containsEsc},ki.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},ki.catchStackOverflow=function(e){try{return e()}catch(e){if(e instanceof Error&&(/\\bstack\\b.*\\b(exceeded|overflow)\\b/i.test(e.message)||/\\btoo much recursion\\b/i.test(e.message)))this.raise(this.start,`Not enough stack space to parse input`);else throw e}},ki.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},ki.canInsertSemicolon=function(){return this.type===B.eof||this.type===B.braceR||Br.test(this.input.slice(this.lastTokEnd,this.start))},ki.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},ki.semicolon=function(){!this.eat(B.semi)&&!this.insertSemicolon()&&this.unexpected()},ki.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},ki.expect=function(e){this.eat(e)||this.unexpected()},ki.unexpected=function(e){this.raise(e??this.start,`Unexpected token`)};var Mi=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};ki.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,`Comma is not permitted after the rest element`);var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,t?`Assigning to rvalue`:`Parenthesized pattern`)}},ki.checkExpressionErrors=function(e,t){if(!e)return!1;var n=e.shorthandAssign,r=e.doubleProto;if(!t)return n>=0||r>=0;n>=0&&this.raise(n,`Shorthand property assignments are valid only in destructuring patterns`),r>=0&&this.raiseRecoverable(r,`Redefinition of __proto__ property`)},ki.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,`Yield expression cannot be a default value`),this.awaitPos&&this.raise(this.awaitPos,`Await expression cannot be a default value`)},ki.isSimpleAssignTarget=function(e){return e.type===`ParenthesizedExpression`?this.isSimpleAssignTarget(e.expression):e.type===`Identifier`||e.type===`MemberExpression`};var V=Di.prototype;V.parseTopLevel=function(e){var t=Object.create(null);for(e.body||(e.body=[]);this.type!==B.eof;){var n=this.parseStatement(null,!0,t);e.body.push(n)}if(this.inModule)for(var r=0,i=Object.keys(this.undefinedExports);r<i.length;r+=1){var a=i[r];this.raiseRecoverable(this.undefinedExports[a].start,`Export '`+a+`' is not defined`)}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType===`commonjs`?`script`:this.options.sourceType,this.finishNode(e,`Program`)};var Ni={kind:`loop`},Pi={kind:`switch`};V.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual(`let`))return!1;Gr.lastIndex=this.pos;var t=Gr.exec(this.input),n=this.pos+t[0].length,r=this.fullCharCodeAt(n);if(r===91||r===92)return!0;if(e)return!1;if(r===123)return!0;if(Pr(r)){var i=n;do n+=r<=65535?1:2;while(Fr(r=this.fullCharCodeAt(n)));if(r===92)return!0;var a=this.input.slice(i,n);if(!Ar.test(a))return!0}return!1},V.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(`async`))return!1;Gr.lastIndex=this.pos;var e=Gr.exec(this.input),t=this.pos+e[0].length,n;return!Br.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===`function`&&(t+8===this.input.length||!(Fr(n=this.fullCharCodeAt(t+8))||n===92))},V.isUsingKeyword=function(e,t){if(this.options.ecmaVersion<17||!this.isContextual(e?`await`:`using`))return!1;Gr.lastIndex=this.pos;var n=Gr.exec(this.input),r=this.pos+n[0].length;if(Br.test(this.input.slice(this.pos,r)))return!1;if(e){var i=r+5,a;if(this.input.slice(r,i)!==`using`||i===this.input.length||Fr(a=this.fullCharCodeAt(i))||a===92)return!1;Gr.lastIndex=i;var o=Gr.exec(this.input);if(r=i+o[0].length,o&&Br.test(this.input.slice(i,r)))return!1}var s=this.fullCharCodeAt(r);if(!Pr(s)&&s!==92)return!1;var c=r;do r+=s<=65535?1:2;while(Fr(s=this.fullCharCodeAt(r)));if(s===92)return!0;var l=this.input.slice(c,r);if(Ar.test(l))return!1;if(t&&!e&&l===`of`){Gr.lastIndex=r;var u=Gr.exec(this.input);if(r+=u[0].length,this.input.charCodeAt(r)!==61||(s=this.input.charCodeAt(r+1))===61||s===62)return!1}return!0},V.isAwaitUsing=function(e){return this.isUsingKeyword(!0,e)},V.isUsing=function(e){return this.isUsingKeyword(!1,e)},V.parseStatement=function(e,t,n){var r=this.type,i=this.startNode(),a;switch(this.isLet(e)&&(r=B._var,a=`let`),r){case B._break:case B._continue:return this.parseBreakContinueStatement(i,r.keyword);case B._debugger:return this.parseDebuggerStatement(i);case B._do:return this.parseDoStatement(i);case B._for:return this.parseForStatement(i);case B._function:return e&&(this.strict||e!==`if`&&e!==`label`)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(i,!1,!e);case B._class:return e&&this.unexpected(),this.parseClass(i,!0);case B._if:return this.parseIfStatement(i);case B._return:return this.parseReturnStatement(i);case B._switch:return this.parseSwitchStatement(i);case B._throw:return this.parseThrowStatement(i);case B._try:return this.parseTryStatement(i);case B._const:case B._var:return a=a||this.value,e&&a!==`var`&&this.unexpected(),this.parseVarStatement(i,a);case B._while:return this.parseWhileStatement(i);case B._with:return this.parseWithStatement(i);case B.braceL:return this.parseBlock(!0,i);case B.semi:return this.parseEmptyStatement(i);case B._export:case B._import:if(this.options.ecmaVersion>10&&r===B._import){Gr.lastIndex=this.pos;var o=Gr.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(c===40||c===46)return this.parseExpressionStatement(i,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,`'import' and 'export' may only appear at the top level`),this.inModule||this.raise(this.start,`'import' and 'export' may appear only with 'sourceType: module'`)),r===B._import?this.parseImport(i):this.parseExport(i,n);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(i,!0,!e);var l=this.isAwaitUsing(!1)?`await using`:this.isUsing(!1)?`using`:null;if(l)return this.allowUsing||this.raise(this.start,\"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement\"),e&&this.raise(this.start,`Using declaration is not allowed in single-statement positions`),l===`await using`&&(this.canAwait||this.raise(this.start,`Await using cannot appear outside of async function`),this.next()),this.next(),this.parseVar(i,!1,l),this.semicolon(),this.finishNode(i,`VariableDeclaration`);var u=this.value,d=this.parseExpression();return r===B.name&&d.type===`Identifier`&&this.eat(B.colon)?this.parseLabeledStatement(i,u,d,e):this.parseExpressionStatement(i,d)}},V.parseBreakContinueStatement=function(e,t){var n=t===`break`;this.next(),this.eat(B.semi)||this.insertSemicolon()?e.label=null:this.type===B.name?(e.label=this.parseIdent(),this.semicolon()):this.unexpected();for(var r=0;r<this.labels.length;++r){var i=this.labels[r];if((e.label==null||i.name===e.label.name)&&(i.kind!=null&&(n||i.kind===`loop`)||e.label&&n))break}return r===this.labels.length&&this.raise(e.start,`Unsyntactic `+t),this.finishNode(e,n?`BreakStatement`:`ContinueStatement`)},V.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,`DebuggerStatement`)},V.parseDoStatement=function(e){return this.next(),this.labels.push(Ni),e.body=this.parseStatement(`do`),this.labels.pop(),this.expect(B._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(B.semi):this.semicolon(),this.finishNode(e,`DoWhileStatement`)},V.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual(`await`)?this.lastTokStart:-1;if(this.labels.push(Ni),this.enterScope(0),this.expect(B.parenL),this.type===B.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var n=this.isLet();if(this.type===B._var||this.type===B._const||n){var r=this.startNode(),i=n?`let`:this.value;return this.next(),this.parseVar(r,!0,i),this.finishNode(r,`VariableDeclaration`),this.parseForAfterInit(e,r,t)}var a=this.isContextual(`let`),o=!1,s=this.isUsing(!0)?`using`:this.isAwaitUsing(!0)?`await using`:null;if(s){var c=this.startNode();return this.next(),s===`await using`&&(this.canAwait||this.raise(this.start,`Await using cannot appear outside of async function`),this.next()),this.parseVar(c,!0,s),this.finishNode(c,`VariableDeclaration`),this.parseForAfterInit(e,c,t)}var l=this.containsEsc,u=new Mi,d=this.start,f=t>-1?this.parseExprSubscripts(u,`await`):this.parseExpression(!0,u);return this.type===B._in||(o=this.options.ecmaVersion>=6&&this.isContextual(`of`))?(t>-1?(this.type===B._in&&this.unexpected(t),e.await=!0):o&&this.options.ecmaVersion>=8&&(f.start===d&&!l&&f.type===`Identifier`&&f.name===`async`?this.unexpected():this.options.ecmaVersion>=9&&(e.await=!1)),a&&o&&this.raise(f.start,`The left-hand side of a for-of loop may not start with 'let'.`),this.toAssignable(f,!1,u),this.checkLValPattern(f),this.parseForIn(e,f)):(this.checkExpressionErrors(u,!0),t>-1&&this.unexpected(t),this.parseFor(e,f))},V.parseForAfterInit=function(e,t,n){return(this.type===B._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))&&t.declarations.length===1?(this.type===B._in?((t.kind===`using`||t.kind===`await using`)&&!t.declarations[0].init&&this.raise(this.start,`Using declaration is not allowed in for-in loops`),this.options.ecmaVersion>=9&&n>-1&&this.unexpected(n)):this.options.ecmaVersion>=9&&(e.await=n>-1),this.parseForIn(e,t)):(n>-1&&this.unexpected(n),this.parseFor(e,t))},V.parseFunctionStatement=function(e,t,n){return this.next(),this.parseFunction(e,Ii|(n?0:Li),!1,t)},V.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(`if`),e.alternate=this.eat(B._else)?this.parseStatement(`if`):null,this.finishNode(e,`IfStatement`)},V.parseReturnStatement=function(e){return this.allowReturn||this.raise(this.start,`'return' outside of function`),this.next(),this.eat(B.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,`ReturnStatement`)},V.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(B.braceL),this.labels.push(Pi),this.enterScope(vi);for(var t,n=!1;this.type!==B.braceR;)if(this.type===B._case||this.type===B._default){var r=this.type===B._case;t&&this.finishNode(t,`SwitchCase`),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,`Multiple default clauses`),n=!0,t.test=null),this.expect(B.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,`SwitchCase`),this.next(),this.labels.pop(),this.finishNode(e,`SwitchStatement`)},V.parseThrowStatement=function(e){return this.next(),Br.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,`Illegal newline after throw`),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,`ThrowStatement`)};var Fi=[];V.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=e.type===`Identifier`;return this.enterScope(t?pi:0),this.checkLValPattern(e,t?Ti:Ci),this.expect(B.parenR),e},V.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===B._catch){var t=this.startNode();this.next(),this.eat(B.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,`CatchClause`)}return e.finalizer=this.eat(B._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,`Missing catch or finally clause`),this.finishNode(e,`TryStatement`)},V.parseVarStatement=function(e,t,n){return this.next(),this.parseVar(e,!1,t,n),this.semicolon(),this.finishNode(e,`VariableDeclaration`)},V.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Ni),e.body=this.parseStatement(`while`),this.labels.pop(),this.finishNode(e,`WhileStatement`)},V.parseWithStatement=function(e){return this.strict&&this.raise(this.start,`'with' in strict mode`),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(`with`),this.finishNode(e,`WithStatement`)},V.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,`EmptyStatement`)},V.parseLabeledStatement=function(e,t,n,r){for(var i=0,a=this.labels;i<a.length;i+=1)a[i].name===t&&this.raise(n.start,`Label '`+t+`' is already declared`);for(var o=this.type.isLoop?`loop`:this.type===B._switch?`switch`:null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart===e.start)c.statementStart=this.start,c.kind=o;else break}return this.labels.push({name:t,kind:o,statementStart:this.start}),e.body=this.parseStatement(r?r.indexOf(`label`)===-1?r+`label`:r:`label`),this.labels.pop(),e.label=n,this.finishNode(e,`LabeledStatement`)},V.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,`ExpressionStatement`)},V.parseBlock=function(e,t,n){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(B.braceL),e&&this.enterScope(0);this.type!==B.braceR;){var r=this.parseStatement(null);t.body.push(r)}return n&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,`BlockStatement`)},V.parseFor=function(e,t){return e.init=t,this.expect(B.semi),e.test=this.type===B.semi?null:this.parseExpression(),this.expect(B.semi),e.update=this.type===B.parenR?null:this.parseExpression(),this.expect(B.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,`ForStatement`)},V.parseForIn=function(e,t){var n=this.type===B._in;return this.next(),t.type===`VariableDeclaration`&&t.declarations[0].init!=null&&(!n||this.options.ecmaVersion<8||this.strict||t.kind!==`var`||t.declarations[0].id.type!==`Identifier`)&&this.raise(t.start,(n?`for-in`:`for-of`)+` loop variable declaration may not have an initializer`),e.left=t,e.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(B.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,n?`ForInStatement`:`ForOfStatement`)},V.parseVar=function(e,t,n,r){for(e.declarations=[],e.kind=n;;){var i=this.startNode();if(this.parseVarId(i,n),this.eat(B.eq)?i.init=this.parseMaybeAssign(t):!r&&n===`const`&&!(this.type===B._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))?this.unexpected():!r&&(n===`using`||n===`await using`)&&this.options.ecmaVersion>=17&&this.type!==B._in&&!this.isContextual(`of`)?this.raise(this.lastTokEnd,`Missing initializer in `+n+` declaration`):!r&&i.id.type!==`Identifier`&&!(t&&(this.type===B._in||this.isContextual(`of`)))?this.raise(this.lastTokEnd,`Complex binding patterns require an initialization value`):i.init=null,e.declarations.push(this.finishNode(i,`VariableDeclarator`)),!this.eat(B.comma))break}return e},V.parseVarId=function(e,t){e.id=t===`using`||t===`await using`?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,t===`var`?Si:Ci,!1)};var Ii=1,Li=2,Ri=4;V.parseFunction=function(e,t,n,r,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===B.star&&t&Li&&this.unexpected(),e.generator=this.eat(B.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&Ii&&(e.id=t&Ri&&this.type!==B.name?null:this.parseIdent(),e.id&&!(t&Li)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Si:Ci:wi));var a=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(bi(e.async,e.generator)),t&Ii||(e.id=this.type===B.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n,!1,i),this.yieldPos=a,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(e,t&Ii?`FunctionDeclaration`:`FunctionExpression`)},V.parseFunctionParams=function(e){this.expect(B.parenL),e.params=this.parseBindingList(B.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},V.parseClass=function(e,t){this.next();var n=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var r=this.enterClassBody(),i=this.startNode(),a=!1;for(i.body=[],this.expect(B.braceL);this.type!==B.braceR;){var o=this.parseClassElement(e.superClass!==null);o&&(i.body.push(o),o.type===`MethodDefinition`&&o.kind===`constructor`?(a&&this.raiseRecoverable(o.start,`Duplicate constructor in the same class`),a=!0):o.key&&o.key.type===`PrivateIdentifier`&&zi(r,o)&&this.raiseRecoverable(o.key.start,`Identifier '#`+o.key.name+`' has already been declared`))}return this.strict=n,this.next(),e.body=this.finishNode(i,`ClassBody`),this.exitClassBody(),this.finishNode(e,t?`ClassDeclaration`:`ClassExpression`)},V.parseClassElement=function(e){if(this.eat(B.semi))return null;var t=this.options.ecmaVersion,n=this.startNode(),r=``,i=!1,a=!1,o=`method`,s=!1;if(this.eatContextual(`static`)){if(t>=13&&this.eat(B.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===B.star?s=!0:r=`static`}if(n.static=s,!r&&t>=8&&this.eatContextual(`async`)&&((this.isClassElementNameStart()||this.type===B.star)&&!this.canInsertSemicolon()?a=!0:r=`async`),!r&&(t>=9||!a)&&this.eat(B.star)&&(i=!0),!r&&!a&&!i){var c=this.value;(this.eatContextual(`get`)||this.eatContextual(`set`))&&(this.isClassElementNameStart()?o=c:r=c)}if(r?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=r,this.finishNode(n.key,`Identifier`)):this.parseClassElementName(n),t<13||this.type===B.parenL||o!==`method`||i||a){var l=!n.static&&Bi(n,`constructor`),u=l&&e;l&&o!==`method`&&this.raise(n.key.start,`Constructor can't have get/set modifier`),n.kind=l?`constructor`:o,this.parseClassMethod(n,i,a,u)}else this.parseClassField(n);return n},V.isClassElementNameStart=function(){return this.type===B.name||this.type===B.privateId||this.type===B.num||this.type===B.string||this.type===B.bracketL||this.type.keyword},V.parseClassElementName=function(e){this.type===B.privateId?(this.value===`constructor`&&this.raise(this.start,`Classes can't have an element named '#constructor'`),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},V.parseClassMethod=function(e,t,n,r){var i=e.key;e.kind===`constructor`?(t&&this.raise(i.start,`Constructor can't be a generator`),n&&this.raise(i.start,`Constructor can't be an async method`)):e.static&&Bi(e,`prototype`)&&this.raise(i.start,`Classes may not have a static property named prototype`);var a=e.value=this.parseMethod(t,n,r);return e.kind===`get`&&a.params.length!==0&&this.raiseRecoverable(a.start,`getter should have no params`),e.kind===`set`&&a.params.length!==1&&this.raiseRecoverable(a.start,`setter should have exactly one param`),e.kind===`set`&&a.params[0].type===`RestElement`&&this.raiseRecoverable(a.params[0].start,`Setter cannot use rest params`),this.finishNode(e,`MethodDefinition`)},V.parseClassField=function(e){return Bi(e,`constructor`)?this.raise(e.key.start,`Classes can't have a field named 'constructor'`):e.static&&Bi(e,`prototype`)&&this.raise(e.key.start,`Classes can't have a static field named 'prototype'`),this.eat(B.eq)?(this.enterScope(_i|mi),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,`PropertyDefinition`)},V.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(gi|mi);this.type!==B.braceR;){var n=this.parseStatement(null);e.body.push(n)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,`StaticBlock`)},V.parseClassId=function(e,t){this.type===B.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,Ci,!1)):(t===!0&&this.unexpected(),e.id=null)},V.parseClassSuper=function(e){e.superClass=this.eat(B._extends)?this.parseExprSubscripts(null,!1):null},V.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},V.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,n=e.used;if(this.options.checkPrivateFields)for(var r=this.privateNameStack.length,i=r===0?null:this.privateNameStack[r-1],a=0;a<n.length;++a){var o=n[a];Yr(t,o.name)||(i?i.used.push(o):this.raiseRecoverable(o.start,`Private field '#`+o.name+`' must be declared in an enclosing class`))}};function zi(e,t){var n=t.key.name,r=e[n],i=`true`;return t.type===`MethodDefinition`&&(t.kind===`get`||t.kind===`set`)&&(i=(t.static?`s`:`i`)+t.kind),r===`iget`&&i===`iset`||r===`iset`&&i===`iget`||r===`sget`&&i===`sset`||r===`sset`&&i===`sget`?(e[n]=`true`,!1):r?!0:(e[n]=i,!1)}function Bi(e,t){var n=e.computed,r=e.key;return!n&&(r.type===`Identifier`&&r.name===t||r.type===`Literal`&&r.value===t)}V.parseExportAllDeclaration=function(e,t){return this.options.ecmaVersion>=11&&(this.eatContextual(`as`)?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual(`from`),this.type!==B.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,`ExportAllDeclaration`)},V.parseExport=function(e,t){if(this.next(),this.eat(B.star))return this.parseExportAllDeclaration(e,t);if(this.eat(B._default))return this.checkExport(t,`default`,this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,`ExportDefaultDeclaration`);if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),e.declaration.type===`VariableDeclaration`?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(`from`))this.type!==B.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var n=0,r=e.specifiers;n<r.length;n+=1){var i=r[n];this.checkUnreserved(i.local),this.checkLocalExport(i.local),i.local.type===`Literal`&&this.raise(i.local.start,\"A string literal cannot be used as an exported binding without `from`.\")}e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,`ExportNamedDeclaration`)},V.parseExportDeclaration=function(e){return this.parseStatement(null)},V.parseExportDefaultDeclaration=function(){var e;if(this.type===B._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,Ii|Ri,!1,e)}else if(this.type===B._class){var n=this.startNode();return this.parseClass(n,`nullableID`)}else{var r=this.parseMaybeAssign();return this.semicolon(),r}},V.checkExport=function(e,t,n){e&&(typeof t!=`string`&&(t=t.type===`Identifier`?t.name:t.value),Yr(e,t)&&this.raiseRecoverable(n,`Duplicate export '`+t+`'`),e[t]=!0)},V.checkPatternExport=function(e,t){var n=t.type;if(n===`Identifier`)this.checkExport(e,t,t.start);else if(n===`ObjectPattern`)for(var r=0,i=t.properties;r<i.length;r+=1){var a=i[r];this.checkPatternExport(e,a)}else if(n===`ArrayPattern`)for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(e,c)}else n===`Property`?this.checkPatternExport(e,t.value):n===`AssignmentPattern`?this.checkPatternExport(e,t.left):n===`RestElement`&&this.checkPatternExport(e,t.argument)},V.checkVariableExport=function(e,t){if(e)for(var n=0,r=t;n<r.length;n+=1){var i=r[n];this.checkPatternExport(e,i.id)}},V.shouldParseExportStatement=function(){return this.type.keyword===`var`||this.type.keyword===`const`||this.type.keyword===`class`||this.type.keyword===`function`||this.isLet()||this.isAsyncFunction()},V.parseExportSpecifier=function(e){var t=this.startNode();return t.local=this.parseModuleExportName(),t.exported=this.eatContextual(`as`)?this.parseModuleExportName():t.local,this.checkExport(e,t.exported,t.exported.start),this.finishNode(t,`ExportSpecifier`)},V.parseExportSpecifiers=function(e){var t=[],n=!0;for(this.expect(B.braceL);!this.eat(B.braceR);){if(n)n=!1;else if(this.expect(B.comma),this.afterTrailingComma(B.braceR))break;t.push(this.parseExportSpecifier(e))}return t},V.parseImport=function(e){return this.next(),this.type===B.string?(e.specifiers=Fi,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual(`from`),e.source=this.type===B.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,`ImportDeclaration`)},V.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual(`as`)?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportSpecifier`)},V.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportDefaultSpecifier`)},V.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual(`as`),e.local=this.parseIdent(),this.checkLValSimple(e.local,Ci),this.finishNode(e,`ImportNamespaceSpecifier`)},V.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===B.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(B.comma)))return e;if(this.type===B.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(B.braceL);!this.eat(B.braceR);){if(t)t=!1;else if(this.expect(B.comma),this.afterTrailingComma(B.braceR))break;e.push(this.parseImportSpecifier())}return e},V.parseWithClause=function(){var e=[];if(!this.eat(B._with))return e;this.expect(B.braceL);for(var t={},n=!0;!this.eat(B.braceR);){if(n)n=!1;else if(this.expect(B.comma),this.afterTrailingComma(B.braceR))break;var r=this.parseImportAttribute(),i=r.key.type===`Identifier`?r.key.name:r.key.value;Yr(t,i)&&this.raiseRecoverable(r.key.start,`Duplicate attribute key '`+i+`'`),t[i]=!0,e.push(r)}return e},V.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===B.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==`never`),this.expect(B.colon),this.type!==B.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,`ImportAttribute`)},V.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===B.string){var e=this.parseLiteral(this.value);return ei.test(e.value)&&this.raise(e.start,`An export name cannot include a lone surrogate.`),e}return this.parseIdent(!0)},V.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},V.isDirectiveCandidate=function(e){return this.options.ecmaVersion>=5&&e.type===`ExpressionStatement`&&e.expression.type===`Literal`&&typeof e.expression.value==`string`&&(this.input[e.start]===`\"`||this.input[e.start]===`'`)};var Vi=Di.prototype;Vi.toAssignable=function(e,t,n){if(this.options.ecmaVersion>=6&&e)switch(e.type){case`Identifier`:this.inAsync&&e.name===`await`&&this.raise(e.start,`Cannot use 'await' as identifier inside an async function`);break;case`ObjectPattern`:case`ArrayPattern`:case`AssignmentPattern`:case`RestElement`:break;case`ObjectExpression`:e.type=`ObjectPattern`,n&&this.checkPatternErrors(n,!0);for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.toAssignable(a,t),a.type===`RestElement`&&(a.argument.type===`ArrayPattern`||a.argument.type===`ObjectPattern`)&&this.raise(a.argument.start,`Unexpected token`)}break;case`Property`:e.kind!==`init`&&this.raise(e.key.start,`Object pattern can't contain getter or setter`),this.toAssignable(e.value,t);break;case`ArrayExpression`:e.type=`ArrayPattern`,n&&this.checkPatternErrors(n,!0),this.toAssignableList(e.elements,t);break;case`SpreadElement`:e.type=`RestElement`,this.toAssignable(e.argument,t),e.argument.type===`AssignmentPattern`&&this.raise(e.argument.start,`Rest elements cannot have a default value`);break;case`AssignmentExpression`:e.operator!==`=`&&this.raise(e.left.end,`Only '=' operator can be used for specifying default value.`),e.type=`AssignmentPattern`,delete e.operator,this.toAssignable(e.left,t);break;case`ParenthesizedExpression`:this.toAssignable(e.expression,t,n);break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:if(!t)break;default:this.raise(e.start,`Assigning to rvalue`)}else n&&this.checkPatternErrors(n,!0);return e},Vi.toAssignableList=function(e,t){for(var n=e.length,r=0;r<n;r++){var i=e[r];i&&this.toAssignable(i,t)}if(n){var a=e[n-1];this.options.ecmaVersion===6&&t&&a&&a.type===`RestElement`&&a.argument.type!==`Identifier`&&this.unexpected(a.argument.start)}return e},Vi.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,`SpreadElement`)},Vi.parseRestBinding=function(){var e=this.startNode();return this.next(),this.options.ecmaVersion===6&&this.type!==B.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,`RestElement`)},Vi.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case B.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(B.bracketR,!0,!0),this.finishNode(e,`ArrayPattern`);case B.braceL:return this.parseObj(!0)}return this.parseIdent()},Vi.parseBindingList=function(e,t,n,r){for(var i=[],a=!0;!this.eat(e);)if(a?a=!1:this.expect(B.comma),t&&this.type===B.comma)i.push(null);else if(n&&this.afterTrailingComma(e))break;else if(this.type===B.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),i.push(o),this.type===B.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`),this.expect(e);break}else i.push(this.parseAssignableListItem(r));return i},Vi.parseAssignableListItem=function(e){var t=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(t),t},Vi.parseBindingListItem=function(e){return e},Vi.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(B.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,`AssignmentPattern`)},Vi.checkLValSimple=function(e,t,n){t===void 0&&(t=xi);var r=t!==xi;switch(e.type){case`Identifier`:this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(r?`Binding `:`Assigning to `)+e.name+` in strict mode`),r&&(t===Ci&&e.name===`let`&&this.raiseRecoverable(e.start,`let is disallowed as a lexically bound name`),n&&(Yr(n,e.name)&&this.raiseRecoverable(e.start,`Argument name clash`),n[e.name]=!0),t!==Ei&&this.declareName(e.name,t,e.start));break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:r&&this.raiseRecoverable(e.start,`Binding member expression`);break;case`ParenthesizedExpression`:return r&&this.raiseRecoverable(e.start,`Binding parenthesized expression`),this.checkLValSimple(e.expression,t,n);default:this.raise(e.start,(r?`Binding`:`Assigning to`)+` rvalue`)}},Vi.checkLValPattern=function(e,t,n){switch(t===void 0&&(t=xi),e.type){case`ObjectPattern`:for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.checkLValInnerPattern(a,t,n)}break;case`ArrayPattern`:for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,t,n)}break;default:this.checkLValSimple(e,t,n)}},Vi.checkLValInnerPattern=function(e,t,n){switch(t===void 0&&(t=xi),e.type){case`Property`:this.checkLValInnerPattern(e.value,t,n);break;case`AssignmentPattern`:this.checkLValPattern(e.left,t,n);break;case`RestElement`:this.checkLValPattern(e.argument,t,n);break;default:this.checkLValPattern(e,t,n)}};var Hi=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},H={b_stat:new Hi(`{`,!1),b_expr:new Hi(`{`,!0),b_tmpl:new Hi(\"${\",!1),p_stat:new Hi(`(`,!1),p_expr:new Hi(`(`,!0),q_tmpl:new Hi(\"`\",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new Hi(`function`,!1),f_expr:new Hi(`function`,!0),f_expr_gen:new Hi(`function`,!0,!1,null,!0),f_gen:new Hi(`function`,!1,!1,null,!0)},Ui=Di.prototype;Ui.initialContext=function(){return[H.b_stat]},Ui.curContext=function(){return this.context[this.context.length-1]},Ui.braceIsBlock=function(e){var t=this.curContext();return t===H.f_expr||t===H.f_stat?!0:e===B.colon&&(t===H.b_stat||t===H.b_expr)?!t.isExpr:e===B._return||e===B.name&&this.exprAllowed?Br.test(this.input.slice(this.lastTokEnd,this.start)):e===B._else||e===B.semi||e===B.eof||e===B.parenR||e===B.arrow?!0:e===B.braceL?t===H.b_stat:e===B._var||e===B._const||e===B.name?!1:!this.exprAllowed},Ui.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if(t.token===`function`)return t.generator}return!1},Ui.updateContext=function(e){var t,n=this.type;n.keyword&&e===B.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},Ui.overrideContext=function(e){this.curContext()!==e&&(this.context[this.context.length-1]=e)},B.parenR.updateContext=B.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var e=this.context.pop();e===H.b_stat&&this.curContext().token===`function`&&(e=this.context.pop()),this.exprAllowed=!e.isExpr},B.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?H.b_stat:H.b_expr),this.exprAllowed=!0},B.dollarBraceL.updateContext=function(){this.context.push(H.b_tmpl),this.exprAllowed=!0},B.parenL.updateContext=function(e){var t=e===B._if||e===B._for||e===B._with||e===B._while;this.context.push(t?H.p_stat:H.p_expr),this.exprAllowed=!0},B.incDec.updateContext=function(){},B._function.updateContext=B._class.updateContext=function(e){e.beforeExpr&&e!==B._else&&!(e===B.semi&&this.curContext()!==H.p_stat)&&!(e===B._return&&Br.test(this.input.slice(this.lastTokEnd,this.start)))&&!((e===B.colon||e===B.braceL)&&this.curContext()===H.b_stat)?this.context.push(H.f_expr):this.context.push(H.f_stat),this.exprAllowed=!1},B.colon.updateContext=function(){this.curContext().token===`function`&&this.context.pop(),this.exprAllowed=!0},B.backQuote.updateContext=function(){this.curContext()===H.q_tmpl?this.context.pop():this.context.push(H.q_tmpl),this.exprAllowed=!1},B.star.updateContext=function(e){if(e===B._function){var t=this.context.length-1;this.context[t]===H.f_expr?this.context[t]=H.f_expr_gen:this.context[t]=H.f_gen}this.exprAllowed=!0},B.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==B.dot&&(this.value===`of`&&!this.exprAllowed||this.value===`yield`&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var U=Di.prototype;U.checkPropClash=function(e,t,n){if(!(this.options.ecmaVersion>=9&&e.type===`SpreadElement`)&&!(this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var r=e.key,i;switch(r.type){case`Identifier`:i=r.name;break;case`Literal`:i=String(r.value);break;default:return}var a=e.kind;if(this.options.ecmaVersion>=6){i===`__proto__`&&a===`init`&&(t.proto&&(n?n.doubleProto<0&&(n.doubleProto=r.start):this.raiseRecoverable(r.start,`Redefinition of __proto__ property`)),t.proto=!0);return}i=`$`+i;var o=t[i];o?(a===`init`?this.strict&&o.init||o.get||o.set:o.init||o[a])&&this.raiseRecoverable(r.start,`Redefinition of property`):o=t[i]={init:!1,get:!1,set:!1},o[a]=!0}},U.parseExpression=function(e,t){var n=this;return this.catchStackOverflow(function(){var r=n.start,i=n.startLoc,a=n.parseMaybeAssign(e,t);if(n.type===B.comma){var o=n.startNodeAt(r,i);for(o.expressions=[a];n.eat(B.comma);)o.expressions.push(n.parseMaybeAssign(e,t));return n.finishNode(o,`SequenceExpression`)}return a})},U.parseMaybeAssign=function(e,t,n){if(this.isContextual(`yield`)){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var r=!1,i=-1,a=-1,o=-1;t?(i=t.parenthesizedAssign,a=t.trailingComma,o=t.doubleProto,t.parenthesizedAssign=t.trailingComma=-1):(t=new Mi,r=!0);var s=this.start,c=this.startLoc;(this.type===B.parenL||this.type===B.name)&&(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=e===`await`);var l=this.parseMaybeConditional(e,t);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===B.eq&&(l=this.toAssignable(l,!1,t)),r||(t.parenthesizedAssign=t.trailingComma=-1,t.shorthandAssign>=l.start&&(t.shorthandAssign=-1),t.doubleProto>=l.start&&(t.doubleProto=-1)),this.type===B.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(e),o>-1&&(t.doubleProto=o),this.finishNode(u,`AssignmentExpression`)}else r&&this.checkExpressionErrors(t,!0);return i>-1&&(t.parenthesizedAssign=i),a>-1&&(t.trailingComma=a),l},U.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(!(i.type===`ArrowFunctionExpression`&&i.start===n)&&this.eat(B.question)){var a=this.startNodeAt(n,r);return a.test=i,a.consequent=this.parseMaybeAssign(),this.expect(B.colon),a.alternate=this.parseMaybeAssign(e),this.finishNode(a,`ConditionalExpression`)}return i},U.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1,!1,e);return this.checkExpressionErrors(t)||i.start===n&&i.type===`ArrowFunctionExpression`?i:this.parseExprOp(i,n,r,-1,e)},U.parseExprOp=function(e,t,n,r,i){var a=this.type.binop;if(a!=null&&(!i||this.type!==B._in)&&a>r){var o=this.type===B.logicalOR||this.type===B.logicalAND,s=this.type===B.coalesce;s&&(a=B.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,i),l,u,a,i),f=this.buildBinary(t,n,e,d,c,o||s);return(o&&this.type===B.coalesce||s&&(this.type===B.logicalOR||this.type===B.logicalAND))&&this.raiseRecoverable(this.start,`Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses`),this.parseExprOp(f,t,n,r,i)}return e},U.buildBinary=function(e,t,n,r,i,a){r.type===`PrivateIdentifier`&&this.raise(r.start,`Private identifier can only be left side of binary expression`);var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,a?`LogicalExpression`:`BinaryExpression`)},U.parseMaybeUnary=function(e,t,n,r){var i=this.start,a=this.startLoc,o;if(this.isContextual(`await`)&&this.canAwait)o=this.parseAwait(r),t=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===B.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,r),this.checkExpressionErrors(e,!0),c?this.checkLValSimple(s.argument):this.strict&&s.operator===`delete`&&Wi(s.argument)?this.raiseRecoverable(s.start,`Deleting local variable in strict mode`):s.operator===`delete`&&Gi(s.argument)?this.raiseRecoverable(s.start,`Private fields can not be deleted`):t=!0,o=this.finishNode(s,c?`UpdateExpression`:`UnaryExpression`)}else if(!t&&this.type===B.privateId)(r||this.privateNameStack.length===0)&&this.options.checkPrivateFields&&this.unexpected(),o=this.parsePrivateIdent(),this.type!==B._in&&this.unexpected();else{if(o=this.parseExprSubscripts(e,r),this.checkExpressionErrors(e))return o;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(i,a);l.operator=this.value,l.prefix=!1,l.argument=o,this.checkLValSimple(o),this.next(),o=this.finishNode(l,`UpdateExpression`)}}if(!n&&!(o.type===`ArrowFunctionExpression`&&o.start===i)&&this.eat(B.starstar))if(t)this.unexpected(this.lastTokStart);else return this.buildBinary(i,a,o,this.parseMaybeUnary(null,!1,!1,r),`**`,!1);else return o};function Wi(e){return e.type===`Identifier`||e.type===`ParenthesizedExpression`&&Wi(e.expression)}function Gi(e){return e.type===`MemberExpression`&&e.property.type===`PrivateIdentifier`||e.type===`ChainExpression`&&Gi(e.expression)||e.type===`ParenthesizedExpression`&&Gi(e.expression)}U.parseExprSubscripts=function(e,t){var n=this.start,r=this.startLoc,i=-1,a=-1;e&&(i=e.doubleProto,a=e.shorthandAssign,e.doubleProto=e.shorthandAssign=-1);var o=this.parseExprAtom(e,t);if(o.type===`ArrowFunctionExpression`&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==`)`)return o;var s=this.parseSubscripts(o,n,r,!1,t);return e&&(s.end>o.end&&(this.checkExpressionErrors(e,!0),e.parenthesizedAssign>=s.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=s.start&&(e.parenthesizedBind=-1),e.trailingComma>=s.start&&(e.trailingComma=-1)),i>-1&&(e.doubleProto=i),a>-1&&(e.shorthandAssign=a)),s},U.parseSubscripts=function(e,t,n,r,i){for(var a=this.options.ecmaVersion>=8&&e.type===`Identifier`&&e.name===`async`&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&this.potentialArrowAt===e.start,o=!1;;){var s=this.parseSubscript(e,t,n,r,a,o,i);if(s.optional&&(o=!0),s.end===e.end||s.type===`ArrowFunctionExpression`){if(o){var c=this.startNodeAt(t,n);c.expression=s,s=this.finishNode(c,`ChainExpression`)}return s}e=s,a=!1}},U.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(B.arrow)},U.parseSubscriptAsyncArrow=function(e,t,n,r){return this.parseArrowExpression(this.startNodeAt(e,t),n,!0,r)},U.parseSubscript=function(e,t,n,r,i,a,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(B.questionDot);r&&c&&this.raise(this.lastTokStart,`Optional chaining cannot appear in the callee of new expressions`);var l=this.eat(B.bracketL);if(l||c&&this.type!==B.parenL&&this.type!==B.backQuote||this.eat(B.dot)){var u=this.startNodeAt(t,n);u.object=e,l?(u.property=this.parseExpression(),this.expect(B.bracketR)):this.type===B.privateId&&e.type!==`Super`?u.property=this.parsePrivateIdent():u.property=this.parseIdent(this.options.allowReserved!==`never`),u.computed=!!l,s&&(u.optional=c),e=this.finishNode(u,`MemberExpression`)}else if(!r&&this.eat(B.parenL)){var d=new Mi,f=this.yieldPos,p=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var h=this.parseExprList(B.parenR,this.options.ecmaVersion>=8,!1,d);if(i&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,`Cannot use 'await' as identifier inside an async function`),this.yieldPos=f,this.awaitPos=p,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(t,n,h,o);this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=p||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var g=this.startNodeAt(t,n);g.callee=e,g.arguments=h,s&&(g.optional=c),e=this.finishNode(g,`CallExpression`)}else if(this.type===B.backQuote){(c||a)&&this.raise(this.start,`Optional chaining cannot appear in the tag of tagged template expressions`);var _=this.startNodeAt(t,n);_.tag=e,_.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(_,`TaggedTemplateExpression`)}return e},U.parseExprAtom=function(e,t,n){this.type===B.slash&&this.readRegexp();var r,i=this.potentialArrowAt===this.start;switch(this.type){case B._super:return this.allowSuper||this.raise(this.start,`'super' keyword outside a method`),r=this.startNode(),this.next(),this.type===B.parenL&&!this.allowDirectSuper&&this.raise(r.start,`super() call outside constructor of a subclass`),this.type!==B.dot&&this.type!==B.bracketL&&this.type!==B.parenL&&this.unexpected(),this.finishNode(r,`Super`);case B._this:return r=this.startNode(),this.next(),this.finishNode(r,`ThisExpression`);case B.name:var a=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&c.name===`async`&&!this.canInsertSemicolon()&&this.eat(B._function))return this.overrideContext(H.f_expr),this.parseFunction(this.startNodeAt(a,o),0,!1,!0,t);if(i&&!this.canInsertSemicolon()){if(this.eat(B.arrow))return this.parseArrowExpression(this.startNodeAt(a,o),[c],!1,t);if(this.options.ecmaVersion>=8&&c.name===`async`&&this.type===B.name&&!s&&(!this.potentialArrowInForAwait||this.value!==`of`||this.containsEsc))return c=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(B.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,o),[c],!0,t)}return c;case B.regexp:var l=this.value;return r=this.parseLiteral(l.value),r.regex={pattern:l.pattern,flags:l.flags},r;case B.num:case B.string:return this.parseLiteral(this.value);case B._null:case B._true:case B._false:return r=this.startNode(),r.value=this.type===B._null?null:this.type===B._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,`Literal`);case B.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(i,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),d;case B.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(B.bracketR,!0,!0,e),this.finishNode(r,`ArrayExpression`);case B.braceL:return this.overrideContext(H.b_expr),this.parseObj(!1,e);case B._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case B._class:return this.parseClass(this.startNode(),!1);case B._new:return this.parseNew();case B.backQuote:return this.parseTemplate();case B._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},U.parseExprAtomDefault=function(){this.unexpected()},U.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword import`),this.next(),this.type===B.parenL&&!e)return this.parseDynamicImport(t);if(this.type===B.dot){var n=this.startNodeAt(t.start,t.loc&&t.loc.start);return n.name=`import`,t.meta=this.finishNode(n,`Identifier`),this.parseImportMeta(t)}else this.unexpected()},U.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(B.parenR)?e.options=null:(this.expect(B.comma),this.afterTrailingComma(B.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(B.parenR)||(this.expect(B.comma),this.afterTrailingComma(B.parenR)||this.unexpected())));else if(!this.eat(B.parenR)){var t=this.start;this.eat(B.comma)&&this.eat(B.parenR)?this.raiseRecoverable(t,`Trailing comma is not allowed in import()`):this.unexpected(t)}return this.finishNode(e,`ImportExpression`)},U.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`meta`&&this.raiseRecoverable(e.property.start,`The only valid meta property for import is 'import.meta'`),t&&this.raiseRecoverable(e.start,`'import.meta' must not contain escaped characters`),this.options.sourceType!==`module`&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,`Cannot use 'import.meta' outside a module`),this.finishNode(e,`MetaProperty`)},U.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.value==null?t.raw.slice(0,-1).replace(/_/g,``):t.value.toString()),this.next(),this.finishNode(t,`Literal`)},U.parseParenExpression=function(){this.expect(B.parenL);var e=this.parseExpression();return this.expect(B.parenR),e},U.shouldParseArrow=function(e){return!this.canInsertSemicolon()},U.parseParenAndDistinguishExpression=function(e,t){var n=this.start,r=this.startLoc,i,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o=this.start,s=this.startLoc,c=[],l=!0,u=!1,d=new Mi,f=this.yieldPos,p=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==B.parenR;)if(l?l=!1:this.expect(B.comma),a&&this.afterTrailingComma(B.parenR,!0)){u=!0;break}else if(this.type===B.ellipsis){m=this.start,c.push(this.parseParenItem(this.parseRestBinding())),this.type===B.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`);break}else c.push(this.parseMaybeAssign(!1,d,this.parseParenItem));var h=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(B.parenR),e&&this.shouldParseArrow(c)&&this.eat(B.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=p,this.parseParenArrowList(n,r,c,t);(!c.length||u)&&this.unexpected(this.lastTokStart),m&&this.unexpected(m),this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=p||this.awaitPos,c.length>1?(i=this.startNodeAt(o,s),i.expressions=c,this.finishNodeAt(i,`SequenceExpression`,h,g)):i=c[0]}else i=this.parseParenExpression();if(this.options.preserveParens){var _=this.startNodeAt(n,r);return _.expression=i,this.finishNode(_,`ParenthesizedExpression`)}else return i},U.parseParenItem=function(e){return e},U.parseParenArrowList=function(e,t,n,r){return this.parseArrowExpression(this.startNodeAt(e,t),n,!1,r)};var Ki=[];U.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword new`);var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===B.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name=`new`,e.meta=this.finishNode(t,`Identifier`),this.next();var n=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`target`&&this.raiseRecoverable(e.property.start,`The only valid meta property for new is 'new.target'`),n&&this.raiseRecoverable(e.start,`'new.target' must not contain escaped characters`),this.allowNewDotTarget||this.raiseRecoverable(e.start,`'new.target' can only be used in functions and class static block`),this.finishNode(e,`MetaProperty`)}var r=this.start,i=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),r,i,!0,!1),e.callee.type===`Super`&&this.raiseRecoverable(r,`Invalid use of 'super'`),this.eat(B.parenL)?e.arguments=this.parseExprList(B.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Ki,this.finishNode(e,`NewExpression`)},U.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===B.invalidTemplate?(t||this.raiseRecoverable(this.start,`Bad escape sequence in untagged template literal`),n.value={raw:this.value.replace(/\\r\\n?/g,`\n`),cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\\r\\n?/g,`\n`),cooked:this.value},this.next(),n.tail=this.type===B.backQuote,this.finishNode(n,`TemplateElement`)},U.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.type===B.eof&&this.raise(this.pos,`Unterminated template literal`),this.expect(B.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(B.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,`TemplateLiteral`)},U.isAsyncProp=function(e){return!e.computed&&e.key.type===`Identifier`&&e.key.name===`async`&&(this.type===B.name||this.type===B.num||this.type===B.string||this.type===B.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===B.star)&&!Br.test(this.input.slice(this.lastTokEnd,this.start))},U.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(B.braceR);){if(r)r=!1;else if(this.expect(B.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(B.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,i,t),n.properties.push(a)}return this.finishNode(n,e?`ObjectPattern`:`ObjectExpression`)},U.parseProperty=function(e,t){var n=this.startNode(),r,i,a,o;if(this.options.ecmaVersion>=9&&this.eat(B.ellipsis))return e?(n.argument=this.parseIdent(!1),this.type===B.comma&&this.raiseRecoverable(this.start,`Comma is not permitted after the rest element`),this.finishNode(n,`RestElement`)):(n.argument=this.parseMaybeAssign(!1,t),this.type===B.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(n,`SpreadElement`));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(e||t)&&(a=this.start,o=this.startLoc),e||(r=this.eat(B.star)));var s=this.containsEsc;return this.parsePropertyName(n),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(n)?(i=!0,r=this.options.ecmaVersion>=9&&this.eat(B.star),this.parsePropertyName(n)):i=!1,this.parsePropertyValue(n,e,r,i,a,o,t,s),this.finishNode(n,`Property`)},U.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var n=e.kind===`get`?0:1;if(e.value.params.length!==n){var r=e.value.start;e.kind===`get`?this.raiseRecoverable(r,`getter should have no params`):this.raiseRecoverable(r,`setter should have exactly one param`)}else e.kind===`set`&&e.value.params[0].type===`RestElement`&&this.raiseRecoverable(e.value.params[0].start,`Setter cannot use rest params`)},U.parsePropertyValue=function(e,t,n,r,i,a,o,s){(n||r)&&this.type===B.colon&&this.unexpected(),this.eat(B.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind=`init`):this.options.ecmaVersion>=6&&this.type===B.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(n,r),e.kind=`init`):!t&&!s&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===`Identifier`&&(e.key.name===`get`||e.key.name===`set`)&&this.type!==B.comma&&this.type!==B.braceR&&this.type!==B.eq?((n||r)&&this.unexpected(),this.parseGetterSetter(e)):this.options.ecmaVersion>=6&&!e.computed&&e.key.type===`Identifier`?((n||r)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=i),t?e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key)):this.type===B.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind=`init`,e.shorthand=!0):this.unexpected()},U.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(B.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(B.bracketR),e.key;e.computed=!1}return e.key=this.type===B.num||this.type===B.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==`never`)},U.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},U.parseMethod=function(e,t,n){var r=this.startNode(),i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=e),this.options.ecmaVersion>=8&&(r.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(bi(t,r.generator)|mi|(n?hi:0)),this.expect(B.parenL),r.params=this.parseBindingList(B.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(r,`FunctionExpression`)},U.parseArrowExpression=function(e,t,n,r){var i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(bi(n,!1)|fi),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,r),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,`ArrowFunctionExpression`)},U.parseFunctionBody=function(e,t,n,r){var i=t&&this.type!==B.braceL,a=this.strict,o=!1;if(i)e.body=this.parseMaybeAssign(r),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!a||s)&&(o=this.strictDirective(this.end),o&&s&&this.raiseRecoverable(e.start,`Illegal 'use strict' directive in function with non-simple parameter list`));var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(e,!a&&!o&&!t&&!n&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,Ei),e.body=this.parseBlock(!1,void 0,o&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=c}this.exitScope()},U.isSimpleParamList=function(e){for(var t=0,n=e;t<n.length;t+=1)if(n[t].type!==`Identifier`)return!1;return!0},U.checkParams=function(e,t){for(var n=Object.create(null),r=0,i=e.params;r<i.length;r+=1){var a=i[r];this.checkLValInnerPattern(a,Si,t?null:n)}},U.parseExprList=function(e,t,n,r){for(var i=[],a=!0;!this.eat(e);){if(a)a=!1;else if(this.expect(B.comma),t&&this.afterTrailingComma(e))break;var o=void 0;n&&this.type===B.comma?o=null:this.type===B.ellipsis?(o=this.parseSpread(r),r&&this.type===B.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):o=this.parseMaybeAssign(!1,r),i.push(o)}return i},U.checkUnreserved=function(e){var t=e.start,n=e.end,r=e.name;this.inGenerator&&r===`yield`&&this.raiseRecoverable(t,`Cannot use 'yield' as identifier inside a generator`),this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use 'await' as identifier inside an async function`),!(this.currentThisScope().flags&yi)&&r===`arguments`&&this.raiseRecoverable(t,`Cannot use 'arguments' in class field initializer`),this.inClassStaticBlock&&(r===`arguments`||r===`await`)&&this.raise(t,`Cannot use `+r+` in class static initialization block`),this.keywords.test(r)&&this.raise(t,`Unexpected keyword '`+r+`'`),!(this.options.ecmaVersion<6&&this.input.slice(t,n).indexOf(`\\\\`)!==-1)&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(r)&&(!this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use keyword 'await' outside an async function`),this.raiseRecoverable(t,`The keyword '`+r+`' is reserved`))},U.parseIdent=function(e){var t=this.parseIdentNode();return this.next(!!e),this.finishNode(t,`Identifier`),e||(this.checkUnreserved(t),t.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=t.start)),t},U.parseIdentNode=function(){var e=this.startNode();return this.type===B.name?e.name=this.value:this.type.keyword?(e.name=this.type.keyword,(e.name===`class`||e.name===`function`)&&(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&&this.context.pop(),this.type=B.name):this.unexpected(),e},U.parsePrivateIdent=function(){var e=this.startNode();return this.type===B.privateId?e.name=this.value:this.unexpected(),this.next(),this.finishNode(e,`PrivateIdentifier`),this.options.checkPrivateFields&&(this.privateNameStack.length===0?this.raise(e.start,`Private field '#`+e.name+`' must be declared in an enclosing class`):this.privateNameStack[this.privateNameStack.length-1].used.push(e)),e},U.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===B.semi||this.canInsertSemicolon()||this.type!==B.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(B.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,`YieldExpression`)},U.parseAwait=function(e){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0,!1,e),this.finishNode(t,`AwaitExpression`)};var qi=Di.prototype;qi.raise=function(e,t){var n=ri(this.input,e);t+=` (`+n.line+`:`+n.column+`)`,this.sourceFile&&(t+=` in `+this.sourceFile);var r=SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},qi.raiseRecoverable=qi.raise,qi.curPosition=function(){if(this.options.locations)return new ti(this.curLine,this.pos-this.lineStart)};var Ji=Di.prototype,Yi=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};Ji.enterScope=function(e){this.scopeStack.push(new Yi(e))},Ji.exitScope=function(){this.scopeStack.pop()},Ji.treatFunctionsAsVarInScope=function(e){return e.flags&li||!this.inModule&&e.flags&ci},Ji.declareName=function(e,t,n){var r=!1;if(t===Ci){var i=this.currentScope();r=i.lexical.indexOf(e)>-1||i.functions.indexOf(e)>-1||i.var.indexOf(e)>-1,i.lexical.push(e),this.inModule&&i.flags&ci&&delete this.undefinedExports[e]}else if(t===Ti)this.currentScope().lexical.push(e);else if(t===wi){var a=this.currentScope();r=this.treatFunctionsAsVar?a.lexical.indexOf(e)>-1:a.lexical.indexOf(e)>-1||a.var.indexOf(e)>-1,a.functions.push(e)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(e)>-1&&!(s.flags&pi&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){r=!0;break}if(s.var.push(e),this.inModule&&s.flags&ci&&delete this.undefinedExports[e],s.flags&yi)break}r&&this.raiseRecoverable(n,`Identifier '`+e+`' has already been declared`)},Ji.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},Ji.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Ji.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(yi|_i|gi))return t}},Ji.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(yi|_i|gi)&&!(t.flags&fi))return t}};var Xi=function(e,t,n){this.type=``,this.start=t,this.end=0,e.options.locations&&(this.loc=new ni(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},Zi=Di.prototype;Zi.startNode=function(){return new Xi(this,this.start,this.startLoc)},Zi.startNodeAt=function(e,t){return new Xi(this,e,t)};function Qi(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}Zi.finishNode=function(e,t){return Qi.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Zi.finishNodeAt=function(e,t,n,r){return Qi.call(this,e,t,n,r)},Zi.copyNode=function(e){var t=new Xi(this,e.start,this.startLoc);for(var n in e)t[n]=e[n];return t};var $i=`Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz`,ea=`ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS`,ta=ea+` Extended_Pictographic`,na=ta,ra=na+` EBase EComp EMod EPres ExtPict`,ia=ra,aa=ia,oa={9:ea,10:ta,11:na,12:ra,13:ia,14:aa},sa=`Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji`,ca={9:``,10:``,11:``,12:``,13:``,14:sa},la=`Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu`,ua=`Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb`,da=ua+` Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd`,fa=da+` Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho`,pa=fa+` Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi`,ma=pa+` Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith`,ha=ma+` `+$i,ga={9:ua,10:da,11:fa,12:pa,13:ma,14:ha},_a={};function va(e){var t=_a[e]={binary:Qr(oa[e]+` `+la),binaryOfStrings:Qr(ca[e]),nonBinary:{General_Category:Qr(la),Script:Qr(ga[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var ya=0,ba=[9,10,11,12,13,14];ya<ba.length;ya+=1){var xa=ba[ya];va(xa)}var W=Di.prototype,Sa=function(e,t){this.parent=e,this.base=t||this};Sa.prototype.separatedFrom=function(e){for(var t=this;t;t=t.parent)for(var n=e;n;n=n.parent)if(t.base===n.base&&t!==n)return!0;return!1},Sa.prototype.sibling=function(){return new Sa(this.parent,this.base)};var Ca=function(e){this.parser=e,this.validFlags=`gim`+(e.options.ecmaVersion>=6?`uy`:``)+(e.options.ecmaVersion>=9?`s`:``)+(e.options.ecmaVersion>=13?`d`:``)+(e.options.ecmaVersion>=15?`v`:``),this.unicodeProperties=_a[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source=``,this.flags=``,this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=``,this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};Ca.prototype.reset=function(e,t,n){var r=n.indexOf(`v`)!==-1,i=n.indexOf(`u`)!==-1;this.start=e|0,this.source=t+``,this.flags=n,r&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=i&&this.parser.options.ecmaVersion>=9)},Ca.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,`Invalid regular expression: /`+this.source+`/: `+e)},Ca.prototype.at=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return-1;var i=n.charCodeAt(e);if(!(t||this.switchU)||i<=55295||i>=57344||e+1>=r)return i;var a=n.charCodeAt(e+1);return a>=56320&&a<=57343?(i<<10)+a-56613888:i},Ca.prototype.nextIndex=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return r;var i=n.charCodeAt(e),a;return!(t||this.switchU)||i<=55295||i>=57344||e+1>=r||(a=n.charCodeAt(e+1))<56320||a>57343?e+1:e+2},Ca.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)},Ca.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Ca.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Ca.prototype.eat=function(e,t){return t===void 0&&(t=!1),this.current(t)===e?(this.advance(t),!0):!1},Ca.prototype.eatChars=function(e,t){t===void 0&&(t=!1);for(var n=this.pos,r=0,i=e;r<i.length;r+=1){var a=i[r],o=this.at(n,t);if(o===-1||o!==a)return!1;n=this.nextIndex(n,t)}return this.pos=n,!0},W.validateRegExpFlags=function(e){for(var t=e.validFlags,n=e.flags,r=!1,i=!1,a=0;a<n.length;a++){var o=n.charAt(a);t.indexOf(o)===-1&&this.raise(e.start,`Invalid regular expression flag`),n.indexOf(o,a+1)>-1&&this.raise(e.start,`Duplicate regular expression flag`),o===`u`&&(r=!0),o===`v`&&(i=!0)}this.options.ecmaVersion>=15&&r&&i&&this.raise(e.start,`Invalid regular expression flag`)};function wa(e){for(var t in e)return!0;return!1}W.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&wa(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))},W.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=``,e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(`Unmatched ')'`),(e.eat(93)||e.eat(125))&&e.raise(`Lone quantifier brackets`)),e.maxBackReference>e.numCapturingParens&&e.raise(`Invalid escape`);for(var t=0,n=e.backReferenceNames;t<n.length;t+=1){var r=n[t];e.groupNames[r]||e.raise(`Invalid named capture referenced`)}},W.regexp_disjunction=function(e){var t=this.options.ecmaVersion>=16;for(t&&(e.branchID=new Sa(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise(`Nothing to repeat`),e.eat(123)&&e.raise(`Lone quantifier brackets`)},W.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},W.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise(`Invalid quantifier`),!0):(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))?(this.regexp_eatQuantifier(e),!0):!1},W.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(`Unterminated group`),e.lastAssertionIsQuantifiable=!n,!0}return e.pos=t,!1},W.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},W.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},W.regexp_eatBracedQuantifier=function(e,t){var n=e.pos;if(e.eat(123)){var r=0,i=-1;if(this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue),e.eat(125)))return i!==-1&&i<r&&!t&&e.raise(`numbers out of order in {} quantifier`),!0;e.switchU&&!t&&e.raise(`Incomplete quantifier`),e.pos=n}return!1},W.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},W.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},W.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)){if(this.options.ecmaVersion>=16){var n=this.regexp_eatModifiers(e),r=e.eat(45);if(n||r){for(var i=0;i<n.length;i++){var a=n.charAt(i);n.indexOf(a,i+1)>-1&&e.raise(`Duplicate regular expression modifiers`)}if(r){var o=this.regexp_eatModifiers(e);!n&&!o&&e.current()===58&&e.raise(`Invalid regular expression modifiers`);for(var s=0;s<o.length;s++){var c=o.charAt(s);(o.indexOf(c,s+1)>-1||n.indexOf(c)>-1)&&e.raise(`Duplicate regular expression modifiers`)}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise(`Unterminated group`)}}e.pos=t}return!1},W.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(`Invalid group`),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(`Unterminated group`)}return!1},W.regexp_eatModifiers=function(e){for(var t=``,n=0;(n=e.current())!==-1&&Ta(n);)t+=$r(n),e.advance();return t};function Ta(e){return e===105||e===109||e===115}W.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},W.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(`Nothing to repeat`),!1},W.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ea(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ea(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}W.regexp_eatPatternCharacters=function(e){for(var t=e.pos,n=0;(n=e.current())!==-1&&!Ea(n);)e.advance();return e.pos!==t},W.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},W.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise(`Invalid group`);var t=this.options.ecmaVersion>=16,n=e.groupNames[e.lastStringValue];if(n)if(t)for(var r=0,i=n;r<i.length;r+=1)i[r].separatedFrom(e.branchID)||e.raise(`Duplicate capture group name`);else e.raise(`Duplicate capture group name`);t?(n||(e.groupNames[e.lastStringValue]=[])).push(e.branchID):e.groupNames[e.lastStringValue]=!0}},W.regexp_eatGroupName=function(e){if(e.lastStringValue=``,e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(`Invalid capture group name`)}return!1},W.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=``,this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=$r(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=$r(e.lastIntValue);return!0}return!1},W.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),Da(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Da(e){return Pr(e,!0)||e===36||e===95}W.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),Oa(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Oa(e){return Fr(e,!0)||e===36||e===95||e===8204||e===8205}W.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(`Invalid unicode escape`),e.raise(`Invalid escape`)),!1)},W.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var n=e.lastIntValue;if(e.switchU)return n>e.maxBackReference&&(e.maxBackReference=n),!0;if(n<=e.numCapturingParens)return!0;e.pos=t}return!1},W.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(`Invalid named reference`)}return!1},W.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},W.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},W.regexp_eatZero=function(e){return e.current()===48&&!Ba(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},W.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},W.regexp_eatControlLetter=function(e){var t=e.current();return ka(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function ka(e){return e>=65&&e<=90||e>=97&&e<=122}W.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var n=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(r&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=(i-55296)*1024+(o-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Aa(e.lastIntValue))return!0;r&&e.raise(`Invalid unicode escape`),e.pos=n}return!1};function Aa(e){return e>=0&&e<=1114111}W.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},W.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1};var ja=0,Ma=1,Na=2;W.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Pa(t))return e.lastIntValue=-1,e.advance(),Ma;var n=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((n=t===80)||t===112)){e.lastIntValue=-1,e.advance();var r;if(e.eat(123)&&(r=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return n&&r===Na&&e.raise(`Invalid property name`),r;e.raise(`Invalid property name`)}return ja};function Pa(e){return e===100||e===68||e===115||e===83||e===119||e===87}W.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var n=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,n,r),Ma}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,i)}return ja},W.regexp_validateUnicodePropertyNameAndValue=function(e,t,n){Yr(e.unicodeProperties.nonBinary,t)||e.raise(`Invalid property name`),e.unicodeProperties.nonBinary[t].test(n)||e.raise(`Invalid property value`)},W.regexp_validateUnicodePropertyNameOrValue=function(e,t){if(e.unicodeProperties.binary.test(t))return Ma;if(e.switchV&&e.unicodeProperties.binaryOfStrings.test(t))return Na;e.raise(`Invalid property name`)},W.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=``;Fa(t=e.current());)e.lastStringValue+=$r(t),e.advance();return e.lastStringValue!==``};function Fa(e){return ka(e)||e===95}W.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=``;Ia(t=e.current());)e.lastStringValue+=$r(t),e.advance();return e.lastStringValue!==``};function Ia(e){return Fa(e)||Ba(e)}W.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},W.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),n=this.regexp_classContents(e);return e.eat(93)||e.raise(`Unterminated character class`),t&&n===Na&&e.raise(`Negated character class may contain strings`),!0}return!1},W.regexp_classContents=function(e){return e.current()===93?Ma:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),Ma)},W.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var n=e.lastIntValue;e.switchU&&(t===-1||n===-1)&&e.raise(`Invalid character class`),t!==-1&&n!==-1&&t>n&&e.raise(`Range out of order in character class`)}}},W.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var n=e.current();(n===99||Ua(n))&&e.raise(`Invalid class escape`),e.raise(`Invalid escape`)}e.pos=t}var r=e.current();return r===93?!1:(e.lastIntValue=r,e.advance(),!0)},W.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},W.regexp_classSetExpression=function(e){var t=Ma,n;if(!this.regexp_eatClassSetRange(e))if(n=this.regexp_eatClassSetOperand(e)){n===Na&&(t=Na);for(var r=e.pos;e.eatChars([38,38]);){if(e.current()!==38&&(n=this.regexp_eatClassSetOperand(e))){n!==Na&&(t=Ma);continue}e.raise(`Invalid character in character class`)}if(r!==e.pos)return t;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise(`Invalid character in character class`);if(r!==e.pos)return t}else e.raise(`Invalid character in character class`);for(;;)if(!this.regexp_eatClassSetRange(e)){if(n=this.regexp_eatClassSetOperand(e),!n)return t;n===Na&&(t=Na)}},W.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var n=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;return n!==-1&&r!==-1&&n>r&&e.raise(`Range out of order in character class`),!0}e.pos=t}return!1},W.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?Ma:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)},W.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var n=e.eat(94),r=this.regexp_classContents(e);if(e.eat(93))return n&&r===Na&&e.raise(`Negated character class may contain strings`),r;e.pos=t}if(e.eat(92)){var i=this.regexp_eatCharacterClassEscape(e);if(i)return i;e.pos=t}return null},W.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var n=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return n}else e.raise(`Invalid escape`);e.pos=t}return null},W.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===Na&&(t=Na);return t},W.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return t===1?Ma:Na},W.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return this.regexp_eatCharacterEscape(e)||this.regexp_eatClassSetReservedPunctuator(e)?!0:e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1);var n=e.current();return n<0||n===e.lookahead()&&La(n)||Ra(n)?!1:(e.advance(),e.lastIntValue=n,!0)};function La(e){return e===33||e>=35&&e<=38||e>=42&&e<=44||e===46||e>=58&&e<=64||e===94||e===96||e===126}function Ra(e){return e===40||e===41||e===45||e===47||e>=91&&e<=93||e>=123&&e<=125}W.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return za(t)?(e.lastIntValue=t,e.advance(),!0):!1};function za(e){return e===33||e===35||e===37||e===38||e===44||e===45||e>=58&&e<=62||e===64||e===96||e===126}W.regexp_eatClassControlLetter=function(e){var t=e.current();return Ba(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},W.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(`Invalid escape`),e.pos=t}return!1},W.regexp_eatDecimalDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Ba(n=e.current());)e.lastIntValue=10*e.lastIntValue+(n-48),e.advance();return e.pos!==t};function Ba(e){return e>=48&&e<=57}W.regexp_eatHexDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Va(n=e.current());)e.lastIntValue=16*e.lastIntValue+Ha(n),e.advance();return e.pos!==t};function Va(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ha(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}W.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var n=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+n*8+e.lastIntValue:e.lastIntValue=t*8+n}else e.lastIntValue=t;return!0}return!1},W.regexp_eatOctalDigit=function(e){var t=e.current();return Ua(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Ua(e){return e>=48&&e<=55}W.regexp_eatFixedHexDigits=function(e,t){var n=e.pos;e.lastIntValue=0;for(var r=0;r<t;++r){var i=e.current();if(!Va(i))return e.pos=n,!1;e.lastIntValue=16*e.lastIntValue+Ha(i),e.advance()}return!0};var Wa=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new ni(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},G=Di.prototype;G.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword `+this.type.keyword),this.options.onToken&&this.options.onToken(new Wa(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},G.getToken=function(){return this.next(),new Wa(this)},typeof Symbol<`u`&&(G[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===B.eof,value:t}}}}),G.nextToken=function(){var e=this.curContext();if((!e||!e.preserveSpace)&&this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length)return this.finishToken(B.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},G.readToken=function(e){return Pr(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},G.fullCharCodeAt=function(e){var t=this.input.charCodeAt(e);if(t<=55295||t>=56320)return t;var n=this.input.charCodeAt(e+1);return n<=56319||n>=57344?t:(t<<10)+n-56613888},G.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)},G.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,n=this.input.indexOf(`*/`,this.pos+=2);if(n===-1&&this.raise(this.pos-2,`Unterminated comment`),this.pos=n+2,this.options.locations)for(var r=void 0,i=t;(r=Ur(this.input,i,this.pos))>-1;)++this.curLine,i=this.lineStart=r;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,n),t,this.pos,e,this.curPosition())},G.skipLineComment=function(e){for(var t=this.pos,n=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!Hr(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,n,this.curPosition())},G.skipSpace=function(){loop:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break loop}break;default:if(e>8&&e<14||e>=5760&&Wr.test(String.fromCharCode(e)))++this.pos;else break loop}}},G.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},G.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(B.ellipsis)):(++this.pos,this.finishToken(B.dot))},G.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(B.assign,2):this.finishOp(B.slash,1)},G.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=e===42?B.star:B.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++n,r=B.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(B.assign,n+1):this.finishOp(r,n)},G.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(B.assign,3):this.finishOp(e===124?B.logicalOR:B.logicalAND,2):t===61?this.finishOp(B.assign,2):this.finishOp(e===124?B.bitwiseOR:B.bitwiseAND,1)},G.readToken_caret=function(){return this.input.charCodeAt(this.pos+1)===61?this.finishOp(B.assign,2):this.finishOp(B.bitwiseXOR,1)},G.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||Br.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(B.incDec,2):t===61?this.finishOp(B.assign,2):this.finishOp(B.plusMin,1)},G.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+n)===61?this.finishOp(B.assign,n+1):this.finishOp(B.bitShift,n)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(n=2),this.finishOp(B.relational,n))},G.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(B.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(B.arrow)):this.finishOp(e===61?B.eq:B.prefix,1)},G.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(B.questionDot,2)}if(t===63)return e>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(B.assign,3):this.finishOp(B.coalesce,2)}return this.finishOp(B.question,1)},G.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),Pr(t,!0)||t===92))return this.finishToken(B.privateId,this.readWord1());this.raise(this.pos,`Unexpected character '`+$r(t)+`'`)},G.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(B.parenL);case 41:return++this.pos,this.finishToken(B.parenR);case 59:return++this.pos,this.finishToken(B.semi);case 44:return++this.pos,this.finishToken(B.comma);case 91:return++this.pos,this.finishToken(B.bracketL);case 93:return++this.pos,this.finishToken(B.bracketR);case 123:return++this.pos,this.finishToken(B.braceL);case 125:return++this.pos,this.finishToken(B.braceR);case 58:return++this.pos,this.finishToken(B.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(B.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(B.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,`Unexpected character '`+$r(e)+`'`)},G.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)},G.readRegexp=function(){for(var e,t,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,`Unterminated regular expression`);var r=this.input.charAt(this.pos);if(Br.test(r)&&this.raise(n,`Unterminated regular expression`),e)e=!1;else{if(r===`[`)t=!0;else if(r===`]`&&t)t=!1;else if(r===`/`&&!t)break;e=r===`\\\\`}++this.pos}var i=this.input.slice(n,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var s=this.regexpState||(this.regexpState=new Ca(this));s.reset(n,i,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(i,o)}catch{}return this.finishToken(B.regexp,{pattern:i,flags:o,value:c})},G.readInt=function(e,t,n){for(var r=this.options.ecmaVersion>=12&&t===void 0,i=n&&this.input.charCodeAt(this.pos)===48,a=this.pos,o=0,s=0,c=0,l=t??1/0;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(r&&u===95){i&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed in legacy octal numeric literals`),s===95&&this.raiseRecoverable(this.pos,`Numeric separator must be exactly one underscore`),c===0&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed at the first of digits`),s=u;continue}if(d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0,d>=e)break;s=u,o=o*e+d}return r&&s===95&&this.raiseRecoverable(this.pos-1,`Numeric separator is not allowed at the last of digits`),this.pos===a||t!=null&&this.pos-a!==t?null:o};function Ga(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,``))}function Ka(e){return typeof BigInt==`function`?BigInt(e.replace(/_/g,``)):null}G.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var n=this.readInt(e);return n??this.raise(this.start+2,`Expected number in radix `+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(n=Ka(this.input.slice(t,this.pos)),++this.pos):Pr(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(B.num,n)},G.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,`Invalid number`);var n=this.pos-t>=2&&this.input.charCodeAt(t)===48;n&&this.strict&&this.raise(t,`Invalid number`);var r=this.input.charCodeAt(this.pos);if(!n&&!e&&this.options.ecmaVersion>=11&&r===110){var i=Ka(this.input.slice(t,this.pos));return++this.pos,Pr(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(B.num,i)}n&&/[89]/.test(this.input.slice(t,this.pos))&&(n=!1),r===46&&!n&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(r===69||r===101)&&!n&&(r=this.input.charCodeAt(++this.pos),(r===43||r===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,`Invalid number`)),Pr(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`);var a=Ga(this.input.slice(t,this.pos),n);return this.finishToken(B.num,a)},G.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var n=++this.pos;t=this.readHexChar(this.input.indexOf(`}`,this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(n,`Code point out of bounds`)}else t=this.readHexChar(4);return t},G.readString=function(e){for(var t=``,n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated string constant`);var r=this.input.charCodeAt(this.pos);if(r===e)break;r===92?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):r===8232||r===8233?(this.options.ecmaVersion<10&&this.raise(this.start,`Unterminated string constant`),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Hr(r)&&this.raise(this.start,`Unterminated string constant`),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(B.string,t)};var qa={};G.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===qa)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},G.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw qa;this.raise(e,t)},G.readTmplToken=function(){for(var e=``,t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated template`);var n=this.input.charCodeAt(this.pos);if(n===96||n===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===B.template||this.type===B.invalidTemplate)?n===36?(this.pos+=2,this.finishToken(B.dollarBraceL)):(++this.pos,this.finishToken(B.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(B.template,e));if(n===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Hr(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`\n`;break;default:e+=String.fromCharCode(n);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else ++this.pos}},G.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case`\\\\`:++this.pos;break;case`$`:if(this.input[this.pos+1]!==`{`)break;case\"`\":return this.finishToken(B.invalidTemplate,this.input.slice(this.start,this.pos));case`\\r`:this.input[this.pos+1]===`\n`&&++this.pos;case`\n`:case`\\u2028`:case`\\u2029`:++this.curLine,this.lineStart=this.pos+1;break}this.raise(this.start,`Unterminated template`)},G.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`\n`;case 114:return`\\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return $r(this.readCodePoint());case 116:return`\t`;case 98:return`\\b`;case 118:return`\\v`;case 102:return`\\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,`Invalid escape sequence`),e){var n=this.pos-1;this.invalidStringToken(n,`Invalid escape sequence in template string`)}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),(r!==`0`||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return Hr(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),``):String.fromCharCode(t)}},G.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},G.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(Fr(i,r))this.pos+=i<=65535?1:2;else if(i===92){this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\\\uXXXX`),++this.pos;var o=this.readCodePoint();(t?Pr:Fr)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=$r(o),n=this.pos}else break;t=!1}return e+this.input.slice(n,this.pos)},G.readWord=function(){var e=this.readWord1(),t=B.name;return this.keywords.test(e)&&(t=zr[e]),this.finishToken(t,e)},Di.acorn={Parser:Di,version:`8.19.0`,defaultOptions:ii,Position:ti,SourceLocation:ni,getLineInfo:ri,Node:Xi,TokenType:R,tokTypes:B,keywordTypes:zr,TokContext:Hi,tokContexts:H,isIdentifierChar:Fr,isIdentifierStart:Pr,Token:Wa,isNewLine:Hr,lineBreak:Br,lineBreakG:Vr,nonASCIIwhitespace:Wr};var Ja={ecmaVersion:`latest`,sourceType:`script`,allowReturnOutsideFunction:!0},Ya=/\\w+(?![\\p{ID_Continue}$\\u200c\\u200d])/uy,Xa=/[A-Za-z_]\\w*(?![\\p{ID_Continue}$\\u200c\\u200d])/uy,Za=/^[$_]\\w+$/,Qa=/[\\n\\r\\u2028\\u2029]/,$a=/\\s*(?:[;},:)]|=(?![=>]))/y;function eo(e,t){return $a.lastIndex=t,$a.test(e)}var to=new Set([B.name,B.num,B.string,B.regexp,B.backQuote,B.bracketR,B.braceR,B.parenR,B.incDec,B._this,B._null,B._true,B._false]),no=class extends Di{constructor(...e){super(...e),this.operandBeforeLast=!0,this.operandHere=!0,this.breakBeforeLast=!1,this.breakHere=!1,this.ternaries=[],this.colonEndsTernary=!1,this.closedBlock=!1,this.typeBeforeLast=B.eof,this.lookahead=!0}readToken(e){let t=this;if(t.lastTokEnd=t.end,this.operandBeforeLast=this.operandHere,this.operandHere=t.exprAllowed,this.breakBeforeLast=this.breakHere,this.breakHere=Qa.test(t.input.slice(t.end,t.pos)),e===64||e===37){let n=t.pos,r=e===64?Ya:Xa;r.lastIndex=n+1;let i=r.exec(t.input)?.[0];if(i){let r=n+1+i.length,a=t.type===B.incDec&&(this.operandBeforeLast||this.breakBeforeLast),o=e===37?this.percentAt?.get(n):void 0;if(e===64||(o??(t.exprAllowed||a||this.lookahead&&ro(t,r)))){e===37&&this.transientsRead?.add(n),t.pos=r,t.finishToken(B.name,t.input.charAt(n)+i);return}}}super.readToken(e)}finishToken(e,t){let{context:n}=this,r=n.length;if(e===B.braceR){let e=n[r-1];this.closedBlock=e.token===`{`&&!e.isExpr}else if(e===B.question)this.ternaries[r]=(this.ternaries[r]??0)+1;else if(e===B.colon){let e=this.ternaries[r]??0;this.colonEndsTernary=e>0,e>0&&(this.ternaries[r]=e-1)}let i=this,a=i.type;this.prevValue=i.value;let o=e.keyword!==void 0&&(a===B.dot||a===B.questionDot)||(e===B._function||e===B._class)&&eo(i.input,i.pos);if(!o&&(e===B._function||e===B._class)){let t=e===B._function&&a===B.name&&this.prevValue===`async`&&!this.breakHere?this.typeBeforeLast:a;i.type=t===B.colon&&this.colonEndsTernary?B.parenL:t}this.typeBeforeLast=a,super.finishToken(o?B.name:e,t),e===B.name&&t===`of`&&(a===B._const||a===B._var||this.prevValue===`let`)&&(i.exprAllowed=!1)}braceIsBlock(e){if(e===B.colon&&this.colonEndsTernary)return!1;if(e===B.braceR&&this.closedBlock||e===B.name&&this.prevValue===`static`)return!0;if(this.breakHere&&to.has(e)){let{context:e}=this,t=e[e.length-1];if(t.token===`{`&&!t.isExpr)return!0}return super.braceIsBlock(e)}};function ro(e,t){if(!Qa.test(e.input.slice(e.end,e.pos)))return!1;let n=oo(e.input,t,`statements`,{afterOperand:!0});n.lookahead=!1;let r=0;try{for(;;){n.nextToken();let e=n.type;if(e===B.eof)return!1;if(r>0)io.has(e)?r++:ao.has(e)&&r--;else if(e===B.bracketL)r=1;else if(e===B.dot){if(n.nextToken(),n.type!==B.name&&!n.type.keyword)return!1}else return e===B.eq||e===B.assign}}catch{return!1}}var io=new Set([B.parenL,B.bracketL,B.braceL,B.dollarBraceL]),ao=new Set([B.parenR,B.bracketR,B.braceR]);function oo(e,t,n,{onComment:r,afterOperand:i=!1}={}){let a=new no(r?{...Ja,onComment:r}:Ja,e,t);return n===`expression`&&(a.type=B.parenL),i&&(a.exprAllowed=!1),a}var so=class extends SyntaxError{constructor(e,t,n,r){super(`${e} ${uo(t,n)}`+co(r,e=>lo(t,e))),this.reason=e,this.source=t,this.pos=n,this.bracket=r,this.name=`SyntaxError`}reasonIn(e,t){return this.reason+co(this.bracket,n=>{let{line:r,column:i}=ri(e,t+n);return`at line ${r}, column ${i+1}`})}};function co(e,t){return e?` (missing \"${e.closer}\" for the \"${e.open}\" ${t(e.pos)})`:``}function lo(e,t){let{line:n,column:r}=ri(e,t);return Qa.test(e)?`at line ${n}, column ${r+1}`:`at column ${r+1}`}function uo(e,t){let{column:n}=ri(e,t),r=t-n,i=e.slice(r).search(Qa),a=i<0?e.length:r+i,o=Math.max(r,t-30),s=Math.min(a,t+30),c=(o>r?`…`:``)+e.slice(o,t)+`▶`+e.slice(t,s)+(s<a?`…`:``);return`${lo(e,t)}: ${c.trim()}`}var fo=e=>e[e.length-1],po={\"(\":`)`,\"[\":`]`,\"{\":`}`,\"${\":`}`};function mo(e,t){if(!(t instanceof SyntaxError)||!(`pos`in t))throw t;let n=t.pos,r=t.message.replace(/ \\(\\d+:\\d+\\)$/,``),{open:i,token:a}=ho(e,n),o=n>=e.length||a===``,s=!1;r===`Unexpected token`?(r=o?`Unexpected end of code`:`Unexpected \"${a}\"`,s=!!i&&po[i.text]!==a&&(o||[`)`,`]`,`}`,`;`,`{`].includes(a))):r.startsWith(`Unterminated template`)&&(s=i?.text===\"${\");let c=s&&i?{open:i.text,closer:po[i.text],pos:i.pos}:void 0;return new so(r,e,n,c)}function ho(e,t){let n=[];for(let r of ko(e,0,`statements`)){if(`error`in r)break;if(r.start>=t||r.type===B.eof)return{open:fo(n),token:e.slice(r.start,r.end)};let i=e.slice(r.start,r.end);i in po?n.push({text:i,pos:r.start}):n.length&&po[fo(n).text]===i&&n.pop()}return{open:fo(n),token:e.charAt(t)}}function go(e,t=`expression`){let n=new Map;for(;;){let r=new Set;try{let i=_o(e,t,n,r),a={refs:[],strings:[]};return So(i,e,a,!1,!1),a.refs.sort((e,t)=>e.start-t.start),a}catch(t){let i=t.pos??-1;if(!(t instanceof SyntaxError)||n.has(i)||(Xa.lastIndex=i+1,e.charAt(i)!==`%`||!Xa.test(e)))throw t;n.set(i,!r.has(i))}}}function _o(e,t,n,r){try{let i=oo(e,0,t);if(i.percentAt=n,i.transientsRead=r,t===`statements`)return i.parse();i.nextToken();let a=i.parseExpression();if(i.type!==B.eof)throw Object.assign(SyntaxError(`Unexpected token`),{pos:i.start});return a}catch(t){throw mo(e,t)}}var vo=e=>typeof e==`object`&&!!e&&typeof e.type==`string`,yo={$:`story`,_:`temporary`,\"@\":`local`,\"%\":`transient`};function bo(e,t){let n=e.name,r=t.charAt(e.start);return r===n.charAt(0)&&(r===`@`||r===`%`||(r===`$`||r===`_`)&&Za.test(n))?[r,n.slice(1)]:null}function xo(e,t){if(!vo(e)||e.type!==`Identifier`)return;let n=t.charAt(e.start);if(n===`@`||n===`%`)throw new so(`\"${e.name}\" can't be a property name`,t,e.start)}function So(e,t,n,r,i){if(Array.isArray(e)){for(let i of e)So(i,t,n,r,!1);return}if(!vo(e))return;let a=(e,r=!1,i=!1)=>So(e,t,n,r,i);switch(e.type){case`Identifier`:{let a=bo(e,t);if(!a)return;if(r)throw new so(`\"${e.name}\" is a ${yo[a[0]]} variable and can't be declared`,t,e.start);n.refs.push({sigil:a[0],name:a[1],start:e.start,end:e.end,shorthand:i});return}case`Literal`:typeof e.value==`string`&&n.strings.push(t.slice(e.start+1,e.end-1));return;case`TemplateElement`:n.strings.push(e.value.raw);return;case`MemberExpression`:a(e.object),e.computed?a(e.property):xo(e.property,t);return;case`Property`:if(e.computed?a(e.key):e.shorthand||xo(e.key,t),e.shorthand){let t=e.value;t.type===`AssignmentPattern`?(a(t.left,r,!0),a(t.right)):a(t,r,!0)}else a(e.value,r);return;case`MethodDefinition`:case`PropertyDefinition`:e.computed?a(e.key):xo(e.key,t),a(e.value);return;case`LabeledStatement`:a(e.body);return;case`BreakStatement`:case`ContinueStatement`:case`MetaProperty`:case`PrivateIdentifier`:return;case`VariableDeclarator`:a(e.id,!0),a(e.init);return;case`FunctionDeclaration`:case`FunctionExpression`:case`ArrowFunctionExpression`:a(e.id,!0);for(let t of e.params)a(t,!0);a(e.body);return;case`ClassDeclaration`:case`ClassExpression`:a(e.id,!0),a(e.superClass),a(e.body);return;case`CatchClause`:a(e.param,!0),a(e.body);return;case`AssignmentPattern`:a(e.left,r),a(e.right);return;case`ObjectPattern`:case`ArrayPattern`:case`RestElement`:for(let t of[`properties`,`elements`,`argument`])a(e[t],r);return;default:for(let t in e){if(t===`type`||t===`start`||t===`end`)continue;let n=e[t];typeof n==`object`&&n&&a(n)}}}var Co=/[\\p{ID_Continue}$.]*/uy,wo=/[\\p{ID_Continue}$]*/uy,To=new Set([`of`,`get`,`set`,`static`,`async`]);function Eo(e,t,{goal:n=`expression`,stop:r}={}){let i=Oo(e,t,n,r);return i<0&&!r?Do(e,t,n):i}function Do(e,t,n){let r=oo(e,t,n);try{if(n===`statements`)r.parse();else if(r.nextToken(),r.parseExpression(),r.type===B.braceR)return r.start}catch(t){let n=t.pos??-1;if(e.charAt(n)===`}`)return n}return-1}function Oo(e,t,n,r){let i=[],a=-1,o=!1,s=t,c=!1,l=!1;for(;;){let t=-1;for(let u of ko(e,s,n,{afterOperand:c})){if(`error`in u){let{message:n}=u.error,a=i.includes(\"${\");if(!/^Unterminated/.test(n)&&!a){if(t=Math.max(u.pos,s)+1,c=!1,t>=e.length)return-1;break}let o=i.lastIndexOf(\"${\");if(!/^Unterminated template/.test(n)||o<0||l||r)return-1;l=!0,i.length=o,t=u.pos,c=!0;break}if(u.restarted&&i.includes(\"${\"))return-1;let n=u.type;if(n===B.eof||n===B.string&&o&&u.start===a)return-1;if(o=n===B.name&&!To.has(u.value)||n===B.num,a=u.end,n===B.braceL){if(r?.(u.start))return u.start;i.push(`{`)}else if(n===B.dollarBraceL)i.push(\"${\");else if(n===B.parenL)i.push(`(`);else if(n===B.bracketL)i.push(`[`);else if(n===B.parenR||n===B.bracketR)fo(i)===(n===B.parenR?`(`:`[`)&&i.pop();else if(n===B.braceR){let e=Math.max(i.lastIndexOf(`{`),i.lastIndexOf(\"${\"));if(e>=0)i.length=e;else if(!r)return u.start}}s=t,o=!1}}function*ko(e,t,n,r={}){let i=oo(e,t,n,r);for(;;){try{i.nextToken()}catch(t){let n=Math.min(t.pos??i.pos,e.length),a=t.message,o=(t,n,a)=>(i=oo(e,a,`statements`,{onComment:r.onComment,afterOperand:!0}),{type:t,start:n,end:a,value:void 0,restarted:!0}),s=e.charAt(i.start),c=/^Unterminated/.test(a);if(/^Unterminated string/.test(a)){let{end:t,closed:r}=Io(e,n);if(r){yield o(B.string,n,t);continue}}else if(!c&&i.start<=n&&(s===`\"`||s===`'`)){let{end:t,closed:n}=Io(e,i.start);if(n){yield o(B.string,i.start,t);continue}}else if(!c&&i.start<=n&&s===`/`){let t=Po(e,i.start);if(t>0){yield o(B.regexp,i.start,t);continue}}else if(!c&&i.start<=n&&/[\\d.]/.test(s)&&/\\d/.test(e.slice(i.start,i.start+2))){Co.lastIndex=i.start,Co.test(e),yield o(B.num,i.start,Co.lastIndex);continue}yield{error:t,pos:n};return}if(yield{type:i.type,start:i.start,end:i.end,value:i.value},i.type===B.eof)return}}function Ao(e,t,n=`expression`){return jo(e,0,t,0,n,!1)}function jo(e,t,n,r,i,a){let o=[],s=(e,t,n,r)=>{o.push([n,r])},c=(t,i)=>{for(let a=t;a<i;a++)n.code?.(e.charAt(a),a,r)},l=(t,i)=>{i>t&&n.literal?.(e.slice(t,i),t,r)},u=(e,t)=>{for(let[n,r]of o)r<=e||n>=t||(c(e,n),l(n,r),e=r);o.length=0,c(e,t)},d=[],f=0,p=ko(e,t,i,{onComment:s}),m=t,h;for(;;){let t=p.next().value;if(`error`in t){let n=Math.max(m,t.pos);if(u(m,n),n>=e.length)return e.length;if(/^Unterminated/.test(t.error.message))return l(n,e.length),e.length;c(n,n+1),m=n+1,p=ko(e,m,i,{onComment:s}),h=void 0;continue}let o=t.type;if(o===B.eof)return u(m,e.length),e.length;if(u(m,t.start),o===B.name){let i=Mo(e,t.start,t.value),a=h===B.dot||h===B.questionDot||(i===`$`||i===`_`)&&No(e,t.end,h);i&&!a?n.variable?.(i,e.slice(t.start+1,t.end),t.start,r):c(t.start,t.end)}else if(o===B.string||o===B.regexp||o===B.template||o===B.invalidTemplate)l(t.start,t.end);else if(o===B.backQuote)if(l(t.start,t.end),h===B.template||h===B.invalidTemplate){if(f--,a&&f===0)return t.end}else f++;else o===B.dollarBraceL?(l(t.start,t.end),d.push(\"${\"),r++):o===B.braceR&&fo(d)===\"${\"?(d.pop(),r--,l(t.start,t.end)):(o===B.braceL||o===B.parenL||o===B.bracketL?d.push(e.charAt(t.start)):(o===B.braceR||o===B.parenR||o===B.bracketR)&&d.length&&fo(d)!==\"${\"&&d.pop(),c(t.start,t.end));h=o,m=t.end}}function Mo(e,t,n){let r=e.charAt(t);return(r===`@`||r===`%`)&&n.charAt(0)===r||(r===`$`||r===`_`)&&Za.test(n)?r:null}function No(e,t,n){if(n!==B.braceL&&n!==B.comma)return!1;let r=/\\S/g;r.lastIndex=t;let i=r.exec(e)?.[0];return i===`:`||i===`(`}function Po(e,t){let n=!1;for(let r=t+1;r<e.length;r++){let t=e.charAt(r);if(Qa.test(t))return-1;if(t===`\\\\`)r++;else if(t===`[`)n=!0;else if(t===`]`)n=!1;else if(t===`/`&&!n)return wo.lastIndex=r+1,wo.test(e),wo.lastIndex}return-1}function Fo(e){if(e[0]!==`\"`&&e[0]!==`'`)return null;try{let t=oo(e,0,`expression`);return t.nextToken(),t.type===B.string&&t.end===e.length?t.value:null}catch{return null}}function Io(e,t){let n=e.charAt(t),r=t+1;for(;r<e.length;){let t=e.charAt(r);if(t===`\\\\`)r+=2;else if(t===n)return{end:r+1,closed:!0};else r++}return{end:e.length,closed:!1}}var Lo=/[\\p{L}\\p{N}_\\\\]/u;function Ro(e,t){let n=e[t],r=n===\"`\";for(let i=t+1;i<e.length;){let t=e[i];if(t===`\\\\`)i+=2;else if(t===n)return i+1;else if(!r&&t===`\n`)return-1;else if(r&&t===`$`&&e[i+1]===`{`){let t=zo(e,i+2);if(t===-1)return-1;i=t+1}else i++}return-1}function zo(e,t){Bo!==e&&(Bo=e,Vo.clear());let n=Vo.get(t);return n===void 0&&(n=Ho(e,t),Vo.set(t,n)),n}var Bo=``,Vo=new Map;function Ho(e,t){let n=0;for(;t<e.length;){let r=e[t];if(r===`{`)n++,t++;else if(r===`}`){if(n===0)return t;n--,t++}else if(r===\"`\"||(r===`\"`||r===`'`)&&!(t>0&&Lo.test(e[t-1]))){let n=Ro(e,t);t=n===-1?t+1:n}else t++}return-1}var Uo={closeBrace(e,t,n){let r=Eo(e,t);return r===-1?zo(e,n):r},rawBodyEnd(e,t,n){let r=`\\\\{/${n}\\\\s*\\\\}`,i=new RegExp(r,`gi`);i.lastIndex=t;let a=i.exec(e)?.index??-1;if(a===-1)return-1;let o=new RegExp(r,`iy`),s=Eo(e,t,{goal:`statements`,stop:t=>(o.lastIndex=t,o.test(e))});return s===-1?a:s}};function Wo(e){let t=e.toLowerCase();return t.startsWith(`on`)||t===`pattern`||t===`srcdoc`}function Go(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e.indexOf(`{`,r);if(i===-1){n+=e.slice(r);break}n+=e.slice(r,i),r=i+1;let a=Kn(e[r])?Uo.closeBrace(e,r,r):-1;if(a===-1){n+=`{`;continue}n&&t.push({text:n}),n=``;let o=e.slice(r,a);t.push(/^.\\w/.test(o)?{expr:o}:{verbatim:`{${o}}`}),r=a+1}return n&&t.push({text:n}),t}var Ko=new Set([`do`]),qo={...Uo,isBlock:xr,isRaw:e=>Ko.has(e),isCodeAttribute:Wo},Jo=class extends Error{constructor(e,t,n,r){super(`${e} (line ${n}, column ${r})`),this.reason=e,this.offset=t,this.line=n,this.column=r,this.name=`MarkupError`}};function Yo(e,t){let n=1,r=0;for(let i=e.indexOf(`\n`);i!==-1&&i<t;)n++,r=i+1,i=e.indexOf(`\n`,r);return{line:n,column:t-r+1}}function Xo(e,t,n){let r=n.hooks?{...qo,...n.hooks}:qo;try{return _r(e,{startRule:t,text:n.text===!0,hooks:r})}catch(t){let n=t.location;if(t instanceof Error&&t.name===`SyntaxError`&&n){let{offset:r}=n.start,{line:i,column:a}=Yo(e,r);throw new Jo(t.message,r,i,a)}throw t}}function Zo(e,t={}){return Xo(e,`Markup`,t)}function Qo(e,t={}){return Xo(e,`Tokens`,t)}function $o(e,t={}){let n=[],r=[],i=e.lastIndexOf(`}`),{closeBrace:a}={...qo,...t.hooks},o=(e,n)=>{let r={...t.hooks,closeBrace:(e,t,r)=>n+Math.min(t,r)>i?-1:a(e,t,r)};try{return Qo(e,{...t,hooks:r}).map(e=>es(e,n))}catch(e){if(!(e instanceof Jo))throw e;return e}},s=0;for(;s<=e.length;){let t=e.slice(s),i=o(t,s);if(Array.isArray(i)){n.push(...i);break}let a=s+i.offset,{line:c,column:l}=Yo(e,a);r.push(new Jo(i.reason,a,c,l));let u=i.offset,d=o(t.slice(0,u),s);for(;!Array.isArray(d);)u=d.offset,d=o(t.slice(0,u),s);if(n.push(...d),u<t.length){let e=s+u;n.push({type:`text`,value:t[u],start:e,end:e+1})}s+=u+1}return{tokens:n,errors:r}}function es(e,t){if(t===0)return e;let n={...e,start:e.start+t,end:e.end+t};return n.type===`link`&&(n.targetStart+=t,n.targetEnd+=t),n}var ts=`__proto__`;function ns(e,t=e){return e===`__proto__`?`\"${t}\" cannot be used as a variable name (${ts} is reserved)`:void 0}function rs(e,t=e){let n=ns(e,t);if(n)throw TypeError(`spindle: ${n}`)}var K=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),is=(e,t)=>e&&K(e,t)?e[t]:void 0;function as(e,t,n){t===`__proto__`?Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0}):e[t]=n}function os(e,t=()=>!0){let n=Object.create(null);for(let r of e)if(r)for(let e of Object.keys(r)){let i=r[e];t(i)&&(n[e]=i)}return n}var q=(...e)=>os(e),ss=e=>Object.getPrototypeOf(e)===null,cs=e=>ss(e)?e:q(e);function ls(e,t,n){let r=q(e);return r[t]=n,r}var us=Object.freeze(q());function ds(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>is(e,n)!==is(t,n))}var fs=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0;function ps(e,t){let n=is(e,t);return fs(n)?n:0}function ms(e,t){let n=os([e],fs);return t!==void 0&&(n[t]=ps(e,t)+1),n}var hs=new vr;function gs(e,t,n,r=!1){let i=n.filter(e=>e!==`@children`);for(let e of i)e.startsWith(`@`)&&rs(e.slice(1),e);hs.set(e,{body:t,params:i,isBlock:r})}function _s(e){return hs.get(e)}function vs(e){for(let t of e){if(t.type===`variable`&&t.scope===`local`&&t.name===`children`||t.type===`html`&&vs(t.children))return!0;if(t.type===`macro`){if(vs(t.children))return!0;if(t.branches){for(let e of t.branches)if(vs(e.children))return!0}}}return!1}function ys(e,t){return e instanceof Error?e.message||t||String(e):typeof e==`string`&&e!==``?e:t??String(e)}function bs(e){let t=e.trim();return t.endsWith(`ms`)?parseFloat(t.slice(0,-2)):t.endsWith(`s`)?parseFloat(t.slice(0,-1))*1e3:parseFloat(t)}function xs(){let e=new Set;return{subscribe(t){return e.add(t),()=>{e.delete(t)}},notify(){for(let t of[...e])t()}}}var Ss=[],Cs=1,ws=xs();function Ts(e){Ss=e,ws.notify()}function Es(e,t){let n=ys(t).replace(/^spindle: /,``),r=Ss.find(t=>t.context===e&&t.message===n);Ts(r?Ss.map(e=>e===r?{...e,count:e.count+1}:e):[...Ss,{id:Cs++,context:e,message:n,count:1}])}function Ds(e,t){return Error(`No passage named ${JSON.stringify(e)} (in passage ${JSON.stringify(t)})`)}function Os(e){Ts(Ss.filter(t=>t.id!==e))}function ks(){return Ss}var As=ws.subscribe;function js(e){return/\\s/.test(e)}function Ms(e){return e===`(`||e===`[`||e===`{`}function Ns(e){return e===`)`||e===`]`||e===`}`}function Ps(e){return e.replace(/\\\\([\"'\\\\])/g,`$1`)}function Fs(e,t){let n=e[t];if(n!==`\"`&&n!==`'`)return null;let{end:r,closed:i}=Io(e,t);return i?{value:Ps(e.slice(t+1,r-1)),end:r}:null}function Is(e){let t=Fs(e,0);return t&&t.end===e.length?t.value:null}function Ls(e){return/^[\"']?(.+?)[\"']?$/s.exec(e)?.[1]??e}var Rs=/(?:[-+*/%&|^!~=<>?:,.]|(?:^|[^\\w$@.])(?:typeof|void|new|delete|in|instanceof|await|yield))$/;function zs(e){let t=-1;if(Ao(e,{code(e,n,r){r===0&&!js(e)&&(t=n+1)},literal(e,n,r){let i=e.startsWith(`//`)||e.startsWith(`/*`);r===0&&!i&&(t=-1)},variable(e,n,r,i){i===0&&(t=-1)}}),t<0)return!1;let n=e.slice(0,t);return/(?:\\+\\+|--)$/.test(n)?!1:Rs.test(n)}function Bs(e,t){let n=[],r=0;return Ao(e,{code(e,i,a){a>0||(Ms(e)?r++:Ns(e)?r--:r===0&&t(e)&&n.push(i))}}),n}function Vs(e,t){let n=[],r=0;for(let i of Bs(e,t))n.push(e.slice(r,i)),r=i+1;return n.push(e.slice(r)),n}function Hs(e){return Us(e)&&!zs(e)}function Us(e){let t=e[0];return!!(t===`\"`||t===`'`||t===\"`\"||/^[$_@]\\w|^%[A-Za-z_]/.test(e)||/\\d/.test(t)||(t===`-`||t===`+`)&&e.length>1&&/\\d/.test(e[1])||t===`(`||t===`[`||t===`{`||/^(?:true|false|null|undefined)(?![\\w$])/.test(e)||t===`!`&&e.length>1&&e[1]!==`=`)}function Ws(e){let t=Vs(e,js).filter(Boolean);if(t.length<2)return null;for(let e of t)if(!Hs(e))return null;return t}function Gs(e){let t=Vs(e,e=>e===`,`).map(e=>e.trim()),n=t.length>1;if(t[t.length-1]===``&&t.pop(),!n&&t.length===1){let e=Ws(t[0]);if(e)return e}return t}function Ks(e){let t=[],n=0;for(let r of[...Bs(e,js),e.length])r>n&&t.push([n,r]),n=r+1;return t}var qs=(e,[t,n])=>e.slice(t,n);function Js(e){return Is(e)??Ls(e)}var Ys=class extends Error{constructor(e,t){super(`The ${e.name} must be a quoted string (\"…\" or '…'), ${t?`not ${t}`:`but it has no value`}`),this.name=`MacroArgumentError`}};function Xs(e,t,n){switch(n.spans?.set(e,[n.at,n.at+t.length]),e.type){case`string`:{let n=Is(t);if(n===null)throw new Ys(e,t);return n}case`text`:return Js(t);case`names`:return t.split(`,`).map(e=>e.trim());case`delay`:return bs(t);case`number`:return Number(t);case`options`:return nc(e.parameters??[],t,n);default:return t}}function Zs(e){return e.type===`flag`||e.type===`separator`?!1:e.type===`options`?{}:void 0}var Qs=/\\w+/y,$s=/[-+]?(?:\\d+\\.?\\d*|\\.\\d+)/y,ec=/\\S+/y;function tc(e,t,n){return e.lastIndex=n,e.exec(t)?.[0]??null}function nc(e,t,{at:n,spans:r}){let i={},a=0;for(;a<t.length;){let o=tc(Qs,t,a);if(!o){a=Fs(t,a)?.end??a+1;continue}a+=o.length;let s,c=a;for(;c<t.length&&js(t[c]);)c++;let l=Fs(t,c),u=l||c===a?null:tc($s,t,c);l?(s=l.value,a=l.end):u&&(s=u,a=c+u.length);let d=e.find(e=>e.name===o);if(d&&d.type!==`flag`&&s!==void 0&&r?.set(d,[n+c,n+a]),d?.type===`string`&&!l)throw new Ys(d,tc(ec,t,c)??``);d?.type===`flag`?i[o]=!0:d?.type===`number`?i[o]=Number(s??0):d&&(i[o]=s)}return i}var rc=/^(?:[-+*/&|^=<>?:,.]|%(?![A-Za-z_]))/;function ic(e,t){let n=Ks(e);if(n.length<2)return null;if(qs(e,n[n.length-1])===t){let t=[0,n[n.length-2][1]];if(!zs(qs(e,t)))return t}if(qs(e,n[0])===t){let t=[n[1][0],e.length];if(!rc.test(qs(e,t)))return t}return null}function ac(e,t){if(t===`=`){let t=Bs(e,e=>e===`=`);for(let n=0;n<t.length;n++){let r=t[n];if(e[r+1]===`=`){n++;continue}if(e[r-1]!==`!`)return[r,r+1]}return null}let n=Ks(e);for(let r=1;r<n.length-1;r++)if(qs(e,n[r])===t)return[n[r-1][1],n[r+1][0]];return null}var oc=e=>e.type===`expression`||e.type===`statements`||e.type===`passage`||e.type===`text`;function sc(e,t){let n=e.trim();return[n,n?t+e.indexOf(n):t]}function cc(e,t,n,{at:r,spans:i}){let[a,o]=sc(t??``,r);for(let r of e.filter(e=>e.type===`flag`)){let e=t===null?null:ic(a,r.name);n[r.name]=e!==null,e&&([a,o]=sc(qs(a,e),o+e[0]))}let s=e.filter(e=>e.type!==`flag`);if(s.length===0)return;let c=s.findIndex((e,t)=>oc(e)&&!s.slice(t+1).some(oc)),l=c<0?s.length-1:c,u=(e,[t,n])=>t===n?Zs(e):Xs(e,a.slice(t,n),{at:o+t,spans:i});if(s.length===1){n[s[0].name]=u(s[0],[0,a.length]);return}let d=Ks(a),f=0,p=d.length;for(let e of s.slice(0,l))n[e.name]=f<p?u(e,d[f++]):Zs(e);let m=(e,t)=>{try{return u(e,t)}catch(e){if(e instanceof Ys)return;throw e}};for(let e of s.slice(l+1).reverse()){let t=f<p&&!zs(a.slice(0,d[p-1][0]))?m(e,d[p-1]):void 0;n[e.name]=t??Zs(e),t===void 0?i?.delete(e):p--}let h=s[l];n[h.name]=f<p?u(h,[d[f][0],d[p-1][1]]):Zs(h)}var lc={name:`delay`,type:`delay`,required:!0};function uc(e,t,n){let r={},[i,a]=sc(e,0),o=0;return t.forEach((e,s)=>{if(e.type!==`separator`)return;let c=i===null?null:ac(i,e.name);r[e.name]=c!==null;let l=c?i.slice(0,c[0]):i;cc(t.slice(o,s),l,r,{at:a,spans:n}),i=c?i.slice(c[1]):null,c&&(a+=c[1]),o=s+1}),cc(t.slice(o),i,r,{at:a,spans:n}),r}function dc(e){let t=e.trim(),n=Fo(t);return n===null?{kind:`expression`,expression:t}:{kind:`name`,name:n}}function fc(e,t,{storyData:n,currentPassage:r}){let i=String(t(e??``));if(n&&!n.passages.has(i))throw Ds(i,r);return i}function pc(e){let t=e.trim(),n=Ks(t)[0];return n?qs(t,n):``}var mc=[{name:`name`,type:`text`,holds:`text`,required:!0},{name:`parameters`,type:`text`,holds:`text`}];function hc({name:e=``,parameters:t=``}){return{name:e,params:t.split(/\\s+/).filter(e=>e.startsWith(`@`))}}function gc(e){return hc(uc(e,mc))}function _c(e){let t=[];for(let n of e){if(n.name!==`StoryInit`&&!n.tags?.includes(`widget`))continue;let e=[];for(let r of $o(n.content).tokens)if(r.type===`macro`&&r.name.toLowerCase()===`widget`){if(!r.isClose){e.push({rawArgs:r.rawArgs,isBlock:!1});continue}let n=e.pop();if(!n?.isBlock)continue;try{t.push(gc(n.rawArgs).name)}catch{}}else r.type===`variable`&&r.scope===`local`&&r.name===`children`&&e.length>0&&(e[e.length-1].isBlock=!0)}return t}function vc({name:e,params:t},n){let r=vs(n);gs(e,n,t,r),r&&Sr(e)}function yc(e,t){for(let n of e)if(n.type===`macro`&&n.name===`widget`&&n.rawArgs){let e=gc(n.rawArgs);try{vc(e,n.children)}catch(n){console.error(`spindle: widget \"${e.name}\" in passage \"${t}\" was not registered: ${ys(n)}`)}}}var bc=e=>Symbol.iterator in e,xc=e=>`entries`in e,Sc=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},Cc=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function wc(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:bc(e)&&bc(t)?xc(e)&&xc(t)?Sc(e,t):Cc(e,t):Sc({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}var Tc=ge(null);function Ec(...e){let t=M(),n=Fe(Tc);return Q(r=>{if(t.current&&n?.(r))return t.current;let i={};for(let t of e)i[t]=r[t];return wc(t.current,i)?t.current:t.current=i})}function Dc(){let{variables:e,temporary:t,transient:n,renderCounts:r}=Ec(`variables`,`temporary`,`transient`,`renderCounts`),i=Fe(Cp);return Ne(()=>[e,t,i,n],[e,t,i,n,r])}var Oc=1831565813;function kc(e){let t=e|0;return()=>{t=t+Oc|0;let e=Math.imul(t^t>>>15,t|1);return e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function Ac(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t}var jc=!1,Mc=``,Nc=0,Pc=null,Fc=0;function Ic(e,t=!0){let n;n=e===void 0?String(Date.now())+String(Math.random()):t?e+`|`+Date.now()+`|`+Math.random():e,Mc=n,Nc=0,Pc=kc(Ac(n)),jc=!0,Fc++}function Lc(e,t){Fc++,Rc(e,t)}function Rc(e,t){Mc=e;let n=Math.imul(t%4294967296,Oc);Pc=kc(Ac(e)+n|0),jc=!0,Nc=t}function zc(){Fc++,jc=!1,Mc=``,Nc=0,Pc=null}function Bc(e){let t={generation:Fc,seed:Mc,pull:Nc};try{return e()}finally{jc&&Fc===t.generation&&Nc!==t.pull&&Rc(t.seed,t.pull)}}function Vc(){return jc?{seed:Mc,pull:Nc}:null}function Hc(){return!jc||!Pc?Math.random():(Nc++,Pc())}function Uc(e,t){return e>t&&([e,t]=[t,e]),Math.floor(Hc()*(t-e+1))+e}function Wc(){return jc}function Gc(){return Mc}function Kc(){return Nc}var qc=500,Jc={$:`variables`,_:`temporary`,\"@\":`locals`,\"%\":`transient`},Yc=/[\\p{ID_Continue}$\\u200c\\u200d]$/u;function Xc(e,t=`expression`){let n=t===`statements`?`s`+e:`e`+e,r=Zc.get(n);if(r!==void 0)return r;let{refs:i}=go(e,t),a=``,o=0;for(let t of i){let n=ns(t.name,t.sigil+t.name);if(n)throw SyntaxError(`spindle: ${n}`);a+=e.slice(o,t.start),t.shorthand?a+=`${t.name}: `:Yc.test(a.slice(-2))&&(a+=` `),a+=`${Jc[t.sigil]}[\"${t.name}\"]`,o=t.end}return a+=e.slice(o),Zc.size>=qc&&Zc.delete(Zc.keys().next().value),Zc.set(n,a),a}var Zc=new Map,Qc=500,$c=new Map,el=`const {currentPassage,previousPassage,visited,hasVisited,hasVisitedAny,hasVisitedAll,rendered,hasRendered,hasRenderedAny,hasRenderedAll,random,randomInt}=__fns;`;function tl(e,t){let n=$c.get(e);if(n)return $c.delete(e),$c.set(e,n),n;let r=Function(`variables`,`temporary`,`locals`,`__fns`,`transient`,el+t);if($c.set(e,r),$c.size>Qc){let e=$c.keys().next().value;e!==void 0&&$c.delete(e)}return r}function nl(){let e=Q.getState();return e.storyData?.passages.get(e.currentPassage)}function rl(){let e=Q.getState();if(e.historyIndex<=0)return;let t=e.history[e.historyIndex-1]?.passage;return t?e.storyData?.passages.get(t):void 0}function il(e){let t=t=>ps(e(),t??Q.getState().currentPassage);return{count:t,has:e=>t(e)>0,any:(...e)=>e.some(e=>t(e)>0),all:(...e)=>e.every(e=>t(e)>0)}}function al(e,t){let n=il(e),r=il(t);return{currentPassage:nl,previousPassage:rl,visited:n.count,hasVisited:n.has,hasVisitedAny:n.any,hasVisitedAll:n.all,rendered:r.count,hasRendered:r.has,hasRenderedAny:r.any,hasRenderedAll:r.all}}var ol=null;function sl(){return ol??(ol={...al(()=>Q.getState().visitCounts,()=>Q.getState().renderCounts),random:Hc,randomInt:Uc}),ol}function cl(e){return ss(e)?e:Object.isExtensible(e)?(Object.setPrototypeOf(e,null),e):cs(e)}function ll(e,...[t,n,r=us,i=us]){return e(cl(t),cl(n),cl(r),sl(),cl(i))}function ul(e,...t){let n=`return (${Xc(e)}\\n);`;return ll(tl(n,n),...t)}function dl(e,...t){let n=Xc(e,`statements`);ll(tl(`exec:`+n,n),...t)}var fl=new vr;function pl(e,t){fl.set(e,t)}function ml(e){return fl.get(e)}var hl=new vr;function gl(e,t){t?hl.set(e,t):hl.delete(e)}function _l(e){return hl.get(e)}var vl=new yr;function yl(e){vl.add(e)}function bl(e){return vl.has(e)}var xl=[`expression`,`statements`,`passage`,`variable`,`string`,`text`,`names`,`delay`,`number`,`flag`,`separator`,`options`],Sl=[`markup`,`text`,`passage`,`expression`,`statements`];function Cl(e,t){let n=`Give a \\`string\\` or \\`text\\` parameter one of ${Sl.join(`, `)} to hold (see docs/custom-macros.md#what-a-string-holds).`;for(let r of t){let t=r.type;if(!xl.includes(t))throw wl(e,r,t===void 0?`has no type`:`has the unknown type ${JSON.stringify(t)}`,`Give it one of the types ${xl.join(`, `)} (see docs/custom-macros.md#parameter-types), or declare no parameters and read props.rawArgs.`);let i=r.holds;if(i!==void 0&&t!==`string`&&t!==`text`)throw wl(e,r,`is of the type ${t}, which holds what it is`,n);if(i!==void 0&&!Sl.includes(i))throw wl(e,r,`holds the unknown ${JSON.stringify(i)}`,n);r.parameters&&Cl(e,r.parameters)}}function wl(e,t,n,r){return Error(`spindle: The parameter \"${t.name}\" of the macro {${e}} ${n}. ${r}`)}var Tl=new vr;function El(e,t){Tl.set(e,t)}function Dl(e){return Tl.get(e)?.parameters}function Ol(){return Array.from(Tl.values())}function kl(e){return e==null?``:String(e)}function Al(e,t,n){return e||t?b(`span`,{id:t,class:e},n):b(S,null,n)}function jl(e){return e.includes(`{`)||e.includes(`}`)}function Ml(e,t){return e?.length?{nodes:e,outer:t??null}:null}var Nl=new Map,Pl=2e3;function Fl(e){let t=Nl.get(e);if(t===void 0){try{t={nodes:Zo(e,{text:!0})}}catch(e){t={error:e}}Nl.size>=Pl&&Nl.clear(),Nl.set(e,t)}return t}function Il(e,t){return e.map(e=>{switch(e.type){case`text`:return{type:`text`,value:t(e.value)};case`html`:return{...e,children:Il(e.children,t)};case`macro`:{let n={...e,children:Il(e.children,t)};return e.branches&&(n.branches=e.branches.map(e=>({...e,children:Il(e.children,t)}))),n}default:return e}})}var Ll=100;function Rl(e,t,n){let r=n.split(`.`),i=r[0];rs(i,Wn[t]+i);let a=is(t===`variable`?e.variables:t===`temporary`?e.temporary:t===`transient`?e.transient:e.locals,i);for(let e=1;e<r.length;e++){if(a==null)return;a=a[r[e]]}return a}function zl(e,t){return ul(e,t.variables,t.temporary,t.locals,t.transient)}var Bl=class{constructor(){this.errors=[]}nodes(e,t,n){let r=``;for(let i of e)r+=this.node(i,t,n);return r}node(e,t,n){switch(e.type){case`text`:return e.value;case`variable`:if(e.scope===`local`&&e.name===`children`){let e=t.widgetChildren;return e?this.nested(`children`,e.nodes,t,n,{widgetChildren:e.outer}):``}return this.variable(e.scope,e.name,t);case`expression`:try{return kl(zl(e.expression,t))}catch(e){return this.errors.push({macro:`expression`,error:e}),``}case`html`:return this.nodes(e.children,t,n);case`macro`:return this.macro(e,t,n);default:return e}}variable(e,t,n){try{return kl(Rl(n,e,t))}catch(n){return this.errors.push({macro:Wn[e]+t,error:n}),``}}nested(e,t,n,r,i={}){return r>=Ll?(this.errors.push({macro:e,error:Error(`markup nested too deeply (a widget using itself?)`)}),``):this.nodes(t,{...n,...i},r+1)}macro(e,t,n){if(bl(e.name))return``;let r=_s(e.name);if(r){let i=t.locals;if(r.params.length>0){let n=e.rawArgs?Gs(e.rawArgs):[];i=q(t.locals),r.params.forEach((e,r)=>{let a,o=n[r];if(o!==void 0)try{a=zl(o,t)}catch{a=void 0}i[e.startsWith(`@`)?e.slice(1):e]=a})}return this.nested(e.name,r.body,t,n,{locals:i,widgetChildren:Ml(e.children,t.widgetChildren)})}let i=_l(e.name);if(!i){let t=ml(e.name)?`{${e.name}} has no text form, so it can't be used in an attribute value or label`:`unknown macro {${e.name}}`;return this.errors.push({macro:e.name,error:Error(t)}),``}let a={evaluate:e=>zl(e,t),renderText:(r,i)=>this.nested(e.name,r,t,n,i?{locals:Vl(t.locals,i)}:{})};try{return i({rawArgs:e.rawArgs,className:e.className,id:e.id,children:e.children,branches:e.branches},a)}catch(t){return this.errors.push({macro:e.name,error:t}),``}}};function Vl(e,t){for(let e of Object.keys(t))rs(e,`@${e}`);return q(e,t)}function Hl(e,t){let n=new Bl;return{text:n.nodes(e,t,0),errors:n.errors}}function Ul(e,t){if(!jl(e))return{text:e,errors:[]};let n=Fl(e);return`error`in n?{text:e,errors:[{macro:`markup`,error:n.error}]}:Hl(n.nodes,t)}function Wl(e,t,n){let r=[],i=``;for(let a of Go(e))if(`text`in a)i+=n?n(a.text):a.text;else if(`verbatim`in a)i+=a.verbatim;else if(/^[$_@%][\\w.]+$/.test(a.expr)){let e=Un[a.expr[0]];try{i+=kl(Rl(t,e,a.expr.slice(1)))}catch(e){r.push({macro:a.expr,error:e})}}else try{i+=kl(zl(a.expr,t))}catch(e){r.push({macro:`expression`,error:e})}return{text:i,errors:r}}function Gl(){let[e,t,n,r]=Dc(),i=Fe(Pp);return Ne(()=>({variables:e,temporary:t,locals:n,transient:r,widgetChildren:i}),[e,t,n,r,i])}function Kl(){let e=Gl();return Pe(t=>{if(t===void 0||!jl(t))return t;let{text:n,errors:r}=Ul(t,e);for(let{macro:e,error:n}of r)console.error(`spindle: {${e}} error in \"${t}\": ${ys(n)}`);return n},[e])}var ql=0;Array.isArray;function J(e,t,n,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ql,__i:-1,__u:0,__source:a,__self:o};if(typeof e==`function`&&(s=e.defaultProps))for(c in s)l[c]===void 0&&(l[c]=s[c]);return r.vnode&&r.vnode(u),u}var Jl={variable:`variables`,temporary:`temporary`,transient:`transient`};function Yl({node:e}){let{name:t,scope:n}=e,r=Kl(),i=r(e.className),a=r(e.id),o=Fe(Cp),s=t.split(`.`),c=s[0],l=Q(e=>n===`local`?void 0:is(e[Jl[n]],c)),u=Wn[n],d=ns(c,u+c);if(d)return J(`span`,{class:`error`,children:`{${u}${t} error: ${d}}`});let f;f=n===`local`?is(o,c):l;for(let e=1;e<s.length;e++){if(f==null){f=void 0;break}let t=s[e];f=f[t]}return Al(i,a,kl(f))}function Xl({node:e}){let{expression:t}=e,n=Kl(),r=n(e.className),i=n(e.id),[a,o,s,c]=Dc(),l;try{l=kl(ul(t,a,o,s,c))}catch{l=`{error: ${t}}`}return Al(r,i,l)}function Zl(){return{nobr:Fe(Tp),inline:Fe(Ep),raw:Fe(Dp),locals:Fe(Cp)}}function Ql({body:e,parentValues:t,ownKeys:n}){let r=Zl(),[i,a]=ke({}),o=Ne(()=>q(t,n,i),[t,n,i]),s=M(o);s.current=o;let c=Pe(()=>s.current,[]),l=Pe((e,t)=>{rs(e,`@${e}`),s.current=ls(s.current,e,t),a(n=>({...n,[e]:t}))},[]),u=Ne(()=>({update:l,getValues:c}),[l,c]);return J(wp.Provider,{value:u,children:J(Cp.Provider,{value:o,children:Dm(e,{...r,locals:o})})})}function $l(e){let t=Kl();return Al(t(e.className),t(e.id),J(eu,{...e}))}function eu({body:e,params:t,rawArgs:n,invocationChildren:r}){let i=Zl().locals,[a,o,s,c]=Dc(),l=Fe(Pp),u=Ne(()=>Ml(r,l),[r,l]),d=n?Gs(n):[],f=[];for(let e=0;e<t.length;e++){let t=d[e],n;if(t!==void 0)try{n=ul(t,a,o,s,c)}catch{n=void 0}f.push(n)}let p=Ne(()=>{let e=q();for(let n=0;n<t.length;n++)e[t[n].startsWith(`@`)?t[n].slice(1):t[n]]=f[n];return e},f);return J(Pp.Provider,{value:u,children:J(Ql,{body:e,parentValues:i,ownKeys:p})})}var tu=document.createElement(`i`);function nu(e){let t=`&`+e+`;`;tu.innerHTML=t;let n=tu.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`||n===t?!1:n}function ru(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function iu(e,t){return e.length>0?(ru(e,e.length,0,t),e):t}var au={}.hasOwnProperty;function ou(e){let t={},n=-1;for(;++n<e.length;)su(t,e[n]);return t}function su(e,t){let n;for(n in t){let r=(au.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){au.call(r,a)||(r[a]=[]);let e=i[a];cu(r[a],Array.isArray(e)?e:e?[e]:[])}}}function cu(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);ru(e,0,0,r)}function lu(e){let t={},n=-1;for(;++n<e.length;)uu(t,e[n]);return t}function uu(e,t){let n;for(n in t){let r=(au.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i)r[a]=i[a]}}function du(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}var fu={'\"':`quot`,\"&\":`amp`,\"<\":`lt`,\">\":`gt`};function pu(e){return e.replace(/[\"&<>]/g,t);function t(e){return`&`+fu[e]+`;`}}function mu(e){return e.replace(/[\\t\\n\\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var hu=Tu(/[A-Za-z]/),gu=Tu(/[\\dA-Za-z]/),_u=Tu(/[#-'*+\\--9=?A-Z^-~]/);function vu(e){return e!==null&&(e<32||e===127)}var yu=Tu(/\\d/),bu=Tu(/[\\dA-Fa-f]/),xu=Tu(/[!-/:-@[-`{-~]/);function Y(e){return e!==null&&e<-2}function Su(e){return e!==null&&(e<0||e===32)}function X(e){return e===-2||e===-1||e===32}var Cu=Tu(/\\p{P}|\\p{S}/u),wu=Tu(/\\s/);function Tu(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function Eu(e,t){let n=pu(Du(e||``));if(!t)return n;let r=n.indexOf(`:`),i=n.indexOf(`?`),a=n.indexOf(`#`),o=n.indexOf(`/`);return r<0||o>-1&&r>o||i>-1&&r>i||a>-1&&r>a||t.test(n.slice(0,r))?n:``}function Du(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&gu(e.charCodeAt(n+1))&&gu(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=``),i&&(n+=i,i=0)}return t.join(``)+e.slice(r)}var Ou={}.hasOwnProperty,ku=/^(https?|ircs?|mailto|xmpp)$/i,Au=/^https?$/i;function ju(e){let t=e||{},n=!0,r={},i=[[]],a=[],o=[],s=lu([{enter:{blockQuote:te,codeFenced:ie,codeFencedFenceInfo:h,codeFencedFenceMeta:h,codeIndented:se,codeText:Re,content:Ce,definition:ve,definitionDestinationString:be,definitionLabelString:h,definitionTitleString:h,emphasis:Ie,htmlFlow:Ne,htmlText:Fe,image:le,label:h,link:ue,listItemMarker:ee,listItemValue:T,listOrdered:C,listUnordered:w,paragraph:re,reference:h,resource:me,resourceDestinationString:he,resourceTitleString:h,setextHeading:Te,strong:Le},exit:{atxHeading:De,atxHeadingSequence:we,autolinkEmail:Ke,autolinkProtocol:Ge,blockQuote:ne,characterEscapeValue:Ae,characterReferenceMarkerHexadecimal:Ue,characterReferenceMarkerNumeric:Ue,characterReferenceValue:We,codeFenced:ce,codeFencedFence:oe,codeFencedFenceInfo:ae,codeFencedFenceMeta:S,codeFlowValue:Me,codeIndented:ce,codeText:ze,codeTextData:Ae,data:Ae,definition:Se,definitionDestinationString:xe,definitionLabelString:ye,definitionTitleString:j,emphasis:Be,hardBreakEscape:M,hardBreakTrailing:M,htmlFlow:Pe,htmlFlowData:Ae,htmlText:Pe,htmlTextData:Ae,image:A,label:fe,labelText:de,lineEnding:je,link:A,listOrdered:E,listUnordered:D,paragraph:k,reference:S,referenceString:pe,resource:S,resourceDestinationString:ge,resourceTitleString:_e,setextHeading:ke,setextHeadingLineSequence:Oe,setextHeadingText:Ee,strong:Ve,thematicBreak:He}},...t.htmlExtensions||[]]),c={definitions:r,tightStack:o},l={buffer:h,encode:x,getData:m,lineEndingIfNeeded:b,options:t,raw:v,resume:g,setData:p,tag:_},u=t.defaultLineEnding;return d;function d(e){let t=-1,n=0,r=[],a=[],o=[];for(;++t<e.length;)!u&&(e[t][1].type===`lineEnding`||e[t][1].type===`lineEndingBlank`)&&(u=e[t][2].sliceSerialize(e[t][1])),(e[t][1].type===`listOrdered`||e[t][1].type===`listUnordered`)&&(e[t][0]===`enter`?r.push(t):f(e.slice(r.pop(),t))),e[t][1].type===`definition`&&(e[t][0]===`enter`?(o=iu(o,e.slice(n,t)),n=t):(a=iu(a,e.slice(n,t+1)),n=t+1));a=iu(a,o),a=iu(a,e.slice(n)),t=-1;let c=a;for(s.enter.null&&s.enter.null.call(l);++t<e.length;){let e=s[c[t][0]],n=c[t][1].type,r=e[n];Ou.call(e,n)&&r&&r.call({sliceSerialize:c[t][2].sliceSerialize,...l},c[t][1])}return s.exit.null&&s.exit.null.call(l),i[0].join(``)}function f(e){let t=e.length,n=0,r=0,i=!1,a;for(;++n<t;){let t=e[n];if(t[1]._container)a=void 0,t[0]===`enter`?r++:r--;else switch(t[1].type){case`listItemPrefix`:t[0]===`exit`&&(a=!0);break;case`linePrefix`:break;case`lineEndingBlank`:t[0]===`enter`&&!r&&(a?a=void 0:i=!0);break;default:a=void 0}}e[0][1]._loose=i}function p(e,t){c[e]=t}function m(e){return c[e]}function h(){i.push([])}function g(){return i.pop().join(``)}function _(e){n&&(p(`lastWasTag`,!0),i[i.length-1].push(e))}function v(e){p(`lastWasTag`),i[i.length-1].push(e)}function y(){v(u||`\n`)}function b(){let e=i[i.length-1],t=e[e.length-1],n=t?t.charCodeAt(t.length-1):null;n===10||n===13||n===null||y()}function x(e){return m(`ignoreEncode`)?e:pu(e)}function S(){g()}function C(e){o.push(!e._loose),b(),_(`<ol`),p(`expectFirstItem`,!0)}function w(e){o.push(!e._loose),b(),_(`<ul`),p(`expectFirstItem`,!0)}function T(e){if(m(`expectFirstItem`)){let t=Number.parseInt(this.sliceSerialize(e),10);t!==1&&_(` start=\"`+x(String(t))+`\"`)}}function ee(){m(`expectFirstItem`)?_(`>`):O(),b(),_(`<li>`),p(`expectFirstItem`),p(`lastWasTag`)}function E(){O(),o.pop(),y(),_(`</ol>`)}function D(){O(),o.pop(),y(),_(`</ul>`)}function O(){m(`lastWasTag`)&&!m(`slurpAllLineEndings`)&&b(),_(`</li>`),p(`slurpAllLineEndings`)}function te(){o.push(!1),b(),_(`<blockquote>`)}function ne(){o.pop(),b(),_(`</blockquote>`),p(`slurpAllLineEndings`)}function re(){o[o.length-1]||(b(),_(`<p>`)),p(`slurpAllLineEndings`)}function k(){o[o.length-1]?p(`slurpAllLineEndings`,!0):_(`</p>`)}function ie(){b(),_(`<pre><code`),p(`fencesCount`,0)}function ae(){_(` class=\"language-`+g()+`\"`)}function oe(){let e=m(`fencesCount`)||0;e||(_(`>`),p(`slurpOneLineEnding`,!0)),p(`fencesCount`,e+1)}function se(){b(),_(`<pre><code>`)}function ce(){let e=m(`fencesCount`);e!==void 0&&e<2&&c.tightStack.length>0&&!m(`lastWasTag`)&&y(),m(`flowCodeSeenData`)&&b(),_(`</code></pre>`),e!==void 0&&e<2&&b(),p(`flowCodeSeenData`),p(`fencesCount`),p(`slurpOneLineEnding`)}function le(){a.push({image:!0}),n=void 0}function ue(){a.push({})}function de(e){a[a.length-1].labelId=this.sliceSerialize(e)}function fe(){a[a.length-1].label=g()}function pe(e){a[a.length-1].referenceId=this.sliceSerialize(e)}function me(){h(),a[a.length-1].destination=``}function he(){h(),p(`ignoreEncode`,!0)}function ge(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function _e(){a[a.length-1].title=g()}function A(){let e=a.length-1,i=a[e],o=i.referenceId||i.labelId,s=i.destination===void 0?r[mu(o)]:i;for(n=!0;e--;)if(a[e].image){n=void 0;break}i.image?(_(`<img src=\"`+Eu(s.destination,t.allowDangerousProtocol?void 0:Au)+`\" alt=\"`),v(i.label),_(`\"`)):_(`<a href=\"`+Eu(s.destination,t.allowDangerousProtocol?void 0:ku)+`\"`),_(s.title?` title=\"`+s.title+`\"`:``),i.image?_(` />`):(_(`>`),v(i.label),_(`</a>`)),a.pop()}function ve(){h(),a.push({})}function ye(e){g(),a[a.length-1].labelId=this.sliceSerialize(e)}function be(){h(),p(`ignoreEncode`,!0)}function xe(){a[a.length-1].destination=g(),p(`ignoreEncode`)}function j(){a[a.length-1].title=g()}function Se(){let e=a[a.length-1],t=mu(e.labelId);g(),Ou.call(r,t)||(r[t]=a[a.length-1]),a.pop()}function Ce(){p(`slurpAllLineEndings`,!0)}function we(e){m(`headingRank`)||(p(`headingRank`,this.sliceSerialize(e).length),b(),_(`<h`+m(`headingRank`)+`>`))}function Te(){h(),p(`slurpAllLineEndings`)}function Ee(){p(`slurpAllLineEndings`,!0)}function De(){_(`</h`+m(`headingRank`)+`>`),p(`headingRank`)}function Oe(e){p(`headingRank`,this.sliceSerialize(e).charCodeAt(0)===61?1:2)}function ke(){let e=g();b(),_(`<h`+m(`headingRank`)+`>`),v(e),_(`</h`+m(`headingRank`)+`>`),p(`slurpAllLineEndings`),p(`headingRank`)}function Ae(e){v(x(this.sliceSerialize(e)))}function je(e){if(!m(`slurpAllLineEndings`)){if(m(`slurpOneLineEnding`)){p(`slurpOneLineEnding`);return}if(m(`inCodeText`)){v(` `);return}v(x(this.sliceSerialize(e)))}}function Me(e){v(x(this.sliceSerialize(e))),p(`flowCodeSeenData`,!0)}function M(){_(`<br />`)}function Ne(){b(),Fe()}function Pe(){p(`ignoreEncode`)}function Fe(){t.allowDangerousHtml&&p(`ignoreEncode`,!0)}function Ie(){_(`<em>`)}function Le(){_(`<strong>`)}function Re(){p(`inCodeText`,!0),_(`<code>`)}function ze(){p(`inCodeText`),_(`</code>`)}function Be(){_(`</em>`)}function Ve(){_(`</strong>`)}function He(){b(),_(`<hr />`)}function Ue(e){p(`characterReferenceType`,e.type)}function We(e){let t=this.sliceSerialize(e);v(x(m(`characterReferenceType`)?du(t,m(`characterReferenceType`)===`characterReferenceMarkerNumeric`?10:16):nu(t))),p(`characterReferenceType`)}function Ge(e){let n=this.sliceSerialize(e);_(`<a href=\"`+Eu(n,t.allowDangerousProtocol?void 0:ku)+`\">`),v(x(n)),_(`</a>`)}function Ke(e){let t=this.sliceSerialize(e);_(`<a href=\"`+Eu(`mailto:`+t)+`\">`),v(x(t)),_(`</a>`)}}function Z(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return X(r)?(e.enter(n),s(r)):t(r)}function s(r){return X(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var Mu={tokenize:Nu};function Nu(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Z(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return Y(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var Pu={tokenize:Iu},Fu={tokenize:Lu};function Iu(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return ru(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Fu,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(Fu,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i=i||t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return Y(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;ru(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-- >r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Lu(e,t,n){return Z(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function Ru(e){if(e===null||Su(e)||wu(e))return 1;if(Cu(e))return 2}function zu(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var Bu={name:`attention`,resolveAll:Vu,tokenize:Hu};function Vu(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};Uu(d,-c),Uu(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=iu(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=iu(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=iu(l,zu(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=iu(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=iu(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,ru(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function Hu(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Ru(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=Ru(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function Uu(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var Wu={name:`autolink`,tokenize:Gu};function Gu(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return hu(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||gu(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||gu(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||vu(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):_u(t)?(e.consume(t),l):n(t)}function u(e){return gu(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||gu(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var Ku={partial:!0,tokenize:qu};function qu(e,t,n){return r;function r(t){return X(t)?Z(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||Y(e)?t(e):n(e)}}var Ju={continuation:{tokenize:Xu},exit:Zu,name:`blockQuote`,tokenize:Yu};function Yu(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||(e.enter(`blockQuote`,{_container:!0}),n.open=!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return X(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function Xu(e,t,n){let r=this;return i;function i(t){return X(t)?Z(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(Ju,t,n)(r)}}function Zu(e){e.exit(`blockQuote`)}var Qu={name:`characterEscape`,tokenize:$u};function $u(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return xu(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var ed={name:`characterReference`,tokenize:td};function td(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=gu,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=bu,u):(e.enter(`characterReferenceValue`),a=7,o=yu,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===gu&&!nu(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var nd={partial:!0,tokenize:ad},rd={concrete:!0,name:`codeFenced`,tokenize:id};function id(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),X(t)?Z(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||Y(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(nd,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||Y(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):X(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),Z(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||Y(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||Y(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&X(t)?Z(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||Y(t)?e.check(nd,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||Y(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),X(t)?Z(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),X(t)?Z(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||Y(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function ad(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var od={name:`codeIndented`,tokenize:cd},sd={partial:!0,tokenize:ld};function cd(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),Z(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):Y(t)?e.attempt(sd,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||Y(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function ld(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Y(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):Z(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):Y(e)?i(e):n(e)}}var ud={name:`codeText`,previous:fd,resolve:dd,tokenize:pd};function dd(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function fd(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function pd(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):Y(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||Y(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var md=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError(\"Cannot access index `\"+e+\"` in a splice buffer of size `\"+(this.left.length+this.right.length)+\"`\");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&hd(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),hd(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),hd(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){let t=this.left.splice(e,1/0);hd(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);hd(this.left,t.reverse())}}};function hd(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function gd(e){let t={},n=-1,r,i,a,o,s,c,l,u=new md(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,_d(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(!(o[1].type===`linePrefix`||o[1].type===`listItemIndent`))break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return ru(e,0,1/0,u.slice(0)),!l}function _d(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var vd={resolve:bd,tokenize:xd},yd={partial:!0,tokenize:Sd};function bd(e){return gd(e),e}function xd(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):Y(t)?e.check(yd,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function Sd(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Z(e,a,`linePrefix`)}function a(i){if(i===null||Y(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function Cd(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||vu(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||Y(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||Su(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||vu(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function wd(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):Y(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||Y(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||(c=!X(t)),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function Td(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):Y(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Z(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||Y(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function Ed(e,t){let n;return r;function r(i){return Y(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):X(i)?Z(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var Dd={name:`definition`,tokenize:kd},Od={partial:!0,tokenize:Ad};function kd(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return wd.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=mu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return Su(t)?Ed(e,l)(t):l(t)}function l(t){return Cd(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(Od,d,d)(t)}function d(t){return X(t)?Z(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||Y(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function Ad(e,t,n){return r;function r(t){return Su(t)?Ed(e,i)(t):n(t)}function i(t){return Td(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return X(t)?Z(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||Y(e)?t(e):n(e)}}var jd={name:`hardBreakEscape`,tokenize:Md};function Md(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return Y(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var Nd={name:`headingAtx`,resolve:Pd,tokenize:Fd};function Pd(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},ru(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function Fd(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||Su(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||Y(n)?(e.exit(`atxHeading`),t(n)):X(n)?Z(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||Su(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var Id=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),Ld=[`pre`,`script`,`style`,`textarea`],Rd={concrete:!0,name:`htmlFlow`,resolveTo:Vd,tokenize:Hd},zd={partial:!0,tokenize:Wd},Bd={partial:!0,tokenize:Ud};function Vd(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function Hd(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:oe):hu(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):hu(a)?(e.consume(a),i=4,r.interrupt?t:oe):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:oe):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:D:m):n(i)}function h(t){return hu(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Su(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&Ld.includes(l)?(i=1,r.interrupt?t(s):D(s)):Id.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):D(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||gu(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:D):n(i)}function v(t){return X(t)?(e.consume(t),v):ee(t)}function y(t){return t===47?(e.consume(t),ee):t===58||t===95||hu(t)?(e.consume(t),b):X(t)?(e.consume(t),y):ee(t)}function b(t){return t===45||t===46||t===58||t===95||gu(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):X(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):X(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||Y(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||Su(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||X(e)?y(e):n(e)}function ee(t){return t===62?(e.consume(t),E):n(t)}function E(t){return t===null||Y(t)?D(t):X(t)?(e.consume(t),E):n(t)}function D(t){return t===45&&i===2?(e.consume(t),re):t===60&&i===1?(e.consume(t),k):t===62&&i===4?(e.consume(t),se):t===63&&i===3?(e.consume(t),oe):t===93&&i===5?(e.consume(t),ae):Y(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(zd,ce,O)(t)):t===null||Y(t)?(e.exit(`htmlFlowData`),O(t)):(e.consume(t),D)}function O(t){return e.check(Bd,te,ce)(t)}function te(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ne}function ne(t){return t===null||Y(t)?O(t):(e.enter(`htmlFlowData`),D(t))}function re(t){return t===45?(e.consume(t),oe):D(t)}function k(t){return t===47?(e.consume(t),o=``,ie):D(t)}function ie(t){if(t===62){let n=o.toLowerCase();return Ld.includes(n)?(e.consume(t),se):D(t)}return hu(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),ie):D(t)}function ae(t){return t===93?(e.consume(t),oe):D(t)}function oe(t){return t===62?(e.consume(t),se):t===45&&i===2?(e.consume(t),oe):D(t)}function se(t){return t===null||Y(t)?(e.exit(`htmlFlowData`),ce(t)):(e.consume(t),se)}function ce(n){return e.exit(`htmlFlow`),t(n)}}function Ud(e,t,n){let r=this;return i;function i(t){return Y(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function Wd(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(Ku,t,n)}}var Gd={name:`htmlText`,tokenize:Kd};function Kd(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):hu(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):hu(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):Y(t)?(o=d,k(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?re(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):Y(t)?(o=h,k(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?re(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?re(t):Y(t)?(o=v,k(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):Y(t)?(o=y,k(t)):(e.consume(t),y)}function b(e){return e===62?re(e):y(e)}function x(t){return hu(t)?(e.consume(t),S):n(t)}function S(t){return t===45||gu(t)?(e.consume(t),S):C(t)}function C(t){return Y(t)?(o=C,k(t)):X(t)?(e.consume(t),C):re(t)}function w(t){return t===45||gu(t)?(e.consume(t),w):t===47||t===62||Su(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),re):t===58||t===95||hu(t)?(e.consume(t),ee):Y(t)?(o=T,k(t)):X(t)?(e.consume(t),T):re(t)}function ee(t){return t===45||t===46||t===58||t===95||gu(t)?(e.consume(t),ee):E(t)}function E(t){return t===61?(e.consume(t),D):Y(t)?(o=E,k(t)):X(t)?(e.consume(t),E):T(t)}function D(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,O):Y(t)?(o=D,k(t)):X(t)?(e.consume(t),D):(e.consume(t),te)}function O(t){return t===i?(e.consume(t),i=void 0,ne):t===null?n(t):Y(t)?(o=O,k(t)):(e.consume(t),O)}function te(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||Su(t)?T(t):(e.consume(t),te)}function ne(e){return e===47||e===62||Su(e)?T(e):n(e)}function re(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function k(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),ie}function ie(t){return X(t)?Z(e,ae,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ae(t)}function ae(t){return e.enter(`htmlTextData`),o(t)}}var qd={name:`labelEnd`,resolveAll:Zd,resolveTo:Qd,tokenize:$d},Jd={tokenize:ef},Yd={tokenize:tf},Xd={tokenize:nf};function Zd(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&ru(e,0,e.length,n),e}function Qd(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=iu(s,e.slice(a+1,a+r+3)),s=iu(s,[[`enter`,u,t]]),s=iu(s,zu(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=iu(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=iu(s,e.slice(o+1)),s=iu(s,[[`exit`,c,t]]),ru(e,a,e.length,s),e}function $d(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(mu(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(Jd,u,o?u:d)(t):t===91?e.attempt(Yd,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(Xd,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function ef(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return Su(t)?Ed(e,a)(t):a(t)}function a(t){return t===41?u(t):Cd(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return Su(t)?Ed(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?Td(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return Su(t)?Ed(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function tf(e,t,n){let r=this;return i;function i(t){return wd.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(mu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function nf(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var rf={name:`labelStartImage`,resolveAll:qd.resolveAll,tokenize:af};function af(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var of={name:`labelStartLink`,resolveAll:qd.resolveAll,tokenize:sf};function sf(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var cf={name:`lineEnding`,tokenize:lf};function lf(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Z(e,t,`linePrefix`)}}var uf={name:`thematicBreak`,tokenize:df};function df(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||Y(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),X(t)?Z(e,s,`whitespace`)(t):s(t))}}var ff={continuation:{tokenize:gf},exit:vf,name:`list`,tokenize:hf},pf={partial:!0,tokenize:yf},mf={partial:!0,tokenize:_f};function hf(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:yu(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(uf,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return yu(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(Ku,r.interrupt?n:u,e.attempt(pf,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return X(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function gf(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(Ku,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Z(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!X(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(mf,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Z(e,e.attempt(ff,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function _f(e,t,n){let r=this;return Z(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function vf(e){e.exit(this.containerState.type)}function yf(e,t,n){let r=this;return Z(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!X(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var bf={name:`setextUnderline`,resolveTo:xf,tokenize:Sf};function xf(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function Sf(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),X(t)?Z(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||Y(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Cf={tokenize:wf};function wf(e){let t=this,n=e.attempt(Ku,r,e.attempt(this.parser.constructs.flowInitial,i,Z(e,e.attempt(this.parser.constructs.flow,i,e.attempt(vd,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Tf={resolveAll:kf()},Ef=Of(`string`),Df=Of(`text`);function Of(e){return{resolveAll:kf(e===`text`?Af:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function kf(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function Af(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var jf=t({attentionMarkers:()=>zf,contentInitial:()=>Nf,disable:()=>Bf,document:()=>Mf,flow:()=>Ff,flowInitial:()=>Pf,insideSpan:()=>Rf,string:()=>If,text:()=>Lf}),Mf={42:ff,43:ff,45:ff,48:ff,49:ff,50:ff,51:ff,52:ff,53:ff,54:ff,55:ff,56:ff,57:ff,62:Ju},Nf={91:Dd},Pf={[-2]:od,[-1]:od,32:od},Ff={35:Nd,42:uf,45:[bf,uf],60:Rd,61:bf,95:uf,96:rd,126:rd},If={38:ed,92:Qu},Lf={[-5]:cf,[-4]:cf,[-3]:cf,33:rf,38:ed,42:Bu,60:[Wu,Gd],91:of,92:[jd,Qu],93:qd,95:Bu,96:ud},Rf={null:[Bu,Tf]},zf={null:[42,95]},Bf={null:[]};function Vf(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=iu(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=zu(a,l.events,l),l.events):[]}function f(e,t){return Uf(p(e),t)}function p(e){return Hf(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,ee()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){Y(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,ee()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&ru(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,ee()}}function ee(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function Hf(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function Uf(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\\r`;break;case-4:o=`\n`;break;case-3:o=`\\r\n`;break;case-2:o=t?` `:`\t`;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function Wf(e){let t={constructs:ou([jf,...(e||{}).extensions||[]]),content:n(Mu),defined:[],document:n(Pu),flow:n(Cf),lazy:{},string:n(Ef),text:n(Df)};return t;function n(e){return n;function n(n){return Vf(t,e,n)}}}function Gf(e){for(;!gd(e););return e}var Kf=/[\\0\\t\\n\\r]/g;function qf(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&(i.charCodeAt(0)===65279&&u++,n=void 0);u<i.length;){if(Kf.lastIndex=u,c=Kf.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&(s.push(-5),r=void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}function Jf(e,t,n){return typeof t!=`string`&&(n=t,t=void 0),ju(n)(Gf(Wf(n).document().write(qf()(e,t,!0))))}var Yf={none:``,left:` align=\"left\"`,right:` align=\"right\"`,center:` align=\"center\"`};function Xf(){return{enter:{table(e){let t=e._align;this.lineEndingIfNeeded(),this.tag(`<table>`),this.setData(`tableAlign`,t)},tableBody(){this.tag(`<tbody>`)},tableData(){let e=Yf[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];e===void 0?this.buffer():(this.lineEndingIfNeeded(),this.tag(`<td`+e+`>`))},tableHead(){this.lineEndingIfNeeded(),this.tag(`<thead>`)},tableHeader(){let e=Yf[this.getData(`tableAlign`)[this.getData(`tableColumn`)]];this.lineEndingIfNeeded(),this.tag(`<th`+e+`>`)},tableRow(){this.setData(`tableColumn`,0),this.lineEndingIfNeeded(),this.tag(`<tr>`)}},exit:{codeTextData(e){let t=this.sliceSerialize(e);this.getData(`tableAlign`)&&(t=t.replace(/\\\\([\\\\|])/g,Zf)),this.raw(this.encode(t))},table(){this.setData(`tableAlign`),this.setData(`slurpAllLineEndings`),this.lineEndingIfNeeded(),this.tag(`</table>`)},tableBody(){this.lineEndingIfNeeded(),this.tag(`</tbody>`)},tableData(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);t in e?(this.tag(`</td>`),this.setData(`tableColumn`,t+1)):this.resume()},tableHead(){this.lineEndingIfNeeded(),this.tag(`</thead>`)},tableHeader(){let e=this.getData(`tableColumn`);this.tag(`</th>`),this.setData(`tableColumn`,e+1)},tableRow(){let e=this.getData(`tableAlign`),t=this.getData(`tableColumn`);for(;t<e.length;)this.lineEndingIfNeeded(),this.tag(`<td`+Yf[e[t]]+`></td>`),t++;this.setData(`tableColumn`,t),this.lineEndingIfNeeded(),this.tag(`</tr>`)}}}}function Zf(e,t){return t===`|`?t:e}var Qf=class{constructor(){this.map=[]}add(e,t,n){$f(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function $f(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function ep(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function tp(){return{flow:{null:{name:`table`,tokenize:np,resolveAll:rp}}}}function np(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):Y(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):X(t)?Z(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||Su(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,X(t)?Z(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return X(t)?Z(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Y(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return X(t)?Z(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Y(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||Y(n)?(e.exit(`tableRow`),t(n)):X(n)?Z(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||Su(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function rp(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Qf;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(ap(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=ip(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=ip(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=ip(f,t,o,i,n,d)):(o[0]=o[1],d=ip(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&ap(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=ep(t.events,n))}return e}function ip(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},op(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=op(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=op(t.events,n[2]),a=op(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},op(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function ap(e,t,n,r,i){let a=[],o=op(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function op(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}function sp(){return{enter:{strikethrough(){this.tag(`<del>`)}},exit:{strikethrough(){this.tag(`</del>`)}}}}function cp(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??(t=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&ru(o,o.length,0,zu(s,e.slice(r+1,n),t)),ru(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),ru(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=Ru(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=Ru(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}function lp(e){let t=[`codeIndented`];return e?.inline&&t.push(`list`,`headingAtx`,`setextUnderline`,`thematicBreak`,`blockQuote`,`codeFenced`,`table`),{allowDangerousHtml:!0,extensions:[tp(),cp(),{disable:{null:t}}],htmlExtensions:[Xf(),sp()]}}function up(e,t){let n=lp(t);return Jf(e,{...n,extensions:[...n.extensions??[],gp(e),fp]})}var dp=e=>{let t=e.length-2,n=e[t-1];return n&&n[0]===`exit`&&n[1].type===`data`&&(n[1].end=e[t][1].end,e.length=t),e},fp={text:{null:{name:`textData`,tokenize(e,t){let n=this,r=this.parser.constructs.text;function i(e){if(e===null)return!0;let t=r[e]??[];return(Array.isArray(t)?t:[t]).some(e=>!e.previous||e.previous.call(n,n.previous))}function a(n){return i(n)?(e.exit(`data`),t(n)):(e.consume(n),a)}return t=>(e.enter(`data`),e.consume(t),a)},resolveTo:dp}}},pp=/[#-'*+\\--9=?A-Z^-~]/,mp=/[0-9A-Za-z]/,hp=/[A-Za-z]/;function gp(e){let t=e.charCodeAt(0)===65279?1:0,n=e.lastIndexOf(`-->`),r=e.lastIndexOf(`?>`),i=e.lastIndexOf(`]]>`),a=e.lastIndexOf(`>`);function o(t){return e[t]===`<`?e.startsWith(`\\x3C!--`,t)?n<t+2:e.startsWith(`<![CDATA[`,t)?i<t+9:e[t+1]===`!`&&hp.test(e[t+2]??``)?a<t+3:e[t+1]===`?`?r<t+2&&!s(t):!1:!1}function s(t){let n=t+1;for(;pp.test(e[n]??``);)n++;if(e[n]!==`@`)return!1;n++;let r=0,i=`atSignOrDot`;for(;;){let t=e[n]??``;if(i===`atSignOrDot`){if(!mp.test(t))return!1;i=`label`}else if(i===`label`){if(t===`>`)return!0;t===`.`?(n++,r=0,i=`atSignOrDot`):i=`value`}else{if(!((t===`-`||mp.test(t))&&r++<63))return!1;n++,i=t===`-`?`value`:`label`}}}let c={name:`unclosedHtml`,resolveTo:dp,tokenize(e,n,r){let i=this.now().offset+t;return t=>t!==60||!o(i)?r(t):(e.enter(`data`),e.consume(t),e.exit(`data`),n)}};return{text:{60:c}}}function _p(e){let t=e.metadata[`data-source-file`],n=e.metadata[`data-source-line`];return t?n?` (${t}:${n})`:` (${t})`:``}function vp(){let e=Q.getState();if(!e.storyData)return``;let t=e.storyData.passages.get(e.currentPassage);return t?_p(t):``}function yp({macro:e,error:t}){return J(`span`,{class:`error`,title:String(t),children:`{${e} error${vp()}: ${ys(t)}}`})}function bp(e,t,n=vp()){console.error(`spindle: Error in {${e}}${n}:`,t)}function xp(e,t,n){let r=M();if(r.current===void 0){r.current=null;let i=vp();try{n()}catch(n){r.current={error:n},bp(`${e} ${t}`.trim(),n,i)}}return r.current?J(yp,{macro:e,error:r.current.error}):null}var Sp={update:e=>{throw Error(`Cannot set @${e} — local variables require a {for}, widget, {link}, or {button} scope`)},getValues:()=>us},Cp=ge(us),wp=ge(Sp),Tp=ge(!1),Ep=ge(!1),Dp=ge(!1),Op=ge(``),kp=0;function Ap(){return ke(()=>`v${++kp}`)[0]}var jp=ge(!1),Mp=`http://www.w3.org/2000/svg`,Np=new Set([`pre`,`textarea`,`style`]),Pp=ge(null);function Fp(e,t){return`<span data-tw=${e}:${t}></span>`}var Ip=/(?:(?<=\\\\)\\uE000)?<span data-tw=([0-9a-z]+):(\\d+)><\\/span>/g,Lp=``;function Rp(e,t){if(!e.includes(`<span data-tw=`))return[e];let n=[],r=0;for(let i of e.matchAll(Ip))i[1]===t.nonce&&(i.index>r&&n.push(e.slice(r,i.index)),n.push(parseInt(i[2],10)),r=i.index+i[0].length);return r<e.length&&n.push(e.slice(r)),n}function zp(e,t){return Rp(e,t).map(e=>typeof e==`number`?t.components[e]:e)}function Bp({tag:e,attributes:t,placeholders:n,svg:r,children:i}){let a=Gl(),o=[],{props:s,direct:c}=$p(t.map(([e,t,r])=>{let i=n[e];if(!i)return[e,t,r];let s=Hl(i,a);for(let t of s.errors)o.push([e,t]);return[e,s.text,r]}),r),l=em(c);return Hp(o,b(e,l?{...s,ref:l}:s,...i))}function Vp({tag:e,props:t,direct:n,children:r}){let i=em(n);return b(e,{...t,ref:i},...r)}function Hp(e,t){return e.length===0?t:J(S,{children:[e.map(([e,{macro:t,error:n}],r)=>J(yp,{macro:t,error:Error(`in attribute \"${e}\": ${ys(n)}`)},r)),t]})}function Up(e,t){if(e==null||e.nodeType!==Node.ELEMENT_NODE)return-1;let n=e.getAttribute(`data-tw`),r=`${t.nonce}:`;return n==null||!n.startsWith(r)?-1:parseInt(n.slice(r.length),10)}function Wp(e){let t=document.createElement(`template`);return t.innerHTML=e,t.content}function Gp(e,t,n=!1){let r=Wp(e.trim());if(n)for(let e of Array.from(r.childNodes))e.nodeType===Node.ELEMENT_NODE&&e.nodeName===`P`&&e.replaceWith(...Array.from(e.childNodes));return J(S,{children:Array.from(r.childNodes).map((e,n)=>Kp(e,n,t))})}function Kp(e,t,n){if(e.nodeType===Node.TEXT_NODE){let t=e.textContent??``;t.endsWith(`\\\\${Lp}`)&&Up(e.nextSibling,n)!==-1&&(t=t.slice(0,-1));let r=zp(t,n);return r.length===1?r[0]:r}if(e.nodeType===Node.ELEMENT_NODE){let r=e,i=r.localName,a=Up(r,n);if(a!==-1)return n.components[a];let o=r.namespaceURI===Mp,s=[],c;for(let{name:e,value:t}of Array.from(r.attributes)){s.push([e,t,t]);let r=Rp(t,n);r.every(e=>typeof e==`string`)||(c??(c={}),c[e]=r.map(e=>typeof e==`string`?{type:`text`,value:e}:n.nodes[e]))}let l=Array.from(r.childNodes).map((e,t)=>Kp(e,t,n));if(c)return J(Bp,{tag:i,attributes:s,placeholders:c,svg:o,children:l},t);let{props:u,direct:d}=$p(s,o);return d.length>0?J(Vp,{tag:i,props:u,direct:d,children:l},t):b(i,{...u,key:t},...l)}return null}var qp=new Set(`a.abbr.b.bdi.bdo.br.button.cite.code.data.dfn.em.i.h1.h2.h3.h4.h5.h6.kbd.label.legend.mark.meter.option.output.p.progress.q.rp.rt.ruby.s.samp.small.span.strong.sub.summary.sup.time.u.var.wbr`.split(`.`)),Jp=new Set([`value`,`checked`,`selected`,`muted`]),Yp=new Set([`allowfullscreen`,`async`,`autofocus`,`autoplay`,`checked`,`controls`,`default`,`defer`,`disabled`,`formnovalidate`,`hidden`,`inert`,`ismap`,`itemscope`,`loop`,`multiple`,`muted`,`nomodule`,`novalidate`,`open`,`playsinline`,`readonly`,`required`,`reversed`,`selected`]),Xp=new Set([...new Set([`key`,`ref`,`children`,`dangerouslySetInnerHTML`]),`class`,`className`]),Zp=/^[A-Za-z_:][\\w:.-]*$/;function Qp(e,t,n){if(Zp.test(t)){e.setAttribute(t,n);return}let r=Wp(`<i ${t}=\"\"></i>`).firstChild.attributes[0];if(!r)return;let i=r.cloneNode();i.value=n,e.setAttributeNode(i)}function $p(e,t){let n={},r=[];for(let[i,a,o]of e){let e=i.toLowerCase();Yp.has(e)&&o!==``&&a===``||(!t&&Jp.has(e)?n[e]=e!==`value`&&o===``?!0:a:!Zp.test(i)||e.startsWith(`on`)||e===`translate`||t&&(Xp.has(i)||i===`__proto__`)?r.push([i,a]):n[t?i:i.toUpperCase()]=a)}return{props:n,direct:r}}function em(e){let t=M(null);return Me(()=>{let n=t.current;if(!(!n||e.length===0)){for(let[t,r]of e)Qp(n,t,r);return()=>{for(let[t]of e)n.removeAttribute(t)}}},[JSON.stringify(e)]),e.length>0?t:void 0}var tm=new Map,nm=new Map;function rm(e,t,n){if(!e.includes(`&`))return e;let r=t.get(e);return r===void 0&&(r=n(e)??e,t.set(e,r)),r}function im(e){return rm(e,nm,e=>Wp(`<i title=\"${e.replace(/\"/g,`"`)}\"></i>`).firstChild.getAttribute(`title`))}function am(e){return rm(e,tm,e=>Wp(`<i>${e.replace(/</g,`<`)}</i>`).firstChild.textContent)}var om=/\\{[$_@%]\\w/,sm=new Map,cm=2e3;function lm(e){let t=sm.get(e);return t===void 0&&(t=Fl(e),`nodes`in t&&e.includes(`&`)&&(t={nodes:Il(t.nodes,im)}),sm.size>=cm&&sm.clear(),sm.set(e,t)),t}function um(e,t,n,r){if(Wo(e)){if(!t.includes(`&`)&&!om.test(t))return t;let i=Wl(t,n,im);for(let t of i.errors)r.push([e,t]);return i.text}if(!jl(t))return im(t);let i=lm(t);if(`error`in i)return r.push([e,{macro:`markup`,error:i.error}]),im(t);let a=Hl(i.nodes,n);for(let t of a.errors)r.push([e,t]);return a.text}function dm(e){let t=e.findIndex(e=>e.type!==`text`||e.value.trim()!==``),n=e[t];return n?.type===`html`&&n.tag.toLowerCase()===`summary`?t:-1}function fm({node:e}){let t=Gl(),{nobr:n,locals:r,raw:i,inline:a}=Zl(),o=Fe(jp),s=e.tag.toLowerCase(),c=s===`svg`,l=!i&&(c||Np.has(s)),u=[],{props:d,direct:f}=$p(Object.entries(e.attributes).map(([e,n])=>[e,um(e,n,t,u),n]),o||c),p=em(f);p&&(d.ref=p);let m=qp.has(s),h;if(e.children.length>0)if(i||l)h=ym(e.children);else{let t=s===`details`?dm(e.children):-1,i=e=>Dm(e,{nobr:n,locals:r,inline:m});h=t===-1?i(e.children):J(S,{children:[i(e.children.slice(0,t)),vm(e.children[t]),i(e.children.slice(t+1))]}),m!==a&&(h=J(Ep.Provider,{value:m,children:h}))}let g=b(e.tag,d,h);return c&&!o&&(g=J(jp.Provider,{value:!0,children:g})),Hp(u,l?J(Dp.Provider,{value:!0,children:g}):g)}function pm(){let e=Fe(Pp),t=Zl();return e?J(Pp.Provider,{value:e.outer,children:Dm(e.nodes,t)}):null}var mm=new WeakMap,hm=0;function gm(e){let t=mm.get(e);return t===void 0&&(t=`n${hm++}`,mm.set(e,t)),t}function _m(e,t){if(bl(e.name))return null;let n={rawArgs:e.rawArgs,className:e.className,id:e.id},r=_s(e.name);if(r)return J($l,{...n,body:r.body,params:r.params,invocationChildren:e.children},t);let i=ml(e.name);return i?J(i,{...n,children:e.children,branches:e.branches},t):J(`span`,{class:`error`,children:`{unknown macro: ${e.name}}`},t)}function vm(e){if(e.type===`text`)return am(e.value);let t=gm(e);switch(e.type){case`variable`:return e.scope===`local`&&e.name===`children`?J(pm,{},t):J(Yl,{node:e},t);case`expression`:return J(Xl,{node:e},t);case`macro`:return _m(e,t);case`html`:return J(fm,{node:e},t);default:return e}}function ym(e){return e.length===0?null:e.map(e=>vm(e))}var bm=/[*_`#|~\\[>\\\\\\-+=\\r]|!\\[|\\d+[.)]|&#?[a-zA-Z0-9]+;| {2}\\n|<[!?]/,xm=/(?:\\r\\n|\\r(?!\\n)|\\n)\\s*[\\r\\n]/,Sm=/<span data-tw=[0-9a-z]+:\\d+><\\/span>/g,Cm=` \t\\r\n`;function wm(e,t,n,r){let i=t;if(n===1)for(;i<e.length&&r.includes(e[i]);)i++;else for(;i>0&&r.includes(e[i-1]);)i--;return i}function Tm(e){return e.includes(`\n`)?e.split(`\n`).map((e,t,n)=>{let r=t===0?0:wm(e,0,1,` \t`),i=t===n.length-1?e.length:wm(e,e.length,-1,` \t`);return e.slice(r,Math.max(r,i))}).join(`\n`):e}function Em(e,t,n){let r=zp(Tm(e),t).filter(e=>e!==``);return n?J(S,{children:r}):b(`p`,null,...r)}function Dm(e,t){if(e.length===0)return null;if(t?.raw)return ym(e);if(!e.some(e=>e.type===`text`&&(e.value.trim()!==``||xm.test(e.value))))return e.map(e=>vm(e));let n=[],r={nonce:Math.random().toString(36).slice(2,10)||`0`,components:n,nodes:[]},i=``;for(let t=0;t<e.length;t++){let a=e[t];if(a.type===`text`){i+=a.value;continue}let o=n.length;n.push(vm(a)),r.nodes.push(a),i.endsWith(`\\\\`)&&(i+=Lp),i+=Fp(r.nonce,o)}let a=!!(t?.nobr||t?.inline),o=i.slice(0,wm(i,0,1,Cm)),s=o.length===i.length?``:i.slice(wm(i,i.length,-1,Cm)),c=i.slice(o.length,i.length-s.length),l=e=>a&&(o||s)?J(S,{children:[o,e,s]}):e,u=i.replace(Sm,``);return!bm.test(u)&&!xm.test(u)?l(Em(c,r,a)):l(Gp(up(i,{inline:t?.inline}),r,a))}var Om=2**32-1,km=Om-1,Am=class extends Error{constructor(e,t,n,r){super(e),this.name=`DevalueError`,this.path=t.join(``),this.value=n,this.root=r}},jm=Symbol();function Mm(e,t){let n=[];for(let r=0;r<e.length;r+=1){let i=e[r];i===jm?n.push(`.get(${t(e[++r])})`):typeof i==`number`?n.push(`[${i}]`):n.push(Gm(i))}return n}var Nm=Object.getOwnPropertyNames(Object.prototype).sort().join(`\\0`);function Pm(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\\0`)===Nm}function Fm(e){return Object.prototype.toString.call(e).slice(8,-1)}function Im(e){return typeof Buffer<`u`&&Buffer.isBuffer(e)}function Lm(e){switch(e){case`\"`:return`\\\\\"`;case`<`:return`\\\\u003C`;case`\\\\`:return`\\\\\\\\`;case`\n`:return`\\\\n`;case`\\r`:return`\\\\r`;case`\t`:return`\\\\t`;case`\\b`:return`\\\\b`;case`\\f`:return`\\\\f`;case`\\u2028`:return`\\\\u2028`;case`\\u2029`:return`\\\\u2029`;default:return e<` `?`\\\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`:``}}var Rm=/[\"<\\\\\\u0000-\\u001f\\u2028\\u2029]/;function zm(e){if(!Rm.test(e)&&e.isWellFormed())return`\"${e}\"`;let t=``,n=0,r=e.length;for(let i=0;i<r;i+=1){let a=e.charCodeAt(i);if(a>=55296&&a<=57343){if(a<=56319&&i+1<r&&(e.charCodeAt(i+1)&64512)==56320){i+=1;continue}t+=e.slice(n,i)+`\\\\u${a.toString(16)}`,n=i+1;continue}let o=Lm(e[i]);o&&(t+=e.slice(n,i)+o,n=i+1)}return`\"${n===0?e:t+e.slice(n)}\"`}var Bm=64,Vm=new Map;function Hm(e){if(e.length>Bm)return zm(e);let t=Vm.get(e);return t===void 0&&(Vm.size>=1024&&Vm.clear(),t=zm(e),Vm.set(e,t)),t}function Um(e){let t=Object.getOwnPropertySymbols(e);return t.length===0?t:t.filter(t=>Object.getOwnPropertyDescriptor(e,t)?.enumerable)}var Wm=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Gm(e){return Wm.test(e)?`.`+e:`[`+JSON.stringify(e)+`]`}function Km(e){return!(!Number.isInteger(e)||e<0||e>km)}function qm(e){return!(!Number.isInteger(e)||e<0||e>Om)}function Jm(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Km(+e)}function Ym(e){for(var t=e.length-1;t>=0&&!Jm(e[t]);t--);return t+1}function Xm(e){let t=Object.keys(e);return t.length=Ym(t),t}function Zm(e){return new Uint8Array(e).toBase64()}function Qm(e){return Uint8Array.fromBase64(e).buffer}function $m(e){return Buffer.from(e).toString(`base64`)}function eh(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function th(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r){let i=t.subarray(e,e+r);n+=String.fromCharCode.apply(null,i)}return btoa(n)}function nh(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer}var rh=typeof Uint8Array.fromBase64==`function`,ih=typeof process==`object`&&process.versions?.node!==void 0,ah=rh?Zm:ih?$m:th,oh=rh?Qm:ih?eh:nh;function sh(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}var ch=Object.freeze({kind:`not-plain`}),lh=Object.freeze({kind:`symbol-keys`}),uh=Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>Fm(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>(Im(e)&&(e=new Uint8Array(e)),{buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Xm(e),shapeOf:e=>Pm(e)?Um(e).length>0?lh:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:ch,get:(e,t)=>e[t]}),dh=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,`byteLength`)?.get,fh=typeof SharedArrayBuffer>`u`?void 0:Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype,`byteLength`)?.get,ph=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{try{dh.call(t)}catch(e){if(!fh)throw e;fh.call(t)}let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[km]=void 0,delete t[km],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function mh(){throw Error(`Invalid input`)}function hh(e,t,n){return gh(JSON.parse(e),t,n)}function gh(e,t,n){let r=sh(ph,n?.operations);if(typeof e==`number`)return c(e,!0);(!Array.isArray(e)||e.length===0)&&mh();let i=e,a=Array(i.length),o=null;function s(e){return(!Km(e)||e>=i.length)&&mh(),i[e]}function c(e,n=!1){if(e===-1)return r.fromPrimitive(void 0);if(e===-3)return r.fromPrimitive(NaN);if(e===-4)return r.fromPrimitive(1/0);if(e===-5)return r.fromPrimitive(-1/0);if(e===-6)return r.fromPrimitive(-0);if((n||typeof e!=`number`)&&mh(),e in a)return a[e];e>=i.length&&mh();let l=i[e];if(!l||typeof l!=`object`)a[e]=r.fromPrimitive(l);else if(Array.isArray(l))if(typeof l[0]==`string`){let n=l[0],u=t&&Object.hasOwn(t,n)?t[n]:void 0;if(u){let t=l[1];if(typeof t!=`number`&&(t=i.push(l[1])-1),Object.hasOwn(a,t))return a[e]=u(a[t]);if(o??(o=new Set),o.has(t))throw Error(`Invalid circular reference`);return o.add(t),a[e]=u(c(t)),o.delete(t),a[e]}switch(n){case`Date`:a[e]=r.fromISOString(l[1]);break;case`Set`:let t=r.createSet();a[e]=t;for(let e=1;e<l.length;e+=1)r.addValue(t,c(l[e]));break;case`Map`:let i=r.createMap();a[e]=i;for(let e=1;e<l.length;e+=2)r.addEntry(i,c(l[e]),c(l[e+1]));break;case`RegExp`:a[e]=r.fromRegExpInfo(l[1],l[2]);break;case`Object`:{let t=l[1];if(!(t===-3||t===-4||t===-5||t===-6)){let e=s(t),n=Array.isArray(e)&&e[0]===`BigInt`;(e===void 0||typeof e==`object`)&&!n&&mh()}a[e]=r.box(c(t));break}case`BigInt`:a[e]=r.fromPrimitive(BigInt(l[1]));break;case`null`:let o=r.createNullPrototypeObject();a[e]=o;for(let e=1;e<l.length;e+=2){let t=l[e];if(typeof t!=`string`)throw Error(`Cannot parse an object with a non-string key`);if(t===`__proto__`)throw Error(\"Cannot parse an object with a `__proto__` property\");r.set(o,t,c(l[e+1]))}break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:case`DataView`:{let t=l[1],i=s(t);(!Array.isArray(i)||i[0]!==`ArrayBuffer`)&&mh();let o=c(t);a[e]=r.fromViewInfo(n,o,l[2],l[3]);break}case`ArrayBuffer`:{let t=l[1];if(typeof t!=`string`)throw Error(`Invalid ArrayBuffer encoding`);a[e]=r.fromArrayBuffer(oh(t));break}case`URL`:case`URLSearchParams`:case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:a[e]=r.fromStringValue(n,l[1]);break;default:throw Error(`Unknown type ${n}`)}}else if(l[0]===-7){let t=l[1];qm(t)||mh();let n=r.createSparseArray(t);a[e]=n;for(let e=2;e<l.length;e+=2){let i=l[e];(!Km(i)||i>=t)&&mh(),r.set(n,i,c(l[e+1]))}}else{let t=r.createArray(l.length);a[e]=t;for(let e=0;e<l.length;e+=1){let n=l[e];n!==-2&&r.set(t,e,c(n))}}else{let t=r.createObject();a[e]=t;for(let e of Object.keys(l)){if(e===`__proto__`)throw Error(\"Cannot parse an object with a `__proto__` property\");r.set(t,e,c(l[e]))}}return a[e]}return c(0)}function _h(e,t,n){let r=vh(!1,e,t,n);return typeof r==`string`?r:`[${r.join(`,`)}]`}function vh(e,t,n,r){let i=sh(uh,r?.operations),a=[],o=new Map,s=[];if(n)for(let e of Object.getOwnPropertyNames(n))s.push({key:e,fn:n[e]});let c=[],l=0;function u(e,n){throw new Am(e,Mm(c,e=>{let t=i.typeOf(e);return t!==`object`&&t!==`function`&&t!==`symbol`?yh(i.toPrimitive(e)):`...`}),n,t)}function d(t,n){let r=i.typeOf(t);if(r===`undefined`)return-1;let f;if(r===`number`){if(f=i.toPrimitive(t),Number.isNaN(f))return-3;if(f===1/0)return-4;if(f===-1/0)return-5;if(f===0&&1/f<0)return-6}let p=i.identify(t);if(o.has(p))return o.get(p);n??(n=l++),o.set(p,n);for(let{key:e,fn:r}of s){let i=r(t);if(i)return a[n]=`[\"${e}\",${d(i)}]`,n}r===`function`?u(`Cannot stringify a function`,t):r===`symbol`&&u(`Cannot stringify a Symbol primitive`,t);let m=``;if(r!==`object`)m=yh(r===`number`?f:i.toPrimitive(t));else if(i.isThenable(t)){e||u(`Cannot stringify a Promise or thenable — use stringifyAsync instead`,t);let r=c.slice();m=i.toPromise(t).then(e=>{c=r;let t=d(e,n);t<0&&(a[n]=t)}),m.catch(()=>{})}else{let e=i.tagOf(t);switch(e){case`Number`:case`String`:case`Boolean`:case`BigInt`:m=`[\"Object\",${d(i.unbox(t))}]`;break;case`Date`:m=`[\"Date\",\"${i.toISOString(t)}\"]`;break;case`URL`:m=`[\"URL\",${zm(i.toStringValue(t))}]`;break;case`URLSearchParams`:m=`[\"URLSearchParams\",${zm(i.toStringValue(t))}]`;break;case`RegExp`:let{source:n,flags:r}=i.regExpInfo(t);m=r?`[\"RegExp\",${zm(n)},\"${r}\"]`:`[\"RegExp\",${zm(n)}]`;break;case`Array`:{let e=!1,n=i.lengthOf(t);m=`[`;for(let r=0;r<n;r+=1)if(r>0&&(m+=`,`),i.hasOwn(t,r))c.push(r),m+=d(i.get(t,r)),c.pop();else if(e)m+=-2;else{let r=i.indicesOf(t),a=r.length,o=String(n).length;if((n-a)*3>4+o+a*(o+1)){m=`[-7,`+n;for(let e=0;e<r.length;e++){let n=r[e];c.push(+n),m+=`,`+n+`,`+d(i.get(t,n)),c.pop()}break}else e=!0,m+=-2}m+=`]`;break}case`Set`:m=`[\"Set\"`;for(let e of i.valuesOf(t))m+=`,${d(e)}`;m+=`]`;break;case`Map`:m=`[\"Map\"`;for(let[e,n]of i.entriesOf(t))c.push(jm,e),m+=`,${d(e)},${d(n)}`,c.pop(),c.pop();m+=`]`;break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:{let n=i.viewInfo(t);m=`[\"`+e+`\",`+d(n.buffer),n.byteLength!==n.bufferByteLength&&(m+=`,${n.byteOffset},${n.length}`),m+=`]`;break}case`DataView`:{let n=i.viewInfo(t);m=`[\"`+e+`\",`+d(n.buffer),n.byteLength!==n.bufferByteLength&&(m+=`,${n.byteOffset},${n.byteLength}`),m+=`]`;break}case`ArrayBuffer`:m=`[\"ArrayBuffer\",\"${ah(i.toArrayBuffer(t))}\"]`;break;case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:m=`[\"${e}\",${zm(i.toStringValue(t))}]`;break;default:{let e=i.shapeOf(t);if(e.kind===`not-plain`&&u(`Cannot stringify arbitrary non-POJOs`,t),e.kind===`symbol-keys`&&u(`Cannot stringify POJOs with symbolic keys`,t),e.kind===`null-proto`){m=`[\"null\"`;for(let n of e.keys)n===`__proto__`&&u(`Cannot stringify objects with __proto__ keys`,t),c.push(n),m+=`,${Hm(n)},${d(i.get(t,n))}`,c.pop();m+=`]`}else{m=`{`;let n=!1;for(let r of e.keys)r===`__proto__`&&u(`Cannot stringify objects with __proto__ keys`,t),n&&(m+=`,`),n=!0,c.push(r),m+=`${Hm(r)}:${d(i.get(t,r))}`,c.pop();m+=`}`}}}}return a[n]=m,n}let f=d(t);return f<0?`${f}`:a}function yh(e){let t=typeof e;return t===`string`?zm(e):e===void 0?`-1`:e===0&&1/e<0?`-6`:t===`bigint`?`[\"BigInt\",\"${e}\"]`:String(e)}var bh=e=>Object.prototype.toString.call(e).slice(8,-1),xh=e=>bh(e).startsWith(`Temporal.`),Sh=e=>e instanceof Number||e instanceof String||e instanceof Boolean||bh(e)===`BigInt`;function Ch(e){return e instanceof Date||e instanceof RegExp||e instanceof Map||e instanceof Set||ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof URL||e instanceof URLSearchParams||e instanceof Error||Sh(e)||xh(e)}function wh(e){if(!Ch(e))return;let t=e instanceof Error?`Error`:bh(e);return`${/^[AEIOU]/.test(t)?`an`:`a`} ${t}`}var Th=e=>e!==`4294967295`&&String(Number(e)>>>0)===e;function Eh(e){let t=Object.keys(e);return Array.isArray(e)?t.filter(e=>!Th(e)):t}function Dh(e){return jt(e)?e.entries():Map.prototype.entries.call(e)}function Oh(e){return jt(e)?e.values():Set.prototype.values.call(e)}function kh(e){if(jt(e))return e.size;let t=e instanceof Map?Map.prototype:Set.prototype;return Reflect.get(t,`size`,e)}function Ah(e,t){return jt(e)?e.get(t):Map.prototype.get.call(e,t)}function jh(e,t,n){jt(e)?e.set(t,n):Map.prototype.set.call(e,t,n)}var Mh=new Map,Nh=new Map,Ph=[ArrayBuffer,DataView,Object.getPrototypeOf(Int8Array),URL,URLSearchParams,Number,String,Boolean,Promise,WeakMap,WeakSet,Function];function Fh(e,t){let n=typeof t==`function`?Ph.find(e=>t.prototype instanceof e):void 0;if(n)throw TypeError(`spindle: Cannot register class \"${e}\": it extends ${n.name}, whose instances cannot be saved (a registered class may extend Array, Map, Set, Date, RegExp or Error)`);Mh.set(e,t),Nh.set(t,e)}function Ih(e){let t=Object.getPrototypeOf(e);return t===null?void 0:Nh.get(t.constructor)}var Lh=`c:`,Rh=`E:`,zh=`S`,Bh=`K`,Vh=`R`,Hh=new Map([Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.AggregateError].map(e=>[e.prototype,e.name])),Uh=new Map([...Hh].map(([e,t])=>[t,e.constructor])),Wh=[`message`,`cause`,`errors`],Gh=e=>typeof e==`object`&&!!e,Kh=e=>Gh(e)&&Object.getPrototypeOf(e)===Object.prototype,qh=e=>TypeError(`spindle: Malformed data for class \"${e}\"`),Jh=(e,t,n)=>{Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0})};function Yh(e){if(Object.getOwnPropertySymbols(e).length>0)throw TypeError(`spindle: Cannot save an object with symbol keys`)}function Xh(e,t=Object.keys(e)){Yh(e);let n={};if(e instanceof Error)for(let t of Wh)K(e,t)&&Jh(n,t,e[t]);for(let r of t)Jh(n,r,e[r]);return n}var Zh={Array,Map,Set,Date,RegExp};function Qh(e){let t=()=>Xh(e,Eh(e));if(Array.isArray(e)){let n=Array(e.length);for(let t=0;t<e.length;t++)t in e&&(n[t]=e[t]);return[`Array`,n,t()]}return e instanceof Map?[`Map`,Array.from(Dh(e)),t()]:e instanceof Set?[`Set`,Array.from(Oh(e)),t()]:e instanceof Date?[`Date`,Date.prototype.getTime.call(e),t()]:e instanceof RegExp?[`RegExp`,[Reflect.get(RegExp.prototype,`source`,e),Reflect.get(RegExp.prototype,`flags`,e),e.lastIndex],t()]:Xh(e)}function $h(e){for(let t of Wh)K(e,t)&&Object.defineProperty(e,t,{enumerable:!1})}var eg=e=>e.length===1&&JSON.stringify(e).length>3;function tg(){let e={};for(let[t,n]of Mh)e[Lh+t]=e=>Gh(e)&&Object.getPrototypeOf(e)===n.prototype&&Qh(e);for(let[t,n]of Hh)e[Rh+n]=e=>Gh(e)&&Object.getPrototypeOf(e)===t&&Xh(e);return e[zh]=e=>{if(typeof e!=`symbol`)return!1;let t=Symbol.keyFor(e);return t!==void 0&&[t]},e[Vh]=e=>e instanceof RegExp&&e.lastIndex!==0&&[e.source,e.flags,e.lastIndex],e[Bh]=e=>{if(!Kh(e))return!1;let t=Object.keys(e);if(!t.some(eg))return!1;if(Yh(e),t.includes(`__proto__`))throw TypeError(`spindle: Cannot save a property named \"__proto__\"`);return t.flatMap(t=>[t,e[t]])},e}function ng(e){if(!Array.isArray(e)||typeof e[0]!=`string`||typeof e[1]!=`string`||!Number.isSafeInteger(e[2]))return;let t=new RegExp(e[0],e[1]);return t.lastIndex=e[2],t}function rg(e,t){return e===`RegExp`?ng(t):typeof t==`number`?new Date(t):void 0}var ig=new WeakMap;function ag(e,t,n){let[r,i,a]=n,o=typeof r==`string`&&K(Zh,r)?Zh[r]:void 0,s=r===`Date`||r===`RegExp`;if(n.length!==3||!o||!(t.prototype instanceof o)||!s&&K(n,1)&&!Array.isArray(i)||K(n,2)&&!Kh(a))throw qh(e);let c=ig.get(n);if(!c){let a=s?rg(r,i):new o;if(!a)throw qh(e);c=Object.setPrototypeOf(a,t.prototype),ig.set(n,c)}if(!s&&Array.isArray(i)&&og(c,i),Kh(a))for(let e of Object.keys(a))Jh(c,e,a[e]);return c}function og(e,t){if(Array.isArray(e)){e.length=t.length;for(let n=0;n<t.length;n++)K(t,n)?e[n]=t[n]:delete e[n]}else if(e instanceof Map){Map.prototype.clear.call(e);for(let n of t){if(!Array.isArray(n)||n.length!==2)throw TypeError(`spindle: Malformed map entries`);Map.prototype.set.call(e,n[0],n[1])}}else{Set.prototype.clear.call(e);for(let n of t)Set.prototype.add.call(e,n)}}function sg(e){return t=>{if(Array.isArray(t))return ag(e,cg(e),t);if(!Kh(t)){if(Gh(t)&&Ih(t)===e)return t;throw qh(e)}let n=cg(e);if(Object.values(Zh).some(e=>n.prototype instanceof e))throw qh(e);return Object.setPrototypeOf(t,n.prototype),t instanceof Error&&$h(t),t}}function cg(e){let t=Mh.get(e);if(!t)throw TypeError(`spindle: The save holds an instance of class \"${e}\", which is not registered`);return t}function lg(e){let t=Uh.get(e);if(t)return n=>{if(Object.getPrototypeOf(n)===t.prototype)return n;if(!Kh(n))throw TypeError(`spindle: Malformed data for \"${e}\"`);return Object.setPrototypeOf(n,t.prototype),$h(n),n}}var ug=new WeakMap;function dg(e){if(!Array.isArray(e)||e.length%2!=0)throw TypeError(`spindle: Malformed object entries`);let t=ug.get(e);t||ug.set(e,t={});for(let n=0;n<e.length&&K(e,n);n+=2){let r=e[n];if(typeof r!=`string`||r===`__proto__`)throw TypeError(`spindle: Malformed object entries`);Jh(t,r,K(e,n+1)?e[n+1]:void 0)}return t}var fg=new Proxy({},{getOwnPropertyDescriptor(e,t){let n=pg(t);return n&&{value:n,enumerable:!0,configurable:!0}},get:(e,t)=>pg(t)});function pg(e){if(typeof e==`string`){if(e===zh)return e=>{if(!Array.isArray(e)||typeof e[0]!=`string`)throw TypeError(`spindle: Malformed symbol`);return Symbol.for(e[0])};if(e===Bh)return dg;if(e===Vh)return e=>{let t=ng(e);if(!t)throw TypeError(`spindle: Malformed regular expression`);return t};if(e.startsWith(Lh))return sg(e.slice(2));if(e.startsWith(Rh))return lg(e.slice(2))}}function mg(e,t){if(!(e instanceof Error)||e.name!==`DevalueError`)return e instanceof Error?e:Error(String(e));let{path:n,value:r}=e,i=n?` (at ${n})`:``,a=e.message;return typeof r==`function`?a=`Cannot save a function`:Gh(r)&&/non-POJO/.test(e.message)?a=`Cannot save an instance of class \"${Object.getPrototypeOf(r)?.constructor?.name??`?`}\", which is not registered (see Story.registerClass)`:typeof r==`symbol`?a=`Cannot save a unique symbol (only Symbol.for() symbols)`:/symbolic keys/.test(e.message)?a=`Cannot save an object with symbol keys`:/__proto__/.test(e.message)&&(a=`Cannot save a property named \"__proto__\"`),TypeError(`spindle: ${a}${i}`)}function hg(e){try{return _h(e,tg())}catch(t){throw mg(t,e)}}function gg(e){return hh(e,fg)}var _g=class extends Error{constructor(){super(`This save was made by an incompatible version of Spindle`),this.name=`IncompatibleSaveError`}},vg={};function yg(e){if(typeof e!=`number`||!Number.isInteger(e)||e<1||e>1)throw new _g}function bg(e,t){yg(e);let n=t;for(let t=e;t<1;t++){let e=vg[t];if(!e)throw new _g;n=e(n)}return n}var xg=e=>e&&new Map(Object.entries(e));function Sg(e){if(!(e instanceof TypeError))return e;let t=e.message.replace(/\\(at \\.variables(?=[.[]|\\))/,`(at $`).replace(/\\(at \\.history\\[(\\d+)\\]\\.variables(.*)\\)$/,(e,t,n)=>`(at $${n} in history moment ${t})`).replace(/\\(at \\$\\.?/,`(at $`);return t===e.message?e:TypeError(t)}function Cg(e){try{return{formatVersion:1,data:hg({...e,visitCounts:xg(e.visitCounts),renderCounts:xg(e.renderCounts)})}}catch(e){throw Sg(e)}}var wg=()=>Error(`Invalid save data`);function Tg(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Eg(e){return e==null?!0:Tg(e)&&typeof e.seed==`string`&&typeof e.pull==`number`&&Number.isInteger(e.pull)&&e.pull>=0}var Dg=e=>Tg(e)&&typeof e.passage==`string`&&Tg(e.variables)&&typeof e.timestamp==`number`&&Eg(e.prng),Og=e=>e===void 0||Array.isArray(e)&&Array.from(e).every(e=>Tg(e)&&typeof e.condition==`string`&&Tg(e.options)),kg=e=>e===void 0||e instanceof Map&&[...e.keys()].every(e=>typeof e==`string`);function Ag(e){if(!Tg(e)||typeof e.passage!=`string`||!Tg(e.variables))return!1;let{history:t,historyIndex:n}=e;return!Array.isArray(t)||t.length===0||!Array.from(t).every(Dg)||typeof n!=`number`||!Number.isInteger(n)||n<0||n>=t.length||t[n].passage!==e.passage?!1:kg(e.visitCounts)&&kg(e.renderCounts)&&Eg(e.prng)&&Og(e.watchers)}var jg=e=>e instanceof Map?ms(Object.fromEntries(e)):void 0;function Mg(e){if(typeof e!=`object`||!e)throw wg();let{formatVersion:t,data:n}=e;if(yg(t),typeof n!=`string`)throw wg();let r=gg(bg(t,n));if(!Ag(r))throw wg();let i={...r,visitCounts:jg(r.visitCounts),renderCounts:jg(r.renderCounts)};return i.visitCounts===void 0&&delete i.visitCounts,i.renderCounts===void 0&&delete i.renderCounts,i}var Ng=`Invalid save file format`;function Pg(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Fg=[`id`,`passage`,`ifid`,`playthroughId`,`createdAt`,`updatedAt`,`title`];function Ig(e){let t=console.warn;console.warn=()=>{};try{Mg(e)}finally{console.warn=t}}function Lg(e){if(!Pg(e))throw Error(Ng);if(!K(e,`formatVersion`))throw e.version===1?new _g:Error(Ng);if(yg(e.formatVersion),typeof e.ifid!=`string`)throw Error(Ng);let t=e.save;if(!Pg(t)||!Pg(t.meta))throw Error(Ng);let n=t.meta;if(Fg.some(e=>typeof n[e]!=`string`))throw Error(Ng);try{Ig(t.payload)}catch(e){throw e instanceof _g?e:Error(Ng)}}function Rg(e){try{return Lg(e),!0}catch{return!1}}function zg(e){return JSON.stringify(e).length}function Bg(e){return{saves:e(`saves`,{ifid:e=>e.meta.ifid,playthroughId:e=>e.meta.playthroughId}),playthroughs:e(`playthroughs`,{ifid:e=>e.ifid}),meta:e(`meta`,{})}}var Vg={autosave:`autosave.`,slot:`slot.`,slotIndex:`slotIndex.`,playthroughCount:`playthroughCount.`,currentPlaythrough:`currentPlaythroughId.`};function Hg(e,t){let{slot:n,...r}=Vg;return Object.values(r).some(n=>e===n+t)||e.startsWith(n)&&e.endsWith(`.${t}`)}function Ug(e,{saves:t,playthroughs:n,meta:r},i){async function a(e,t,n,r){let i=(await e.find(n,r)).map(t);for(let t of i)await e.delete(t);return i}async function o(e){for(let t of await r.keys())e(t)&&await r.delete(t)}let s=e=>e.meta.id,c=e=>e.id;return{type:e,putSave:e=>t.put(e.meta.id,e),getSave:e=>t.get(e),deleteSave:e=>t.delete(e),getSavesByIfid:e=>t.find(`ifid`,e),deleteSavesByIfid:async e=>{await a(t,s,`ifid`,e)},deleteSavesByPlaythrough:e=>a(t,s,`playthroughId`,e),putPlaythrough:e=>n.put(e.id,e),getPlaythroughsByIfid:e=>n.find(`ifid`,e),deletePlaythroughsByIfid:async e=>{await a(n,c,`ifid`,e)},deletePlaythroughById:e=>n.delete(e),getMeta:e=>r.get(e),setMeta:(e,t)=>r.put(e,t),deleteMeta:e=>r.delete(e),deleteMetaByPrefix:e=>o(t=>t.startsWith(e)),deleteMetaByIfid:e=>o(t=>Hg(t,e)),getAllMetaKeys:()=>r.keys(),destroy:i}}function Wg(){let e=e=>structuredClone(e),t=[];function n(n,r){let i=new Map;return t.push(i),{get:async t=>e(i.get(t)),put:async(t,n)=>{i.set(t,e(n))},delete:async e=>{i.delete(e)},find:async(t,n)=>[...i.values()].filter(e=>r[t](e)===n).map(e),keys:async()=>[...i.keys()]}}return Ug(`memory`,Bg(n),async()=>{for(let e of t)e.clear()})}var Gg={saves:`spindle.save.`,playthroughs:`spindle.pt.`,meta:`spindle.meta.`},Kg={\"saves.ifid\":`spindle.idx.saves.`,\"saves.playthroughId\":`spindle.idx.saves-pt.`,\"playthroughs.ifid\":`spindle.idx.pt.`};function qg(e){let t=localStorage.getItem(e);if(t!==null)try{return JSON.parse(t)}catch{return}}function Jg(e,t){localStorage.setItem(e,JSON.stringify(t))}function Yg(e){localStorage.removeItem(e)}function Xg(e){return qg(e)??[]}function Zg(e,t){let n=Xg(e);n.includes(t)||(n.push(t),Jg(e,n))}function Qg(e,t){let n=Xg(e).filter(e=>e!==t);n.length>0?Jg(e,n):Yg(e)}var $g=e=>Object.keys(localStorage).filter(t=>t.startsWith(e));function e_(){function e(e,t){let n=Gg[e],r=Object.entries(t).map(([t,n])=>({field:t,read:n,prefix:Kg[`${e}.${t}`]})),i=e=>r.map(t=>`${t.prefix}${t.read(e)}`);return{get:async e=>qg(`${n}${e}`),async put(e,t){let r=qg(`${n}${e}`),a=i(t);if(r!==void 0)for(let t of i(r))a.includes(t)||Qg(t,e);Jg(`${n}${e}`,t);for(let t of a)Zg(t,e)},async delete(e){let t=qg(`${n}${e}`);if(t!==void 0)for(let n of i(t))Qg(n,e);Yg(`${n}${e}`)},async find(e,t){let i=r.find(t=>t.field===e),a=[];for(let e of Xg(`${i.prefix}${t}`)){let t=qg(`${n}${e}`);t!==void 0&&a.push(t)}return a},keys:async()=>$g(n).map(e=>e.slice(n.length))}}return Ug(`localstorage`,Bg(e),async()=>{for(let e of $g(`spindle.`))Yg(e)})}var t_=`spindle`,n_=1,r_={saves:{keyPath:`meta.id`,indexes:{ifid:`meta.ifid`,playthroughId:`meta.playthroughId`}},playthroughs:{keyPath:`id`,indexes:{ifid:`ifid`}},meta:{keyPath:`key`,indexes:{}}};function i_(){let e=null;function t(){return e||(e=new Promise((t,n)=>{let r=indexedDB.open(t_,n_);r.onupgradeneeded=()=>{let e=r.result;for(let[t,{keyPath:n,indexes:r}]of Object.entries(r_)){if(e.objectStoreNames.contains(t))continue;let i=e.createObjectStore(t,{keyPath:n});for(let[e,t]of Object.entries(r))i.createIndex(e,t,{unique:!1})}},r.onsuccess=()=>{let n=r.result;n.onversionchange=()=>{n.close(),e=null},t(n)},r.onerror=()=>n(r.error)}),e)}function n(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function r(e){let r=e===`meta`,i=async(r,i)=>{let a=(await t()).transaction(e,r),o=n(i(a.objectStore(e)));if(r===`readonly`)return o;let s=new Promise((e,t)=>{a.oncomplete=()=>e(),a.onabort=()=>t(a.error??new DOMException(`Transaction aborted`,`AbortError`))}),[c]=await Promise.all([o,s]);return c};return{async get(e){let t=await i(`readonly`,t=>t.get(e));return r?t?.value:t},async put(e,t){await i(`readwrite`,n=>n.put(r?{key:e,value:t}:t))},async delete(e){await i(`readwrite`,t=>t.delete(e))},async find(e,t){return await i(`readonly`,n=>n.index(e).getAll(t))??[]},keys:async()=>await i(`readonly`,e=>e.getAllKeys())}}return Ug(`indexeddb`,Bg(r),async()=>{(await t()).close(),e=null,await new Promise((e,t)=>{let n=indexedDB.deleteDatabase(t_);n.onsuccess=()=>e(),n.onerror=()=>t(n.error),n.onblocked=()=>t(Error(`Cannot clear the saved data: another tab or window of this site still has it open. Close the other tabs and try again.`))})})}var a_=null;async function o_(){try{if(typeof indexedDB<`u`)return await new Promise((e,t)=>{let n=indexedDB.open(`__spindle_probe__`,1);n.onsuccess=()=>{n.result.close(),indexedDB.deleteDatabase(`__spindle_probe__`),e()},n.onerror=()=>t(n.error)}),i_()}catch{}try{if(typeof localStorage<`u`){let e=`__spindle_probe__`;localStorage.setItem(e,`1`);let t=localStorage.getItem(e);if(localStorage.removeItem(e),t===`1`)return e_()}}catch{}return Wg()}var s_=null;function c_(){if(a_)return Promise.resolve(a_);if(!s_){let e=o_().then(t=>(s_===e&&(a_=t),t));s_=e}return s_}function l_(){a_=null,s_=null}function u_(){return a_?.type??`memory`}function d_(e,t){let n=e;for(let e of t){if(n==null||e in Object.prototype&&!K(Object(n),e))return;n=n[e]}return n}var f_=e=>e===`length`||/^(0|[1-9]\\d*)$/.test(e),p_=wh;function m_(e){let t=Array.isArray(e)?Array(e.length):Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Object.defineProperty(t,n,{value:e[n],enumerable:!0,writable:!0,configurable:!0});return t}function h_(e,t,n,r={}){let i=y_(e,t,r.createMissing??!1);i[t[t.length-1]]=n}function g_(e,t){let n=t[t.length-1];__(t);let r=e;for(let e of t.slice(0,-1)){if(typeof r!=`object`||!r||!K(r,e))return;r=r[e]}if(typeof r!=`object`||!r||!K(r,n))return;let i=y_(e,t,!1);if(Array.isArray(i)&&jt(i)&&t.length>1){let r=Ln(i).slice();delete r[Number(n)];let a=y_(e,t.slice(0,-1),!1);a[t[t.length-2]]=r;return}delete i[n]}function __(e){if(e.includes(`__proto__`))throw TypeError(`spindle: Cannot use \"__proto__\" in a variable path (\"${e.join(`.`)}\")`)}function v_(e,t,n,r,i){if(i&&Ih(e)!==void 0)return;let a=p_(e)??(Array.isArray(e)&&!f_(t)?`an array`:``);if(a)throw TypeError(`spindle: Cannot set property \"${t}\" on ${a} (at \"${n.slice(0,r).join(`.`)}\")`)}function y_(e,t,n){__(t);let r=jt(e),i=e;for(let e=0;e<t.length-1;e++){let a=t[e];v_(i,a,t,e,!r);let o=K(i,a)?i[a]:void 0;if(typeof o!=`object`||!o){if(!n)throw TypeError(`spindle: Cannot set property \"${t[e+1]}\" on ${o===null?`null`:typeof o} (at \"${t.slice(0,e+1).join(`.`)}\")`);o={},i[a]=o}else r&&!jt(o)&&!p_(o)&&(o=m_(o),i[a]=o);i=o}return v_(i,t[t.length-1],t,t.length-1,!r),i}function b_(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function x_(e,t,n,r){if(n(t),Ih(e)===void 0)return t;Object.setPrototypeOf(t,Object.getPrototypeOf(e));for(let n of Eh(e))as(t,n,r(n));return t}var S_=[`message`,`cause`,`errors`];function C_(e,t={}){let n=t.seen??new Map,r=(e,t)=>(n.set(e,t),t);function i(e,t){for(let n of Object.keys(e))as(t,n,c(e[n]));for(let n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&(t[n]=c(e[n]));return t}function a(e){if(e instanceof Date)return s(e,new Date(Date.prototype.getTime.call(e)));if(e instanceof RegExp){let t=new RegExp(Reflect.get(RegExp.prototype,`source`,e),Reflect.get(RegExp.prototype,`flags`,e));return t.lastIndex=e.lastIndex,s(e,t)}if(e instanceof ArrayBuffer)return r(e,e.slice(0));if(ArrayBuffer.isView(e)){let t=c(e.buffer);if(e instanceof DataView)return r(e,new DataView(t,e.byteOffset,e.byteLength));let n=e.constructor,i=e.length;return r(e,new n(t,e.byteOffset,i))}if(e instanceof URL)return r(e,new URL(e.href));if(e instanceof URLSearchParams)return r(e,new URLSearchParams(e));if(Sh(e))return r(e,Object(e.valueOf()));if(xh(e))return e;if(e instanceof Error){let t=r(e,Object.create(Object.getPrototypeOf(e)));for(let n of[...S_,`stack`])if(K(e,n)){let r=e[n];Object.defineProperty(t,n,{value:o(c(r),r),writable:!0,configurable:!0})}return i(e,t)}}function o(e,n){let r=t.settle;return r&&k_(e)&&k_(n)?r(e,n):e}let s=(e,t)=>x_(e,t,t=>r(e,t),t=>c(e[t]));function c(e){if(typeof e!=`object`||!e)return e;let l=e;if(n.has(l))return n.get(l);if(Array.isArray(e)){let t=s(l,Array(e.length));for(let n=0;n<e.length;n++)n in e&&(t[n]=c(e[n]));return t}if(e instanceof Map){let t=s(l,new Map);for(let[n,r]of Dh(e))Map.prototype.set.call(t,o(c(n),n),c(r));return t}if(e instanceof Set){let t=s(l,new Set);for(let n of Oh(e))Set.prototype.add.call(t,o(c(n),n));return t}let u=a(l);if(u!==void 0)return u;let d=Ih(l)!==void 0||b_(e);return!d&&t.keepUnregistered?e:i(l,r(l,d?Object.create(Object.getPrototypeOf(l)):{}))}return c(e)}function w_(e,t){return F_(e,t,T_())}function T_(){let e=new Map;return(t,n)=>{let r=e.get(t);if(r?.has(n))return!0;r?r.add(n):e.set(t,new Set([n]))}}function E_(e=new Map,t=new Map){let n=[],r=((r,i)=>{let a=e.get(r);if(a!==void 0)return a===i;if(t.has(i))return!1;e.set(r,i),t.set(i,r),n.push([r,i])});return r.strict=!0,r.added=n,r}function D_(e,t){return F_(e,t,E_())}function O_(e,t){if(!k_(e)||!k_(t))return t;let n=new Map,r=new Map,i=e=>k_(e)?C_(e,{keepUnregistered:!0,seen:n}):e;function a(e,t){let i=E_(r,n);if(F_(e,t,i))return!0;for(let[e,t]of i.added)r.delete(e),n.delete(t);return!1}function o(e,t){if(!k_(t))return t;let r=n.get(t);if(r!==void 0)return r;if(!k_(e))return i(t);if(a(e,t))return e;let s=e,c=t,l=e=>o(K(s,e)?s[e]:void 0,c[e]),u=e=>x_(t,e,e=>n.set(t,e),l);if(t instanceof Map&&e instanceof Map){let n=u(new Map);for(let[r,a]of Dh(t))Map.prototype.set.call(n,i(r),o(Ah(e,r),a));return n}if(Array.isArray(t)&&Array.isArray(e)){let n=u(Array(t.length));for(let r=0;r<t.length;r++)r in t&&(n[r]=o(e[r],t[r]));return n}if(L_(e,t,!1)){let e=Object.create(Object.getPrototypeOf(t));n.set(t,e);for(let t of Object.keys(c))as(e,t,l(t));return e}return i(t)}return o(e,t)}var k_=e=>typeof e==`object`&&!!e;function A_(e,t){let n=ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),r=ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t);if(n.length!==r.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!1;return!0}function j_(e,t,n){if(e instanceof Date){let r=Date.prototype.getTime;return Object.is(r.call(e),r.call(t))&&P_(e,t,n)}if(e instanceof RegExp){let r=RegExp.prototype.toString;return r.call(e)===r.call(t)&&e.lastIndex===t.lastIndex&&P_(e,t,n)}if(ArrayBuffer.isView(e)){let r=t;return e.byteOffset===r.byteOffset&&e.byteLength===r.byteLength&&F_(e.buffer,r.buffer,n)}if(e instanceof ArrayBuffer)return A_(e,t);if(e instanceof URL||e instanceof URLSearchParams)return String(e)===String(t);if(Sh(e))return Object.is(e.valueOf(),t.valueOf());if(xh(e))return String(e)===String(t);if(e instanceof Error)return S_.every(r=>K(e,r)===K(t,r)&&F_(e[r],t[r],n))&&M_(e,t,n)}function M_(e,t,n,r=Object.keys){let i=e,a=t,o=r(i);if(o.length!==r(a).length)return!1;for(let e of o)if(!K(a,e)||!F_(i[e],a[e],n))return!1;return!0}var N_=new Set([Array.prototype,Map.prototype,Set.prototype,Date.prototype,RegExp.prototype]);function P_(e,t,n){return N_.has(Object.getPrototypeOf(e))||M_(e,t,n,Eh)}function F_(e,t,n){if(Object.is(e,t)&&!(n.strict&&k_(e)))return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let r=n(e,t);if(r!==void 0)return r;if(e instanceof Map||e instanceof Set){let r=t;if(kh(e)!==kh(r))return!1;let i=e instanceof Map?Dh(e):Oh(e),a=r instanceof Map?Dh(r):Oh(r);for(let e=i.next(),t=a.next();!e.done;e=i.next(),t=a.next())if(!F_(e.value,t.value,n))return!1;return P_(e,t,n)}let i=j_(e,t,n);if(i!==void 0)return i;if(Array.isArray(e)){let r=t;if(e.length!==r.length)return!1;for(let t=0;t<e.length;t++)if(t in e!=t in r||!F_(e[t],r[t],n))return!1;return P_(e,t,n)}return M_(e,t,n)}function I_(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!Ch(e)}function L_(e,t,n){return n&&(Array.isArray(e)||Array.isArray(t))?Array.isArray(e)&&Array.isArray(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t):I_(e)&&I_(t)&&Object.getPrototypeOf(e)===Object.getPrototypeOf(t)}function R_(e,t,n){let r=[],i=(e,t,i)=>{Object.is(t,i)||(L_(t,i,n)?r.push({key:e,kind:`nested`,before:t,after:i}):w_(t,i)||r.push({key:e,kind:`changed`,after:i}))};if(Array.isArray(t)){let n=e,a=t;for(let e=0;e<Math.min(n.length,a.length);e++){let t=String(e);e in n&&e in a?i(t,n[e],a[e]):e in n?r.push({key:t,kind:`deleted`,hole:!0}):e in a&&r.push({key:t,kind:`added`,after:a[e]})}let o=n.length;for(let e=n.length;e<a.length;e++){if(!(e in a))continue;let t=e-o;r.push({key:String(e),kind:`added`,after:a[e],...t?{gap:t}:{}}),o=e+1}for(let e=a.length;e<n.length;e++)r.push({key:String(e),kind:`deleted`});return a.length>o&&r.push({key:`length`,kind:`holes`,after:a.length-o}),r}for(let n of Object.keys(t))K(e,n)?i(n,e[n],t[n]):r.push({key:n,kind:`added`,after:t[n]});for(let n of Object.keys(e))K(t,n)||r.push({key:n,kind:`deleted`});return r}function z_(e,t,n=!1){let r=[],i=new Set,a=new WeakMap,o=0;return(function e(t,s,c){if(i.has(s)){o++;return}if(a.get(s)?.has(t))return;i.add(s);let l=r.length,u=o;for(let i of R_(t,s,n)){let n=[...c,i.key];i.kind===`nested`?e(i.before,i.after,n):r.push(i.kind===`deleted`?{path:n,deleted:!0,...i.hole?{hole:!0}:{}}:{path:n,deleted:!1,value:i.after,...i.kind===`added`&&Array.isArray(s)&&Number(i.key)>=t.length?{appended:!0,...i.gap?{gap:i.gap}:{}}:{}})}if(r.length===l&&o===u){let e=a.get(s)??new Set;e.add(t),a.set(s,e)}i.delete(s)})(e,t,[]),r}var B_=e=>JSON.stringify(e);function V_(e,t){for(let n=1;n<=e.length;n++)if(t.has(B_(e.slice(0,n))))return!0;return!1}var H_=(e,t)=>`\\0${e}${t}`,U_=e=>e.startsWith(`\\0`);function W_(e){let t=[];if(e instanceof Map){let n=0;for(let[r,i]of Dh(e))t.push([H_(`k`,n),r],[H_(`v`,n),i]),n++}else if(e instanceof Set){let n=0;for(let r of Oh(e))t.push([H_(`s`,n++),r])}else if(e instanceof Error)for(let n of[`cause`,`errors`])K(e,n)&&t.push([H_(n===`cause`?`c`:`e`,0),e[n]]);else if(ArrayBuffer.isView(e))t.push([H_(`b`,0),e.buffer]);else return;return t}function G_(e,t){let n=e,r=0;for(let e=0;e<t.length;e++)if(U_(t[e])){if(n=d_(n,t.slice(r,e)),!k_(n))return;n=W_(n)?.find(([n])=>n===t[e])?.[1],r=e+1}return r===t.length?n:d_(n,t.slice(r))}function K_(e,t,n){let r=G_(e,t.slice(0,-1)),i=/^\\0v(\\d+)$/.exec(t[t.length-1]);if(!(r instanceof Map)||!i)return!1;let a=[...Dh(r)][Number(i[1])];return a?(jh(r,a[0],n),!0):!1}function q_(e,t=new Set,n=!1){let r=new Map,i=[];function a(e,t){let a=r.get(e);if(a){a.push(t);return}r.set(e,[t]),I_(e)||Array.isArray(e)?o(e,t):n&&W_(e)&&i.push([e,t])}function o(e,n){for(let r of Object.keys(e)){let i=e[r];if(!k_(i))continue;let o=[...n,r];t.has(B_(o))||a(i,o)}}o(e,[]);for(let[e,t]of i)for(let[n,r]of W_(e))k_(r)&&a(r,[...t,n]);return r}function J_(e,t,n){return new Map([...q_(e,t,n)].map(([e,t])=>[e,t[0]]))}function Y_(e){return[...q_(e,void 0,!0).values()].filter(e=>e.length>1)}function X_(e,t,n,r,i){let a=[],o=W_(e),s=W_(t);if(o&&s){if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;if(e instanceof Map||e instanceof Set){let n=kh(t);if(kh(e)!==n)return!1}let n=new Map(s);for(let[e,t]of o)n.has(e)&&a.push([e,t,n.get(e)])}else if((I_(e)||Array.isArray(e))&&L_(e,t,!0))for(let n of Object.keys(t))K(e,n)&&a.push([n,e[n],t[n]]);return a.some(([e,t,a])=>{if(!k_(t)||!k_(a))return!1;let o=[...n,e],s=i.get(a);return B_(r.get(t))!==B_(s)||B_(s)===B_(o)&&X_(t,a,o,r,i)})}function Z_(e,t){let n=J_(e,void 0,!0),r=J_(t,void 0,!0),i=[];return(function e(t,a,o){for(let s of Object.keys(a)){if(!K(t,s))continue;let c=t[s],l=a[s];if(!k_(c)||!k_(l))continue;let u=[...o,s],d=n.get(c),f=r.get(l),p=B_(u);B_(d)===B_(f)?B_(f)===p&&W_(c)&&X_(c,l,u,n,r)&&i.push({path:u,deleted:!1,value:l,alias:!0}):i.push({path:u,deleted:!1,value:l,alias:!0}),(I_(c)||Array.isArray(c))&&L_(c,l,!0)&&B_(f)===p&&B_(d)===p&&e(c,l,u)}})(e,t,[]),i}function Q_(e,t,n=!1){let r=z_(e,t,n),i=new Set(r.map(e=>B_(e.path))),a=[];for(let n of Z_(e,t))V_(n.path,i)||(i.add(B_(n.path)),a.push(n));return[...a,...r]}function $_(e,t){return J_(e,new Set(t.map(e=>B_(e.path))),!0)}function ev(e,t){return new class extends Map{has(n){if(super.has(n))return!0;let r=e.get(n);if(!r)return!1;let i=G_(t,r);return k_(i)&&(Array.isArray(i)?Array.isArray(n):Object.getPrototypeOf(i)===Object.getPrototypeOf(n))?(super.set(n,i),!0):!1}}}function tv(e,t){let n=d_(e,t.path.slice(0,-1));if(typeof n!=`object`||!n)return t.deleted;let r=t.path[t.path.length-1];return K(n,r)?!t.deleted&&w_(n[r],t.value):t.deleted}function nv(e,t,n){t.some(U_)?K_(e,t,n):h_(e,t,n)}function rv(e,t){let n=e;t.deleted?g_(n,t.path):h_(n,t.path,t.value)}var iv=new Set([`storyinit`,`beforerestart`,`actionsChanged`,`variableChanged`,`beforesave`,`aftersave`,`beforeload`,`afterload`,`beforenavigate`,`afternavigate`,`passagerender`,`dialogrender`]),av=new Map;function ov(e,t){if(!iv.has(e))throw Error(`spindle: Unknown event \"${e}\".`);let n=av.get(e);return n||(n=new Set,av.set(e,n)),n.add(t),()=>{n.delete(t)}}function sv(e,t){let n=av.get(e);if(n)for(let e of[...n])t(e)}function cv(e,...t){sv(e,e=>e(...t))}function lv(e,...t){sv(e,n=>{try{n(...t)}catch(t){console.error(`spindle: Error in ${e} handler:`,t)}})}var uv=null,dv=null;function fv(e){uv=e}function pv(e){dv=e}function mv(e){return Bc(()=>hv(e))}function hv(e){if(dv)try{let t=Function(`passage`,`variables`,dv)(e.passage,e.variables);if(typeof t==`string`&&t.trim())return t.trim()}catch{}if(uv)try{let t=uv(e);if(typeof t==`string`&&t.trim())return t.trim()}catch{}let t=new Date().toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});return`${e.passage} - ${t}`}var gv=Promise.resolve();function _v(e){let t=gv.then(e);return gv=t.catch(()=>{}),t}function vv(e){return(...t)=>_v(()=>e(...t))}var yv=e=>vv(async t=>e(await(await c_()).getSave(t))),bv=e=>vv(async(t,n)=>e(await Qv(t,n))),xv=vv(Sv);async function Sv(e,t=yt()){let n=await c_();return await Jv(`spindle-playthrough-count:${e}`,async()=>{let r=await Tv(e),i={id:t,ifid:e,createdAt:new Date().toISOString(),label:`Playthrough ${r}`};await n.putPlaythrough(i),await n.setMeta(wv(e),r)}),await n.setMeta(Ev(e),t),wy(e,t),t}var Cv=/^Playthrough (\\d+)$/;function wv(e){return`${Vg.playthroughCount}${e}`}async function Tv(e){let t=await c_(),n=await t.getMeta(wv(e))??0;for(let r of await t.getPlaythroughsByIfid(e)){let e=Cv.exec(r.label);e&&(n=Math.max(n,Number(e[1])))}return n+1}function Ev(e){return`${Vg.currentPlaythrough}${e}`}var Dv=vv(Ov);async function Ov(e,t){let n=await c_();await kv(e,t,new Date().toISOString());let r=Ev(e);await n.getMeta(r)!==t&&await n.setMeta(r,t),wy(e,t)}async function kv(e,t,n){let r=await c_();(await r.getPlaythroughsByIfid(e)).some(e=>e.id===t)||await r.putPlaythrough({id:t,ifid:e,createdAt:n,label:`Imported`})}function Av(e){return _v(async()=>{let t=await c_(),n=Ty(e),r=n!==void 0&&(await t.getPlaythroughsByIfid(e)).some(e=>e.id===n)?n:await t.getMeta(Ev(e))??await Sv(e);return wy(e,r),{id:r,knownSaves:await my(e)}})}function jv(e,t,n,r){try{let i=n();return Bc(()=>cv(`beforesave`,e,t)),r(i()).then(t=>(Bc(()=>cv(`aftersave`,e)),t))}catch(e){return Promise.reject(e)}}function Mv(e,t){let n=Cg(t);return{meta:{...e,estimatedBytes:zg(n)},payload:n}}var Nv=vv(Pv);async function Pv(e,t,n,r={}){let i=await t;if(!i)throw Error(`No playthrough`);let a=new Date().toISOString(),o=Mv({id:yt(),ifid:e,playthroughId:i,createdAt:a,updatedAt:a,title:mv(n),passage:n.passage,custom:r},n);return await(await c_()).putSave(o),o}var Fv=vv(Iv);async function Iv(e,t,n,r){let i=await r,a=await c_(),o=await a.getSave(e);if(!o)return;let s=Mv({...o.meta,...i?{playthroughId:i}:{},updatedAt:new Date().toISOString(),title:o.meta.userTitle===!0?o.meta.title:mv(t),passage:t.passage,...n==null?{}:{custom:{...o.meta.custom,...n}}},t);return await a.putSave(s),s}var Lv=e=>e&&Mg(e.payload),Rv=e=>Mg(e);yv(Lv);function zv(e){return _v(async()=>{let t=await c_(),n=await t.getSave(e);await t.deleteSave(e),n&&await ty(n.meta.ifid,t=>t===e)})}function Bv(e,t){return _v(async()=>{let n=await c_(),r=await n.getSave(e);if(!r)return;let i={...r,meta:{...r.meta,title:t,userTitle:!0,updatedAt:new Date().toISOString()}};await n.putSave(i)})}var Vv=vv(async function(e){let t=await c_(),[n,r]=await Promise.all([t.getSavesByIfid(e),t.getPlaythroughsByIfid(e)]),i=new Map;for(let e of r)i.set(e.id,e);let a=new Map;for(let e of n){let t=e.meta.playthroughId,n=a.get(t);n?n.push(e):a.set(t,[e])}for(let e of a.values())e.sort((e,t)=>new Date(t.meta.updatedAt).getTime()-new Date(e.meta.updatedAt).getTime());let o=[],s=[...i.values()].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());for(let e of s){let t=a.get(e.id)??[];o.push({playthrough:e,saves:t})}for(let[t,n]of a)i.has(t)||o.push({playthrough:{id:t,ifid:e,createdAt:n[0]?.meta.createdAt??new Date().toISOString(),label:`Unknown Playthrough`},saves:n});return o}),Hv=Vg.autosave,Uv=Vg.slot,Wv=Vg.slotIndex;function Gv(e){return e!=null&&e!==``}function Kv(e,t){return Gv(t)?`${Uv}${t}.${e}`:`${Hv}${e}`}var qv=e=>`${Wv}${e}`;async function Jv(e,t){let n;try{n=navigator.locks}catch{}if(!n)return t();let r=!1;try{return await n.request(e,()=>(r=!0,t()))}catch(e){if(r)throw e;return t()}}async function Yv(e,t){let n=await c_();await Jv(`spindle-slot-index:${e}`,async()=>{let r=await n.getMeta(qv(e))??[],i=t(r);i!==r&&await n.setMeta(qv(e),i)})}async function Xv(e){return[void 0,...(await(await c_()).getMeta(qv(e))??[]).filter(Gv)]}async function Zv(e,t){return(await c_()).getMeta(Kv(e,t))}async function Qv(e,t){let n=await Zv(e,t);return n?(await c_()).getSave(n):void 0}async function $v(e,t,n){await(await c_()).setMeta(Kv(e,t),n),Gv(t)&&await Yv(e,e=>e.includes(t)?e:[...e,t]),oy(e)}async function ey(e,t){await(await c_()).deleteMeta(Kv(e,t)),Gv(t)&&await Yv(e,e=>e.filter(e=>e!==t)),oy(e)}async function ty(e,t){for(let n of await Xv(e)){let r=await Zv(e,n);r&&t(r)&&await ey(e,n)}}var ny=`spindle.slots`,ry=`*`,iy;function ay(){if(iy===void 0)try{iy=new BroadcastChannel(ny),iy.unref?.()}catch{iy=null}return iy}function oy(e){try{ay()?.postMessage(e)}catch{}}function sy(e,t){let n=ay(),r=n=>{(n.data===e||n.data===ry)&&t()},i=()=>{document.visibilityState===`visible`&&t()},a=typeof document>`u`?void 0:document;return n?.addEventListener(`message`,r),a?.addEventListener(`visibilitychange`,i),()=>{n?.removeEventListener(`message`,r),a?.removeEventListener(`visibilitychange`,i)}}var cy=e=>({isAutosave:!Gv(e),...Gv(e)?{slot:e}:{}});function ly(e,t){return{slot:Gv(t)?t:``,title:e.meta.title,passage:e.meta.passage,createdAt:e.meta.createdAt,updatedAt:e.meta.updatedAt,custom:e.meta.custom??{}}}function uy(e,t,n,r,i){return _v(async()=>{let a=await t,o=await Zv(e,r);if(o){let e=await Iv(o,n,i,a);if(e)return e}let s=await Pv(e,a,n,{...cy(r),...i});return await $v(e,r,s.meta.id),s})}async function dy(e,t){return await Qv(e,t)!==void 0}bv(Lv);function fy(e,t,n){return _v(async()=>{let r=await Qv(e,t);if(!r)return;let i=Mg(r.payload);n?.(i);let{playthroughId:a}=r.meta;return a&&await Ov(e,a),{payload:i,playthroughId:a}})}var py=vv(my);async function my(e){let t=Object.create(null);for(let n of await Xv(e))await dy(e,n)&&(t[n??``]=!0);return t}var hy=vv(gy);async function gy(e,t){let n=await Qv(e,t);return n?ly(n,t):null}var _y=vv(async e=>{let t=[];for(let n of await Xv(e)){let r=await gy(e,n);r&&t.push(r)}return t}),vy=vv(async(e,t)=>{let n=await Zv(e,t);n&&(await(await c_()).deleteSave(n),await ey(e,t))}),yy=`spindle.session.`;function by(e,t){let n=JSON.stringify(Cg(t));try{sessionStorage.setItem(`${yy}${e}`,n)}catch(e){return{error:e}}}function xy(e){try{let t=sessionStorage.getItem(`${yy}${e}`);return t?Mg(JSON.parse(t)):void 0}catch(t){t instanceof _g&&(console.warn(`spindle: ${t.message}; the session was not restored.`),Sy(e));return}}function Sy(e){try{sessionStorage.removeItem(`${yy}${e}`)}catch{}}var Cy=`${yy}playthrough.`;function wy(e,t){try{sessionStorage.setItem(`${Cy}${e}`,t)}catch{}}function Ty(e){try{return sessionStorage.getItem(`${Cy}${e}`)||void 0}catch{return}}function Ey(e){if(e)return{formatVersion:1,ifid:e.meta.ifid,exportedAt:new Date().toISOString(),save:e}}var Dy=yv(Ey);async function Oy(e,t){if(Lg(e),e.ifid!==t)throw Error(`Save is from a different story (expected IFID ${t}, got ${e.ifid})`);let n=C_(e.save);return n.meta.id=yt(),n.meta.updatedAt=new Date().toISOString(),n.meta.ifid=t,await kv(t,n.meta.playthroughId,n.meta.createdAt),n}function ky(e,t){return _v(async()=>{let n=await Oy(e,t);return await(await c_()).putSave(n),n})}var Ay=bv(Ey);function jy(e,t,n){return _v(async()=>{let r=await Oy(e,t),{slot:i,...a}=r.meta.custom??{};r.meta.custom={...a,...cy(n)};let o=await c_(),s=await Zv(t,n);return await o.putSave(r),await $v(t,n,r.meta.id),s&&await o.deleteSave(s),ly(r,n)})}var My=vv(async function(e){let t=await c_(),n=await t.getSavesByIfid(e),r=await t.getPlaythroughsByIfid(e),i=0;for(let e of n)if(e.meta.estimatedBytes!=null)i+=e.meta.estimatedBytes;else{let n=zg(e.payload);e.meta.estimatedBytes=n,await t.putSave(e),i+=n}return{saveCount:n.length,playthroughCount:r.length,totalBytes:i,backend:t.type}});function Ny(e){return _v(async()=>{let t=await c_();await t.deleteSavesByIfid(e),await t.deletePlaythroughsByIfid(e),await t.deleteMetaByIfid(e),Sy(e),oy(e)})}var Py=vv(Fy);async function Fy(){await(await c_()).destroy(),l_();try{let e=[];for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n?.startsWith(`spindle.session.`)&&e.push(n)}for(let t of e)sessionStorage.removeItem(t)}catch{}oy(ry)}function Iy(e,t,n){return _v(async()=>{let r=await c_(),i=await r.deleteSavesByPlaythrough(t);await r.deletePlaythroughById(t);let a=new Set(i);if(await ty(e,e=>a.has(e)),n&&await n.current===t)return await Sv(e,n.id),!0;let o=Ev(e);return await r.getMeta(o)===t&&await r.deleteMeta(o),!1})}var Ly=null;function Ry(){Ly&&(he(null,Ly),Ly.remove(),Ly=null)}function zy(){Ry();let e=Q.getState();if(!e.storyData)return;let t=e.storyData.passages.get(`StoryInit`);if(t){let e=Zo(t.content);yc(e,`StoryInit`);let n=document.createElement(`div`);n.style.display=`none`,document.body.appendChild(n),Ly=n,he(b(()=>Dm(e),null),n),Tx()}let n=e.storyData.passages.get(`SaveTitle`);n&&pv(n.content)}function By(e){zy();let t=e?tS(Q.getState().storyData,e):void 0;t!==void 0&&(console.warn(`spindle: discarding the saved session: the story no longer has the passage \"${t}\"`),e=void 0),e&&Q.getState().loadFromPayload(e),cv(`storyinit`),e||Tx()}var Vy=[`variables`,`temporary`,`transient`],Hy=[];function Uy(){return Hy[Hy.length-1]?.work}function Wy(){let e=Q.getState(),t=Uy();return t?{...e,...t}:e}var Gy=e=>C_(e,{keepUnregistered:!0});function Ky(e,t){let n=t?ev(t,e):new Map,r=(r,i)=>{let a=t?.get(i);if(!a||!jt(r))return r;let o=Ln(r);return a.some(U_)||h_(e,a,o),n.set(i,o),o};return e=>C_(e,{keepUnregistered:!0,seen:n,settle:r})}var qy=e=>{let t=new Map;return n=>{let r=t.get(n);return r||(r=Ky(n,e?.(n)),t.set(n,r)),r}};function Jy(e){return en(Gy(e),!0)}function Yy(e,t=new Set){if(typeof e!=`object`||!e||t.has(e)||ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return!0;if(!Object.isFrozen(e))return!1;if(t.add(e),e instanceof Map){for(let[n,r]of Dh(e))if(!Yy(n,t)||!Yy(r,t))return!1}else if(e instanceof Set){for(let n of Oh(e))if(!Yy(n,t))return!1}return Reflect.ownKeys(e).every(n=>{let r=Object.getOwnPropertyDescriptor(e,n);return!r||!(`value`in r)||Yy(r.value,t)})}function Xy(e){return Yy(e)?e:Jy(e)}function Zy(e,t,n=Hy,r=Qy){let[i,a]=t.path;for(let o of n)for(let n of[o.work,o.base])try{rv(n,t.deleted?t:{...t,value:r(n)(t.value)})}catch{let t=e[i][a];K(e[i],a)?n[i][a]=Gy(jt(t)?Ln(t):t):delete n[i][a]}}var Qy=e=>Ky(e),$y=new Set(Vy),eb=new Fn({autoFreeze:!1}),tb=!1;function nb(e,t){let n=[],r=e;for(let e of t){if(!I_(r))break;let t=String(e);n.push(t),r=K(r,t)?r[t]:void 0}return n}function rb(e,t){let n=d_(e,t.slice(0,-1)),r=t[t.length-1];return I_(n)&&K(n,r)?{path:t,deleted:!1,value:n[r]}:{path:t,deleted:!0}}function ib(e,t,n){if(n.some(e=>e.path.length===1))return[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>!K(e,n)||e[n]!==t[n]).map(e=>rb(t,[e]));let r=new Set,i=[];for(let e of n){let n=nb(t,e.path.slice(1)),a=JSON.stringify(n);r.has(a)||(r.add(a),i.push(rb(t,n)))}return i}function ab(e){if(tb){tb=!1;return}if(Hy.length===0)return;lb(db());let t=Hy[Hy.length-1],n={...Q.getState(),variables:t.work.variables,temporary:t.work.temporary,transient:t.work.transient},[r,i]=eb.produceWithPatches(n,e),a=Vy.flatMap(e=>{let t=i.filter(t=>t.path[0]===e);return t.length?ib(n[e],r[e],t).map(t=>({...t,path:[e,...t.path]})):[]}),o=$_(cb(t.work),a),s=qy(()=>o),c=(e,t)=>e.deleted?e:{...e,value:s(t)(e.value)};for(let e of a)rv(t.work,c(e,t.work));return e=>{let i=e;for(let e of Object.keys(r)){let t=r[e];!$y.has(e)&&t!==n[e]&&(i[e]=t)}let o=e;for(let e of a){let[n,r]=e.path;try{rv(o,c(e,o))}catch{K(t.work[n],r)?o[n][r]=Gy(t.work[n][r]):delete o[n][r]}Zy(o,e,Hy,s)}}}function ob(e,t,n){let r=n.map(e=>B_(e.path).slice(0,-1));for(let[n,...i]of Y_(t)){let t=[n,...i].map(e=>B_(e).slice(0,-1));if(r.some(e=>t.some(t=>e.startsWith(t))))try{let t=G_(e,n);if(typeof t!=`object`||!t)continue;for(let n of i)nv(e,n,t)}catch{}}}function sb(e){let t=new Map;return{variables:C_(e.variables,{keepUnregistered:!0,seen:t}),temporary:C_(e.temporary,{keepUnregistered:!0,seen:t}),transient:C_(e.transient,{keepUnregistered:!0,seen:t})}}var cb=e=>({variables:e.variables,temporary:e.temporary,transient:e.transient});function lb(e){let t=e.map(({scope:e,keepRunning:t})=>({scope:e,keepRunning:t,changes:ub(e.base,e.work)})),n=t.filter(({changes:e})=>e.length>0);if(n.length===0)return;for(let{scope:e,keepRunning:t}of n)t&&(e.base=sb(e.work));tb=!0;try{Q.getState().updateVariables(r)}finally{tb=!1}function r(e){t.forEach(({scope:n,changes:r},i)=>{let a=$_(n.work,r),o=Ky(e,a),s=t.slice(0,i).map(e=>e.scope),c=qy(()=>a),l=new Set;for(let t of r){let[r,i]=t.path,a=B_([r,i]);if(!l.has(a))try{if(t.deleted){tv(e,t)||rv(e,t);continue}let n=t.alias?o(t.value):void 0;if(t.alias?Object.is(d_(e,t.path),n):tv(e,t))continue;rv(e,{...t,value:t.alias?n:o(t.value)})}catch{e[r][i]=o(n.work[r][i]),l.add(a)}}ob(e,n.work,r);for(let t of r)Zy(e,t,s,c)})}}var ub=(e,t)=>Q_(e,t),db=()=>Hy.map(e=>({scope:e,keepRunning:!0}));function fb(e){let t=Q.getState(),n=cb(t),r=Q_(e.base,n),i=Ky(e.work,$_(n,r));for(let t of r)try{rv(e.work,t.deleted?t:{...t,value:i(t.value)})}catch{let[r,a]=t.path;K(n[r],a)?e.work[r][a]=i(n[r][a]):delete e.work[r][a]}e.base=sb(t)}function pb(e){if(Hy.length===0)return e();lb(db());let t=Hy.splice(0);try{return e()}finally{Hy.push(...t);for(let e of t)fb(e)}}function mb(e){lb(db());let t=$_(cb(Uy()??Q.getState()),[]),n=hb(),r=Ky(n.work,t);try{e(n.work,r)}finally{Hy.pop()}lb([...db(),{scope:n,keepRunning:!1}])}function hb(){let e=Uy()??Q.getState(),t={work:sb(e),base:sb(e)};return Hy.push(t),t}function gb(e,t,n){let r=cs(C_(t,{keepUnregistered:!0})),i=hb();try{dl(e,i.work.variables,i.work.temporary,r,i.work.transient)}finally{Hy.pop()}lb([...db(),{scope:i,keepRunning:!1}]);let a=new Set(Q_(t,r,!0).map(e=>e.path[0]));for(let e of Y_(r))if(e.some(e=>a.has(e[0])))for(let n of e)r[n[0]]!==t[n[0]]&&a.add(n[0]);for(let e of Object.keys(r))a.has(e)&&n(e,r[e]);for(let e of Object.keys(t))K(r,e)||n(e,void 0)}var _b=[],vb=!1,yb=[],bb=null,xb=null;function Sb(e){let t=Wy();try{return!!ul(e,t.variables,t.temporary,{},t.transient)}catch{return!1}}function Cb(e,t,n){let r=typeof t==`function`,i=r?void 0:t,a=r?t:void 0,o={name:i?.name,condition:e,callback:a,options:i,lastResult:Sb(e),priority:i?.priority??0,macroKey:n};return _b.push(o),_b.sort((e,t)=>t.priority-e.priority),()=>{_b=_b.filter(e=>e!==o)}}function wb(e,t){return Cb(e,t)}function Tb(e,t){let n=Object.fromEntries(Object.entries(t).sort(([e],[t])=>e<t?-1:1)),r=JSON.stringify([e,n]);_b.some(e=>e.macroKey===r)||Cb(e,t,r)}function Eb(){return _b.filter(e=>e.macroKey!==void 0&&e.options).map(e=>({condition:e.condition,options:{...e.options}}))}function Db(e){_b=_b.filter(e=>e.macroKey===void 0);for(let{condition:t,options:n}of e)Tb(t,n)}function Ob(e){_b=_b.filter(t=>t.name!==e)}function kb(e){let{callback:t,options:n}=e;if(t){t();return}if(n){if(n.run)try{gb(n.run,{},()=>{})}catch(t){console.error(`spindle: Error in watch run action for \"${e.condition}\":`,t)}n.dialog&&(yb.push({passageName:n.dialog}),bb?.()),n.goto&&Q.getState().navigate(n.goto)}}var Ab=10;function jb(){for(let e=0;e<Ab;e++){let e=!1,t=[..._b];for(let n of t){if(!_b.includes(n))continue;let t=Sb(n.condition),r=!n.lastResult;n.lastResult=t,t&&r&&(e=!0,n.options?.once&&(_b=_b.filter(e=>e!==n)),kb(n))}if(!e)break}}function Mb(){if(!vb){vb=!0;try{jb()}finally{vb=!1}}}var Nb=0;function Pb(){if(Nb===0)return;let e=vb;vb=!0;try{jb()}finally{vb=e}}function Fb(){let e=Q.getState();Nb++;let t=Q.subscribe(t=>{let n=e;e=t,t.navigationId===n.navigationId&&(t.variables===n.variables&&t.temporary===n.temporary&&t.transient===n.transient&&t.renderCounts===n.renderCounts||Mb())}),n=!0;return()=>{n&&(n=!1,Nb--,t())}}function Ib(){for(let e of _b)e.lastResult=Sb(e.condition)}function Lb(){_b=[],Rb++,Zb(),zb.notify()}var Rb=0,zb=xs();function Bb(){return Rb}var Vb=zb.subscribe;function Hb(e){return bb=e,yb.length>0&&e(),()=>{bb===e&&(bb=null)}}function Ub(){return yb.shift()}function Wb(){return yb.length}function Gb(e){xb?xb.push(e):(yb.push(e),bb?.())}function Kb(){yb=[]}function qb(e){return xb=e,()=>{xb===e&&(xb=null)}}var Jb=[];function Yb(e){return Jb.push(e),()=>{let t=Jb.lastIndexOf(e);t>=0&&Jb.splice(t,1)}}function Xb(){let e=Jb[Jb.length-1];e?e():xb?.close()}function Zb(){Kb();for(let e of[...Jb].reverse())e();xb?.closeAll()}function Qb(){return Jb.length>0||(xb?.isOpen()??!1)}zn(),Bn();var $b=new Set([`StoryInit`,`StoryInterface`,`StoryVariables`,`StoryTransients`,`StoryLoading`,`SaveTitle`,`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]),ex=q(),tx=[],nx=q();function rx(e,t){let n=[];for(let r of Object.keys(e))K(t,r)||n.push({key:r,deleted:!0});let r=new Map,i=e=>n.push({key:e,deleted:!1,value:C_(t[e],{keepUnregistered:!0,seen:r})}),a=[];for(let n of Object.keys(t))!K(e,n)||!Object.is(e[n],t[n])?i(n):typeof t[n]==`object`&&t[n]!==null&&a.push(n);for(let e=r.size>0;e;){e=!1;for(let n of a){let o=new Map;if(C_(t[n],{keepUnregistered:!0,seen:o}),[...o.keys()].some(e=>r.has(e))){i(n),a.splice(a.indexOf(n),1),e=!0;break}}}return{forward:n}}function ix(e,t){let n=Object.create(Object.getPrototypeOf(e));for(let t of Object.keys(e))as(n,t,e[t]);for(let e of t)e.deleted?delete n[e.key]:as(n,e.key,e.value);return n}function ax(e){let t=tx.length-1;t<0?ex=e:tx[t]=rx(cx(t),e)}function ox(e,t){let n=ex;for(let r=0;r<e;r++)r>0&&(n=ix(n,tx[r-1].forward)),t(n,r)}function sx(e,t){return{passage:e.passage,variables:t,timestamp:e.timestamp,prng:e.prng}}function cx(e){let t=ex;for(let n=0;n<e;n++)t=ix(t,tx[n].forward);return t}var lx=[];function ux(e){let{storyData:t,currentPassage:n,variables:r,history:i,historyIndex:a,visitCounts:o,renderCounts:s}=e();if(t){if(lx.length>i.length&&(lx.length=i.length),lx.length<i.length)if(i.length-lx.length===1){let e=i.length-1;lx[e]=sx(i[e],r)}else ox(i.length,(e,t)=>{t>=lx.length&&(lx[t]=sx(i[t],e))});return by(t.ifid,{passage:n,variables:r,history:lx,historyIndex:a,visitCounts:o,renderCounts:s,prng:Vc(),watchers:Eb()})}}var dx=`The game could not be saved for a page reload; a reload goes back to the last passage it could save:`,fx=`The story could not go to another passage:`;function px(e,t){let n;try{let t=ux(e);t&&Es(dx,t.error)}catch(e){n={error:e},Es(dx,e)}try{t?.()}finally{if(n)throw n.error}}function mx(e){let t=e.history.length-e.maxHistory;if(t<=0)return!1;let n=Math.min(e.historyIndex,t),r=n+e.maxHistory;for(let e=0;e<n;e++)ex=ix(ex,tx[e].forward);return e.history=e.history.slice(n,r),tx=tx.slice(n,r-1),lx=lx.slice(n,r),e.historyIndex-=n,!0}var hx=!1,gx=[],_x=null;function vx(e,t){let n=_x;if(_x=null,!n||e().navigationId!==n.navigationId)return;e().variables!==n.variables&&ax(e().variables),nx=e().variables;let r=Vc(),i=e().history[e().historyIndex].prng;(r?.seed!==i?.seed||r?.pull!==i?.pull)&&t(e=>{e.history[e.historyIndex].prng=r})}var yx=e=>({...e});function bx(e){ex=e,tx=[],nx=e,lx=[]}function xx(e){let t=q(C_(e));return bx(C_(t)),t}function Sx(e){return q(C_(e,{keepUnregistered:!0}))}function Cx(e,t,n,r){e.currentPassage=t,e.navigationId++,e.variables=n,e.transient=Sx(r),e.temporary=q(),e.history=[{passage:t,timestamp:Date.now()}],e.historyIndex=0}function wx(e,t,n){let{historyIndex:r,history:i}=e(),a=r+n;if(a<0||a>=i.length)return;vx(e,t);let o=e().currentPassage,s=i[a].passage;cv(`beforenavigate`,s);let c=C_(cx(a));t(e=>{e.historyIndex+=n,e.currentPassage=e.history[e.historyIndex].passage,e.navigationId++,e.variables=c,e.temporary=q()}),Ib(),nx=e().variables,eS(e().history[e().historyIndex]),px(e,()=>cv(`afternavigate`,s,o))}function Tx(){let{history:e,historyIndex:t,variables:n}=Q.getState();if(e.length!==1||t!==0)return;bx(n);let r=Vc();Q.setState(e=>{e.history[0].prng=r})}var Ex=Promise.resolve(``),Dx=0,Ox=!1;function kx(){return Ox?``:Q.getState().playthroughId}function Ax(){let e=kx();return Ex.then(t=>e||t)}function jx(e){Q.getState().playthroughId!==e&&Q.setState(t=>{t.playthroughId=e})}function Mx(e){let t=++Dx;return Ox=!0,Ex=e.then(e=>(t===Dx&&(Ox=!1,jx(e)),e)),Ex}function Nx(e,t){++Dx,Ox=!1,Ex=t.then(()=>e,()=>e),jx(e)}function Px(e){let t=yt();Nx(t,xv(e,t).catch(e=>{console.error(`spindle: failed to start new playthrough`,e)}))}function Fx(e,t){kx()!==t&&Nx(t,Dv(e,t).catch(e=>{console.error(`spindle: failed to switch to the loaded playthrough`,e)}))}var Ix=0,Lx=0,Rx=null;function zx(){Vx(++Ix)}var Bx=xs();function Vx(e){Lx=e,Bx.notify()}var Hx=Bx.subscribe,Ux=[],Wx=!1;function Gx(e){Wx&&Ux.push(e)}function Kx(){Wx=!0}function qx(){for(let e of Ux)e();Ux=[],Wx=!1}function Jx(e){return typeof e==`string`&&e!==``?e:null}function Yx(e){let{history:t,historyIndex:n}=e;if(!Number.isInteger(n))return;let r=t[n];if(!(!r||r.passage!==e.passage)&&!(typeof r.variables!=`object`||r.variables===null))return r}function Xx(e,t,n){let r=e.history[e.historyIndex];if(!r)return;let i=Q_(t,n,!0);if(i.length===0)return;let a=C_(r.variables),o=ev($_(n,i),a),s=e=>C_(e,{seen:o});for(let e of i)Zx(a,n,e,s);r.variables=O_(r.variables,a)}function Zx(e,t,n,r){let{path:i}=n,a=e,o=0;for(;o<i.length-1;o++){let e=i[o],n=K(a,e)?a[e]:void 0,s=d_(t,i.slice(0,o+1));if(!L_(n,s,!0)){Qx(a,e,r(s));return}a=n}let s=i[o];n.deleted?Qx(a,s,void 0,n):Qx(a,s,r(n.value),n)}function Qx(e,t,n,r){let i=r?.deleted??!1;if(Array.isArray(e)){let a=Number(t);i?r&&`hole`in r?delete e[a]:e.length=Math.min(e.length,a):r&&`appended`in r?(e.length+=r.gap??0,e.push(n)):t===`length`&&r?e.length+=n:a<e.length&&(e[a]=n)}else i?delete e[t]:as(e,t,n)}function $x(e){e?Lc(e.seed,e.pull):zc()}function eS(e){e&&$x(e.prng)}function tS(e,t){if(e)return[t.passage,...t.history.map(e=>e.passage)].find(t=>!e.passages.has(t))}function nS(e,t){let n=tS(e,t);if(n!==void 0)throw Error(`The save refers to the passage \"${n}\", which this version of the story does not have`)}var rS=[`variables`,`temporary`,`transient`];function iS(e){for(let t of rS){let n=e[t];ss(n)||(e[t]=q(jt(n)?Ln(n):n))}}var aS=[`navigate`,`goBack`,`goForward`,`restart`,`save`,`load`,`getSavePayload`,`loadFromPayload`];function oS(e){return(t,n,r)=>{let i=((e,n)=>{if(n){t(e,!0);return}let r=typeof e==`function`?e:t=>{Object.assign(t,e)},i=ab(r);t(e=>{(i??r)(e),iS(e)})});r.setState=i;let a=e(i,n,r);for(let e of aS){let t=a[e];a[e]=(...e)=>pb(()=>t(...e))}return a}}var sS=e=>Hn(oS(e));function cS(e){return e.catch(()=>{}),e}function lS(e,t,n){return cS(e.catch(e=>{throw console.error(t,e),n?.(e),e}))}function uS(e,t,n){e(e=>{let r=t??``;if(n)e.knownSaves={...e.knownSaves,[r]:!0};else{let{[r]:t,...n}=e.knownSaves;e.knownSaves=n}})}function dS(e,t){return py(t).then(t=>{e(e=>{e.knownSaves=t})})}var fS;function pS(e,t,n,r){let i=n.then(()=>{t(e=>{e.knownSaves={}})});return e().restart(),lS(i,r)}var Q=vt()(sS((e,t)=>({storyData:null,currentPassage:``,navigationId:0,variables:q(),variableDefaults:{},transient:q(),transientDefaults:{},temporary:q(),history:[],historyIndex:-1,visitCounts:ms(),renderCounts:ms(),knownSaves:{},playthroughId:``,maxHistory:40,quickSaveKey:`F6`,quickLoadKey:`F9`,saveError:null,loadError:null,transitionConfig:null,nextTransition:null,nobr:!1,renderDeferred:!1,setMaxHistory:n=>{let r=!1;e(e=>{e.maxHistory=Math.max(1,Math.round(n)),r=mx(e)}),r&&px(t)},setQuickSaveKey:t=>{e(e=>{e.quickSaveKey=Jx(t)})},setQuickLoadKey:t=>{e(e=>{e.quickLoadKey=Jx(t)})},init:(n,r={},i={})=>{let a=n.passagesById.get(n.startNode);if(!a)throw Error(`spindle: Start passage (pid=${n.startNode}) not found.`);let o=xx(r);e(e=>{e.storyData=n,e.playthroughId=``,e.variableDefaults=r,e.transientDefaults=i,Cx(e,a.name,o,i),e.visitCounts=ms(null,a.name),e.renderCounts=ms(null,a.name)}),nx=t().variables,zx(),Mx(Av(n.ifid).then(({id:t,knownSaves:n})=>(e(e=>{e.knownSaves=n}),t)).catch(e=>(console.error(`spindle: failed to init save system`,e),``))),fS?.(),fS=sy(n.ifid,()=>{dS(e,n.ifid).catch(()=>{})})},navigate:n=>{if(hx){gx.push(n);return}let{storyData:r}=t();if(!r)return;if($b.has(n)){console.error(`spindle: Cannot navigate to special passage \"${n}\".`);return}if(!r.passages.has(n)){let e=Ds(n,t().currentPassage);console.error(`spindle: ${e.message}`),Es(fx,e);return}let i=t().currentPassage;cv(`beforenavigate`,n);let a=rx(nx,t().variables);e(e=>{e.temporary=q(),e.currentPassage=n,e.navigationId++,e.history=e.history.slice(0,e.historyIndex+1),tx.length=e.historyIndex,lx.length>e.historyIndex+1&&(lx.length=e.historyIndex+1),tx.push(a),e.history.push({passage:n,timestamp:Date.now(),prng:Vc()}),e.historyIndex=e.history.length-1,mx(e),e.visitCounts=ms(e.visitCounts,n),e.renderCounts=ms(e.renderCounts,n)}),_x={navigationId:t().navigationId,variables:t().variables},hx=!0;try{Pb()}finally{hx=!1}let o=gx;gx=[],vx(t,e),px(t,()=>{cv(`afternavigate`,n,i);for(let e of o)t().navigate(e)})},goBack:()=>wx(t,e,-1),goForward:()=>wx(t,e,1),setVariable:(t,n)=>{e(e=>{rs(t,`$${t}`),e.variables[t]=n})},setTemporary:(t,n)=>{e(e=>{rs(t,`_${t}`),e.temporary[t]=n})},deleteVariable:t=>{e(e=>{rs(t,`$${t}`),delete e.variables[t]})},deleteTemporary:t=>{e(e=>{rs(t,`_${t}`),delete e.temporary[t]})},setTransient:(t,n)=>{e(e=>{rs(t,`%${t}`),e.transient[t]=n})},deleteTransient:t=>{e(e=>{rs(t,`%${t}`),delete e.transient[t]})},updateVariables:t=>{e(e=>{t(e)})},trackRender:t=>{e(e=>{e.renderCounts=ms(e.renderCounts,t)})},restart:()=>{let{storyData:n,variableDefaults:r,transientDefaults:i}=t();if(!n)return;let a=n.passagesById.get(n.startNode);if(!a)return;e(e=>{e.renderDeferred=!1}),cv(`beforerestart`),Px(n.ifid),zx();let o=t().renderDeferred;qx(),zc(),Lb();let s=xx(r);e(e=>{Cx(e,a.name,s,i),e.visitCounts=ms(null,a.name),e.renderCounts=ms(null,a.name),o||(e.renderDeferred=!1)}),nx=t().variables,Kx(),zy(),Sy(n.ifid),cv(`storyinit`),Tx()},save:(n,r)=>{let{storyData:i}=t();if(!i)return Promise.resolve();let a=Ax();return lS(jv(n,r,t().beginSave,async t=>{e(e=>{e.saveError=null}),await uy(i.ifid,a,t,n,r),uS(e,n,!0)}),`spindle: failed to save`,t=>e(e=>{e.saveError=ys(t,`Failed to save`)}))},load:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();e(e=>{e.loadError=null});let i=Ax(),a=fy(r.ifid,n,e=>nS(r,e)),o=Mx(Promise.all([i,a.catch(()=>void 0)]).then(([e,t])=>t?.playthroughId||e)),s=++Ix;return lS(a.then(async e=>{await o,e&&(Lx>s||(Rx=s,t().loadFromPayload(e.payload,n)))}),`spindle: failed to load save`,t=>e(e=>{e.loadError=ys(t,`Failed to load`)}))},hasSave:e=>{let{storyData:n,knownSaves:r}=t();return n?K(r,e??``):!1},getSaveInfo:async e=>{let{storyData:n}=t();return n?hy(n.ifid,e):null},listSaves:async()=>{let{storyData:e}=t();return e?_y(e.ifid):[]},deleteSave:n=>{let{storyData:r}=t();return r?lS(vy(r.ifid,n).then(()=>uS(e,n,!1)),`spindle: failed to delete save`):Promise.resolve()},exportSave:async e=>{let{storyData:n}=t();return n?await Ay(n.ifid,e)??null:null},importSave:async(n,r)=>{let{storyData:i}=t();if(!i)throw Error(`spindle: Story is not initialized.`);let a=await jy(n,i.ifid,r);return uS(e,r,!0),a},clearGameData:()=>{let{storyData:n}=t();return n?pS(t,e,Ny(n.ifid),`spindle: failed to clear game data`):Promise.resolve()},clearAllData:()=>pS(t,e,Py(),`spindle: failed to clear all data`),deletePlaythrough:n=>{let{storyData:r}=t();if(!r)return Promise.resolve();let i=r.ifid,a=kx(),o=Ex,s=yt(),c=Iy(i,n,{current:a||o,id:s});return n!==``&&n===a?Nx(s,c):a===``&&Mx(c.then(e=>e?s:o,()=>o)),lS(c.then(()=>dS(e,r.ifid)),`spindle: failed to delete playthrough`)},getSavePayload:()=>{let{currentPassage:e,variables:n,history:r,historyIndex:i,visitCounts:a,renderCounts:o}=t(),s=[];return ox(r.length,(e,t)=>{let n=yx(e);s.push(sx(r[t],t===0?n:O_(s[t-1].variables,n)))}),{passage:e,variables:O_(s[i]?.variables,yx(n)),history:s,historyIndex:i,visitCounts:{...a},renderCounts:{...o},prng:Vc(),watchers:Eb()}},beginSave:()=>{let e=t().variables;return()=>{let n=t().getSavePayload();return Xx(n,e,t().variables),n}},loadFromPayload:(n,r,i)=>{let a=Rx;Rx=null;let o=a??++Ix;if(n.history.length===0){console.warn(`loadFromPayload: rejecting payload with empty history`);return}nS(t().storyData,n),Vx(o),cv(`beforeload`,r);let s=t().storyData?.ifid;i&&s&&Fx(s,i);let c=Yx(n),l=C_(n.history.map(e=>e.variables)).map(e=>q(e));ex=C_(l[0]),tx=l.slice(1).map((e,t)=>rx(l[t],e)),lx=n.history.map((e,t)=>sx(e,l[t])),e(e=>{e.currentPassage=n.passage,e.navigationId++,e.variables=q(C_(c?.variables??n.variables)),e.history=n.history.map(e=>({passage:e.passage,timestamp:e.timestamp,prng:e.prng})),e.historyIndex=Math.max(0,Math.min(n.historyIndex,e.history.length-1)),mx(e),e.visitCounts=ms(n.visitCounts),e.renderCounts=ms(n.renderCounts),e.temporary=q(),e.transient=Sx(t().transientDefaults)}),n.watchers&&Db(n.watchers),Ib(),nx=cx(t().historyIndex),$x(c?.prng===void 0?n.prng:c.prng),px(t,()=>Bc(()=>cv(`afterload`,r)))},getHistoryVariables:e=>C_(cx(e)),setTransition:t=>{e(e=>{e.transitionConfig=t})},setNextTransition:t=>{e(e=>{e.nextTransition=t})},consumeNextTransition:()=>{let n=t().nextTransition;return n!==null&&e(e=>{e.nextTransition=null}),n},deferRender:()=>{e(e=>{e.renderDeferred=!0})},clearDeferredRender:()=>{e(e=>{e.renderDeferred=!1})}}))),mS=`<header class=\"story-menubar\">{story-title}{back}{forward}{restart}{quicksave}{quickload}{saves}{settings}</header>\n{passage}`;function hS(){let{storyData:e}=Ec(`storyData`),t=e?.passages.get(`StoryInterface`),n=t===void 0?mS:t.content,r=t?.tags.includes(`nobr`)??!1,i=Ne(()=>{try{return J(S,{children:ym(Zo(n))})}catch(e){return J(`span`,{class:`error`,children:[`Error in StoryInterface: `,ys(e)]})}},[n]);return r?J(Tp.Provider,{value:!0,children:i}):i}var gS=[`a[href]`,`area[href]`,`button:not([disabled])`,`input:not([disabled]):not([type=\"hidden\"])`,`select:not([disabled])`,`textarea:not([disabled])`,`iframe`,`summary`,`[contenteditable]`,`[tabindex]`].join(`,`);function _S(e){for(let t=e.parentElement;t;t=t.parentElement)if(!(t.localName!==`details`||t.hasAttribute(`open`))&&!Array.from(t.children).find(e=>e.localName===`summary`)?.contains(e))return!0;return!1}function vS(e){let{visibility:t}=getComputedStyle(e);if(t===`hidden`||t===`collapse`)return!1;for(let t=e;t;t=t.parentElement)if(getComputedStyle(t).display===`none`)return!1;return!_S(e)}function yS(e){return!e.hidden&&!e.closest(`[hidden], [inert]`)&&!e.matches(`:disabled`)&&vS(e)}function bS(e){let t=e.getAttribute(`tabindex`);return t===null||!/^\\s*[+-]?\\d+\\s*$/.test(t)?null:parseInt(t,10)}function xS(e){let t=bS(e);if(t!==null&&t<0||e.hasAttribute(`contenteditable`)&&!e.matches(`a[href], button, input, select, textarea, iframe, summary`)&&(!e.isContentEditable||e.parentElement?.isContentEditable))return!1;if(e.localName===`summary`){let n=e.parentElement;if(n?.localName!==`details`||Array.from(n.children).find(e=>e.localName===`summary`)!==e)return t!==null}if(e instanceof HTMLInputElement&&e.type===`radio`&&e.name){let t=Array.from((e.form??e.getRootNode()).querySelectorAll(`input[type=\"radio\"]`)).filter(t=>t.name===e.name&&t.form===e.form&&(bS(t)??0)>=0&&yS(t));return e===(t.find(e=>e.checked)??t[0])}return!0}function SS(e){let t=Array.from(e.querySelectorAll(gS)).filter(e=>yS(e)&&xS(e)),n=e=>Math.max(bS(e)??0,0);return[...t.filter(e=>n(e)>0).sort((e,t)=>n(e)-n(t)),...t.filter(e=>n(e)===0)]}var CS=[];function wS(e,t,n,r){Me(()=>{let n=e.current;if(!n)return;let r=document.activeElement instanceof HTMLElement?document.activeElement:null,i={panel:n};CS.push(i);let a=n.querySelector(t)??n;return(n.querySelector(`[autofocus]`)??SS(a)[0]??n).focus(),()=>{let e=CS.indexOf(i);e!==-1&&CS.splice(e,1);let t=document.activeElement;(!t||t===document.body||n.contains(t))&&r?.isConnected&&r.focus()}},[]),Me(()=>{let t=e.current;if(!t)return;let i=e=>{if(CS[CS.length-1]?.panel!==t)return;if(e.key===`Escape`){if(!n)return;e.preventDefault(),e.stopPropagation(),r();return}if(e.key!==`Tab`)return;let i=SS(t),a=i[0],o=i[i.length-1],s=document.activeElement,c=s!==t&&t.contains(s);!a||!o?(e.preventDefault(),t.focus()):e.shiftKey&&(s===a||!c)?(e.preventDefault(),o.focus()):!e.shiftKey&&(s===o||!c)&&(e.preventDefault(),a.focus())};return document.addEventListener(`keydown`,i),()=>document.removeEventListener(`keydown`,i)},[n,r])}var TS=ge(null);function ES({passageName:e,fallbackMarkup:t,panelClass:n,onClose:r,dismissible:i=!0,showCloseButton:a=i}){let o=M(r);o.current=r;let s=Pe(()=>o.current(),[]),{storyData:c}=Ec(`storyData`),l=e?c?.passages.get(e):void 0,u=l?.content??t,d=l?.tags.includes(`nobr`)??!1,f=Ne(()=>{if(!u)return J(`div`,{class:`error`,children:`Dialog: no content available`});try{let e=Dm(Zo(u),d?{nobr:!0}:void 0);return d?J(Tp.Provider,{value:!0,children:e}):e}catch(e){return J(`div`,{class:`error`,children:[`Error in dialog: `,ys(e)]})}},[u,d]),p=M(null),m=Ap();wS(p,`.dialog-body`,i,s),Me(()=>Yb(s),[s]),Me(()=>{p.current&&lv(`dialogrender`,e??``,p.current)},[]);let h=e=>{i&&e.target===e.currentTarget&&s()},g=n?`dialog-panel ${n}`:`dialog-panel`;return J(TS.Provider,{value:s,children:J(`div`,{class:`dialog-overlay`,onClick:h,children:J(`div`,{ref:p,class:g,role:`dialog`,\"aria-modal\":`true`,tabIndex:-1,children:[a&&J(`button`,{type:`button`,class:`dialog-close`,\"aria-label\":`Close`,onClick:s,children:`✕`}),J(`div`,{class:`dialog-body`,children:J(Op.Provider,{value:m,children:f})})]})})})}function DS(){let[e,t]=ke([]),n=M(e);n.current=e;let r=Pe(e=>{t(t=>[...t,e])},[]),i=Pe(()=>{t(e=>e.slice(0,-1))},[]),a=Pe(()=>{t([])},[]);return je(()=>qb({close:i,closeAll:a,push:r,isOpen:()=>n.current.length>0}),[i,a,r]),je(()=>Hb(()=>{let e=[];for(;Wb()>0;){let t=Ub();t&&e.push(t)}e.length>0&&t(t=>[...t,...e])}),[]),e.length===0?null:J(S,{children:e.map((e,t)=>J(ES,{passageName:e.passageName,panelClass:e.panelClass,onClose:i,showCloseButton:e.showCloseButton,dismissible:e.dismissible},`${e.passageName}-${t}`))})}function OS(){let[e,t]=ke(ks);return je(()=>(t(ks()),As(()=>t(ks()))),[]),e.length===0?null:J(`div`,{class:`spindle-error-banners`,children:e.map(e=>J(`div`,{class:`spindle-error-banner`,role:`alert`,children:[J(`span`,{class:`spindle-error-banner-context`,children:e.context}),` `,J(`span`,{class:`spindle-error-banner-message`,children:e.message}),e.count>1&&J(`span`,{class:`spindle-error-banner-count`,children:` (×${e.count})`}),J(`button`,{type:`button`,class:`spindle-error-banner-dismiss`,\"aria-label\":`Dismiss`,onClick:()=>Os(e.id),children:`✕`})]},e.id))})}async function kS(){try{await Q.getState().save()}catch(e){Es(`The game could not be saved:`,e)}}async function AS(){try{await Q.getState().load()}catch(e){Es(`The saved game could not be loaded:`,e)}}function jS(){let{storyData:e,currentPassage:t,nobr:n}=Ec(`storyData`,`currentPassage`,`nobr`);if(je(()=>{let e=e=>{let{quickSaveKey:t,quickLoadKey:n}=Q.getState();t!==null&&e.key===t?(e.preventDefault(),kS()):n!==null&&e.key===n&&(e.preventDefault(),AS())};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),!e||!t)return J(`div`,{class:`loading`,children:`Loading...`});let r=J(S,{children:[J(hS,{}),J(DS,{}),J(OS,{})]});return J(Tp.Provider,{value:n,children:r})}var MS=`http://www.w3.org/1999/xhtml`,NS=new Set([`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`embed`,`frame`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]);function PS(e){let t=``;for(let n of Array.from(e.childNodes))n.nodeType===Node.TEXT_NODE?t+=n.data:n.nodeType===Node.COMMENT_NODE?t+=`\\x3C!--${n.data}-->`:n.nodeType===Node.ELEMENT_NODE&&(t+=FS(n));return t}function FS(e){let t=e.localName,n=`<${t}`;for(let t of Array.from(e.attributes))n+=` ${t.name}=${IS(t.name,t.value)}`;if(n+=`>`,e.namespaceURI===MS&&NS.has(t))return n;let r=t===`template`?e.content:e;return`${n}${PS(r)}</${t}>`}function IS(e,t){let n=Wo(e),r=n?`on`:`a`;return[`\"${t}\"`,`'${t}'`].find(e=>{let t;try{t=Qo(`<i ${r}=${e}>`)}catch(e){if(e instanceof Jo)return!1;throw e}let n=t[0];return t.length===1&&n?.type===`html`&&n.attributes[r]===e.slice(1,-1)})??`\"${LS(t,n)}\"`}function LS(e,t){let n=e=>e.replace(/\"/g,`"`);if(t)return Go(e).map(e=>`text`in e?n(e.text):`expr`in e?`{${e.expr}}`:e.verbatim).join(``);let r;try{r=Qo(e,{text:!0})}catch(t){if(t instanceof Jo)return n(e);throw t}return r.map(t=>{let r=e.slice(t.start,t.end);return t.type===`text`?n(r):r}).join(``)}function RS(){let e=document.querySelector(`tw-storydata`);if(!e)throw Error(`spindle: No <tw-storydata> element found in the document.`);let t=e.getAttribute(`name`)||`Untitled`,n=parseInt(e.getAttribute(`startnode`)||`1`,10),r=e.getAttribute(`ifid`)||``,i=e.getAttribute(`format`)||``,a=e.getAttribute(`format-version`)||``,o=e.querySelector(`[type=\"text/twine-css\"]`)?.textContent||``,s=e.querySelector(`[type=\"text/twine-javascript\"]`)?.textContent||``,c=new Map,l=new Map;for(let t of e.querySelectorAll(`tw-passagedata`)){let e=parseInt(t.getAttribute(`pid`)||`0`,10),n=t.getAttribute(`name`)||``,r=(t.getAttribute(`tags`)||``).split(/\\s+/).filter(e=>e.length>0),i=PS(t),a={},o=new Set([`pid`,`name`,`tags`]);for(let e of t.attributes)o.has(e.name)||(a[e.name]=e.value);let s={pid:e,name:n,tags:r,metadata:a,content:i};c.set(n,s),l.set(e,s)}return{name:t,startNode:n,ifid:r,format:i,formatVersion:a,passages:c,passagesById:l,userCSS:o,userScript:s}}var zS=new Map,BS=q(),VS=!1,HS=null;function US(){return`spindle.${Q.getState().storyData?.ifid||`unknown`}.settings`}function WS(){try{localStorage.setItem(US(),JSON.stringify(BS))}catch{}}function GS(){if(!VS){if(!Q.getState().storyData?.ifid){HS||(HS=Q.subscribe(e=>{e.storyData?.ifid&&(HS?.(),HS=null,GS())}));return}VS=!0;try{let e=localStorage.getItem(US());if(e){let t=JSON.parse(e);typeof t==`object`&&t&&!Array.isArray(t)&&(BS=q(BS,t))}}catch{}}}function KS(e,t){zS.set(e,t),K(BS,e)||(BS[e]=t.config.default),GS()}function qS(e,t){let n=is(BS,e);return typeof n==typeof t?n:t}var JS={addToggle(e,t){KS(e,{type:`toggle`,config:t})},addList(e,t){KS(e,{type:`list`,config:t})},addRange(e,t){KS(e,{type:`range`,config:t})},get(e){return is(BS,e)},getToggle(e){return qS(e,!1)},getList(e){return qS(e,``)},getRange(e){return qS(e,0)},set(e,t){BS[e]=t,WS()},getAll(){return{...BS}},getDefinitions(){return zS},hasAny(){return zS.size>0}},YS=0,XS=4096,ZS=[];function QS(e){ZS.push({version:++YS,path:e}),ZS.length>XS&&ZS.shift()}function $S(e){QS([`variables`,...e])}var eC=ge(!1),tC=[`variables`,`temporary`,`transient`];function nC(e){let t=Wy();try{e()}finally{let e=Wy();for(let n of tC)if(t[n]!==e[n])for(let{path:r}of z_(t[n],e[n],!0))QS([n,...r])}}function rC(){return YS}function iC(e,t){let n=new Set,r=new Map;for(let i=ZS.length-1;i>=0&&ZS[i].version>e;i--){let{path:e}=ZS[i],a=t;e.forEach((t,i)=>{if(i===e.length-1&&typeof a==`object`&&a){let e=r.get(a)??new Set;e.add(t),r.set(a,e)}a=typeof a==`object`&&a?d_(a,[t]):void 0,typeof a==`object`&&a&&n.add(a)})}return(e,t,i)=>typeof t==`object`&&t?n.has(t):r.get(e)?.has(String(i))===!0}var aC=[`target`,`variable`,`options`,`value`,`disabled`],oC=new Map,sC=new Map;function cC(e,t,n){if(n)return n;let r=`${e}:${t}`,i=sC.get(r)??0,a;do i++,a=i===1?r:`${r}:${i}`;while(oC.has(a));return sC.set(r,i),a}function lC(e){let t=e.id,n={action:e},r=oC.get(t);return r?(console.warn(`spindle: two mounted controls share the action ID \"${t}\"; Story.getActions() lists only the newer one.`),r.push(n)):oC.set(t,[n]),mC(),{update(e){let r=oC.get(t);r?.includes(n)&&(n.action=e,r[r.length-1]===n&&mC())},unregister(){let e=oC.get(t),r=e?e.indexOf(n):-1;!e||r===-1||(e.splice(r,1),e.length===0&&oC.delete(t),r===e.length&&mC())}}}function uC(){return Array.from(oC.values(),fC)}function dC(e){let t=oC.get(e);return t&&fC(t)}function fC(e){return e[e.length-1].action}function pC(){sC.clear()}function mC(){cv(`actionsChanged`)}function hC(e){let t=M(``),n=M(e.perform);n.current=e.perform,t.current||(t.current=cC(e.type,e.key,e.authorId));let r=t.current,i=()=>{let t={id:r,type:e.type,label:e.label,perform:(...e)=>n.current(...e)};for(let n of aC)e[n]!==void 0&&Object.assign(t,{[n]:e[n]});return t},a=M(null);Me(()=>{let e=lC(i());return a.current=e,()=>e.unregister()},[r]);let o=M(!1);return Me(()=>{if(!o.current){o.current=!0;return}a.current?.update(i())},[e.type,e.label,e.target,e.variable,e.disabled,e.value,JSON.stringify(e.options)]),r}function gC(e){return e.map(e=>e.type===`text`?e.value:``).join(``)}function _C(e){let{variable:t=``,placeholder:n=``}=uc(e,[{name:`variable`,type:`variable`},{name:`placeholder`,type:`string`}]);return{varName:t.replace(/[\"']/g,``),placeholder:n}}var vC=[{name:`value`,type:`string`,holds:`text`,required:!0}],yC=new Map([[`option`,vC]]);function bC(e){return yC.get(e.toLowerCase())}function xC(e){let t=[];for(let n of e)if(n.type===`macro`&&n.name===`option`){let{value:e}=uc(n.rawArgs,vC);t.push(e??``)}return t}function SC(e,t){let n=`macro-${e}`;return t?`${n} ${t}`:n}var CC={useState:ke,useRef:M,useEffect:je,useLayoutEffect:Me,useCallback:Pe,useMemo:Ne,useContext:Fe};function $(e,t=`builtin`){let n=e.parameters??[];Cl(e.name,n);function r(t){let r=t.className,i=t.id,a;e.interpolate&&(a=Kl(),r=a(r),i=a(i));let{update:o,getValues:s}=Fe(wp),c=Fe(eC),l=Zl(),u=(e,t)=>Dm(e,{...l,...t}),d;try{d=uc(t.rawArgs,n)}catch(t){if(t instanceof Ys)return b(yp,{macro:e.name,error:t});throw t}let f={args:d,collectText:gC,sourceLocation:vp,parseVarArgs:_C,extractOptions:xC,h:b,renderNodes:u,renderInlineNodes:ym,hooks:CC,useAction:hC,className:r,id:i,resolve:a,cls:SC(e.name,r),mutate:c?e=>nC(()=>gb(e,s(),o)):e=>gb(e,s(),o),update:o,getValues:s,wrap:e=>Al(r,i,e)};if(e.merged){f.merged=Dc();let e=f.merged;f.evaluate=t=>ul(t,e[0],e[1],e[2],e[3])}if(e.storeVar){let n=pc(t.rawArgs).replace(/[\"']/g,``);if(n.startsWith(`%`))return b(`span`,{class:`error`},`{${e.name}}: transient variables (%${n.slice(1)}) cannot be bound to input macros`);let r=n.replace(/[\"']/g,``).replace(/^\\$/,``),i=r.split(`.`);if(i.includes(`__proto__`))return b(`span`,{class:`error`},`{${e.name}}: \"$${r}\" cannot be bound: ${ts} is reserved`);f.varName=r,f.value=Q(e=>d_(e.variables,i)),f.getValue=()=>d_(Wy().variables,i),f.setValue=e=>{$S(i),mb((t,n)=>{h_(t.variables,i,n(e),{createMissing:!0})})}}try{return e.render(t,f)}catch(t){if(t instanceof Ys)return b(yp,{macro:e.name,error:t});throw t}}pl(e.name,r);let i=e.text;gl(e.name,i&&((e,t)=>i(e,{...t,args:uc(e.rawArgs,n)})));let a=e.block===!0||e.block!==!1&&(e.subMacros?.length??0)>0;if(El(e.name,{name:e.name,block:a,subMacros:e.subMacros??[],storeVar:e.storeVar,interpolate:e.interpolate,merged:e.merged,description:e.description,parameters:e.parameters&&[...e.parameters],source:t}),e.subMacros)for(let t of e.subMacros)yl(t);a&&Sr(e.name)}var wC=null;function TC(e){wC=e}function EC(){return wC}var DC=null,OC=null;function kC(){return OC}var AC=!1;function jC(){if(AC)return;AC=!0;let e=Q.getState().variables,t=Q.getState().transient;Q.subscribe(n=>{let r={},i=(e,t,n)=>{for(let i of ds(e,t))r[n+i]={from:is(e,i),to:is(t,i)}};i(e,n.variables,``),i(t,n.transient,`%`),e=n.variables,t=n.transient,Object.keys(r).length>0&&cv(`variableChanged`,r)})}var MC=null,NC=null,PC=new Set;function FC(e,t=[]){MC=new Set(e),NC=new Set(t),PC.clear()}function IC(e){let t=e.startsWith(`%`),n=t||e.startsWith(`$`)?e.slice(1):e;return rs(n.split(`.`)[0],e),{isTransient:t,key:n}}function LC(e,t){let n=e?NC:MC;if(!n)return;let r=t.split(`.`)[0];if(n.has(r))return;let i=(e?`%`:`$`)+r;PC.has(i)||(PC.add(i),console.warn(`spindle: Story.set() wrote ${i}, which is not declared in ${e?`StoryTransients`:`StoryVariables`}. Passages cannot reference it; check the name or declare it.`))}function RC(e,t,n){let{isTransient:r,key:i}=IC(t),a=r?e.transient:e.variables;i.includes(`.`)?h_(a,i.split(`.`),n):a[i]=n}function zC(e){return((...t)=>Q.getState()[e](...t))}function BC(){return{get(e){let{isTransient:t,key:n}=IC(e),r=Uy(),i=r??Q.getState(),a=t?i.transient:i.variables,o=n.includes(`.`)?d_(a,n.split(`.`)):is(a,n);return r?Jy(o):Xy(o)},set(e,t){let n=typeof e==`string`?[[e,t]]:Object.entries(e);for(let[e]of n){let{isTransient:t,key:n}=IC(e);LC(t,n)}if(n.some(([e])=>e.includes(`.`))){mb((e,t)=>{for(let[r,i]of n)RC(e,r,t(i))});return}Q.getState().updateVariables(e=>{for(let[t,r]of n)RC(e,t,r)})},goto:zC(`navigate`),back:zC(`goBack`),forward:zC(`goForward`),restart:zC(`restart`),save:zC(`save`),load:zC(`load`),hasSave:zC(`hasSave`),getSaveInfo:zC(`getSaveInfo`),listSaves:zC(`listSaves`),deleteSave:zC(`deleteSave`),exportSave:zC(`exportSave`),importSave:zC(`importSave`),...al(()=>Q.getState().visitCounts,()=>Q.getState().renderCounts),get title(){return Q.getState().storyData?.name||``},get passage(){return Q.getState().currentPassage},settings:JS,registerClass(e,t){Fh(e,t)},defineMacro(e){$(e,`user`)},getMacroRegistry(){return Ol()},saves:{setTitleGenerator(e){fv(e)}},storage:{async getInfo(){let e=Q.getState().storyData?.ifid;return e?My(e):{saveCount:0,playthroughCount:0,totalBytes:0,backend:u_()}},async getQuota(){if(typeof navigator<`u`&&navigator.storage?.estimate)try{let e=await navigator.storage.estimate();return{usage:e.usage??0,quota:e.quota??0,estimateSupported:!0}}catch{}return{usage:0,quota:0,estimateSupported:!1}},clearGameData:zC(`clearGameData`),clearAllData:zC(`clearAllData`),deletePlaythrough:zC(`deletePlaythrough`),get backend(){return u_()}},getActions(){return uC()},performAction(e,t){let n=dC(e);if(!n)throw Error(`spindle: Action \"${e}\" not found.`);if(n.disabled)throw Error(`spindle: Action \"${e}\" is disabled.`);n.perform(t)},on(e,t){e===`variableChanged`&&jC();let n=ov(e,t);return Gx(n),n},async waitForActions(){await new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))});let e=()=>EC()===Q.getState().navigationId;return EC()!==null&&!e()&&!Q.getState().renderDeferred&&await new Promise(t=>{let n=ov(`passagerender`,()=>{e()&&(n(),t())})}),uC()},watch(e,t){return wb(e,t)},unwatch(e){Ob(e)},openDialog(e,t){Gb({passageName:e,panelClass:t?.panelClass,showCloseButton:t?.showCloseButton,dismissible:t?.dismissible})},closeDialog(){Xb()},closeAllDialogs(){Zb()},isDialogOpen(){return Qb()},setNobr(e){Q.setState({nobr:e})},setCSS(e){let t=document.getElementById(`spindle-styles`);t&&(t.disabled=!e)},setTransition(e){Q.getState().setTransition(e)},setNextTransition(e){Q.getState().setNextTransition(e)},deferRender(){Q.getState().deferRender(),OC??(OC=new Promise(e=>{DC=e}))},ready(){DC&&(Q.getState().clearDeferredRender(),DC(),DC=null,OC=null)},random(){return Hc()},randomInt(e,t){return Uc(e,t)},config:{get maxHistory(){return Q.getState().maxHistory},set maxHistory(e){Q.getState().setMaxHistory(e)},get quickSaveKey(){return Q.getState().quickSaveKey},set quickSaveKey(e){Q.getState().setQuickSaveKey(e)},get quickLoadKey(){return Q.getState().quickLoadKey},set quickLoadKey(e){Q.getState().setQuickLoadKey(e)}},prng:{init(e,t){Ic(e,t);let{historyIndex:n}=Q.getState();Q.setState(e=>{let t=e.history[n];t&&(t.prng=Vc())})},isEnabled(){return Wc()},get seed(){return Gc()},get pull(){return Kc()}}}}function VC(){window.Story=BC()}var HC=null;function UC(e){let t=HC;HC=new Map;try{return e()}finally{HC=t}}function WC(e,t){let n=t[0]+e,r=HC?.get(n);if(r)return r;try{r=go(e,t)}catch(e){if(!(e instanceof so))throw e;r=e}return HC?.set(n,r),r}var GC=new Set([`if`,`elseif`,`case`]),KC=new Set([`dialog`]);function qC(e,t){return e.map(e=>e.parameters?{...e,parameters:qC(e.parameters,t)}:(e.type===`string`||e.type===`text`)&&!e.holds?{...e,holds:t}:e)}function JC(e){let t=new vr;for(let{name:n,parameters:r,interpolate:i}of e)r&&t.set(n,qC(r,YC(i)));return e=>{let n=t.get(e);if(!n){let r=bC(e);r&&t.set(e,n=qC(r,`text`))}return n}}var YC=e=>e?`markup`:`text`;function XC(e){if(e.type===`expression`||e.type===`passage`)return`expression`;if(e.type===`statements`)return`statements`}function ZC(e){if(!(e.type!==`string`&&e.type!==`text`))return e.holds??`markup`}function*QC(e,t,n){let r=(e,n)=>t.findIndex((t,r)=>r>e&&t.type===`macro`&&t.isClose&&t.name.toLowerCase()===n);for(let i=0;i<t.length;i++){let a=t[i];if(a.type===`link`)yield{kind:`passage`,name:a.target,offset:a.targetStart,length:a.targetEnd-a.targetStart,macro:`link`,label:e.slice(a.start,a.end)},a.display.includes(`{`)&&(yield{kind:`text`,text:a.display,offset:ew(e,a.display,a.start),where:`In the label of a link: `});else if(a.type===`expression`)yield{kind:`code`,code:a.expression,offset:a.end-1-a.expression.length,goal:`expression`,label:`{${a.expression}}`};else if(a.type===`html`){let t=a.start;for(let[n,r]of Object.entries(a.attributes)){let i=ew(e,r,t);if(t=i+r.length,!Wo(n)){yield{kind:`text`,text:r,offset:i,where:`In the ${n} attribute of <${a.tag}>: `};continue}let o=0;for(let e of Go(r)){if(!(`expr`in e))continue;let t=ew(r,e.expr,o);o=t+e.expr.length,yield{kind:`code`,code:e.expr,offset:i+t,goal:`expression`,label:`{${e.expr}} in the ${n} attribute of <${a.tag}>`}}}}else if(a.type===`macro`&&!a.isClose){let o=a.name.toLowerCase();if(o===`do`){let n=r(i,o);if(n<0)continue;yield{kind:`code`,code:e.slice(a.end,t[n].start),offset:a.end,goal:`statements`,label:`{do}`},i=n;continue}let s=a.rawArgs;if(KC.has(o)){let n=r(i,o),s=t.slice(i+1,n);if(n>i+1&&s.every(e=>e.type===`text`)){let r=e.slice(a.end,t[n].start),i=r.trim();yield{kind:`passage`,name:i.replace(/^[\"']|[\"']$/g,``),offset:a.end+r.indexOf(i),length:i.length,macro:o,label:e.slice(a.start,a.end)}}}if(!s)continue;let c=`{${a.name} ${s}}`,l=e.slice(a.start,a.end-1),u=a.start+l.trimEnd().length-s.length;if(GC.has(o)){yield{kind:`code`,code:s,offset:u,goal:`expression`,label:c};continue}let d=n(o);d&&(yield*$C(s,u,d,a.name,c))}}}function*$C(e,t,n,r,i){let a,o=new Map;try{a=uc(e,n,o)}catch(e){if(!(e instanceof Ys))throw e;yield{kind:`argument-error`,message:e.message,offset:t,label:i};return}let s=r.toLowerCase();function*c(n,a){for(let l of n){let n=a[l.name];if(l.type===`options`&&l.parameters){yield*c(l.parameters,n??{});continue}let u=o.get(l);if(typeof n!=`string`||!n.trim()||!u)continue;let[d,f]=u,p=e.slice(d,f),m=e=>({kind:`passage`,name:e,offset:t+d,length:f-d,macro:s,label:i}),h=XC(l);if(l.type===`passage`){let e=dc(n);if(e.kind===`name`){yield m(e.name);continue}}if(h){let e={kind:`code`,code:n,offset:t+d,goal:h,label:i};l.type===`passage`&&(e.passage=!0,e.macro=s),yield e;continue}let g=t+d+(n!==p&&/^[\"']/.test(p)?1:0),_=ZC(l);_===`expression`||_===`statements`?yield{kind:`code`,code:n,offset:g,goal:_,label:i,inString:!0}:_===`passage`?yield m(n):_===`markup`&&(yield{kind:`text`,text:n,offset:g,where:`In the ${l.name} of {${r}}: `})}}yield*[...c(n,a)].sort((e,t)=>e.offset-t.offset)}function ew(e,t,n){let r=e.indexOf(t,n);if(r>=0)return r;let i=e.indexOf(t);return i>=0?i:n}var tw=new Set([`StoryVariables`,`StoryTransients`,`SaveTitle`]),nw=[`script`,`stylesheet`],rw=new Set([`elseif`,`else`,`case`,`default`,`next`]);function iw(e){let t=e.file?` (${e.file}${e.fileLine?`:${e.fileLine}`:``})`:``;return`Passage \"${e.passage}\", line ${e.line}, column ${e.column}${t}: ${e.message}`}function aw(e,t){let n=Array.from({length:t.length+1},(e,t)=>t);for(let r=1;r<=e.length;r++){let i=[r];for(let a=1;a<=t.length;a++)i[a]=Math.min(n[a]+1,i[a-1]+1,n[a-1]+(e[r-1]===t[a-1]?0:1));n=i}return n[t.length]}function ow(e,t,n){let r=e.toLowerCase(),i=``,a=Math.max(2,Math.floor(r.length/3))+1;for(let e of t){let t=aw(r,e.toLowerCase());t<a&&(i=e,a=t)}return i?` Did you mean ${n(i)}?`:``}var sw=` (a passage name is a quoted string or an expression)`,cw=/^[A-Za-z][\\w$]*$/;function lw(e){try{return gc(e).name.toLowerCase()||void 0}catch{return}}function uw(e,t){let n=[],r=t.isBlockMacro?{isBlock:t.isBlockMacro}:void 0,i=(e,t,r)=>{let{line:i,column:a}=Yo(e.content,t),o={passage:e.name,line:i,column:a,message:r},s=e.metadata?.[`data-source-file`];if(s){o.file=s;let t=Number(e.metadata?.[`data-source-line`]);t&&(o.fileLine=t+i)}n.push(o)},a=[],o=new Set,s=new Set;for(let n of e){if(s.add(n.name),tw.has(n.name)||n.tags?.some(e=>nw.includes(e)))continue;let e=!t.only||t.only(n);try{let t=Qo(n.content);for(let e of t){if(e.type!==`macro`||e.isClose||e.name.toLowerCase()!==`widget`)continue;let t=lw(e.rawArgs);t&&o.add(t)}if(!e)continue;Zo(n.content,{hooks:r}),a.push([n,t])}catch(t){if(!(t instanceof Jo))throw t;e&&i(n,t.offset,t.reason)}}let c=[...t.macroNames??[],...o],l=(e,n,r,a)=>{for(let s of n){if(s.type!==`macro`||s.isClose)continue;let n=s.name.toLowerCase();rw.has(n)||o.has(n)||t.isKnownMacro(n)||i(e,r+s.start,`${a}Unknown macro {${s.name}}.${ow(s.name,c,e=>`{${e}}`)}`)}},u=t.parametersOf??(()=>void 0),d=(e,n,a,o,c)=>{l(e,a,o,c);for(let l of QC(n,a,u)){let n=o+l.offset;if(l.kind===`argument-error`){i(e,n,`${c}${l.message} in ${l.label}`);continue}if(l.kind===`passage`){if(t.checkPassageNames!==!1&&!s.has(l.name)){let t=ow(l.name,s,JSON.stringify);i(e,n,`${c}No passage named ${JSON.stringify(l.name)} in ${l.label}.${t}`)}continue}if(l.kind===`code`){let t=WC(l.code,l.goal),r=l.code.trim();if(t instanceof so){let r=t.reasonIn(e.content,n);i(e,n+t.pos,`${c}${r} in ${l.label}`+(l.passage?sw:``))}else l.passage&&cw.test(r)&&i(e,n,`${c}Unquoted passage name in ${l.label}: write ${JSON.stringify(r)}${sw}`);continue}if(l.text.includes(`{`))try{Zo(l.text,{text:!0,hooks:r});let t=Qo(l.text,{text:!0});d(e,l.text,t,n,l.where)}catch(t){if(!(t instanceof Jo))throw t;i(e,n+t.offset,l.where+t.reason)}}};for(let[e,t]of a)UC(()=>d(e,e.content,t,0,``));return n}function dw(e,t){try{return Qo(e,{text:t})}catch(e){if(e instanceof Jo)return[];throw e}}function fw(e){let t=e.replace(/[.*+?^${}()|[\\]\\\\]/g,`\\\\$&`);return RegExp(`^${t}(\\\\w+)\\\\s*=\\\\s*(.+)$`)}var pw=/\\$(\\w+(?:\\.\\w+)*)/y,mw=/^[\"']\\$(\\w+(?:\\.\\w+)*)[\"']?$/,hw=new Set([`number`,`string`,`boolean`]),gw={string:Object(``),number:Object(0),boolean:Object(!1)};function _w(e,t=new Map){if(Array.isArray(e))return{type:`array`};if(e===null)return{type:`null`};if(typeof e==`object`){let n=t.get(e);if(n)return n;let r=new Map,i={type:`object`,fields:r};t.set(e,i);for(let[n,i]of Object.entries(e))r.set(n,_w(i,t));return i}let n=typeof e;if(!hw.has(n))throw Error(`Unsupported type \"${n}\" for value ${String(e)}. Expected number, string, boolean, array, or object.`);return{type:n}}function vw(e,t=`$`){let n=new Map,r=fw(t),i=t===`%`?`StoryTransients`:`StoryVariables`;for(let a of e.split(`\n`)){let e=a.trim();if(!e)continue;let o=e.match(r);if(!o)throw Error(`${i}: Invalid declaration: \"${e}\". Expected: ${t}name = value`);let[,s,c]=o,l=ns(s,t+s);if(l)throw Error(`${i}: ${l}`);let u;try{u=Function(`return (`+c+`)`)()}catch(e){throw Error(`${i}: Failed to evaluate \"${t}${s} = ${c}\": ${ys(e)}`)}let d;try{d=_w(u)}catch(e){throw Error(`${i}: ${ys(e)}`)}n.set(s,{...d,name:s,default:u})}return n}function yw(e,t){let n=e.split(`.`),r=n[0],i=ns(r,`$`+r);if(i)return i;let a=t.get(r);if(!a)return`Undeclared variable: $${e}`;let o=a;for(let e=1;e<n.length;e++){let t=n[e];if(o.type===`array`||o.type===`null`)return null;let r=gw[o.type];if(r&&t in r){let e=typeof r[t];if(!hw.has(e))return null;o={type:e};continue}if(o.type!==`object`||!o.fields)return`Cannot access field \"${t}\" on $${n.slice(0,e).join(`.`)} (type: ${o.type})`;let i=o.fields.get(t);if(!i)return null;o=i}return null}var bw=[`checkbox`,`cycle`,`listbox`,`numberbox`,`radiobutton`,`textarea`,`textbox`],xw=new Set;function Sw(e,t){for(let n of Go(e))`expr`in n&&ww(n.expr,t)}function Cw(e,t,n=xw){e.includes(`{`)&&Ow(e,dw(e,!0),n,t)}function ww(e,t,n=`expression`){let r=WC(e,n);if(r instanceof so){Tw(e,t,n);return}for(let n of r.refs)n.sigil===`$`&&(pw.lastIndex=n.start,t(pw.exec(e)[1]))}function Tw(e,t,n){Ao(e,{variable(n,r,i){n===`$`&&(pw.lastIndex=i,t(pw.exec(e)[1]))},literal(){}},n)}function Ew(e,t,n,r){UC(()=>Ow(e,dw(e,!1),t,n,r))}function Dw(e,t,n){if(e.rawArgs){if(t){let r=[...$C(e.rawArgs,0,t,e.name,``)];if(!r.some(e=>e.kind===`argument-error`)){for(let e of r)e.kind===`code`?ww(e.code,n,e.goal):e.kind===`text`&&Cw(e.text,n);return}}ww(e.rawArgs,n)}}function Ow(e,t,n,r,i=()=>void 0){for(let a=0;a<t.length;a++){let o=t[a];if(o.type===`variable`)o.scope===`variable`&&o.name&&r(o.name);else if(o.type===`link`)Cw(o.display,r);else if(o.type===`expression`)ww(o.expression,r);else if(o.type===`html`)for(let[e,t]of Object.entries(o.attributes))Wo(e)?Sw(t,r):Cw(t,r,n);else if(o.type===`macro`&&!o.isClose){if(Dw(o,i(o.name),r),o.className&&Cw(o.className,r),o.id&&Cw(o.id,r),n.has(o.name.toLowerCase())){let e=o.rawArgs.trim().split(/\\s+/)[0]??``,t=mw.exec(e);t?r(t[1]):/^[\"'`]/.test(e)||ww(e,r)}if(o.name.toLowerCase()===`do`){let n=a+1;for(;n<t.length;){let e=t[n];if(e.type===`macro`&&e.isClose&&e.name.toLowerCase()===`do`)break;n++}n<t.length&&(ww(e.slice(o.end,t[n].start),r,`statements`),a=n)}}}}function kw(e,t,n=bw,r=Dl){let i=[],a=new Set(Array.from(n,e=>e.toLowerCase()));for(let[n,o]of e)tw.has(n)||Ew(o.content,a,e=>{let r=yw(e,t);r&&i.push(`Passage \"${n}\": ${r}`)},r);return i}function Aw(e){let t=q();for(let[n,r]of e)t[n]=r.default;return t}$({name:`set`,parameters:[{name:`code`,type:`statements`,required:!0}],render({rawArgs:e},t){return xp(`set`,e,()=>t.mutate(e))}}),$({name:`print`,parameters:[{name:`expression`,type:`expression`,required:!0}],interpolate:!0,merged:!0,render({rawArgs:e},t){try{return t.wrap(kl(t.evaluate(e)))}catch(e){return J(yp,{macro:`print`,error:e})}},text({rawArgs:e},t){return kl(t.evaluate(e))}});var jw=Symbol(`unset`);function Mw(e,t){if(!t[`=`])throw Error(`{computed}: expected \"target = expression\", got \"${e}\"`);let{target:n=``,expression:r=``}=t;if(!n.match(/^[$_@]\\w+$/))throw Error(`{computed}: target must be $name, _name, or @name, got \"${n}\"`);return rs(n.slice(1),n),{target:n,expr:r}}function Nw(e,t,n,r,i,a,o,s,c){let l=vp(),u,d=o.current,f=!1,{navigationId:p}=Q.getState();try{let{variables:a,temporary:o,transient:c}=Wy();r||(d=is(n?o:a,t),f=p!==s.current),u=ul(e,a,o,i(),c)}catch(e){bp(`computed ${a}`,e,l);return}if(s.current=p,!D_(o.current,u)||f&&!D_(d,u))if(o.current=u,r)try{c(t,u)}catch(e){bp(`computed ${a}`,e,l)}else{let e=Q.getState();n?e.setTemporary(t,u):e.setVariable(t,u)}}$({name:`computed`,merged:!0,parameters:[{name:`target`,type:`variable`,required:!0},{name:`=`,type:`separator`},{name:`expression`,type:`expression`,required:!0}],render({rawArgs:e},t){let n,r;try{({target:n,expr:r}=Mw(e,t.args))}catch(e){return J(yp,{macro:`computed`,error:e})}let i=n.startsWith(`@`),a=n.startsWith(`_`),o=n.slice(1),s=i?t.update:null,c=t.hooks.useRef(jw),l=t.hooks.useRef(-1),u=()=>Nw(r,o,a,i,t.getValues,e,c,l,s),d=t.hooks.useRef(!1);return d.current||(d.current=!0,u()),t.hooks.useLayoutEffect(u,[t.merged]),null}});function Pw(e){if(e.current===void 0||e.max===void 0)throw Error(`meter requires two arguments: {meter currentExpr maxExpr}`);return{currentExpr:e.current,maxExpr:e.max,labelMode:e.label??``}}function Fw(e,t,n){return n===`none`?null:n===`%`?`${t===0?0:Math.round(e/t*100)}%`:n?`${e} ${n} / ${t} ${n}`:`${e} / ${t}`}$({name:`meter`,interpolate:!0,merged:!0,parameters:[{name:`current`,type:`expression`,required:!0},{name:`max`,type:`expression`,required:!0},{name:`label`,type:`string`,holds:`markup`}],render(e,t){try{let{currentExpr:e,maxExpr:n,labelMode:r}=Pw({...t.args,label:t.resolve?.(t.args.label)}),i=Number(t.evaluate(e)),a=Number(t.evaluate(n)),o=a===0?0:Math.max(0,Math.min(100,i/a*100)),s=Fw(i,a,r),c=t.cls;return J(`div`,{class:c,id:t.id,children:[J(`div`,{class:`macro-meter-fill`,style:`width: ${o}%`}),s!=null&&J(`span`,{class:`macro-meter-label`,children:s})]})}catch(e){return J(yp,{macro:`meter`,error:e})}}});function Iw(e,t){let n=null;for(let r of e)if(r.rawArgs===``)n=r;else if(t(r.rawArgs))return r;return n}function Lw(e,t){return Al(t.resolve(e.className),t.resolve(e.id),t.renderNodes(e.children))}function Rw(e,t){let n=e.findIndex(e=>e.rawArgs===``);return Iw(n<0?e:e.slice(0,n+1),e=>!!t(e))}$({name:`if`,block:!0,interpolate:!0,merged:!0,render({branches:e=[]},t){let n;try{n=Rw(e,t.evaluate)}catch(e){return J(yp,{macro:`if`,error:e})}return n?Lw(n,t):null},text({branches:e=[]},t){let n=Rw(e,t.evaluate);return n?t.renderText(n.children):``}});function zw(e){try{return Bw(e,new Map)}catch{return`<unkeyable>`}}function Bw(e,t){switch(typeof e){case`string`:return JSON.stringify(e);case`number`:return Number.isFinite(e)?JSON.stringify(e):String(e);case`boolean`:return String(e);case`bigint`:return`${e}n`;case`undefined`:return`undefined`;case`symbol`:return e.description===void 0?`Symbol()`:`Symbol(${JSON.stringify(e.description)})`;case`function`:return`<function ${JSON.stringify(e.name)}>`}if(e===null)return`null`;let n=e,r=t.get(n);if(r!==void 0)return`<ref ${r}>`;let i=Ih(n),a=e=>i===void 0?e:`Class(${JSON.stringify(i)})${e}`,o=e=>{let r=i===void 0?[]:Eh(n);return a(r.length?`${e}${Vw(n,r,t)}`:e)};return e instanceof Date||e instanceof RegExp?(i!==void 0&&Eh(n).length&&t.set(n,t.size),o(e instanceof Date?`Date(${Date.prototype.getTime.call(e)})`:`RegExp(${RegExp.prototype.toString.call(e)}@${e.lastIndex})`)):(t.set(n,t.size),Array.isArray(e)?o(`[${Array.from(e,e=>Bw(e,t)).join(`,`)}]`):e instanceof Map?o(`Map[${Array.from(Dh(e),([e,n])=>`[${Bw(e,t)},${Bw(n,t)}]`).join(`,`)}]`):e instanceof Set?o(`Set[${Array.from(Oh(e),e=>Bw(e,t)).join(`,`)}]`):a(Vw(n,Object.keys(n),t)))}function Vw(e,t,n){let r=e;return`{${t.map(e=>`${JSON.stringify(e)}:${Bw(r[e],n)}`).join(`,`)}}`}function Hw(e,t){if(!t.of)throw Error(`{for} requires \"of\" keyword: {for ${e}}`);let[n=``,r=null]=t.variables??[],i=t.list??``;if(!n.startsWith(`@`))throw Error(`{for} loop variable must use @ prefix: got \"${n}\"`);if(r&&!r.startsWith(`@`))throw Error(`{for} index variable must use @ prefix: got \"${r}\"`);return rs(n.slice(1),n),r&&rs(r.slice(1),r),{itemVar:n.slice(1),indexVar:r?r.slice(1):null,listExpr:i}}function Uw({parentValues:e,itemVar:t,itemValue:n,indexVar:r,indexValue:i,children:a}){return J(Ql,{body:a,parentValues:e,ownKeys:Ne(()=>({[t]:n,...r?{[r]:i}:void 0}),[t,n,r,i])})}$({name:`for`,block:!0,interpolate:!0,merged:!0,parameters:[{name:`variables`,type:`names`,required:!0},{name:`of`,type:`separator`},{name:`list`,type:`expression`,required:!0}],render({rawArgs:e,children:t=[]},n){let r=Fe(Cp),i=n.hooks.useRef({contents:[],generations:[],next:0,edits:rC()}).current,a,o;try{a=Hw(e,n.args);let t=n.evaluate(a.listExpr);if(!Array.isArray(t))return J(`span`,{class:`error`,children:`{for error: expression did not evaluate to an array}`});o=t}catch(e){return J(yp,{macro:`for`,error:e})}let{itemVar:s,indexVar:c}=a,l=iC(i.edits,Wy());i.edits=rC();let u=o.map((e,t)=>{let n=zw(e);return(i.generations[t]===void 0||n!==i.contents[t]&&!l(o,e,t))&&(i.generations[t]=i.next++),i.contents[t]=n,i.generations[t]});i.contents.length=i.generations.length=o.length;let d=o.map((e,n)=>J(Uw,{parentValues:r,itemVar:s,itemValue:e,indexVar:c,indexValue:n,children:t},`${n}-${u[n]}`));return n.wrap(J(eC.Provider,{value:!0,children:d}))},text({rawArgs:e,children:t=[]},n){let{itemVar:r,indexVar:i,listExpr:a}=Hw(e,n.args),o=n.evaluate(a);if(!Array.isArray(o))throw Error(`expression did not evaluate to an array`);return o.map((e,a)=>n.renderText(t,{[r]:e,...i?{[i]:a}:void 0})).join(``)}}),$({name:`do`,block:!0,render({children:e=[]},t){let n=t.collectText(e);return xp(`do`,``,()=>t.mutate(n))}});function Ww(e){return new Proxy(q(),{get:(t,n)=>typeof n==`string`?is(e(),n):void 0,has:(t,n)=>typeof n==`string`&&K(e(),n),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>{let r=Object.getOwnPropertyDescriptor(e(),n);return r?{...r,configurable:!0}:void 0}})}var Gw=ge({stop:()=>{}});$({name:`repeat`,block:!0,interpolate:!0,parameters:[lc],render({children:e=[]},t){let{useState:n,useEffect:r,useCallback:i}=t.hooks,a=t.args.delay??0,[o,s]=n(0),[c,l]=n(!1),u=i(()=>l(!0),[]);if(r(()=>{if(c)return;let e=setInterval(()=>{s(e=>e+1)},a);return()=>clearInterval(e)},[a,c]),o===0&&!c)return null;let d=J(Gw.Provider,{value:{stop:u},children:J(`span`,{children:t.renderNodes(e)},o)});return t.className||t.id?J(`span`,{id:t.id,class:t.cls,children:d}):d}});var Kw=()=>!0;function qw(){let e=Fe(wp),{nobr:t,inline:n}=Zl(),r=Fe(Pp),i=Fe(Gw),a=Fe(TS),o=M([]);je(()=>{let e=Hx(()=>{let e=o.current.splice(0);queueMicrotask(()=>{for(let t of e)he(null,t)})});return()=>{e();for(let e of o.current.splice(0))he(null,e)}},[]);let s=s=>{let c=Ww(e.getValues),l=document.createElement(`div`);he(J(Tc.Provider,{value:Kw,children:J(wp.Provider,{value:e,children:J(Cp.Provider,{value:c,children:J(Tp.Provider,{value:t,children:J(Ep.Provider,{value:n,children:J(Pp.Provider,{value:r,children:J(Gw.Provider,{value:i,children:J(TS.Provider,{value:a,children:Dm(s,{nobr:t,inline:n,locals:c})})})})})})})})}),l),o.current.push(l)};return e=>pb(()=>s(e))}$({name:`button`,block:!0,interpolate:!0,parameters:[{name:`label`,type:`text`,holds:`markup`,required:!0}],render({rawArgs:e,children:t=[]},n){let r=n.resolve?.(n.args.label??``)??e,i=qw(),a=()=>i(t);return n.useAction({type:`button`,key:e,authorId:n.id,label:r,perform:a}),J(`button`,{type:`button`,id:n.id,class:n.cls,onClick:a,children:r})}}),$({name:`link`,block:!0,interpolate:!0,merged:!0,parameters:[{name:`text`,type:`string`,holds:`markup`,required:!0},{name:`passage`,type:`passage`}],render({children:e=[]},t){let n=t.resolve?.(t.args.text??``)??``,r=null,i;if(t.args.passage!==void 0)try{r=fc(t.args.passage,t.evaluate,Q.getState())}catch(e){i={error:e}}let a=qw(),o=()=>{i||(a(e),r&&Q.getState().navigate(r))};return t.useAction({type:`link`,key:r||n,authorId:t.id,label:n,target:r??void 0,disabled:i?!0:void 0,perform:o}),i?J(yp,{macro:`link`,error:i.error}):J(`a`,{id:t.id,class:t.cls,href:`#`,onClick:e=>{e.preventDefault(),o()},children:n})}});function Jw(e,t,n){return Iw(t.slice(1),t=>e===n(t))}$({name:`switch`,subMacros:[`case`,`default`],parameters:[{name:`expression`,type:`expression`,required:!0}],interpolate:!0,merged:!0,render({rawArgs:e,branches:t=[]},n){let r;try{r=n.evaluate(e)}catch(e){return J(yp,{macro:`switch`,error:e})}let i;try{i=Jw(r,t,n.evaluate)}catch(e){return J(yp,{macro:`case`,error:e})}return i?Lw(i,n):null},text({rawArgs:e,branches:t=[]},n){let r=Jw(n.evaluate(e),t,n.evaluate);return r?n.renderText(r.children):``}});var Yw=[lc];$({name:`timed`,subMacros:[`next`],interpolate:!0,parameters:Yw,render({branches:e=[]},t){let{useState:n,useEffect:r,useMemo:i}=t.hooks,a=i(()=>e.map(e=>({delay:uc(e.rawArgs,Yw).delay??0,nodes:e.children,className:e.className,id:e.id})),[e]),[o,s]=n(-1);if(r(()=>{if(o>=a.length-1)return;let e=o+1,t=a[e].delay,n=setTimeout(()=>{s(e)},t);return()=>clearTimeout(n)},[o,a]),o<0)return t.wrap(null);let c=a[o];return t.wrap(Al(t.resolve(c.className),t.resolve(c.id),t.renderNodes(c.nodes)))}}),$({name:`stop`,render(e,t){let{stop:n}=t.hooks.useContext(Gw);return t.hooks.useLayoutEffect(()=>{n()},[n]),null}});function Xw(e,t,n){let r=document.createRange();if(!r.getClientRects)return;let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),a=n,o;for(let e=i.nextNode();e&&a>0;e=i.nextNode()){let t=e.nodeValue?.length??0;o={node:e,offset:Math.min(a,t)},a-=t}if(!o)return`inset(0 100% 0 0)`;r.setStart(e,0),r.setEnd(o.node,o.offset);let s=r.getClientRects();if(s.length===0)return;let c=t.getBoundingClientRect(),l=``;for(let e of Array.from(s)){if(e.width===0&&e.height===0)continue;let t=(e.left-c.left).toFixed(2),n=(e.top-c.top).toFixed(2);l+=`M${t} ${n}h${e.width.toFixed(2)}v${e.height.toFixed(2)}h-${e.width.toFixed(2)}z`}return l?`path(\"${l}\")`:void 0}$({name:`type`,block:!0,interpolate:!0,parameters:[lc],render({children:e=[]},t){let{useState:n,useEffect:r,useLayoutEffect:i,useRef:a}=t.hooks,o=t.args.delay??0,s=a(null),c=a(null),[l,u]=n(),[d,f]=n(null),p=d??0,[m,h]=n(0),g=a(0);g.current=m,r(()=>{s.current&&f((s.current.textContent||``).length)}),r(()=>{if(p===0||g.current>=p)return;let e=setInterval(()=>{h(t=>t>=p?(clearInterval(e),t):t+1)},o);return()=>clearInterval(e)},[p,o]);let _=d!==null&&m>=p;i(()=>{let e=s.current,t=c.current;if(!e||!t||p===0||_){u(void 0);return}let n=()=>u(Xw(e,t,m));return n(),window.addEventListener(`resize`,n),()=>window.removeEventListener(`resize`,n)},[m,p,_]);let v=[`macro-type`,_?`macro-type-done`:``,t.className||``].filter(Boolean).join(` `);return J(`span`,{id:t.id,class:v,ref:s,children:[J(`span`,{ref:c,class:`macro-type-inner`,style:{display:`inline`,visibility:d===null?`hidden`:`visible`,clipPath:l},children:t.renderInlineNodes(e)}),!_&&p>0&&J(`span`,{class:`macro-type-cursor`})]})}}),$({name:`widget`,block:!0,parameters:mc,render({children:e=[]},t){let n,r;try{let e=hc(t.args);for(let t of e.params)rs(t.slice(1),t);n=e}catch(e){r=e}let{name:i,params:a}=n??{name:``,params:[]},o=JSON.stringify(e),s=a.join(`,`);return t.hooks.useLayoutEffect(()=>{n&&vc(n,e)},[i,o,s]),r?J(yp,{macro:`widget`,error:r}):null}}),$({name:`story-title`,render(e,t){let n=Q(e=>e.storyData?.name||``),r=t.className?`story-title ${t.className}`:`story-title`;return J(`span`,{id:t.id,class:r,children:n})},text:()=>Q.getState().storyData?.name||``});function Zw(e,t){return t?`${e} (${t})`:e}function Qw(e){$({name:e.name,render(t,n){if(e.hidden?.())return null;let[r,i]=ke(!1),a=e.setup?.()??{perform:()=>{}},{disabled:o,title:s=e.title}=a,c=n.className?`menubar-button ${n.className}`:`menubar-button`,l=e.dialog?()=>i(!0):e.confirm?()=>{confirm(e.confirm)&&a.perform()}:a.perform;return n.useAction({type:e.actionType,key:e.name,authorId:n.id,label:typeof e.label==`string`?e.label:e.name,disabled:o,perform:e.dialog?()=>i(!0):a.perform}),J(S,{children:[J(`button`,{type:`button`,id:n.id,class:c,onClick:l,disabled:o,title:s,children:e.label}),e.dialog&&r&&J(ES,{passageName:e.dialog.passageName,fallbackMarkup:e.dialog.fallbackMarkup,panelClass:e.dialog.panelClass,onClose:()=>i(!1),showCloseButton:e.dialog.showCloseButton})]})}})}Qw({name:`back`,label:`← Back`,actionType:`back`,setup:()=>({perform:Q(e=>e.goBack),disabled:!Q(e=>e.historyIndex>0)})}),Qw({name:`forward`,label:`Forward →`,actionType:`forward`,setup:()=>({perform:Q(e=>e.goForward),disabled:!Q(e=>e.historyIndex<e.history.length-1)})}),Qw({name:`quicksave`,label:`QuickSave`,actionType:`save`,setup:()=>{let{quickSaveKey:e}=Ec(`quickSaveKey`);return{perform:kS,title:Zw(`Quick Save`,e)}}}),Qw({name:`quickload`,label:`QuickLoad`,actionType:`load`,confirm:`Load saved game? Current progress will be lost.`,setup:()=>{let{hasSave:e,quickLoadKey:t}=Ec(`hasSave`,`quickLoadKey`,`knownSaves`);return{perform:AS,disabled:!e(),title:Zw(`Quick Load`,t)}}}),Qw({name:`restart`,label:`↺ Restart`,actionType:`restart`,confirm:`Restart the story? All progress will be lost.`,setup:()=>({perform:Q(e=>e.restart)})}),Qw({name:`saves`,label:`Saves`,actionType:`dialog`,dialog:{passageName:`SaveLoad`,fallbackMarkup:`{save-manager}`,panelClass:`dialog-saves`}}),Qw({name:`settings`,label:`Settings`,actionType:`dialog`,hidden:()=>!JS.hasAny(),dialog:{passageName:`Settings`,fallbackMarkup:`{settings-controls}`,panelClass:`dialog-settings`}}),$({name:`dialog`,block:!0,interpolate:!0,parameters:[{name:`label`,type:`text`,holds:`markup`,required:!0},{name:`noclose`,type:`flag`}],render({children:e=[]},t){let[n,r]=t.hooks.useState(!1),{noclose:i}=t.args,a=t.resolve(t.args.label??``),o=t.collectText(e).trim().replace(/^[\"']|[\"']$/g,``);return J(S,{children:[J(`button`,{type:`button`,id:t.id,class:t.cls,onClick:()=>r(!0),children:a}),n&&J(ES,{passageName:o,onClose:()=>r(!1),showCloseButton:!i})]})}});function $w(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:new Date(e).toLocaleDateString()}function eT(e){return new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function tT(){let[e,t]=ke(`load`),[n,r]=ke([]),[i,a]=ke(!0),[o,s]=ke(null),[c,l]=ke(()=>new Set),[u,d]=ke(null),f=M(!1),[p,m]=ke(``),h=M(null),g=M(null),_=Fe(TS),{storyData:v,playthroughId:y,beginSave:b,loadFromPayload:x}=Ec(`storyData`,`playthroughId`,`beginSave`,`loadFromPayload`),S=v?.ifid??``,[C,w]=ke(!1),T=Pe(async()=>{if(!S)return;let e=await Vv(S);w(u_()===`memory`),r(e),a(!1)},[S]);je(()=>{T()},[T]),je(()=>{u&&h.current&&(h.current.focus(),h.current.select())},[u]);let ee=M(!0),E=M(),D=M(),O=(e,t=`success`)=>{ee.current&&(clearTimeout(E.current),s({text:e,type:t}),E.current=window.setTimeout(()=>s(null),3e3))};je(()=>(ee.current=!0,()=>{ee.current=!1,clearTimeout(E.current),clearTimeout(D.current)}),[]);let te=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},ne=async()=>{if(!S)return;let e=Ax();try{await jv(void 0,void 0,b,async t=>Nv(S,e,t)),O(C?`Save created (temporary)`:`Save created`),await T()}catch{O(`Failed to create save`,`error`)}},re=async e=>{let t=Ax();try{await jv(void 0,void 0,b,async n=>{if(!await Fv(e,n,void 0,t))throw Error(`Save not found`)}),O(`Save overwritten`),await T()}catch{O(`Failed to overwrite save`,`error`)}},k=async e=>{try{x(Rv(e.payload),void 0,e.meta.playthroughId),O(`Game loaded`),_&&(D.current=window.setTimeout(_,500)),await T()}catch{O(`Failed to load save`,`error`)}},ie=async e=>{if(confirm(`Delete this save?`))try{await zv(e);let t=await py(S);Q.setState(e=>{e.knownSaves=t}),O(`Save deleted`),await T()}catch{O(`Failed to delete save`,`error`)}},ae=e=>{f.current=!1,d(e.meta.id),m(e.meta.title)},oe=async()=>{if(!(!u||!p.trim()))try{await Bv(u,p.trim()),d(null),O(`Save renamed`),await T()}catch{O(`Failed to rename`,`error`)}},se=e=>{e.key===`Enter`?oe():e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),f.current=!0,d(null))},ce=()=>{f.current||oe()},le=async e=>{try{let t=await Dy(e);if(!t)return;let n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`save-${t.save.meta.title.replace(/[^a-z0-9]/gi,`_`)}.json`,i.click(),URL.revokeObjectURL(r),O(`Save exported`)}catch{O(`Failed to export save`,`error`)}},ue=()=>{g.current?.click()},de=async e=>{let t=e.target,n=t.files?.[0];if(n){t.value=``;try{let e=await n.text(),t=JSON.parse(e);if(!Rg(t))throw Error(`Invalid save file format`);await ky(t,S),O(`Save imported`),await T()}catch(e){O(ys(e,`Failed to import save`),`error`)}}},fe=n.reduce((e,t)=>e+t.saves.length,0);return J(`div`,{class:`save-manager`,children:[J(`div`,{class:`saves-header`,children:J(`div`,{class:`saves-header-left`,children:J(`div`,{class:`saves-mode-toggle`,children:[J(`button`,{type:`button`,class:e===`save`?`active`:``,onClick:()=>t(`save`),children:`Save`}),J(`button`,{type:`button`,class:e===`load`?`active`:``,onClick:()=>t(`load`),children:`Load`})]})})}),C&&J(`div`,{class:`saves-notice`,role:`status`,children:`Saves can not be kept in this browser: they are lost when the page is reloaded or closed. Export a save to keep it.`}),J(`div`,{class:`saves-toolbar`,children:[J(`button`,{type:`button`,class:`saves-toolbar-button`,onClick:ue,children:`Import`}),J(`input`,{ref:g,type:`file`,accept:`.json`,style:`display:none`,onChange:de})]}),J(`div`,{class:`saves-body`,children:[i?J(`div`,{class:`saves-empty`,children:`Loading...`}):fe===0&&e===`load`?J(`div`,{class:`saves-empty`,children:`No saves yet`}):n.map(t=>{let n=c.has(t.playthrough.id),r=t.playthrough.id===y;return e===`save`&&!r||e===`load`&&t.saves.length===0&&!r?null:J(`div`,{class:`playthrough-group`,children:[J(`button`,{type:`button`,class:`playthrough-header`,\"aria-expanded\":!n,onClick:()=>te(t.playthrough.id),children:[J(`span`,{class:`playthrough-chevron ${n?``:`open`}`,\"aria-hidden\":`true`,children:`▶`}),J(`span`,{class:`playthrough-label`,children:[t.playthrough.label,r?` (current)`:``]}),J(`span`,{class:`playthrough-date`,children:eT(t.playthrough.createdAt)})]}),!n&&J(`div`,{class:`playthrough-saves`,children:[t.saves.map(t=>J(`div`,{class:`save-slot`,children:[J(`div`,{class:`save-slot-info`,children:[u===t.meta.id?J(`input`,{ref:h,class:`save-rename-input`,value:p,onInput:e=>m(e.target.value),onKeyDown:se,onBlur:ce}):J(`div`,{class:`save-slot-title`,children:t.meta.title}),J(`div`,{class:`save-slot-meta`,children:[J(`span`,{children:t.meta.passage}),J(`span`,{children:$w(t.meta.updatedAt)})]})]}),J(`div`,{class:`save-slot-actions`,children:[e===`save`?J(`button`,{type:`button`,class:`save-slot-action primary`,onClick:()=>re(t.meta.id),children:`Save Here`}):J(`button`,{type:`button`,class:`save-slot-action primary`,onClick:()=>k(t),children:`Load`}),J(`button`,{type:`button`,class:`save-slot-action`,onClick:()=>ae(t),children:`Rename`}),J(`button`,{type:`button`,class:`save-slot-action`,onClick:()=>le(t.meta.id),children:`Export`}),J(`button`,{type:`button`,class:`save-slot-action danger`,onClick:()=>ie(t.meta.id),children:`Delete`})]})]},t.meta.id)),e===`save`&&r&&J(`button`,{type:`button`,class:`save-slot-new`,onClick:ne,children:`+ New Save`})]})]},t.playthrough.id)}),e===`save`&&!i&&!n.some(e=>e.playthrough.id===y)&&J(`div`,{class:`playthrough-group`,children:J(`div`,{class:`playthrough-saves`,children:J(`button`,{type:`button`,class:`save-slot-new`,onClick:ne,children:`+ New Save`})})})]}),o&&J(`div`,{class:`saves-status ${o.type===`error`?`error`:``}`,children:o.text})]})}$({name:`save-manager`,render(){return J(tT,{})}});function nT({name:e,def:t}){let[n,r]=ke(()=>JS.get(e)),i=t=>{r(t),JS.set(e,t)};switch(t.type){case`toggle`:return J(`label`,{class:`settings-row`,children:[J(`span`,{children:t.config.label}),J(`input`,{type:`checkbox`,checked:!!n,onChange:e=>i(e.target.checked)})]});case`list`:return J(`label`,{class:`settings-row`,children:[J(`span`,{children:t.config.label}),J(`select`,{value:String(n),onChange:e=>i(e.target.value),children:t.config.options.map(e=>J(`option`,{value:e,children:e},e))})]});case`range`:return J(`label`,{class:`settings-row`,children:[J(`span`,{children:[t.config.label,`: `,String(n)]}),J(`input`,{type:`range`,min:t.config.min,max:t.config.max,step:t.config.step,value:Number(n),onInput:e=>i(parseFloat(e.target.value))})]})}}function rT(){let e=JS.getDefinitions();return J(`div`,{class:`settings-controls`,children:Array.from(e.entries()).map(([e,t])=>J(nT,{name:e,def:t},e))})}$({name:`settings-controls`,render(){return J(rT,{})}}),$({name:`include`,interpolate:!0,merged:!0,parameters:[{name:`inline`,type:`flag`},{name:`passage`,type:`passage`,required:!0}],render(e,t){let{storyData:n}=Ec(`storyData`),{inline:r}=t.args,i=``,a;try{i=fc(t.args.passage,t.evaluate,Q.getState())}catch(e){a={error:e}}let o=n?.passages.get(i),s=t.hooks.useMemo(()=>o?Zo(o.content):null,[o]),c=!a&&!!o;if(t.hooks.useEffect(()=>{c&&Q.getState().trackRender(i)},[c,i]),!n)return null;if(a)return J(yp,{macro:`include`,error:a.error});if(!o||!s)return null;let l=o.tags.includes(`nobr`),u=r?t.renderInlineNodes(s):t.renderNodes(s,l?{nobr:!0}:void 0);return l?t.wrap(t.h(Tp.Provider,{value:!0},u)):t.wrap(u)}}),$({name:`nobr`,block:!0,render({children:e=[]},t){return t.wrap(t.h(Tp.Provider,{value:!0},t.renderNodes(e,{nobr:!0})))},text:({children:e=[]},t)=>t.renderText(e)}),$({name:`goto`,merged:!0,parameters:[{name:`passage`,type:`passage`,required:!0}],render(e,t){let[n,r]=t.hooks.useState();return t.hooks.useLayoutEffect(()=>{let e=t.sourceLocation();try{let e=Q.getState();e.navigate(fc(t.args.passage,t.evaluate,e))}catch(t){bp(`goto`,t,e),r({error:t})}},[]),n?J(yp,{macro:`goto`,error:n.error}):null}}),$({name:`unset`,parameters:[{name:`variable`,type:`variable`,required:!0}],render({rawArgs:e},t){return xp(`unset`,e,()=>{let e=Q.getState(),n=t.args.variable??``;if(/^[$_%@][^.]*\\./.test(n))t.mutate(`delete ${n}`);else if(n.startsWith(`$`))e.deleteVariable(n.slice(1));else if(n.startsWith(`_`))e.deleteTemporary(n.slice(1));else if(n.startsWith(`%`))e.deleteTransient(n.slice(1));else if(n.startsWith(`@`))t.update(n.slice(1),void 0);else throw Error(`{unset} expects a variable ($name, _name, %name, or @name), got \"${n}\"`)})}});var iT={name:`variable`,type:`variable`,required:!0};function aT(e,t){return e.useAction({key:`$${e.varName}`,authorId:e.id,variable:e.varName,value:e.value,...t})}function oT(e,t,n=e=>e===void 0?``:String(e)){$({name:e,storeVar:!0,parameters:[iT,{name:`placeholder`,type:`string`,holds:`text`}],render(r,i){let a=i.args.placeholder??``;aT(i,{type:e,label:a||i.varName,perform:e=>i.setValue(n(e))});let o=i.hooks.useRef(null),s=o.current!==null&&n(o.current)===i.value&&t===`number`?o.current:kl(i.value);return b(t?`input`:`textarea`,{type:t,id:i.id,class:i.cls,value:s,placeholder:a,onInput:e=>{let t=e.target.value;o.current=t,i.setValue(n(t))}})}})}oT(`textbox`,`text`),oT(`numberbox`,`number`,e=>e===void 0?0:Number(e)),oT(`textarea`),$({name:`checkbox`,storeVar:!0,parameters:[iT,{name:`label`,type:`text`,holds:`text`}],render(e,t){let n=t.args.label??``;return aT(t,{type:`checkbox`,label:n||t.varName||``,value:!!t.value,perform:e=>t.setValue(e===void 0?!t.value:!!e)}),J(`label`,{id:t.id,class:t.cls,children:[J(`input`,{type:`checkbox`,checked:!!t.value,onChange:()=>t.setValue(!t.value)}),n?` ${n}`:null]})}}),$({name:`radiobutton`,storeVar:!0,parameters:[iT,{name:`value`,type:`text`,holds:`text`,required:!0},{name:`label`,type:`text`,holds:`text`}],render(e,t){let n=t.args.value??``,r=t.args.label??``,i=t.hooks.useContext(Op);return aT(t,{type:`radiobutton`,key:`$${t.varName}:${n}`,label:r||n,perform:()=>t.setValue(n)}),J(`label`,{id:t.id,class:t.cls,children:[J(`input`,{type:`radio`,name:i?`radio-${i}-${t.varName}`:`radio-${t.varName}`,checked:t.value===n,onChange:()=>t.setValue(n)}),r?` ${r}`:null]})}}),$({name:`listbox`,subMacros:[`option`],storeVar:!0,parameters:[iT],render({children:e=[]},t){let n=t.extractOptions(e);return aT(t,{type:`listbox`,label:t.varName,options:n,perform:e=>{e!==void 0&&t.setValue(String(e))}}),J(`select`,{id:t.id,class:t.cls,value:kl(t.value),onChange:e=>t.setValue(e.target.value),children:n.map(e=>J(`option`,{value:e,children:e},e))})}}),$({name:`cycle`,block:!0,storeVar:!0,parameters:[iT],render({children:e=[]},t){let n=t.extractOptions(e),r=()=>{if(n.length===0)return;let e=t.getValue(),r=(n.indexOf(String(e))+1)%n.length;t.setValue(n[r])};return aT(t,{type:`cycle`,label:t.value==null?n[0]||``:String(t.value),options:n,perform:e=>{e===void 0?r():t.setValue(e)}}),J(`button`,{type:`button`,id:t.id,class:t.cls,onClick:r,children:t.value==null?n[0]||``:String(t.value)})}}),$({name:`span`,block:!0,render({children:e=[]},t){return t.wrap(t.renderNodes(e))},text:({children:e=[]},t)=>t.renderText(e)});var sT=new WeakMap;function cT(e){let t=sT.get(e);if(t&&t.content===e.content)return t.ast;let n=Zo(e.content);return sT.set(e,{content:e.content,ast:n}),n}function lT(e){return Dm(cT(e),e.tags.includes(`nobr`)?{nobr:!0}:void 0)}function uT(e){if(!e)return null;try{return lT(e)}catch(t){return console.error(`spindle: Error in ${e.name}:`,t),null}}var dT=new Set([`PassageReady`,`PassageHeader`,`PassageFooter`,`PassageDone`]);function fT({passage:e,dataTransition:t,navigationId:n}){let{storyData:r}=Ec(`storyData`),i=dT.has(e.name),[a,o]=ke(!1),s=Ne(()=>{try{return lT(e)}catch(t){return J(`div`,{class:`error`,children:[`Error parsing passage “`,e.name,`”`,_p(e),`: `,ys(t)]})}},[e.content,e.name]),c=e=>i?void 0:r?.passages.get(e),l=c(`PassageHeader`),u=c(`PassageFooter`),d=c(`PassageDone`),f=Ne(()=>uT(l),[l?.content]),p=Ne(()=>uT(u),[u?.content]);je(()=>(d&&o(!0),()=>o(!1)),[e.name]);let m=Ne(()=>a?uT(d):null,[a,d?.content]),h=M(null);Me(()=>{n!==void 0&&TC(n),h.current&&lv(`passagerender`,e.name,h.current)},[e.name,n]);let g=e.tags.includes(`nobr`),_=Ap(),v=J(Op.Provider,{value:_,children:J(`div`,{ref:h,class:`passage`,\"data-passage\":e.name,\"data-tags\":e.tags.join(` `),\"data-transition\":t,children:[f&&J(`div`,{class:`passage-header`,children:f}),s,p&&J(`div`,{class:`passage-footer`,children:p}),m&&J(`div`,{hidden:!0,children:m})]})});return g?J(Tp.Provider,{value:!0,children:v}):v}var pT=new Set([`none`,`fade`,`fade-through`,`crossfade`]),mT={type:`fade-through`,duration:300,pause:50};function hT(e){let t=e.find(e=>e.startsWith(`transition:`));if(!t)return null;let n=t.slice(11);if(!pT.has(n))return console.warn(`Unknown transition type: \"${n}\"`),null;let r={type:n};for(let t of e)if(t.startsWith(`duration:`)){let e=Number(t.slice(9));Number.isNaN(e)||(r.duration=e)}else if(t.startsWith(`pause:`)){let e=Number(t.slice(6));Number.isNaN(e)||(r.pause=e)}return r}function gT(e){return{type:e.type,duration:e.duration??mT.duration,pause:e.pause??mT.pause}}function _T(e,t,n){let r=hT(e);return r?gT(r):t?gT(t):n?gT(n):{...mT}}function vT(e,t){let n=e.cloneNode(!0);n.removeAttribute(`id`);let r=n.querySelectorAll(`[id]`);for(let e=0;e<r.length;e++)r[e].removeAttribute(`id`);n.style.pointerEvents=`none`,n.style.userSelect=`none`,n.setAttribute(`inert`,``),n.setAttribute(`aria-hidden`,`true`);let i=n.querySelectorAll(`audio, video`);for(let e=0;e<i.length;e++){let t=i[e];t.pause?.(),t.muted=!0}return n.classList.remove(`passage`),n.classList.add(`passage-snapshot`),n.setAttribute(`data-transition`,t),n}function yT(e,t){e.style.setProperty(`--passage-in-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-out-duration`,`${t.duration/1e3}s`),e.style.setProperty(`--passage-pause`,`${t.pause/1e3}s`)}function bT(e,t){if(!e)return null;yT(e,t);let n=e.querySelector(`.passage`);return n?vT(n,t.type):null}function xT(e){if(!e)return;e.classList.remove(`passage-container--crossfading`);let t=e.querySelectorAll(`.passage-snapshot`);for(let e=0;e<t.length;e++)t[e].remove()}function ST(e){return window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches?{...e,duration:Math.min(e.duration,10),pause:0}:e}$({name:`passage`,interpolate:!0,render(e,t){let{currentPassage:n,navigationId:r,storyData:i,renderDeferred:a}=Ec(`currentPassage`,`navigationId`,`storyData`,`renderDeferred`),[o,s]=ke({passage:n,id:r}),c=o.passage,l=e=>s({passage:e,id:r}),u=M(`fade`),d=M(0),f=o.id,p=Pe(e=>e.navigationId!==f,[f]),m=M(null),h=M(null),g=M([]),_=Pe(()=>{for(let e of g.current)clearTimeout(e);g.current=[],xT(h.current)},[]);je(()=>_,[_]),je(()=>{let e=Q.getState(),{history:t,historyIndex:a,transitionConfig:s}=e,f=d.current;d.current=t.length;let p=!c,m=t.length===1&&a===0&&f>1,v=t.length>1&&a===t.length-1&&f>1&&Math.abs(t.length-f)>1;if(r===o.id)return;let y=e.consumeNextTransition();_();let b=i?.passages.get(n);if(!b){u.current=`none`,l(n);return}if(p||m||v){u.current=`fade`,l(n);return}let x=ST(_T(b.tags,y,s));u.current=x.type;let S=h.current;if(x.type===`none`){l(n);return}if(x.type===`fade`){S&&yT(S,x),l(n);return}let C=x.type===`fade-through`||x.type===`crossfade`?bT(S,x):null;if(!S||!C){l(n);return}if(x.type===`fade-through`){S.appendChild(C),l(``);let e=x.duration+x.pause,t=setTimeout(()=>{l(n)},e),r=e+x.duration;g.current=[t,setTimeout(()=>{xT(S)},r)];return}S.classList.add(`passage-container--crossfading`),S.appendChild(C),l(n),g.current=[setTimeout(()=>{xT(S)},x.duration)]},[r]);let v=c&&!a?o.id:null,y=M(v);Me(()=>{if(v===null)return;let e=y.current;if(y.current=v,e===null||e===v)return;let t=h.current?.querySelector(`.passage`);t&&t.getBoundingClientRect().top<0&&t.scrollIntoView?.({block:`start`})},[v]);let b=a?i?.passages.get(`StoryLoading`)??null:c?i?.passages.get(c):null;if(!b&&c&&!a)return J(`div`,{class:`error`,children:[`Error: Passage “`,c,`” not found.`]});let x=i?.passages.get(`PassageReady`),S=!a&&o.id!==r&&m.current?m.current:b&&J(fT,{passage:b,dataTransition:a?`none`:u.current,navigationId:a?void 0:o.id},a?`loading`:`nav-${o.id}`);return m.current=S||null,J(`div`,{id:t.id??`story`,class:t.className??`story`,children:[!a&&x&&J(`div`,{hidden:!0,children:lT(x)},`ready-${r}`),J(`div`,{class:`passage-container`,ref:h,children:S&&J(Tc.Provider,{value:p,children:S})})]})}}),$({name:`watch`,parameters:[{name:`condition`,type:`string`,holds:`expression`,required:!0},{name:`options`,type:`options`,parameters:[{name:`goto`,type:`string`,holds:`passage`},{name:`dialog`,type:`string`,holds:`passage`},{name:`run`,type:`string`,holds:`statements`},{name:`name`,type:`string`,holds:`text`},{name:`priority`,type:`number`},{name:`once`,type:`flag`}]}],render(e,t){let{hooks:n}=t,{condition:r,options:i}=t.args;if(r===void 0)return null;let a=n.useContext(Tc),[,o]=n.useState(0);n.useEffect(()=>Vb(()=>o(e=>e+1)),[]);let s=n.useRef(null);return(s.current===null||s.current!==Bb()&&!a?.(Q.getState()))&&(s.current=Bb(),Tb(r,i)),null}}),$({name:`unwatch`,parameters:[{name:`name`,type:`text`,holds:`text`,required:!0}],render(e,t){let n=t.args.name??``,r=t.hooks.useRef(!1);return r.current||(r.current=!0,Ob(n)),null}});var CT=`*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:#e0e0e0;background-color:#1a1a2e;min-height:100vh;margin:0;padding:0;font-family:Georgia,Times New Roman,serif;line-height:1.75}tw-storydata{display:none!important}#story{max-width:42em;margin:0 auto;padding:2em 1.5em}.passage-container{position:relative}.passage-container--crossfading{display:grid}.passage-container--crossfading>*{grid-area:1/1}.passage{animation:passage-fade-in var(--passage-in-duration,.3s) ease}.passage[data-transition=none]{animation:none}.passage-snapshot{animation:passage-fade-out var(--passage-out-duration,.3s) ease forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes passage-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes passage-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.passage,.passage-snapshot{animation-duration:10ms!important}}.macro-button{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;font-size:.95em;transition:background .2s,border-color .2s}.macro-button:hover{background:#64b5f640;border-color:#90caf9}.macro-button:active{background:#64b5f659}.error{color:#ef5350;background:#ef53501a;border:1px solid #ef5350;border-radius:4px;padding:1em;font-family:monospace}.spindle-error-banners{z-index:300;flex-direction:column;gap:.5em;width:min(42em,100% - 1.5em);display:flex;position:fixed;top:.75em;left:50%;transform:translate(-50%)}.spindle-error-banner{color:#ffcdd2;background:#2b1a1e;border:1px solid #ef5350;border-radius:4px;padding:.75em 2.75em .75em 1em;font-size:.9em;line-height:1.5;position:relative;box-shadow:0 2px 12px #00000080}.spindle-error-banner-message{color:#ef9a9a;font-family:monospace}.spindle-error-banner-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;font-size:1em;position:absolute;top:.5em;right:.5em}.spindle-error-banner-dismiss:hover{color:#fff}.loading{text-align:center;opacity:.6;padding:2em}.story-menubar{z-index:100;background:#16213e;border-bottom:1px solid #ffffff14;align-items:center;gap:.5em;padding:.5em 1.5em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:.9em;display:flex;position:sticky;top:0}.story-title{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.menubar-button{color:#9e9e9e;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;padding:.35em .7em;transition:color .2s,background .2s}.menubar-button:hover{color:#e0e0e0;background:#ffffff14}.menubar-button:disabled{opacity:.4;cursor:default}.menubar-button:disabled:hover{color:#9e9e9e;background:0 0}.dialog-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog-panel{color:#e0e0e0;background:#16213e;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;width:90%;max-width:500px;max-height:80vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:flex;position:relative}.dialog-panel:focus{outline:none}.dialog-saves{max-width:550px}.dialog-settings{max-width:400px}.dialog-settings .dialog-body{padding-top:2.25em}.dialog-close{z-index:1;color:#9e9e9e;cursor:pointer;background:0 0;border:none;padding:.25em;font-size:1.1em;line-height:1;position:absolute;top:.75em;right:.75em}.dialog-close:hover{color:#e0e0e0}.dialog-body{flex:1;min-height:0;overflow-y:auto}.settings-controls{flex-direction:column;gap:1em;padding:1em 1.25em;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:1em;display:flex}.settings-row select,.settings-row input[type=range]{accent-color:#64b5f6}.settings-row select{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.settings-row input[type=checkbox]{accent-color:#64b5f6;width:1.1em;height:1.1em}.save-manager{flex-direction:column;flex:1;min-height:0;display:flex}.saves-header{border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:1em 3em 1em 1.25em;font-weight:600;display:flex}.saves-header-left{align-items:center;gap:.75em;display:flex}.saves-mode-toggle{border:1px solid #ffffff26;border-radius:4px;gap:0;display:flex;overflow:hidden}.saves-mode-toggle button{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:none;padding:.3em .8em;font-size:.85em;font-weight:600;transition:background .2s,color .2s}.saves-mode-toggle button.active{color:#64b5f6;background:#64b5f633}.saves-mode-toggle button:hover:not(.active){color:#e0e0e0}.saves-body{flex:1;min-height:0;padding:.75em 1.25em;overflow-y:auto}.saves-empty{text-align:center;opacity:.5;padding:2em 1em;font-size:.9em}.saves-toolbar{border-bottom:1px solid #ffffff14;flex-shrink:0;gap:.5em;padding:.5em 1.25em;display:flex}.saves-toolbar-button{color:#9e9e9e;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.3em .7em;font-size:.8em;transition:background .2s,color .2s}.saves-toolbar-button:hover{color:#e0e0e0;background:#ffffff1a}.playthrough-group{margin-bottom:.75em}.playthrough-header{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;color:#9e9e9e;background:0 0;border:0;align-items:center;gap:.5em;width:100%;padding:.4em 0;font-family:inherit;font-size:.85em;transition:color .2s;display:flex}.playthrough-header:hover{color:#e0e0e0}.playthrough-chevron{font-size:.7em;transition:transform .2s;display:inline-block}.playthrough-chevron.open{transform:rotate(90deg)}.playthrough-label{font-weight:600}.playthrough-date{opacity:.6;font-size:.9em}.playthrough-saves{flex-direction:column;gap:.4em;padding-left:.25em;display:flex}.save-slot{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:.75em;padding:.5em .6em;transition:background .15s;display:flex}.save-slot:hover{background:#ffffff0f}.save-slot-info{flex:1;min-width:0}.save-slot-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9em;font-weight:500;overflow:hidden}.save-slot-meta{color:#9e9e9e;gap:.75em;font-size:.75em;display:flex}.save-slot-actions{flex-shrink:0;gap:.3em;display:flex}.save-slot-action{color:#9e9e9e;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:.2em .5em;font-size:.75em;transition:color .2s,background .2s}.save-slot-action:hover{color:#e0e0e0;background:#ffffff14}.save-slot-action.primary{color:#64b5f6;border-color:#64b5f64d}.save-slot-action.primary:hover{background:#64b5f626}.save-slot-action.danger:hover{color:#ef5350;background:#ef53501a}.save-slot-new{color:#9e9e9e;font:inherit;cursor:pointer;background:0 0;border:1px dashed #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-top:.25em;padding:.5em;font-size:.8em;transition:color .2s,border-color .2s,background .2s;display:flex}.save-slot-new:hover{color:#64b5f6;background:#64b5f60d;border-color:#64b5f64d}.saves-notice{color:#ffb74d;background:#ffb74d14;border-bottom:1px solid #ffb74d4d;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status{color:#81c784;text-align:center;border-top:1px solid #ffffff14;flex-shrink:0;padding:.5em 1.25em;font-size:.8em}.saves-status.error{color:#ef5350;background:0 0;border:none;border-radius:0;padding:.5em 1.25em;font-family:inherit}.save-rename-input{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #64b5f666;border-radius:3px;width:100%;padding:.15em .4em;font-size:.9em}.save-rename-input:focus{border-color:#64b5f6;outline:none}.macro-link{color:#64b5f6;cursor:pointer;border-bottom:1px solid #64b5f64d;text-decoration:none;transition:color .2s,border-color .2s}.macro-link:hover{color:#90caf9;border-bottom-color:#90caf9}.macro-link:active{color:#42a5f5}.macro-textbox,.macro-numberbox,.macro-textarea{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-textbox:focus,.macro-numberbox:focus,.macro-textarea:focus{border-color:#64b5f6;outline:none}.macro-textarea{resize:vertical;min-height:3em}.macro-checkbox,.macro-radiobutton{cursor:pointer;align-items:center;gap:.3em;display:inline-flex}.macro-checkbox input,.macro-radiobutton input{accent-color:#64b5f6}.macro-listbox{color:#e0e0e0;font:inherit;background:#1a1a2e;border:1px solid #ffffff26;border-radius:4px;padding:.3em .5em}.macro-cycle{color:#64b5f6;font:inherit;cursor:pointer;background:#64b5f626;border:1px solid #64b5f666;border-radius:4px;padding:.25em .75em;transition:background .2s,border-color .2s}.macro-cycle:hover{background:#64b5f640;border-color:#90caf9}.macro-meter{background:#2a2a3e;border:1px solid #444;border-radius:.3em;width:100%;height:1.4em;position:relative;overflow:hidden}.macro-meter-fill{background:#64b5f6;height:100%;transition:width .3s}.macro-meter-label{color:#e0e0e0;text-shadow:0 1px 2px #000c;pointer-events:none;justify-content:center;align-items:center;font-size:.85em;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.md{display:contents}.passage p{margin:.6em 0}.passage p:first-child{margin-top:0}.passage p:last-child{margin-bottom:0}.passage h1,.passage h2,.passage h3,.passage h4,.passage h5,.passage h6{color:#f0f0f0;margin:1em 0 .4em;line-height:1.3}.passage h1{font-size:1.8em}.passage h2{font-size:1.5em}.passage h3{font-size:1.25em}.passage h4{font-size:1.1em}.passage h5{font-size:1em}.passage h6{opacity:.8;font-size:.9em}.passage code{background:#ffffff14;border-radius:3px;padding:.15em .35em;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.9em}.passage pre{background:#0000004d;border:1px solid #ffffff14;border-radius:6px;margin:.8em 0;padding:1em;overflow-x:auto}.passage pre code{background:0 0;border-radius:0;padding:0;font-size:.85em}.passage blockquote{color:#b0b0b0;border-left:3px solid #64b5f680;margin:.8em 0;padding:.4em 1em}.passage blockquote p{margin:.3em 0}.passage ul,.passage ol{margin:.6em 0;padding-left:1.8em}.passage li{margin:.2em 0}.passage hr{border:none;border-top:1px solid #ffffff1f;margin:1.2em 0}.passage table{border-collapse:collapse;width:100%;margin:.8em 0}.passage th,.passage td{text-align:left;border:1px solid #ffffff1f;padding:.5em .75em}.passage th{background:#ffffff0f;font-weight:600}.passage tr:nth-child(2n){background:#ffffff05}.passage del{opacity:.5}.passage strong{color:#f0f0f0}.macro-type-cursor:after{content:\"█\";color:#64b5f6;animation:.7s step-end infinite type-blink}.macro-type-done .macro-type-cursor:after{display:none}@keyframes type-blink{50%{opacity:0}}`;function wT(e,t){e.innerHTML=``;let n=document.createElement(`div`);n.style.cssText=`font-family:monospace;padding:2rem;max-width:60rem;margin:0 auto`;let r=document.createElement(`h1`);r.style.color=`#c00`,r.textContent=`Story Validation Errors`,n.appendChild(r);let i=document.createElement(`ul`);i.style.cssText=`line-height:1.6`;for(let e of t){let t=document.createElement(`li`);t.textContent=e,i.appendChild(t)}n.appendChild(i),e.appendChild(n)}function TT(e){let t=document.getElementById(`root`);throw t&&wT(t,e),Error(`spindle: ${e.length} validation error(s):\\n${e.join(`\n`)}`)}function ET(e,t){let n=Ol().filter(e=>e.storeVar).map(e=>e.name);return kw(e.passages,t,n)}function DT(e,t){let n=Ol();return uw(e.passages.values(),{isKnownMacro:e=>!!ml(e)||bl(e)||!!_s(e),macroNames:n.map(e=>e.name),parametersOf:JC(n),only:t}).map(iw)}function OT(){let e=RS(),t=document.createElement(`style`);if(t.id=`spindle-styles`,t.textContent=CT,document.head.appendChild(t),VC(),e.userCSS){let t=document.createElement(`style`);t.textContent=e.userCSS,document.head.appendChild(t)}if(e.userScript)try{Function(e.userScript)()}catch(e){console.error(`spindle: Error in story JavaScript:`,e)}document.dispatchEvent(new CustomEvent(`:storystartup`));let n={},r=e.passages.get(`StoryVariables`);if(!r){let e=`Missing StoryVariables passage. Add a :: StoryVariables passage to declare your variables.`,t=document.getElementById(`root`);throw t&&wT(t,[e]),Error(`spindle: ${e}`)}let i=vw(r.content);for(let t of _c(e.passages.values()))Sr(t);let a=ET(e,i);a.push(...DT(e,e=>e.name===`StoryInit`));let o={},s=e.passages.get(`StoryTransients`);if(s){let e=vw(s.content,`%`);for(let t of e.keys())i.has(t)&&a.push(`StoryTransients: Variable \"${t}\" is already declared in StoryVariables. Names must be unique across scopes.`);o=Aw(e)}a.length>0&&TT(a),n=Aw(i),FC(Object.keys(n),Object.keys(o)),Q.getState().init(e,n,o),Kx();for(let[,t]of e.passages)t.tags.includes(`widget`)&&yc(Zo(t.content),t.name);By(xy(e.ifid));let c=[...ET(e,i),...DT(e,e=>e.name!==`StoryInit`)];c.length>0&&TT(c);let l=Q.getState().navigationId;Q.subscribe(e=>{e.navigationId!==l&&(l=e.navigationId,pC())}),Fb();let u=e.passages.get(`StoryInterface`);u&&!u.content.includes(`{passage}`)&&console.warn(`spindle: StoryInterface passage does not contain {passage}. The current passage will not be displayed.`);let d=document.getElementById(`root`);if(!d)throw Error(`spindle: No <div id=\"root\"> element found.`);he(J(jS,{}),d);let f=kC();f?f.then(()=>{document.dispatchEvent(new CustomEvent(`:storyready`))}):document.dispatchEvent(new CustomEvent(`:storyready`))}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,OT):OT();</script>\n </head>\n <body>\n <div id=\"root\"></div>\n {{STORY_DATA}}\n </body>\n</html>\n"})
|