From 14c2da4fa20cfdddd44883c7501d49dbf73aec0d Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 10 Nov 2022 12:07:36 +0100 Subject: [PATCH] started refac repl to new scheduler + transpiler --- package-lock.json | 32 +- packages/core/cyclist.mjs | 17 +- packages/core/repl.mjs | 13 +- packages/core/zyklus.mjs | 3 +- packages/midi/midi.mjs | 8 +- packages/react/dist/index.cjs.js | 26 +- packages/react/dist/index.es.js | 5880 ++++++++++++++++++-- packages/react/package.json | 1 + packages/react/src/App.jsx | 2 +- packages/react/src/components/MiniRepl.jsx | 11 +- packages/react/src/hooks/useCycle.mjs | 86 - packages/react/src/hooks/useRepl.mjs | 150 - packages/react/src/hooks/useStrudel.mjs | 15 +- packages/react/src/index.js | 2 - repl/README.md | 14 + repl/src/App.jsx | 85 +- tutorial/MiniRepl.jsx | 2 +- 17 files changed, 5650 insertions(+), 697 deletions(-) delete mode 100644 packages/react/src/hooks/useCycle.mjs delete mode 100644 packages/react/src/hooks/useRepl.mjs diff --git a/package-lock.json b/package-lock.json index b3c2a24f..7aceb9e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12495,10 +12495,10 @@ }, "packages/midi": { "name": "@strudel.cycles/midi", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "tone": "^14.7.77", "webmidi": "^3.0.21" } @@ -12519,12 +12519,12 @@ }, "packages/mini": { "name": "@strudel.cycles/mini", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@strudel.cycles/core": "^0.3.2", "@strudel.cycles/eval": "^0.3.2", - "@strudel.cycles/tone": "^0.3.2" + "@strudel.cycles/tone": "^0.3.3" }, "devDependencies": { "peggy": "^2.0.1" @@ -12540,13 +12540,13 @@ }, "packages/react": { "name": "@strudel.cycles/react", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@codemirror/lang-javascript": "^6.1.1", "@strudel.cycles/core": "^0.3.2", "@strudel.cycles/eval": "^0.3.2", - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "@uiw/codemirror-themes": "^4.12.4", "@uiw/react-codemirror": "^4.12.4", "react-hook-inview": "^4.5.0" @@ -12621,11 +12621,11 @@ }, "packages/soundfonts": { "name": "@strudel.cycles/soundfonts", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@strudel.cycles/core": "^0.3.2", - "@strudel.cycles/webaudio": "^0.3.2", + "@strudel.cycles/webaudio": "^0.3.3", "sfumato": "^0.1.2", "soundfont2": "^0.4.0" }, @@ -12653,7 +12653,7 @@ }, "packages/tonal": { "name": "@strudel.cycles/tonal", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@strudel.cycles/core": "^0.3.2", @@ -12678,7 +12678,7 @@ }, "packages/tone": { "name": "@strudel.cycles/tone", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@strudel.cycles/core": "^0.3.2", @@ -12709,7 +12709,7 @@ }, "packages/webaudio": { "name": "@strudel.cycles/webaudio", - "version": "0.3.2", + "version": "0.3.3", "license": "AGPL-3.0-or-later", "dependencies": { "@strudel.cycles/core": "^0.3.2" @@ -14427,7 +14427,7 @@ "@strudel.cycles/midi": { "version": "file:packages/midi", "requires": { - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "tone": "^14.7.77", "webmidi": "^3.0.21" }, @@ -14448,7 +14448,7 @@ "requires": { "@strudel.cycles/core": "^0.3.2", "@strudel.cycles/eval": "^0.3.2", - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "peggy": "^2.0.1" } }, @@ -14464,7 +14464,7 @@ "@codemirror/lang-javascript": "^6.1.1", "@strudel.cycles/core": "^0.3.2", "@strudel.cycles/eval": "^0.3.2", - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "@uiw/codemirror-themes": "^4.12.4", @@ -14520,7 +14520,7 @@ "version": "file:packages/soundfonts", "requires": { "@strudel.cycles/core": "^0.3.2", - "@strudel.cycles/webaudio": "^0.3.2", + "@strudel.cycles/webaudio": "^0.3.3", "node-fetch": "^3.2.6", "sfumato": "^0.1.2", "soundfont2": "^0.4.0" @@ -20344,7 +20344,7 @@ "@codemirror/lang-javascript": "^6.1.1", "@strudel.cycles/core": "^0.3.2", "@strudel.cycles/eval": "^0.3.2", - "@strudel.cycles/tone": "^0.3.2", + "@strudel.cycles/tone": "^0.3.3", "@types/react": "^17.0.2", "@types/react-dom": "^17.0.2", "@uiw/codemirror-themes": "^4.12.4", diff --git a/packages/core/cyclist.mjs b/packages/core/cyclist.mjs index 66105d0a..32706b6b 100644 --- a/packages/core/cyclist.mjs +++ b/packages/core/cyclist.mjs @@ -13,8 +13,9 @@ export class Cyclist { cps = 1; // TODO getTime; phase = 0; - constructor({ interval, onTrigger, onError, getTime, latency = 0.1 }) { + constructor({ interval, onTrigger, onToggle, onError, getTime, latency = 0.1 }) { this.getTime = getTime; + this.onToggle = onToggle; const round = (x) => Math.round(x * 1000) / 1000; this.clock = createClock( getTime, @@ -28,9 +29,7 @@ export class Cyclist { const time = getTime(); try { const haps = this.pattern.queryArc(begin, end); // get Haps - // console.log('haps', haps.map((hap) => hap.value.n).join(' ')); haps.forEach((hap) => { - // console.log('hap', hap.value.n, hap.part.begin); if (hap.part.begin.equals(hap.whole.begin)) { const deadline = hap.whole.begin + this.origin - time + latency; const duration = hap.duration * 1; @@ -48,22 +47,26 @@ export class Cyclist { getPhase() { return this.phase; } + setStarted(v) { + this.started = v; + this.onToggle?.(v); + } start() { if (!this.pattern) { throw new Error('Scheduler: no pattern set! call .setPattern first.'); } this.clock.start(); - this.started = true; + this.setStarted(true); } pause() { this.clock.stop(); - delete this.origin; - this.started = false; + // delete this.origin; + this.setStarted(false); } stop() { delete this.origin; this.clock.stop(); - this.started = false; + this.setStarted(false); } setPattern(pat, autostart = false) { this.pattern = pat; diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs index 69a9255d..aa65802c 100644 --- a/packages/core/repl.mjs +++ b/packages/core/repl.mjs @@ -1,8 +1,17 @@ import { Cyclist } from './cyclist.mjs'; import { evaluate as _evaluate } from './evaluate.mjs'; -export function repl({ interval, defaultOutput, onSchedulerError, onEvalError, onEval, getTime, transpiler }) { - const scheduler = new Cyclist({ interval, onTrigger: defaultOutput, onError: onSchedulerError, getTime }); +export function repl({ + interval, + defaultOutput, + onSchedulerError, + onEvalError, + onEval, + getTime, + transpiler, + onToggle, +}) { + const scheduler = new Cyclist({ interval, onTrigger: defaultOutput, onError: onSchedulerError, getTime, onToggle }); const evaluate = async (code) => { if (!code) { throw new Error('no code to evaluate'); diff --git a/packages/core/zyklus.mjs b/packages/core/zyklus.mjs index 31a9533f..3d45b741 100644 --- a/packages/core/zyklus.mjs +++ b/packages/core/zyklus.mjs @@ -31,10 +31,11 @@ function createClock( }; let intervalID; const start = () => { + clear(); // just in case start was called more than once onTick(); intervalID = setInterval(onTick, interval * 1000); }; - const clear = () => clearInterval(intervalID); + const clear = () => intervalID !== undefined && clearInterval(intervalID); const pause = () => clear(); const stop = () => { tick = 0; diff --git a/packages/midi/midi.mjs b/packages/midi/midi.mjs index 41247dbf..b09d9996 100644 --- a/packages/midi/midi.mjs +++ b/packages/midi/midi.mjs @@ -4,10 +4,10 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { isNote } from 'tone'; import * as _WebMidi from 'webmidi'; -import { Pattern, isPattern } from '@strudel.cycles/core'; -import { Tone } from '@strudel.cycles/tone'; +import { Pattern, isPattern, isNote } from '@strudel.cycles/core'; +import { getAudioContext } from '@strudel.cycles/webaudio'; + // if you use WebMidi from outside of this package, make sure to import that instance: export const { WebMidi } = _WebMidi; @@ -68,7 +68,7 @@ Pattern.prototype.midi = function (output, channel = 1) { ); } // console.log('midi', value, output); - const timingOffset = WebMidi.time - Tone.getContext().currentTime * 1000; + const timingOffset = WebMidi.time - getAudioContext().currentTime * 1000; time = time * 1000 + timingOffset; // const inMs = '+' + (time - Tone.getContext().currentTime) * 1000; // await enableWebMidi() diff --git a/packages/react/dist/index.cjs.js b/packages/react/dist/index.cjs.js index f0471083..a6b66c92 100644 --- a/packages/react/dist/index.cjs.js +++ b/packages/react/dist/index.cjs.js @@ -1,3 +1,23 @@ -"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react"),Z=require("@uiw/react-codemirror"),S=require("@codemirror/view"),A=require("@codemirror/state"),ee=require("@codemirror/lang-javascript"),p=require("@lezer/highlight"),te=require("@uiw/codemirror-themes"),se=require("react-hook-inview"),B=require("@strudel.cycles/eval"),C=require("@strudel.cycles/tone"),z=require("@strudel.cycles/core"),oe=require("@strudel.cycles/webaudio"),T=require("@strudel.cycles/midi"),j=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},y=j(t),re=j(Z),ne=te.createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:p.tags.keyword,color:"#c792ea"},{tag:p.tags.operator,color:"#89ddff"},{tag:p.tags.special(p.tags.variableName),color:"#eeffff"},{tag:p.tags.typeName,color:"#f07178"},{tag:p.tags.atom,color:"#f78c6c"},{tag:p.tags.number,color:"#ff5370"},{tag:p.tags.definition(p.tags.variableName),color:"#82aaff"},{tag:p.tags.string,color:"#c3e88d"},{tag:p.tags.special(p.tags.string),color:"#f07178"},{tag:p.tags.comment,color:"#7d8799"},{tag:p.tags.variableName,color:"#f07178"},{tag:p.tags.tagName,color:"#ff5370"},{tag:p.tags.bracket,color:"#a2a1a4"},{tag:p.tags.meta,color:"#ffcb6b"},{tag:p.tags.attributeName,color:"#c792ea"},{tag:p.tags.propertyName,color:"#c792ea"},{tag:p.tags.className,color:"#decb6b"},{tag:p.tags.invalid,color:"#ffffff"}]});const W=A.StateEffect.define(),ae=A.StateField.define({create(){return S.Decoration.none},update(e,o){try{for(let r of o.effects)if(r.is(W))if(r.value){const n=S.Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});e=S.Decoration.set([n.range(0,o.newDoc.length)])}else e=S.Decoration.set([]);return e}catch(r){return console.warn("flash error",r),e}},provide:e=>S.EditorView.decorations.from(e)}),$=e=>{e.dispatch({effects:W.of(!0)}),setTimeout(()=>{e.dispatch({effects:W.of(!1)})},200)},P=A.StateEffect.define(),ce=A.StateField.define({create(){return S.Decoration.none},update(e,o){try{for(let r of o.effects)if(r.is(P)){const n=r.value.map(a=>(a.context.locations||[]).map(({start:l,end:c})=>{const s=a.context.color||"#FFCA28";let u=o.newDoc.line(l.line).from+l.column,i=o.newDoc.line(c.line).from+c.column;const g=o.newDoc.length;return u>g||i>g?void 0:S.Decoration.mark({attributes:{style:`outline: 1.5px solid ${s};`}}).range(u,i)})).flat().filter(Boolean)||[];e=S.Decoration.set(n,!0)}return e}catch{return S.Decoration.set([])}},provide:e=>S.EditorView.decorations.from(e)}),ie=[ee.javascript(),ne,ce,ae];function K({value:e,onChange:o,onViewChanged:r,onSelectionChange:n,options:a,editorDidMount:l}){const c=t.useCallback(i=>{o?.(i)},[o]),s=t.useCallback(i=>{r?.(i)},[r]),u=t.useCallback(i=>{i.selectionSet&&n&&n?.(i.state.selection)},[n]);return y.default.createElement(y.default.Fragment,null,y.default.createElement(re.default,{value:e,onChange:c,onCreateEditor:s,onUpdate:u,extensions:ie}))}function U(e){const{onEvent:o,onQuery:r,onSchedule:n,ready:a=!0,onDraw:l}=e,[c,s]=t.useState(!1),u=1,i=()=>Math.floor(C.Tone.getTransport().seconds/u),g=(h=i())=>{const M=new z.TimeSpan(h,h+1),v=r?.(new z.State(M))||[];n?.(v,h);const m=M.begin.valueOf();C.Tone.getTransport().cancel(m);const D=(h+1)*u-.5,_=Math.max(C.Tone.getTransport().seconds,D)+.1;C.Tone.getTransport().schedule(()=>{g(h+1)},_),v?.filter(E=>E.part.begin.equals(E.whole?.begin)).forEach(E=>{C.Tone.getTransport().schedule(x=>{o(x,E,C.Tone.getContext().currentTime),C.Tone.Draw.schedule(()=>{l?.(x,E)},x)},E.part.begin.valueOf())})};t.useEffect(()=>{a&&g()},[o,n,r,l,a]);const b=async()=>{s(!0),await C.Tone.start(),C.Tone.getTransport().start("+0.1")},f=()=>{C.Tone.getTransport().pause(),s(!1)};return{start:b,stop:f,onEvent:o,started:c,setStarted:s,toggle:()=>c?f():b(),query:g,activeCycle:i}}function Q(e){return t.useEffect(()=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e)),[e]),t.useCallback(o=>window.postMessage(o,"*"),[])}let le=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);const ue=e=>encodeURIComponent(btoa(e));function J({tune:e,autolink:o=!0,onEvent:r,onDraw:n}){const a=t.useMemo(()=>le(),[]),[l,c]=t.useState(e),[s,u]=t.useState(),[i,g]=t.useState(""),[b,f]=t.useState(),[k,h]=t.useState(!1),[M,v]=t.useState(""),[m,D]=t.useState(),_=t.useMemo(()=>l!==s||b,[l,s,b]),E=t.useCallback(w=>g(d=>d+`${d?` - -`:""}${w}`),[]),x=t.useMemo(()=>{if(s&&!s.includes("strudel disable-highlighting"))return(w,d)=>n?.(w,d,s)},[s,n]),L=t.useMemo(()=>s&&s.includes("strudel hide-header"),[s]),q=t.useMemo(()=>s&&s.includes("strudel hide-console"),[s]),R=U({onDraw:x,onEvent:t.useCallback((w,d,Y)=>{try{r?.(d),d.context.logs?.length&&d.context.logs.forEach(E);const{onTrigger:F=oe.webaudioOutputTrigger}=d.context;F(w,d,Y,1)}catch(F){console.warn(F),F.message="unplayable event: "+F?.message,E(F.message)}},[r,E]),onQuery:t.useCallback(w=>{try{return m?.query(w)||[]}catch(d){return console.warn(d),d.message="query error: "+d.message,f(d),[]}},[m]),onSchedule:t.useCallback((w,d)=>X(w),[]),ready:!!m&&!!s}),O=Q(({data:{from:w,type:d}})=>{d==="start"&&w!==a&&(R.setStarted(!1),u(void 0))}),I=t.useCallback(async(w=l)=>{if(s&&!_){f(void 0),R.start();return}try{h(!0);const d=await B.evaluate(w);R.start(),O({type:"start",from:a}),D(()=>d.pattern),o&&(window.location.hash="#"+encodeURIComponent(btoa(l))),v(ue(l)),f(void 0),u(w),h(!1)}catch(d){d.message="evaluation error: "+d.message,console.warn(d),f(d)}},[s,_,l,R,o,a,O]),X=(w,d)=>{w.length};return{hideHeader:L,hideConsole:q,pending:k,code:l,setCode:c,pattern:m,error:b,cycle:R,setPattern:D,dirty:_,log:i,togglePlay:()=>{R.started?R.stop():I()},setActiveCode:u,activateCode:I,activeCode:s,pushLog:E,hash:M}}function H(...e){return e.filter(Boolean).join(" ")}function G({view:e,pattern:o,active:r,getTime:n}){const a=t.useRef([]),l=t.useRef();t.useEffect(()=>{if(e)if(o&&r){let s=function(){try{const u=n(),g=[Math.max(l.current||u,u-1/10),u+1/60];l.current=u+1/60,a.current=a.current.filter(f=>f.whole.end>u);const b=o.queryArc(...g).filter(f=>f.hasOnset());a.current=a.current.concat(b),e.dispatch({effects:P.of(a.current)})}catch{e.dispatch({effects:P.of([])})}c=requestAnimationFrame(s)},c=requestAnimationFrame(s);return()=>{cancelAnimationFrame(c)}}else a.current=[],e.dispatch({effects:P.of([])})},[o,r,e])}const de="_container_3i85k_1",fe="_header_3i85k_5",ge="_buttons_3i85k_9",he="_button_3i85k_9",me="_buttonDisabled_3i85k_17",pe="_error_3i85k_21",be="_body_3i85k_25",N={container:de,header:fe,buttons:ge,button:he,buttonDisabled:me,error:pe,body:be};function V({type:e}){return y.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"sc-h-5 sc-w-5",viewBox:"0 0 20 20",fill:"currentColor"},{refresh:y.default.createElement("path",{fillRule:"evenodd",d:"M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z",clipRule:"evenodd"}),play:y.default.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z",clipRule:"evenodd"}),pause:y.default.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z",clipRule:"evenodd"})}[e])}function ye({tune:e,hideOutsideView:o=!1,init:r,onEvent:n,enableKeyboard:a}){const{code:l,setCode:c,pattern:s,activeCode:u,activateCode:i,evaluateOnly:g,error:b,cycle:f,dirty:k,togglePlay:h,stop:M}=J({tune:e,autolink:!1,onEvent:n});t.useEffect(()=>{r&&g()},[e,r]);const[v,m]=t.useState(),[D,_]=se.useInView({threshold:.01}),E=t.useRef(),x=t.useMemo(()=>((_||!o)&&(E.current=!0),_||E.current),[_,o]);return G({view:v,pattern:s,active:f.started&&!u?.includes("strudel disable-highlighting"),getTime:()=>C.Tone.getTransport().seconds}),t.useLayoutEffect(()=>{if(a){const L=async q=>{(q.ctrlKey||q.altKey)&&(q.code==="Enter"?(q.preventDefault(),$(v),await i()):q.code==="Period"&&(f.stop(),q.preventDefault()))};return window.addEventListener("keydown",L,!0),()=>window.removeEventListener("keydown",L,!0)}},[a,s,l,i,f,v]),y.default.createElement("div",{className:N.container,ref:D},y.default.createElement("div",{className:N.header},y.default.createElement("div",{className:N.buttons},y.default.createElement("button",{className:H(N.button,f.started?"sc-animate-pulse":""),onClick:()=>h()},y.default.createElement(V,{type:f.started?"pause":"play"})),y.default.createElement("button",{className:H(k?N.button:N.buttonDisabled),onClick:()=>i()},y.default.createElement(V,{type:"refresh"}))),b&&y.default.createElement("div",{className:N.error},b.message)),y.default.createElement("div",{className:N.body},x&&y.default.createElement(K,{value:l,onChange:c,onViewChanged:m})))}function we(e,o,r=.05,n=.1,a=.1){let l=0,c=0,s=10**4,u=.01;const i=m=>r=m(r);a=a||n/2;const g=()=>{const m=e(),D=m+n+a;for(c===0&&(c=m+u);c=m&&o(c,r,l),c{g(),b=setInterval(g,n*1e3)},k=()=>clearInterval(b);return{setDuration:i,start:f,stop:()=>{l=0,c=0,k()},pause:()=>k(),duration:r,getPhase:()=>c}}class ve{worker;pattern;started=!1;cps=1;getTime;phase=0;constructor({interval:o,onTrigger:r,onError:n,getTime:a,latency:l=.1}){this.getTime=a;const c=s=>Math.round(s*1e3)/1e3;this.clock=we(a,(s,u,i)=>{i===0&&(this.origin=s);const g=c(s-this.origin);this.phase=g-l;const b=c(g+u),f=a();try{this.pattern.queryArc(g,b).forEach(h=>{if(h.part.begin.equals(h.whole.begin)){const M=h.whole.begin+this.origin-f+l,v=h.duration*1;r?.(h,M,v)}})}catch(k){console.warn("scheduler error",k),n?.(k)}},o)}getPhase(){return this.phase}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.clock.start(),this.started=!0}pause(){this.clock.stop(),delete this.origin,this.started=!1}stop(){delete this.origin,this.clock.stop(),this.started=!1}setPattern(o){this.pattern=o}setCps(o=1){this.cps=o}log(o,r,n){const a=n.filter(l=>l.hasOnset());console.log(`${o.toFixed(4)} - ${r.toFixed(4)} ${Array(a.length).fill("I").join("")}`)}}function Ee({defaultOutput:e,interval:o,getTime:r,code:n,evalOnMount:a=!1}){const[l,c]=t.useState(),[s,u]=t.useState(),[i,g]=t.useState(n),[b,f]=t.useState(),k=n!==i,h=t.useMemo(()=>new ve({interval:o,onTrigger:e,onError:c,getTime:r}),[e,o]),M=t.useCallback(async()=>{if(!n){console.log("no code..");return}try{const{pattern:m}=await B.evaluate(n);g(n),h?.setPattern(m),f(m),u()}catch(m){u(m),console.warn("eval error",m)}},[n,h]),v=t.useRef();return t.useEffect(()=>{!v.current&&a&&(v.current=!0,M())},[M,a]),{schedulerError:l,scheduler:h,evalError:s,evaluate:M,activeCode:i,isDirty:k,pattern:b}}const ke=e=>t.useLayoutEffect(()=>(window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)),[e]);function Me(e){const{ready:o,connected:r,disconnected:n}=e,[a,l]=t.useState(!0),[c,s]=t.useState(T.WebMidi?.outputs||[]);return t.useEffect(()=>{T.enableWebMidi().then(()=>{T.WebMidi.addListener("connected",i=>{s([...T.WebMidi.outputs]),r?.(T.WebMidi,i)}),T.WebMidi.addListener("disconnected",i=>{s([...T.WebMidi.outputs]),n?.(T.WebMidi,i)}),o?.(T.WebMidi),l(!1)}).catch(i=>{if(i){console.error(i),console.warn("Web Midi could not be enabled..");return}})},[o,r,n,c]),{loading:a,outputs:c,outputByName:i=>T.WebMidi.getOutputByName(i)}}exports.CodeMirror=K;exports.MiniRepl=ye;exports.cx=H;exports.flash=$;exports.useCycle=U;exports.useHighlighting=G;exports.useKeydown=ke;exports.usePostMessage=Q;exports.useRepl=J;exports.useStrudel=Ee;exports.useWebMidi=Me; +"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const ie=require("react"),gr=require("@uiw/react-codemirror"),Be=require("@codemirror/view"),dt=require("@codemirror/state"),mr=require("@codemirror/lang-javascript"),re=require("@lezer/highlight"),Cr=require("@uiw/codemirror-themes");require("react-hook-inview");require("@strudel.cycles/webaudio");const di=require("@strudel.cycles/core"),Se=require("@strudel.cycles/midi"),Di=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function Ar(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const u=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,u.get?u:{enumerable:!0,get:()=>e[i]})}}return t.default=e,Object.freeze(t)}const ot=Di(ie),Er=Di(gr),Fr=Ar(di),vr=Cr.createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:re.tags.keyword,color:"#c792ea"},{tag:re.tags.operator,color:"#89ddff"},{tag:re.tags.special(re.tags.variableName),color:"#eeffff"},{tag:re.tags.typeName,color:"#f07178"},{tag:re.tags.atom,color:"#f78c6c"},{tag:re.tags.number,color:"#ff5370"},{tag:re.tags.definition(re.tags.variableName),color:"#82aaff"},{tag:re.tags.string,color:"#c3e88d"},{tag:re.tags.special(re.tags.string),color:"#f07178"},{tag:re.tags.comment,color:"#7d8799"},{tag:re.tags.variableName,color:"#f07178"},{tag:re.tags.tagName,color:"#ff5370"},{tag:re.tags.bracket,color:"#a2a1a4"},{tag:re.tags.meta,color:"#ffcb6b"},{tag:re.tags.attributeName,color:"#c792ea"},{tag:re.tags.propertyName,color:"#c792ea"},{tag:re.tags.className,color:"#decb6b"},{tag:re.tags.invalid,color:"#ffffff"}]});const wt=dt.StateEffect.define(),xr=dt.StateField.define({create(){return Be.Decoration.none},update(e,t){try{for(let i of t.effects)if(i.is(wt))if(i.value){const u=Be.Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});e=Be.Decoration.set([u.range(0,t.newDoc.length)])}else e=Be.Decoration.set([]);return e}catch(i){return console.warn("flash error",i),e}},provide:e=>Be.EditorView.decorations.from(e)}),yr=e=>{e.dispatch({effects:wt.of(!0)}),setTimeout(()=>{e.dispatch({effects:wt.of(!1)})},200)},lt=dt.StateEffect.define(),br=dt.StateField.define({create(){return Be.Decoration.none},update(e,t){try{for(let i of t.effects)if(i.is(lt)){const u=i.value.map(n=>(n.context.locations||[]).map(({start:c,end:a})=>{const f=n.context.color||"#FFCA28";let p=t.newDoc.line(c.line).from+c.column,D=t.newDoc.line(a.line).from+a.column;const g=t.newDoc.length;return p>g||D>g?void 0:Be.Decoration.mark({attributes:{style:`outline: 1.5px solid ${f};`}}).range(p,D)})).flat().filter(Boolean)||[];e=Be.Decoration.set(u,!0)}return e}catch{return Be.Decoration.set([])}},provide:e=>Be.EditorView.decorations.from(e)}),Sr=[mr.javascript(),vr,br,xr];function Br({value:e,onChange:t,onViewChanged:i,onSelectionChange:u,options:n,editorDidMount:c}){const a=ie.useCallback(D=>{t?.(D)},[t]),f=ie.useCallback(D=>{i?.(D)},[i]),p=ie.useCallback(D=>{D.selectionSet&&u&&u?.(D.state.selection)},[u]);return ot.default.createElement(ot.default.Fragment,null,ot.default.createElement(Er.default,{value:e,onChange:a,onCreateEditor:f,onUpdate:p,extensions:Sr}))}function _r(...e){return e.filter(Boolean).join(" ")}function wr({view:e,pattern:t,active:i,getTime:u}){const n=ie.useRef([]),c=ie.useRef();ie.useEffect(()=>{if(e)if(t&&i){let f=function(){try{const p=u(),g=[Math.max(c.current||p,p-1/10),p+1/60];c.current=p+1/60,n.current=n.current.filter(m=>m.whole.end>p);const F=t.queryArc(...g).filter(m=>m.hasOnset());n.current=n.current.concat(F),e.dispatch({effects:lt.of(n.current)})}catch{e.dispatch({effects:lt.of([])})}a=requestAnimationFrame(f)},a=requestAnimationFrame(f);return()=>{cancelAnimationFrame(a)}}else n.current=[],e.dispatch({effects:lt.of([])})},[t,i,e])}function kr({tune:e,hideOutsideView:t=!1,init:i,onEvent:u,enableKeyboard:n}){return ot.default.createElement("p",null,"TODO")}function Ir(e){return ie.useEffect(()=>(window.addEventListener("message",e),()=>window.removeEventListener("message",e)),[e]),ie.useCallback(t=>window.postMessage(t,"*"),[])}function Pr(e,t,i=.05,u=.1,n=.1){let c=0,a=0,f=10**4,p=.01;const D=P=>i=P(i);n=n||u/2;const g=()=>{const P=e(),I=P+u+n;for(a===0&&(a=P+p);a=P&&t(a,i,c),a{A(),g(),F=setInterval(g,u*1e3)},A=()=>F!==void 0&&clearInterval(F);return{setDuration:D,start:m,stop:()=>{c=0,a=0,A()},pause:()=>A(),duration:i,getPhase:()=>a}}class Lr{worker;pattern;started=!1;cps=1;getTime;phase=0;constructor({interval:t,onTrigger:i,onToggle:u,onError:n,getTime:c,latency:a=.1}){this.getTime=c,this.onToggle=u;const f=p=>Math.round(p*1e3)/1e3;this.clock=Pr(c,(p,D,g)=>{g===0&&(this.origin=p);const F=f(p-this.origin);this.phase=F-a;const m=f(F+D),A=c();try{this.pattern.queryArc(F,m).forEach(C=>{if(C.part.begin.equals(C.whole.begin)){const x=C.whole.begin+this.origin-A+a,P=C.duration*1;i?.(C,x,P)}})}catch(v){console.warn("scheduler error",v),n?.(v)}},t)}getPhase(){return this.phase}setStarted(t){this.started=t,this.onToggle?.(t)}start(){if(!this.pattern)throw new Error("Scheduler: no pattern set! call .setPattern first.");this.clock.start(),this.setStarted(!0)}pause(){this.clock.stop(),this.setStarted(!1)}stop(){delete this.origin,this.clock.stop(),this.setStarted(!1)}setPattern(t,i=!1){this.pattern=t,i&&!this.started&&this.start()}setCps(t=1){this.cps=t}log(t,i,u){const n=u.filter(c=>c.hasOnset());console.log(`${t.toFixed(4)} - ${i.toFixed(4)} ${Array(n.length).fill("I").join("")}`)}}const{isPattern:Nr,Pattern:Tr}=Fr;let kt=!1;const Mr=async(...e)=>{kt&&console.warn("evalScope was called more than once."),kt=!0;const t=await Promise.allSettled(e),i=t.filter(u=>u.status==="fulfilled").map(u=>u.value);t.forEach((u,n)=>{u.status==="rejected"&&console.warn(`evalScope: module with index ${n} could not be loaded:`,u.reason)}),Object.assign(globalThis,...i,Tr.prototype.bootstrap())};function Rr(e,t={}){const{wrapExpression:i=!0,wrapAsync:u=!0}=t;i&&(e=`{${e}}`),u&&(e=`(async ()=>${e})()`);const n=`"use strict";return (${e})`;return Function(n)()}const Or=async(e,t)=>{kt||await Mr(),t&&(e=t(e));let u=await Rr(e,{wrapExpression:!!t});if(!Nr(u)){console.log("evaluated",u);const n=`got "${typeof u}" instead of pattern`;throw new Error(n+(typeof u=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:u}};function Vr({interval:e,defaultOutput:t,onSchedulerError:i,onEvalError:u,onEval:n,getTime:c,transpiler:a,onToggle:f}){const p=new Lr({interval:e,onTrigger:t,onError:i,getTime:c,onToggle:f});return{scheduler:p,evaluate:async g=>{if(!g)throw new Error("no code to evaluate");try{const{pattern:F}=await Or(g,a);p.setPattern(F,!0),n?.({pattern:F,code:g})}catch(F){console.warn(`eval error: ${F.message}`),u?.(F)}}}}var qr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},gi={},mi={};(function(e){(function t(i){var u,n,c,a,f,p;function D(E){var S={},B,w;for(B in E)E.hasOwnProperty(B)&&(w=E[B],typeof w=="object"&&w!==null?S[B]=D(w):S[B]=w);return S}function g(E,S){var B,w,U,T;for(w=E.length,U=0;w;)B=w>>>1,T=U+B,S(E[T])?w=B:(U=T+1,w-=B+1);return U}u={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},c={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},a={},f={},p={},n={Break:a,Skip:f,Remove:p};function F(E,S){this.parent=E,this.key=S}F.prototype.replace=function(S){this.parent[this.key]=S},F.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function m(E,S,B,w){this.node=E,this.path=S,this.wrap=B,this.ref=w}function A(){}A.prototype.path=function(){var S,B,w,U,T,G;function q(M,K){if(Array.isArray(K))for(w=0,U=K.length;w=0;--B)if(E[B].node===S)return!0;return!1}A.prototype.traverse=function(S,B){var w,U,T,G,q,M,K,te,se,ee,Y,me;for(this.__initialize(S,B),me={},w=this.__worklist,U=this.__leavelist,w.push(new m(S,null,null,null)),U.push(new m(null,null,null,null));w.length;){if(T=w.pop(),T===me){if(T=U.pop(),M=this.__execute(B.leave,T),this.__state===a||M===a)return;continue}if(T.node){if(M=this.__execute(B.enter,T),this.__state===a||M===a)return;if(w.push(me),U.push(T),this.__state===f||M===f)continue;if(G=T.node,q=G.type||T.wrap,ee=this.__keys[q],!ee)if(this.__fallback)ee=this.__fallback(G);else throw new Error("Unknown node type "+q+".");for(te=ee.length;(te-=1)>=0;)if(K=ee[te],Y=G[K],!!Y){if(Array.isArray(Y)){for(se=Y.length;(se-=1)>=0;)if(!!Y[se]&&!x(U,Y[se])){if(C(q,ee[te]))T=new m(Y[se],[K,se],"Property",null);else if(v(Y[se]))T=new m(Y[se],[K,se],null,null);else continue;w.push(T)}}else if(v(Y)){if(x(U,Y))continue;w.push(new m(Y,K,null,null))}}}}},A.prototype.replace=function(S,B){var w,U,T,G,q,M,K,te,se,ee,Y,me,ye;function N(Te){var ze,He,Z,De;if(Te.ref.remove()){for(He=Te.ref.key,De=Te.ref.parent,ze=w.length;ze--;)if(Z=w[ze],Z.ref&&Z.ref.parent===De){if(Z.ref.key=0;)if(ye=se[K],ee=T[ye],!!ee)if(Array.isArray(ee)){for(te=ee.length;(te-=1)>=0;)if(!!ee[te]){if(C(G,se[K]))M=new m(ee[te],[ye,te],"Property",new F(ee,te));else if(v(ee[te]))M=new m(ee[te],[ye,te],null,new F(ee,te));else continue;w.push(M)}}else v(ee)&&w.push(new m(ee,ye,null,new F(T,ye)))}}return me.root};function P(E,S){var B=new A;return B.traverse(E,S)}function I(E,S){var B=new A;return B.replace(E,S)}function O(E,S){var B;return B=g(S,function(U){return U.range[0]>E.range[0]}),E.extendedRange=[E.range[0],E.range[1]],B!==S.length&&(E.extendedRange[1]=S[B].range[0]),B-=1,B>=0&&(E.extendedRange[0]=S[B].range[1]),E}function y(E,S,B){var w=[],U,T,G,q;if(!E.range)throw new Error("attachComments needs range information");if(!B.length){if(S.length){for(G=0,T=S.length;GM.range[0]));)K.extendedRange[1]===M.range[0]?(M.leadingComments||(M.leadingComments=[]),M.leadingComments.push(K),w.splice(q,1)):q+=1;if(q===w.length)return n.Break;if(w[q].extendedRange[0]>M.range[1])return n.Skip}}),q=0,P(E,{leave:function(M){for(var K;qM.range[1])return n.Skip}}),E}return i.Syntax=u,i.traverse=P,i.replace=I,i.attachComments=y,i.VisitorKeys=c,i.VisitorOption=n,i.Controller=A,i.cloneEnvironment=function(){return t({})},i})(e)})(mi);var ct={},Ci={exports:{}};(function(){function e(a){if(a==null)return!1;switch(a.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function t(a){if(a==null)return!1;switch(a.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function i(a){if(a==null)return!1;switch(a.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function u(a){return i(a)||a!=null&&a.type==="FunctionDeclaration"}function n(a){switch(a.type){case"IfStatement":return a.alternate!=null?a.alternate:a.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return a.body}return null}function c(a){var f;if(a.type!=="IfStatement"||a.alternate==null)return!1;f=a.consequent;do{if(f.type==="IfStatement"&&f.alternate==null)return!0;f=n(f)}while(f);return!1}Ci.exports={isExpression:e,isStatement:i,isIterationStatement:t,isSourceElement:u,isProblematicIfStatement:c,trailingStatement:n}})();var Nt={exports:{}};(function(){var e,t,i,u,n,c;t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},e={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function a(x){return 48<=x&&x<=57}function f(x){return 48<=x&&x<=57||97<=x&&x<=102||65<=x&&x<=70}function p(x){return x>=48&&x<=55}i=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function D(x){return x===32||x===9||x===11||x===12||x===160||x>=5760&&i.indexOf(x)>=0}function g(x){return x===10||x===13||x===8232||x===8233}function F(x){if(x<=65535)return String.fromCharCode(x);var P=String.fromCharCode(Math.floor((x-65536)/1024)+55296),I=String.fromCharCode((x-65536)%1024+56320);return P+I}for(u=new Array(128),c=0;c<128;++c)u[c]=c>=97&&c<=122||c>=65&&c<=90||c===36||c===95;for(n=new Array(128),c=0;c<128;++c)n[c]=c>=97&&c<=122||c>=65&&c<=90||c>=48&&c<=57||c===36||c===95;function m(x){return x<128?u[x]:t.NonAsciiIdentifierStart.test(F(x))}function A(x){return x<128?n[x]:t.NonAsciiIdentifierPart.test(F(x))}function v(x){return x<128?u[x]:e.NonAsciiIdentifierStart.test(F(x))}function C(x){return x<128?n[x]:e.NonAsciiIdentifierPart.test(F(x))}Nt.exports={isDecimalDigit:a,isHexDigit:f,isOctalDigit:p,isWhiteSpace:D,isLineTerminator:g,isIdentifierStartES5:m,isIdentifierPartES5:A,isIdentifierStartES6:v,isIdentifierPartES6:C}})();var Ai={exports:{}};(function(){var e=Nt.exports;function t(m){switch(m){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function i(m,A){return!A&&m==="yield"?!1:u(m,A)}function u(m,A){if(A&&t(m))return!0;switch(m.length){case 2:return m==="if"||m==="in"||m==="do";case 3:return m==="var"||m==="for"||m==="new"||m==="try";case 4:return m==="this"||m==="else"||m==="case"||m==="void"||m==="with"||m==="enum";case 5:return m==="while"||m==="break"||m==="catch"||m==="throw"||m==="const"||m==="yield"||m==="class"||m==="super";case 6:return m==="return"||m==="typeof"||m==="delete"||m==="switch"||m==="export"||m==="import";case 7:return m==="default"||m==="finally"||m==="extends";case 8:return m==="function"||m==="continue"||m==="debugger";case 10:return m==="instanceof";default:return!1}}function n(m,A){return m==="null"||m==="true"||m==="false"||i(m,A)}function c(m,A){return m==="null"||m==="true"||m==="false"||u(m,A)}function a(m){return m==="eval"||m==="arguments"}function f(m){var A,v,C;if(m.length===0||(C=m.charCodeAt(0),!e.isIdentifierStartES5(C)))return!1;for(A=1,v=m.length;A=v||(x=m.charCodeAt(A),!(56320<=x&&x<=57343)))return!1;C=p(C,x)}if(!P(C))return!1;P=e.isIdentifierPartES6}return!0}function g(m,A){return f(m)&&!n(m,A)}function F(m,A){return D(m)&&!c(m,A)}Ai.exports={isKeywordES5:i,isKeywordES6:u,isReservedWordES5:n,isReservedWordES6:c,isRestrictedWord:a,isIdentifierNameES5:f,isIdentifierNameES6:D,isIdentifierES5:g,isIdentifierES6:F}})();(function(){ct.ast=Ci.exports,ct.code=Nt.exports,ct.keyword=Ai.exports})();var Ke={},At={},st={},at={},$t;function jr(){if($t)return at;$t=1;var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");return at.encode=function(t){if(0<=t&&t>1;return p?-D:D}return st.encode=function(p){var D="",g,F=c(p);do g=F&u,F>>>=t,F>0&&(g|=n),D+=e.encode(g);while(F>0);return D},st.decode=function(p,D,g){var F=p.length,m=0,A=0,v,C;do{if(D>=F)throw new Error("Expected more digits in base 64 VLQ value.");if(C=e.decode(p.charCodeAt(D++)),C===-1)throw new Error("Invalid base64 digit: "+p.charAt(D-1));v=!!(C&n),C&=u,m=m+(C<=0;G--)U=w[G],U==="."?w.splice(G,1):U===".."?T++:T>0&&(U===""?(w.splice(G+1,T),T=0):(w.splice(G,2),T--));return E=w.join("/"),E===""&&(E=B?"/":"."),S?(S.path=E,c(S)):E}e.normalize=a;function f(y,E){y===""&&(y="."),E===""&&(E=".");var S=n(E),B=n(y);if(B&&(y=B.path||"/"),S&&!S.scheme)return B&&(S.scheme=B.scheme),c(S);if(S||E.match(u))return E;if(B&&!B.host&&!B.path)return B.host=E,c(B);var w=E.charAt(0)==="/"?E:a(y.replace(/\/+$/,"")+"/"+E);return B?(B.path=w,c(B)):w}e.join=f,e.isAbsolute=function(y){return y.charAt(0)==="/"||i.test(y)};function p(y,E){y===""&&(y="."),y=y.replace(/\/$/,"");for(var S=0;E.indexOf(y+"/")!==0;){var B=y.lastIndexOf("/");if(B<0||(y=y.slice(0,B),y.match(/^([^\/]+:\/)?\/*$/)))return E;++S}return Array(S+1).join("../")+E.substr(y.length+1)}e.relative=p;var D=function(){var y=Object.create(null);return!("__proto__"in y)}();function g(y){return y}function F(y){return A(y)?"$"+y:y}e.toSetString=D?g:F;function m(y){return A(y)?y.slice(1):y}e.fromSetString=D?g:m;function A(y){if(!y)return!1;var E=y.length;if(E<9||y.charCodeAt(E-1)!==95||y.charCodeAt(E-2)!==95||y.charCodeAt(E-3)!==111||y.charCodeAt(E-4)!==116||y.charCodeAt(E-5)!==111||y.charCodeAt(E-6)!==114||y.charCodeAt(E-7)!==112||y.charCodeAt(E-8)!==95||y.charCodeAt(E-9)!==95)return!1;for(var S=E-10;S>=0;S--)if(y.charCodeAt(S)!==36)return!1;return!0}function v(y,E,S){var B=x(y.source,E.source);return B!==0||(B=y.originalLine-E.originalLine,B!==0)||(B=y.originalColumn-E.originalColumn,B!==0||S)||(B=y.generatedColumn-E.generatedColumn,B!==0)||(B=y.generatedLine-E.generatedLine,B!==0)?B:x(y.name,E.name)}e.compareByOriginalPositions=v;function C(y,E,S){var B=y.generatedLine-E.generatedLine;return B!==0||(B=y.generatedColumn-E.generatedColumn,B!==0||S)||(B=x(y.source,E.source),B!==0)||(B=y.originalLine-E.originalLine,B!==0)||(B=y.originalColumn-E.originalColumn,B!==0)?B:x(y.name,E.name)}e.compareByGeneratedPositionsDeflated=C;function x(y,E){return y===E?0:y===null?1:E===null?-1:y>E?1:-1}function P(y,E){var S=y.generatedLine-E.generatedLine;return S!==0||(S=y.generatedColumn-E.generatedColumn,S!==0)||(S=x(y.source,E.source),S!==0)||(S=y.originalLine-E.originalLine,S!==0)||(S=y.originalColumn-E.originalColumn,S!==0)?S:x(y.name,E.name)}e.compareByGeneratedPositionsInflated=P;function I(y){return JSON.parse(y.replace(/^\)]}'[^\n]*\n/,""))}e.parseSourceMapInput=I;function O(y,E,S){if(E=E||"",y&&(y[y.length-1]!=="/"&&E[0]!=="/"&&(y+="/"),E=y+E),S){var B=n(S);if(!B)throw new Error("sourceMapURL could not be parsed");if(B.path){var w=B.path.lastIndexOf("/");w>=0&&(B.path=B.path.substring(0,w+1))}E=f(c(B),E)}return a(E)}e.computeSourceURL=O}(Et)),Et}var Ft={},ti;function Fi(){if(ti)return Ft;ti=1;var e=Je(),t=Object.prototype.hasOwnProperty,i=typeof Map<"u";function u(){this._array=[],this._set=i?new Map:Object.create(null)}return u.fromArray=function(c,a){for(var f=new u,p=0,D=c.length;p=0)return a}else{var f=e.toSetString(c);if(t.call(this._set,f))return this._set[f]}throw new Error('"'+c+'" is not in the set.')},u.prototype.at=function(c){if(c>=0&&cc||a==c&&p>=f||e.compareByGeneratedPositionsInflated(u,n)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}return i.prototype.unsortedForEach=function(n,c){this._array.forEach(n,c)},i.prototype.add=function(n){t(this._last,n)?(this._last=n,this._array.push(n)):(this._sorted=!1,this._array.push(n))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(e.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},vt.MappingList=i,vt}var ri;function vi(){if(ri)return At;ri=1;var e=Ei(),t=Je(),i=Fi().ArraySet,u=Ur().MappingList;function n(c){c||(c={}),this._file=t.getArg(c,"file",null),this._sourceRoot=t.getArg(c,"sourceRoot",null),this._skipValidation=t.getArg(c,"skipValidation",!1),this._sources=new i,this._names=new i,this._mappings=new u,this._sourcesContents=null}return n.prototype._version=3,n.fromSourceMap=function(a){var f=a.sourceRoot,p=new n({file:a.file,sourceRoot:f});return a.eachMapping(function(D){var g={generated:{line:D.generatedLine,column:D.generatedColumn}};D.source!=null&&(g.source=D.source,f!=null&&(g.source=t.relative(f,g.source)),g.original={line:D.originalLine,column:D.originalColumn},D.name!=null&&(g.name=D.name)),p.addMapping(g)}),a.sources.forEach(function(D){var g=D;f!==null&&(g=t.relative(f,D)),p._sources.has(g)||p._sources.add(g);var F=a.sourceContentFor(D);F!=null&&p.setSourceContent(D,F)}),p},n.prototype.addMapping=function(a){var f=t.getArg(a,"generated"),p=t.getArg(a,"original",null),D=t.getArg(a,"source",null),g=t.getArg(a,"name",null);this._skipValidation||this._validateMapping(f,p,D,g),D!=null&&(D=String(D),this._sources.has(D)||this._sources.add(D)),g!=null&&(g=String(g),this._names.has(g)||this._names.add(g)),this._mappings.add({generatedLine:f.line,generatedColumn:f.column,originalLine:p!=null&&p.line,originalColumn:p!=null&&p.column,source:D,name:g})},n.prototype.setSourceContent=function(a,f){var p=a;this._sourceRoot!=null&&(p=t.relative(this._sourceRoot,p)),f!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[t.toSetString(p)]=f):this._sourcesContents&&(delete this._sourcesContents[t.toSetString(p)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(a,f,p){var D=f;if(f==null){if(a.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);D=a.file}var g=this._sourceRoot;g!=null&&(D=t.relative(g,D));var F=new i,m=new i;this._mappings.unsortedForEach(function(A){if(A.source===D&&A.originalLine!=null){var v=a.originalPositionFor({line:A.originalLine,column:A.originalColumn});v.source!=null&&(A.source=v.source,p!=null&&(A.source=t.join(p,A.source)),g!=null&&(A.source=t.relative(g,A.source)),A.originalLine=v.line,A.originalColumn=v.column,v.name!=null&&(A.name=v.name))}var C=A.source;C!=null&&!F.has(C)&&F.add(C);var x=A.name;x!=null&&!m.has(x)&&m.add(x)},this),this._sources=F,this._names=m,a.sources.forEach(function(A){var v=a.sourceContentFor(A);v!=null&&(p!=null&&(A=t.join(p,A)),g!=null&&(A=t.relative(g,A)),this.setSourceContent(A,v))},this)},n.prototype._validateMapping=function(a,f,p,D){if(f&&typeof f.line!="number"&&typeof f.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(a&&"line"in a&&"column"in a&&a.line>0&&a.column>=0&&!f&&!p&&!D)){if(a&&"line"in a&&"column"in a&&f&&"line"in f&&"column"in f&&a.line>0&&a.column>=0&&f.line>0&&f.column>=0&&p)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:a,source:p,original:f,name:D}))}},n.prototype._serializeMappings=function(){for(var a=0,f=1,p=0,D=0,g=0,F=0,m="",A,v,C,x,P=this._mappings.toArray(),I=0,O=P.length;I0){if(!t.compareByGeneratedPositionsInflated(v,P[I-1]))continue;A+=","}A+=e.encode(v.generatedColumn-a),a=v.generatedColumn,v.source!=null&&(x=this._sources.indexOf(v.source),A+=e.encode(x-F),F=x,A+=e.encode(v.originalLine-1-D),D=v.originalLine-1,A+=e.encode(v.originalColumn-p),p=v.originalColumn,v.name!=null&&(C=this._names.indexOf(v.name),A+=e.encode(C-g),g=C)),m+=A}return m},n.prototype._generateSourcesContent=function(a,f){return a.map(function(p){if(!this._sourcesContents)return null;f!=null&&(p=t.relative(f,p));var D=t.toSetString(p);return Object.prototype.hasOwnProperty.call(this._sourcesContents,D)?this._sourcesContents[D]:null},this)},n.prototype.toJSON=function(){var a={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(a.file=this._file),this._sourceRoot!=null&&(a.sourceRoot=this._sourceRoot),this._sourcesContents&&(a.sourcesContent=this._generateSourcesContent(a.sources,a.sourceRoot)),a},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},At.SourceMapGenerator=n,At}var Ye={},xt={},ui;function Wr(){return ui||(ui=1,function(e){e.GREATEST_LOWER_BOUND=1,e.LEAST_UPPER_BOUND=2;function t(i,u,n,c,a,f){var p=Math.floor((u-i)/2)+i,D=a(n,c[p],!0);return D===0?p:D>0?u-p>1?t(p,u,n,c,a,f):f==e.LEAST_UPPER_BOUND?u1?t(i,p,n,c,a,f):f==e.LEAST_UPPER_BOUND?p:i<0?-1:i}e.search=function(u,n,c,a){if(n.length===0)return-1;var f=t(-1,n.length,u,n,c,a||e.GREATEST_LOWER_BOUND);if(f<0)return-1;for(;f-1>=0&&c(n[f],n[f-1],!0)===0;)--f;return f}}(xt)),xt}var yt={},ni;function Gr(){if(ni)return yt;ni=1;function e(u,n,c){var a=u[n];u[n]=u[c],u[c]=a}function t(u,n){return Math.round(u+Math.random()*(n-u))}function i(u,n,c,a){if(c=0){var C=this._originalMappings[v];if(g.column===void 0)for(var x=C.originalLine;C&&C.originalLine===x;)A.push({line:e.getArg(C,"generatedLine",null),column:e.getArg(C,"generatedColumn",null),lastColumn:e.getArg(C,"lastGeneratedColumn",null)}),C=this._originalMappings[++v];else for(var P=C.originalColumn;C&&C.originalLine===F&&C.originalColumn==P;)A.push({line:e.getArg(C,"generatedLine",null),column:e.getArg(C,"generatedColumn",null),lastColumn:e.getArg(C,"lastGeneratedColumn",null)}),C=this._originalMappings[++v]}return A},Ye.SourceMapConsumer=c;function a(D,g){var F=D;typeof D=="string"&&(F=e.parseSourceMapInput(D));var m=e.getArg(F,"version"),A=e.getArg(F,"sources"),v=e.getArg(F,"names",[]),C=e.getArg(F,"sourceRoot",null),x=e.getArg(F,"sourcesContent",null),P=e.getArg(F,"mappings"),I=e.getArg(F,"file",null);if(m!=this._version)throw new Error("Unsupported version: "+m);C&&(C=e.normalize(C)),A=A.map(String).map(e.normalize).map(function(O){return C&&e.isAbsolute(C)&&e.isAbsolute(O)?e.relative(C,O):O}),this._names=i.fromArray(v.map(String),!0),this._sources=i.fromArray(A,!0),this._absoluteSources=this._sources.toArray().map(function(O){return e.computeSourceURL(C,O,g)}),this.sourceRoot=C,this.sourcesContent=x,this._mappings=P,this._sourceMapURL=g,this.file=I}a.prototype=Object.create(c.prototype),a.prototype.consumer=c,a.prototype._findSourceIndex=function(D){var g=D;if(this.sourceRoot!=null&&(g=e.relative(this.sourceRoot,g)),this._sources.has(g))return this._sources.indexOf(g);var F;for(F=0;F1&&(w.source=x+T[1],x+=T[1],w.originalLine=v+T[2],v=w.originalLine,w.originalLine+=1,w.originalColumn=C+T[3],C=w.originalColumn,T.length>4&&(w.name=P+T[4],P+=T[4])),B.push(w),typeof w.originalLine=="number"&&S.push(w)}n(B,e.compareByGeneratedPositionsDeflated),this.__generatedMappings=B,n(S,e.compareByOriginalPositions),this.__originalMappings=S},a.prototype._findMapping=function(g,F,m,A,v,C){if(g[m]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+g[m]);if(g[A]<0)throw new TypeError("Column must be greater than or equal to 0, got "+g[A]);return t.search(g,F,v,C)},a.prototype.computeColumnSpans=function(){for(var g=0;g=0){var A=this._generatedMappings[m];if(A.generatedLine===F.generatedLine){var v=e.getArg(A,"source",null);v!==null&&(v=this._sources.at(v),v=e.computeSourceURL(this.sourceRoot,v,this._sourceMapURL));var C=e.getArg(A,"name",null);return C!==null&&(C=this._names.at(C)),{source:v,line:e.getArg(A,"originalLine",null),column:e.getArg(A,"originalColumn",null),name:C}}}return{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(g){return g==null}):!1},a.prototype.sourceContentFor=function(g,F){if(!this.sourcesContent)return null;var m=this._findSourceIndex(g);if(m>=0)return this.sourcesContent[m];var A=g;this.sourceRoot!=null&&(A=e.relative(this.sourceRoot,A));var v;if(this.sourceRoot!=null&&(v=e.urlParse(this.sourceRoot))){var C=A.replace(/^file:\/\//,"");if(v.scheme=="file"&&this._sources.has(C))return this.sourcesContent[this._sources.indexOf(C)];if((!v.path||v.path=="/")&&this._sources.has("/"+A))return this.sourcesContent[this._sources.indexOf("/"+A)]}if(F)return null;throw new Error('"'+A+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(g){var F=e.getArg(g,"source");if(F=this._findSourceIndex(F),F<0)return{line:null,column:null,lastColumn:null};var m={source:F,originalLine:e.getArg(g,"line"),originalColumn:e.getArg(g,"column")},A=this._findMapping(m,this._originalMappings,"originalLine","originalColumn",e.compareByOriginalPositions,e.getArg(g,"bias",c.GREATEST_LOWER_BOUND));if(A>=0){var v=this._originalMappings[A];if(v.source===m.source)return{line:e.getArg(v,"generatedLine",null),column:e.getArg(v,"generatedColumn",null),lastColumn:e.getArg(v,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},Ye.BasicSourceMapConsumer=a;function p(D,g){var F=D;typeof D=="string"&&(F=e.parseSourceMapInput(D));var m=e.getArg(F,"version"),A=e.getArg(F,"sections");if(m!=this._version)throw new Error("Unsupported version: "+m);this._sources=new i,this._names=new i;var v={line:-1,column:0};this._sections=A.map(function(C){if(C.url)throw new Error("Support for url field in sections not implemented.");var x=e.getArg(C,"offset"),P=e.getArg(x,"line"),I=e.getArg(x,"column");if(P=0;p--)this.prepend(f[p]);else if(f[n]||typeof f=="string")this.children.unshift(f);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+f);return this},c.prototype.walk=function(f){for(var p,D=0,g=this.children.length;D0){for(p=[],D=0;D=6.0"},iu=[{name:"Yusuke Suzuki",email:"utatane.tea@gmail.com",web:"http://github.com/Constellation"}],ru={type:"git",url:"http://github.com/estools/escodegen.git"},uu={estraverse:"^5.2.0",esutils:"^2.0.2",esprima:"^4.0.1",optionator:"^0.8.1"},nu={"source-map":"~0.6.1"},su={acorn:"^7.3.1",bluebird:"^3.4.7","bower-registry-client":"^1.0.0",chai:"^4.2.0","chai-exclude":"^2.0.2","commonjs-everywhere":"^0.9.7",gulp:"^3.8.10","gulp-eslint":"^3.0.1","gulp-mocha":"^3.0.1",semver:"^5.1.0"},au="BSD-2-Clause",ou={test:"gulp travis","unit-test":"gulp test",lint:"gulp lint",release:"node tools/release.js","build-min":"./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js",build:"./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js"},lu={name:Kr,description:Yr,homepage:Xr,main:Zr,bin:$r,files:Jr,version:eu,engines:tu,maintainers:iu,repository:ru,dependencies:uu,optionalDependencies:nu,devDependencies:su,license:au,scripts:ou};(function(e){(function(){var t,i,u,n,c,a,f,p,D,g,F,m,A,v,C,x,P,I,O,y,E,S,B,w,U,T;c=mi,a=ct,t=c.Syntax;function G(r){return ne.Expression.hasOwnProperty(r.type)}function q(r){return ne.Statement.hasOwnProperty(r.type)}i={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponentiation:13,Await:14,Unary:14,Postfix:15,OptionalChaining:16,Call:17,New:18,TaggedTemplate:19,Member:20,Primary:21},u={"||":i.LogicalOR,"&&":i.LogicalAND,"|":i.BitwiseOR,"^":i.BitwiseXOR,"&":i.BitwiseAND,"==":i.Equality,"!=":i.Equality,"===":i.Equality,"!==":i.Equality,is:i.Equality,isnt:i.Equality,"<":i.Relational,">":i.Relational,"<=":i.Relational,">=":i.Relational,in:i.Relational,instanceof:i.Relational,"<<":i.BitwiseSHIFT,">>":i.BitwiseSHIFT,">>>":i.BitwiseSHIFT,"+":i.Additive,"-":i.Additive,"*":i.Multiplicative,"%":i.Multiplicative,"/":i.Multiplicative,"**":i.Exponentiation};var M=1,K=1<<1,te=1<<2,se=1<<3,ee=1<<4,Y=1<<5,me=K|te,ye=M|K,N=M|K|te,Te=M,ze=te,He=M|te,Z=M,De=M|Y,rt=0,ir=M|ee,rr=M|se;function Wt(){return{indent:null,base:null,parse:null,comment:!1,format:{indent:{style:" ",base:0,adjustMultilineComment:!1},newline:` +`,space:" ",json:!1,renumber:!1,hexadecimal:!1,quotes:"single",escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null,sourceCode:null}}function Me(r,o){var s="";for(o|=0;o>0;o>>>=1,r+=r)o&1&&(s+=r);return s}function ur(r){return/[\r\n]/g.test(r)}function ce(r){var o=r.length;return o&&a.code.isLineTerminator(r.charCodeAt(o-1))}function Gt(r,o){var s;for(s in o)o.hasOwnProperty(s)&&(r[s]=o[s]);return r}function ut(r,o){var s,l;function d(b){return typeof b=="object"&&b instanceof Object&&!(b instanceof RegExp)}for(s in o)o.hasOwnProperty(s)&&(l=o[s],d(l)?d(r[s])?ut(r[s],l):r[s]=ut({},l):r[s]=l);return r}function nr(r){var o,s,l,d,b;if(r!==r)throw new Error("Numeric literal whose value is NaN");if(r<0||r===0&&1/r<0)throw new Error("Numeric literal whose value is negative");if(r===1/0)return D?"null":g?"1e400":"1e+400";if(o=""+r,!g||o.length<3)return o;for(s=o.indexOf("."),!D&&o.charCodeAt(0)===48&&s===1&&(s=0,o=o.slice(1)),l=o,o=o.replace("e+","e"),d=0,(b=l.indexOf("e"))>0&&(d=+l.slice(b+1),l=l.slice(0,b)),s>=0&&(d-=l.length-s-1,l=+(l.slice(0,s)+l.slice(s+1))+""),b=0;l.charCodeAt(l.length+b-1)===48;)--b;return b!==0&&(d-=b,l=l.slice(0,b)),d!==0&&(l+="e"+d),(l.length1e12&&Math.floor(r)===r&&(l="0x"+r.toString(16)).length255?"\\u"+"0000".slice(s.length)+s:r===0&&!a.code.isDecimalDigit(o)?"\\0":r===11?"\\x0B":"\\x"+"00".slice(s.length)+s)}function or(r){if(r===92)return"\\\\";if(r===10)return"\\n";if(r===13)return"\\r";if(r===8232)return"\\u2028";if(r===8233)return"\\u2029";throw new Error("Incorrectly classified character")}function lr(r){var o,s,l,d;for(d=m==="double"?'"':"'",o=0,s=r.length;o126))){o+=ar(d,r.charCodeAt(s+1));continue}o+=String.fromCharCode(d)}if(k=!(m==="double"||m==="auto"&&_=0&&!a.code.isLineTerminator(r.charCodeAt(o));--o);return r.length-1-o}function fr(r,o){var s,l,d,b,_,k,L,H;for(s=r.split(/\r\n|[\r\n]/),k=Number.MAX_VALUE,l=1,d=s.length;l_&&(k=_)}for(typeof o<"u"?(L=f,s[1][k]==="*"&&(o+=" "),f=o):(k&1&&--k,L=f),l=1,d=s.length;l0){if(b=o,w){for(d=r.leadingComments[0],o=[],H=d.extendedRange,oe=d.range,qe=B.substring(H[0],oe[0]),be=(qe.match(/\n/g)||[]).length,be>0?(o.push(Me(` +`,be)),o.push(fe(we(d)))):(o.push(qe),o.push(we(d))),Re=oe,s=1,l=r.leadingComments.length;s0?(o.push(Me(` +`,be)),o.push(fe(we(d)))):(o.push(qe),o.push(we(d)));else for(_=!ce($(o).toString()),k=Me(" ",hr($([f,o,p]).toString())),s=0,l=r.trailingComments.length;s")),r.expression?(o.push(C),s=this.generateExpression(r.body,i.Assignment,N),s.toString().charAt(0)==="{"&&(s=["(",s,")"]),o.push(s)):o.push(this.maybeBlock(r.body,rr)),o},ne.prototype.generateIterationForStatement=function(r,o,s){var l=["for"+(o.await?he()+"await":"")+C+"("],d=this;return ue(function(){o.left.type===t.VariableDeclaration?ue(function(){l.push(o.left.kind+he()),l.push(d.generateStatement(o.left.declarations[0],rt))}):l.push(d.generateExpression(o.left,i.Call,N)),l=j(l,r),l=[j(l,d.generateExpression(o.right,i.Assignment,N)),")"]}),l.push(this.maybeBlock(o.body,s)),l},ne.prototype.generatePropertyKey=function(r,o){var s=[];return o&&s.push("["),s.push(this.generateExpression(r,i.Assignment,N)),o&&s.push("]"),s},ne.prototype.generateAssignment=function(r,o,s,l,d){return i.Assignment2&&(l=B.substring(s[0]+1,s[1]-1),l[0]===` +`&&(d=["{"]),d.push(l)));var _,k,L,H;for(H=Z,o&se&&(H|=ee),_=0,k=r.body.length;_0&&!r.body[_-1].trailingComments&&!r.body[_].leadingComments&&Ve(r.body[_-1].range[1],r.body[_].range[0],d)),_===k-1&&(H|=Y),r.body[_].leadingComments&&w?L=b.generateStatement(r.body[_],H):L=fe(b.generateStatement(r.body[_],H)),d.push(L),ce($(L).toString())||w&&_1?ue(L):L(),s.push(this.semicolon(o)),s},ThrowStatement:function(r,o){return[j("throw",this.generateExpression(r.argument,i.Sequence,N)),this.semicolon(o)]},TryStatement:function(r,o){var s,l,d,b;if(s=["try",this.maybeBlock(r.block,Z)],s=this.maybeBlockSuffix(r.block,s),r.handlers)for(l=0,d=r.handlers.length;l0?` +`:""],_=ir,d=0;d0&&!r.body[d-1].trailingComments&&!r.body[d].leadingComments&&Ve(r.body[d-1].range[1],r.body[d].range[0],s)),l=fe(this.generateStatement(r.body[d],_)),s.push(l),d+10){for(l.push("("),b=0,_=d;b<_;++b)l.push(this.generateExpression(r.arguments[b],i.Assignment,N)),b+1<_&&l.push(","+C);l.push(")")}return ae(l,i.New,o)},MemberExpression:function(r,o,s){var l,d;return l=[this.generateExpression(r.object,i.Call,s&K?ye:Te)],r.computed?(r.optional&&l.push("?."),l.push("["),l.push(this.generateExpression(r.property,i.Sequence,s&K?N:He)),l.push("]")):(!r.optional&&r.object.type===t.Literal&&typeof r.object.value=="number"&&(d=$(l).toString(),d.indexOf(".")<0&&!/[eExX]/.test(d)&&a.code.isDecimalDigit(d.charCodeAt(d.length-1))&&!(d.length>=2&&d.charCodeAt(0)===48)&&l.push(" ")),l.push(r.optional?"?.":"."),l.push(ge(r.property))),ae(l,i.Member,o)},MetaProperty:function(r,o,s){var l;return l=[],l.push(typeof r.meta=="string"?r.meta:ge(r.meta)),l.push("."),l.push(typeof r.property=="string"?r.property:ge(r.property)),ae(l,i.Member,o)},UnaryExpression:function(r,o,s){var l,d,b,_,k;return d=this.generateExpression(r.argument,i.Unary,N),C===""?l=j(r.operator,d):(l=[r.operator],r.operator.length>2?l=j(l,d):(_=$(l).toString(),k=_.charCodeAt(_.length-1),b=d.toString().charCodeAt(0),((k===43||k===45)&&k===b||a.code.isIdentifierPartES5(k)&&a.code.isIdentifierPartES5(b))&&l.push(he()),l.push(d))),ae(l,i.Unary,o)},YieldExpression:function(r,o,s){var l;return r.delegate?l="yield*":l="yield",r.argument&&(l=j(l,this.generateExpression(r.argument,i.Yield,N))),ae(l,i.Yield,o)},AwaitExpression:function(r,o,s){var l=j(r.all?"await*":"await",this.generateExpression(r.argument,i.Await,N));return ae(l,i.Await,o)},UpdateExpression:function(r,o,s){return r.prefix?ae([r.operator,this.generateExpression(r.argument,i.Unary,N)],i.Unary,o):ae([this.generateExpression(r.argument,i.Postfix,N),r.operator],i.Postfix,o)},FunctionExpression:function(r,o,s){var l=[Qe(r,!0),"function"];return r.id?(l.push(nt(r)||he()),l.push(ge(r.id))):l.push(nt(r)||C),l.push(this.generateFunctionBody(r)),l},ArrayPattern:function(r,o,s){return this.ArrayExpression(r,o,s,!0)},ArrayExpression:function(r,o,s,l){var d,b,_=this;return r.elements.length?(b=l?!1:r.elements.length>1,d=["[",b?v:""],ue(function(k){var L,H;for(L=0,H=r.elements.length;L1,ue(function(){b=_.generateExpression(r.properties[0],i.Sequence,N)}),!l&&!ur($(b).toString())?["{",C,b,C,"}"]:(ue(function(k){var L,H;if(d=["{",v,k,b],l)for(d.push(","+v),L=1,H=r.properties.length;L0||y.moz.comprehensionExpressionStartsWithAssignment?l=j(l,_):l.push(_)}),r.filter&&(l=j(l,"if"+C),_=this.generateExpression(r.filter,i.Sequence,N),l=j(l,["(",_,")"])),y.moz.comprehensionExpressionStartsWithAssignment||(_=this.generateExpression(r.body,i.Assignment,N),l=j(l,_)),l.push(r.type===t.GeneratorExpression?")":"]"),l},ComprehensionBlock:function(r,o,s){var l;return r.left.type===t.VariableDeclaration?l=[r.left.kind,he(),this.generateStatement(r.left.declarations[0],rt)]:l=this.generateExpression(r.left,i.Call,N),l=j(l,r.of?"of":"in"),l=j(l,this.generateExpression(r.right,i.Sequence,N)),["for"+C+"(",l,")"]},SpreadElement:function(r,o,s){return["...",this.generateExpression(r.argument,i.Assignment,N)]},TaggedTemplateExpression:function(r,o,s){var l=ye;s&K||(l=Te);var d=[this.generateExpression(r.tag,i.Call,l),this.generateExpression(r.quasi,i.Primary,ze)];return ae(d,i.TaggedTemplate,o)},TemplateElement:function(r,o,s){return r.value.raw},TemplateLiteral:function(r,o,s){var l,d,b;for(l=["`"],d=0,b=r.quasis.length;de)return!1;if(i+=t[u+1],i>=e)return!0}}function Ie(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&du.test(String.fromCharCode(e)):t===!1?!1:It(e,xi)}function je(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&&Du.test(String.fromCharCode(e)):t===!1?!1:It(e,xi)||It(e,cu)}var X=function(t,i){i===void 0&&(i={}),this.label=t,this.keyword=i.keyword,this.beforeExpr=!!i.beforeExpr,this.startsExpr=!!i.startsExpr,this.isLoop=!!i.isLoop,this.isAssign=!!i.isAssign,this.prefix=!!i.prefix,this.postfix=!!i.postfix,this.binop=i.binop||null,this.updateContext=null};function Ce(e,t){return new X(e,{beforeExpr:!0,binop:t})}var Ae={beforeExpr:!0},de={startsExpr:!0},Tt={};function Q(e,t){return t===void 0&&(t={}),t.keyword=e,Tt[e]=new X(e,t)}var h={num:new X("num",de),regexp:new X("regexp",de),string:new X("string",de),name:new X("name",de),privateId:new X("privateId",de),eof:new X("eof"),bracketL:new X("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new X("]"),braceL:new X("{",{beforeExpr:!0,startsExpr:!0}),braceR:new X("}"),parenL:new X("(",{beforeExpr:!0,startsExpr:!0}),parenR:new X(")"),comma:new X(",",Ae),semi:new X(";",Ae),colon:new X(":",Ae),dot:new X("."),question:new X("?",Ae),questionDot:new X("?."),arrow:new X("=>",Ae),template:new X("template"),invalidTemplate:new X("invalidTemplate"),ellipsis:new X("...",Ae),backQuote:new X("`",de),dollarBraceL:new X("${",{beforeExpr:!0,startsExpr:!0}),eq:new X("=",{beforeExpr:!0,isAssign:!0}),assign:new X("_=",{beforeExpr:!0,isAssign:!0}),incDec:new X("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new X("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ce("||",1),logicalAND:Ce("&&",2),bitwiseOR:Ce("|",3),bitwiseXOR:Ce("^",4),bitwiseAND:Ce("&",5),equality:Ce("==/!=/===/!==",6),relational:Ce("/<=/>=",7),bitShift:Ce("<>/>>>",8),plusMin:new X("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ce("%",10),star:Ce("*",10),slash:Ce("/",10),starstar:new X("**",{beforeExpr:!0}),coalesce:Ce("??",1),_break:Q("break"),_case:Q("case",Ae),_catch:Q("catch"),_continue:Q("continue"),_debugger:Q("debugger"),_default:Q("default",Ae),_do:Q("do",{isLoop:!0,beforeExpr:!0}),_else:Q("else",Ae),_finally:Q("finally"),_for:Q("for",{isLoop:!0}),_function:Q("function",de),_if:Q("if"),_return:Q("return",Ae),_switch:Q("switch"),_throw:Q("throw",Ae),_try:Q("try"),_var:Q("var"),_const:Q("const"),_while:Q("while",{isLoop:!0}),_with:Q("with"),_new:Q("new",{beforeExpr:!0,startsExpr:!0}),_this:Q("this",de),_super:Q("super",de),_class:Q("class",de),_extends:Q("extends",Ae),_export:Q("export"),_import:Q("import",de),_null:Q("null",de),_true:Q("true",de),_false:Q("false",de),_in:Q("in",{beforeExpr:!0,binop:7}),_instanceof:Q("instanceof",{beforeExpr:!0,binop:7}),_typeof:Q("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Q("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Q("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Fe=/\r\n?|\n|\u2028|\u2029/,gu=new RegExp(Fe.source,"g");function Ue(e){return e===10||e===13||e===8232||e===8233}function bi(e,t,i){i===void 0&&(i=e.length);for(var u=t;u>10)+55296,(e&1023)+56320))}var Au=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,Ze=function(t,i){this.line=t,this.column=i};Ze.prototype.offset=function(t){return new Ze(this.line,this.column+t)};var Dt=function(t,i,u){this.start=i,this.end=u,t.sourceFile!==null&&(this.source=t.sourceFile)};function _i(e,t){for(var i=1,u=0;;){var n=bi(e,u,t);if(n<0)return new Ze(i,t-u);++i,u=n}}var Pt={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},ci=!1;function Eu(e){var t={};for(var i in Pt)t[i]=e&&et(e,i)?e[i]:Pt[i];if(t.ecmaVersion==="latest"?t.ecmaVersion=1e8:t.ecmaVersion==null?(!ci&&typeof console=="object"&&console.warn&&(ci=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required. +Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),e.allowHashBang==null&&(t.allowHashBang=t.ecmaVersion>=14),li(t.onToken)){var u=t.onToken;t.onToken=function(n){return u.push(n)}}return li(t.onComment)&&(t.onComment=Fu(t,t.onComment)),t}function Fu(e,t){return function(i,u,n,c,a,f){var p={type:i?"Block":"Line",value:u,start:n,end:c};e.locations&&(p.loc=new Dt(this,a,f)),e.ranges&&(p.range=[n,c]),t.push(p)}}var $e=1,We=2,Mt=4,wi=8,ki=16,Ii=32,Rt=64,Pi=128,tt=256,Ot=$e|We|tt;function Vt(e,t){return We|(e?Mt:0)|(t?wi:0)}var ht=0,qt=1,ke=2,Li=3,Ni=4,Ti=5,le=function(t,i,u){this.options=t=Eu(t),this.sourceFile=t.sourceFile,this.keywords=Oe(fu[t.ecmaVersion>=6?6:t.sourceType==="module"?"5module":5]);var n="";t.allowReserved!==!0&&(n=St[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType==="module"&&(n+=" await")),this.reservedWords=Oe(n);var c=(n?n+" ":"")+St.strict;this.reservedWordsStrict=Oe(c),this.reservedWordsStrictBind=Oe(c+" "+St.strictBind),this.input=String(i),this.containsEsc=!1,u?(this.pos=u,this.lineStart=this.input.lastIndexOf(` +`,u-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Fe).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=h.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=t.sourceType==="module",this.strict=this.inModule||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&&t.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope($e),this.regexpState=null,this.privateNameStack=[]},_e={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};le.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)};_e.inFunction.get=function(){return(this.currentVarScope().flags&We)>0};_e.inGenerator.get=function(){return(this.currentVarScope().flags&wi)>0&&!this.currentVarScope().inClassFieldInit};_e.inAsync.get=function(){return(this.currentVarScope().flags&Mt)>0&&!this.currentVarScope().inClassFieldInit};_e.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&tt)return!1;if(t.flags&We)return(t.flags&Mt)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};_e.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&Rt)>0||i||this.options.allowSuperOutsideMethod};_e.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Pi)>0};_e.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};_e.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&(We|tt))>0||i};_e.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&tt)>0};le.extend=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];for(var u=this,n=0;n=,?^&]/.test(n)||n==="!"&&this.input.charAt(u+1)==="=")}e+=t[0].length,Ee.lastIndex=e,e+=Ee.exec(this.input)[0].length,this.input[e]===";"&&e++}};pe.eat=function(e){return this.type===e?(this.next(),!0):!1};pe.isContextual=function(e){return this.type===h.name&&this.value===e&&!this.containsEsc};pe.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1};pe.expectContextual=function(e){this.eatContextual(e)||this.unexpected()};pe.canInsertSemicolon=function(){return this.type===h.eof||this.type===h.braceR||Fe.test(this.input.slice(this.lastTokEnd,this.start))};pe.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};pe.semicolon=function(){!this.eat(h.semi)&&!this.insertSemicolon()&&this.unexpected()};pe.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0};pe.expect=function(e){this.eat(e)||this.unexpected()};pe.unexpected=function(e){this.raise(e??this.start,"Unexpected token")};var gt=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};pe.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var i=t?e.parenthesizedAssign:e.parenthesizedBind;i>-1&&this.raiseRecoverable(i,t?"Assigning to rvalue":"Parenthesized pattern")}};pe.checkExpressionErrors=function(e,t){if(!e)return!1;var i=e.shorthandAssign,u=e.doubleProto;if(!t)return i>=0||u>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),u>=0&&this.raiseRecoverable(u,"Redefinition of __proto__ property")};pe.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&u<56320)return!0;if(e)return!1;if(u===123)return!0;if(Ie(u,!0)){for(var n=i+1;je(u=this.input.charCodeAt(n),!0);)++n;if(u===92||u>55295&&u<56320)return!0;var c=this.input.slice(i,n);if(!pu.test(c))return!0}return!1};V.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;Ee.lastIndex=this.pos;var e=Ee.exec(this.input),t=this.pos+e[0].length,i;return!Fe.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)==="function"&&(t+8===this.input.length||!(je(i=this.input.charCodeAt(t+8))||i>55295&&i<56320))};V.parseStatement=function(e,t,i){var u=this.type,n=this.startNode(),c;switch(this.isLet(e)&&(u=h._var,c="let"),u){case h._break:case h._continue:return this.parseBreakContinueStatement(n,u.keyword);case h._debugger:return this.parseDebuggerStatement(n);case h._do:return this.parseDoStatement(n);case h._for:return this.parseForStatement(n);case h._function:return e&&(this.strict||e!=="if"&&e!=="label")&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(n,!1,!e);case h._class:return e&&this.unexpected(),this.parseClass(n,!0);case h._if:return this.parseIfStatement(n);case h._return:return this.parseReturnStatement(n);case h._switch:return this.parseSwitchStatement(n);case h._throw:return this.parseThrowStatement(n);case h._try:return this.parseTryStatement(n);case h._const:case h._var:return c=c||this.value,e&&c!=="var"&&this.unexpected(),this.parseVarStatement(n,c);case h._while:return this.parseWhileStatement(n);case h._with:return this.parseWithStatement(n);case h.braceL:return this.parseBlock(!0,n);case h.semi:return this.parseEmptyStatement(n);case h._export:case h._import:if(this.options.ecmaVersion>10&&u===h._import){Ee.lastIndex=this.pos;var a=Ee.exec(this.input),f=this.pos+a[0].length,p=this.input.charCodeAt(f);if(p===40||p===46)return this.parseExpressionStatement(n,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'")),u===h._import?this.parseImport(n):this.parseExport(n,i);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(n,!0,!e);var D=this.value,g=this.parseExpression();return u===h.name&&g.type==="Identifier"&&this.eat(h.colon)?this.parseLabeledStatement(n,D,g,e):this.parseExpressionStatement(n,g)}};V.parseBreakContinueStatement=function(e,t){var i=t==="break";this.next(),this.eat(h.semi)||this.insertSemicolon()?e.label=null:this.type!==h.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var u=0;u=6?this.eat(h.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(jt),this.enterScope(0),this.expect(h.parenL),this.type===h.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var i=this.isLet();if(this.type===h._var||this.type===h._const||i){var u=this.startNode(),n=i?"let":this.value;return this.next(),this.parseVar(u,!0,n),this.finishNode(u,"VariableDeclaration"),(this.type===h._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&u.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===h._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,u)):(t>-1&&this.unexpected(t),this.parseFor(e,u))}var c=this.isContextual("let"),a=!1,f=new gt,p=this.parseExpression(t>-1?"await":!0,f);return this.type===h._in||(a=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===h._in?t>-1&&this.unexpected(t):e.await=t>-1),c&&a&&this.raise(p.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(p,!1,f),this.checkLValPattern(p),this.parseForIn(e,p)):(this.checkExpressionErrors(f,!0),t>-1&&this.unexpected(t),this.parseFor(e,p))};V.parseFunctionStatement=function(e,t,i){return this.next(),this.parseFunction(e,Xe|(i?0:Lt),!1,t)};V.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(h._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")};V.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,"'return' outside of function"),this.next(),this.eat(h.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(h.braceL),this.labels.push(xu),this.enterScope(0);for(var t,i=!1;this.type!==h.braceR;)if(this.type===h._case||this.type===h._default){var u=this.type===h._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),u?t.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,t.test=null),this.expect(h.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(),Fe.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 yu=[];V.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===h._catch){var t=this.startNode();if(this.next(),this.eat(h.parenL)){t.param=this.parseBindingAtom();var i=t.param.type==="Identifier";this.enterScope(i?Ii:0),this.checkLValPattern(t.param,i?Ni:ke),this.expect(h.parenR)}else 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(h._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){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")};V.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(jt),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,i,u){for(var n=0,c=this.labels;n=0;p--){var D=this.labels[p];if(D.statementStart===e.start)D.statementStart=this.start,D.kind=f;else break}return this.labels.push({name:t,kind:f,statementStart:this.start}),e.body=this.parseStatement(u?u.indexOf("label")===-1?u+"label":u:"label"),this.labels.pop(),e.label=i,this.finishNode(e,"LabeledStatement")};V.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")};V.parseBlock=function(e,t,i){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(h.braceL),e&&this.enterScope(0);this.type!==h.braceR;){var u=this.parseStatement(null);t.body.push(u)}return i&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")};V.parseFor=function(e,t){return e.init=t,this.expect(h.semi),e.test=this.type===h.semi?null:this.parseExpression(),this.expect(h.semi),e.update=this.type===h.parenR?null:this.parseExpression(),this.expect(h.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")};V.parseForIn=function(e,t){var i=this.type===h._in;return this.next(),t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!i||this.options.ecmaVersion<8||this.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(t.start,(i?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(h.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,i?"ForInStatement":"ForOfStatement")};V.parseVar=function(e,t,i){for(e.declarations=[],e.kind=i;;){var u=this.startNode();if(this.parseVarId(u,i),this.eat(h.eq)?u.init=this.parseMaybeAssign(t):i==="const"&&!(this.type===h._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():u.id.type!=="Identifier"&&!(t&&(this.type===h._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):u.init=null,e.declarations.push(this.finishNode(u,"VariableDeclarator")),!this.eat(h.comma))break}return e};V.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,t==="var"?qt:ke,!1)};var Xe=1,Lt=2,Mi=4;V.parseFunction=function(e,t,i,u,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!u)&&(this.type===h.star&&t&Lt&&this.unexpected(),e.generator=this.eat(h.star)),this.options.ecmaVersion>=8&&(e.async=!!u),t&Xe&&(e.id=t&Mi&&this.type!==h.name?null:this.parseIdent(),e.id&&!(t&Lt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?qt:ke:Li));var c=this.yieldPos,a=this.awaitPos,f=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Vt(e.async,e.generator)),t&Xe||(e.id=this.type===h.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,i,!1,n),this.yieldPos=c,this.awaitPos=a,this.awaitIdentPos=f,this.finishNode(e,t&Xe?"FunctionDeclaration":"FunctionExpression")};V.parseFunctionParams=function(e){this.expect(h.parenL),e.params=this.parseBindingList(h.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};V.parseClass=function(e,t){this.next();var i=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var u=this.enterClassBody(),n=this.startNode(),c=!1;for(n.body=[],this.expect(h.braceL);this.type!==h.braceR;){var a=this.parseClassElement(e.superClass!==null);a&&(n.body.push(a),a.type==="MethodDefinition"&&a.kind==="constructor"?(c&&this.raise(a.start,"Duplicate constructor in the same class"),c=!0):a.key&&a.key.type==="PrivateIdentifier"&&bu(u,a)&&this.raiseRecoverable(a.key.start,"Identifier '#"+a.key.name+"' has already been declared"))}return this.strict=i,this.next(),e.body=this.finishNode(n,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")};V.parseClassElement=function(e){if(this.eat(h.semi))return null;var t=this.options.ecmaVersion,i=this.startNode(),u="",n=!1,c=!1,a="method",f=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(h.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===h.star?f=!0:u="static"}if(i.static=f,!u&&t>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===h.star)&&!this.canInsertSemicolon()?c=!0:u="async"),!u&&(t>=9||!c)&&this.eat(h.star)&&(n=!0),!u&&!c&&!n){var p=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?a=p:u=p)}if(u?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=u,this.finishNode(i.key,"Identifier")):this.parseClassElementName(i),t<13||this.type===h.parenL||a!=="method"||n||c){var D=!i.static&&ft(i,"constructor"),g=D&&e;D&&a!=="method"&&this.raise(i.key.start,"Constructor can't have get/set modifier"),i.kind=D?"constructor":a,this.parseClassMethod(i,n,c,g)}else this.parseClassField(i);return i};V.isClassElementNameStart=function(){return this.type===h.name||this.type===h.privateId||this.type===h.num||this.type===h.string||this.type===h.bracketL||this.type.keyword};V.parseClassElementName=function(e){this.type===h.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,i,u){var n=e.key;e.kind==="constructor"?(t&&this.raise(n.start,"Constructor can't be a generator"),i&&this.raise(n.start,"Constructor can't be an async method")):e.static&&ft(e,"prototype")&&this.raise(n.start,"Classes may not have a static property named prototype");var c=e.value=this.parseMethod(t,i,u);return e.kind==="get"&&c.params.length!==0&&this.raiseRecoverable(c.start,"getter should have no params"),e.kind==="set"&&c.params.length!==1&&this.raiseRecoverable(c.start,"setter should have exactly one param"),e.kind==="set"&&c.params[0].type==="RestElement"&&this.raiseRecoverable(c.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")};V.parseClassField=function(e){if(ft(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&ft(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(h.eq)){var t=this.currentThisScope(),i=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=i}else e.value=null;return this.semicolon(),this.finishNode(e,"PropertyDefinition")};V.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(tt|Rt);this.type!==h.braceR;){var i=this.parseStatement(null);e.body.push(i)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")};V.parseClassId=function(e,t){this.type===h.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,ke,!1)):(t===!0&&this.unexpected(),e.id=null)};V.parseClassSuper=function(e){e.superClass=this.eat(h._extends)?this.parseExprSubscripts(!1):null};V.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared};V.exitClassBody=function(){for(var e=this.privateNameStack.pop(),t=e.declared,i=e.used,u=this.privateNameStack.length,n=u===0?null:this.privateNameStack[u-1],c=0;c=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==h.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(h._default)){this.checkExport(t,"default",this.lastTokStart);var i;if(this.type===h._function||(i=this.isAsyncFunction())){var u=this.startNode();this.next(),i&&this.next(),e.declaration=this.parseFunction(u,Xe|Mi,!1,i)}else if(this.type===h._class){var n=this.startNode();e.declaration=this.parseClass(n,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),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;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==h.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var c=0,a=e.specifiers;c=13&&this.type===h.string){var e=this.parseLiteral(this.value);return Au.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=5&&e.type==="ExpressionStatement"&&e.expression.type==="Literal"&&typeof e.expression.value=="string"&&(this.input[e.start]==='"'||this.input[e.start]==="'")};var xe=le.prototype;xe.toAssignable=function(e,t,i){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",i&&this.checkPatternErrors(i,!0);for(var u=0,n=e.properties;u=8&&!a&&f.name==="async"&&!this.canInsertSemicolon()&&this.eat(h._function))return this.overrideContext(J.f_expr),this.parseFunction(this.startNodeAt(n,c),0,!1,!0,t);if(u&&!this.canInsertSemicolon()){if(this.eat(h.arrow))return this.parseArrowExpression(this.startNodeAt(n,c),[f],!1,t);if(this.options.ecmaVersion>=8&&f.name==="async"&&this.type===h.name&&!a&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return f=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(h.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(n,c),[f],!0,t)}return f;case h.regexp:var p=this.value;return i=this.parseLiteral(p.value),i.regex={pattern:p.pattern,flags:p.flags},i;case h.num:case h.string:return this.parseLiteral(this.value);case h._null:case h._true:case h._false:return i=this.startNode(),i.value=this.type===h._null?null:this.type===h._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case h.parenL:var D=this.start,g=this.parseParenAndDistinguishExpression(u,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(g)&&(e.parenthesizedAssign=D),e.parenthesizedBind<0&&(e.parenthesizedBind=D)),g;case h.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(h.bracketR,!0,!0,e),this.finishNode(i,"ArrayExpression");case h.braceL:return this.overrideContext(J.b_expr),this.parseObj(!1,e);case h._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case h._class:return this.parseClass(this.startNode(),!1);case h._new:return this.parseNew();case h.backQuote:return this.parseTemplate();case h._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}};W.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case h.parenL:return this.parseDynamicImport(e);case h.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}};W.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(h.parenR)){var t=this.start;this.eat(h.comma)&&this.eat(h.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")};W.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")};W.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.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")};W.parseParenExpression=function(){this.expect(h.parenL);var e=this.parseExpression();return this.expect(h.parenR),e};W.parseParenAndDistinguishExpression=function(e,t){var i=this.start,u=this.startLoc,n,c=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var a=this.start,f=this.startLoc,p=[],D=!0,g=!1,F=new gt,m=this.yieldPos,A=this.awaitPos,v;for(this.yieldPos=0,this.awaitPos=0;this.type!==h.parenR;)if(D?D=!1:this.expect(h.comma),c&&this.afterTrailingComma(h.parenR,!0)){g=!0;break}else if(this.type===h.ellipsis){v=this.start,p.push(this.parseParenItem(this.parseRestBinding())),this.type===h.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}else p.push(this.parseMaybeAssign(!1,F,this.parseParenItem));var C=this.lastTokEnd,x=this.lastTokEndLoc;if(this.expect(h.parenR),e&&!this.canInsertSemicolon()&&this.eat(h.arrow))return this.checkPatternErrors(F,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=m,this.awaitPos=A,this.parseParenArrowList(i,u,p,t);(!p.length||g)&&this.unexpected(this.lastTokStart),v&&this.unexpected(v),this.checkExpressionErrors(F,!0),this.yieldPos=m||this.yieldPos,this.awaitPos=A||this.awaitPos,p.length>1?(n=this.startNodeAt(a,f),n.expressions=p,this.finishNodeAt(n,"SequenceExpression",C,x)):n=p[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var P=this.startNodeAt(i,u);return P.expression=n,this.finishNode(P,"ParenthesizedExpression")}else return n};W.parseParenItem=function(e){return e};W.parseParenArrowList=function(e,t,i,u){return this.parseArrowExpression(this.startNodeAt(e,t),i,!1,u)};var Su=[];W.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(h.dot)){e.meta=t;var i=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'"),i&&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 u=this.start,n=this.startLoc,c=this.type===h._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),u,n,!0,!1),c&&e.callee.type==="ImportExpression"&&this.raise(u,"Cannot use new with import()"),this.eat(h.parenL)?e.arguments=this.parseExprList(h.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Su,this.finishNode(e,"NewExpression")};W.parseTemplateElement=function(e){var t=e.isTagged,i=this.startNode();return this.type===h.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value,cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` +`),cooked:this.value},this.next(),i.tail=this.type===h.backQuote,this.finishNode(i,"TemplateElement")};W.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var i=this.startNode();this.next(),i.expressions=[];var u=this.parseTemplateElement({isTagged:t});for(i.quasis=[u];!u.tail;)this.type===h.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(h.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(h.braceR),i.quasis.push(u=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(i,"TemplateLiteral")};W.isAsyncProp=function(e){return!e.computed&&e.key.type==="Identifier"&&e.key.name==="async"&&(this.type===h.name||this.type===h.num||this.type===h.string||this.type===h.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===h.star)&&!Fe.test(this.input.slice(this.lastTokEnd,this.start))};W.parseObj=function(e,t){var i=this.startNode(),u=!0,n={};for(i.properties=[],this.next();!this.eat(h.braceR);){if(u)u=!1;else if(this.expect(h.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(h.braceR))break;var c=this.parseProperty(e,t);e||this.checkPropClash(c,n,t),i.properties.push(c)}return this.finishNode(i,e?"ObjectPattern":"ObjectExpression")};W.parseProperty=function(e,t){var i=this.startNode(),u,n,c,a;if(this.options.ecmaVersion>=9&&this.eat(h.ellipsis))return e?(i.argument=this.parseIdent(!1),this.type===h.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(i,"RestElement")):(i.argument=this.parseMaybeAssign(!1,t),this.type===h.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(i,"SpreadElement"));this.options.ecmaVersion>=6&&(i.method=!1,i.shorthand=!1,(e||t)&&(c=this.start,a=this.startLoc),e||(u=this.eat(h.star)));var f=this.containsEsc;return this.parsePropertyName(i),!e&&!f&&this.options.ecmaVersion>=8&&!u&&this.isAsyncProp(i)?(n=!0,u=this.options.ecmaVersion>=9&&this.eat(h.star),this.parsePropertyName(i,t)):n=!1,this.parsePropertyValue(i,e,u,n,c,a,t,f),this.finishNode(i,"Property")};W.parsePropertyValue=function(e,t,i,u,n,c,a,f){if((i||u)&&this.type===h.colon&&this.unexpected(),this.eat(h.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===h.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(i,u);else if(!t&&!f&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.type!==h.comma&&this.type!==h.braceR&&this.type!==h.eq){(i||u)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var p=e.kind==="get"?0:1;if(e.value.params.length!==p){var D=e.value.start;e.kind==="get"?this.raiseRecoverable(D,"getter should have no params"):this.raiseRecoverable(D,"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")}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type==="Identifier"?((i||u)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=n),e.kind="init",t?e.value=this.parseMaybeDefault(n,c,this.copyNode(e.key)):this.type===h.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,c,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected()};W.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(h.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(h.bracketR),e.key;e.computed=!1}return e.key=this.type===h.num||this.type===h.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};W.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)};W.parseMethod=function(e,t,i){var u=this.startNode(),n=this.yieldPos,c=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(u),this.options.ecmaVersion>=6&&(u.generator=e),this.options.ecmaVersion>=8&&(u.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Vt(t,u.generator)|Rt|(i?Pi:0)),this.expect(h.parenL),u.params=this.parseBindingList(h.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(u,!1,!0,!1),this.yieldPos=n,this.awaitPos=c,this.awaitIdentPos=a,this.finishNode(u,"FunctionExpression")};W.parseArrowExpression=function(e,t,i,u){var n=this.yieldPos,c=this.awaitPos,a=this.awaitIdentPos;return this.enterScope(Vt(i,!1)|ki),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,u),this.yieldPos=n,this.awaitPos=c,this.awaitIdentPos=a,this.finishNode(e,"ArrowFunctionExpression")};W.parseFunctionBody=function(e,t,i,u){var n=t&&this.type!==h.braceL,c=this.strict,a=!1;if(n)e.body=this.parseMaybeAssign(u),e.expression=!0,this.checkParams(e,!1);else{var f=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!c||f)&&(a=this.strictDirective(this.end),a&&f&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var p=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(e,!c&&!a&&!t&&!i&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,Ti),e.body=this.parseBlock(!1,void 0,a&&!c),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=p}this.exitScope()};W.isSimpleParamList=function(e){for(var t=0,i=e;t-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&n.flags&$e&&delete this.undefinedExports[e]}else if(t===Ni){var c=this.currentScope();c.lexical.push(e)}else if(t===Li){var a=this.currentScope();this.treatFunctionsAsVar?u=a.lexical.indexOf(e)>-1:u=a.lexical.indexOf(e)>-1||a.var.indexOf(e)>-1,a.functions.push(e)}else for(var f=this.scopeStack.length-1;f>=0;--f){var p=this.scopeStack[f];if(p.lexical.indexOf(e)>-1&&!(p.flags&Ii&&p.lexical[0]===e)||!this.treatFunctionsAsVarInScope(p)&&p.functions.indexOf(e)>-1){u=!0;break}if(p.var.push(e),this.inModule&&p.flags&$e&&delete this.undefinedExports[e],p.flags&Ot)break}u&&this.raiseRecoverable(i,"Identifier '"+e+"' has already been declared")};Ne.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)};Ne.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};Ne.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Ot)return t}};Ne.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Ot&&!(t.flags&ki))return t}};var mt=function(t,i,u){this.type="",this.start=i,this.end=0,t.options.locations&&(this.loc=new Dt(t,u)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[i,0])},it=le.prototype;it.startNode=function(){return new mt(this,this.start,this.startLoc)};it.startNodeAt=function(e,t){return new mt(this,e,t)};function Oi(e,t,i,u){return e.type=t,e.end=i,this.options.locations&&(e.loc.end=u),this.options.ranges&&(e.range[1]=i),e}it.finishNode=function(e,t){return Oi.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)};it.finishNodeAt=function(e,t,i,u){return Oi.call(this,e,t,i,u)};it.copyNode=function(e){var t=new mt(this,e.start,this.startLoc);for(var i in e)t[i]=e[i];return t};var Vi="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",qi=Vi+" Extended_Pictographic",ji=qi,Ui=ji+" EBase EComp EMod EPres ExtPict",_u=Ui,wu={9:Vi,10:qi,11:ji,12:Ui,13:_u},hi="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",Wi="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",Gi=Wi+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",zi=Gi+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",Hi=zi+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",ku=Hi+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Iu={9:Wi,10:Gi,11:zi,12:Hi,13:ku},Qi={};function Pu(e){var t=Qi[e]={binary:Oe(wu[e]+" "+hi),nonBinary:{General_Category:Oe(hi),Script:Oe(Iu[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 _t=0,fi=[9,10,11,12,13];_t=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":""),this.unicodeProperties=Qi[t.options.ecmaVersion>=13?13:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};Pe.prototype.reset=function(t,i,u){var n=u.indexOf("u")!==-1;this.start=t|0,this.source=i+"",this.flags=u,this.switchU=n&&this.parser.options.ecmaVersion>=6,this.switchN=n&&this.parser.options.ecmaVersion>=9};Pe.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)};Pe.prototype.at=function(t,i){i===void 0&&(i=!1);var u=this.source,n=u.length;if(t>=n)return-1;var c=u.charCodeAt(t);if(!(i||this.switchU)||c<=55295||c>=57344||t+1>=n)return c;var a=u.charCodeAt(t+1);return a>=56320&&a<=57343?(c<<10)+a-56613888:c};Pe.prototype.nextIndex=function(t,i){i===void 0&&(i=!1);var u=this.source,n=u.length;if(t>=n)return n;var c=u.charCodeAt(t),a;return!(i||this.switchU)||c<=55295||c>=57344||t+1>=n||(a=u.charCodeAt(t+1))<56320||a>57343?t+1:t+2};Pe.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)};Pe.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)};Pe.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)};Pe.prototype.eat=function(t,i){return i===void 0&&(i=!1),this.current(i)===t?(this.advance(i),!0):!1};R.validateRegExpFlags=function(e){for(var t=e.validFlags,i=e.flags,u=0;u-1&&this.raise(e.start,"Duplicate regular expression flag")}};R.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))};R.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,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,i=e.backReferenceNames;t=9&&(i=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!i,!0}return e.pos=t,!1};R.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1};R.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)};R.regexp_eatBracedQuantifier=function(e,t){var i=e.pos;if(e.eat(123)){var u=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(u=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return n!==-1&&n=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};R.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)};R.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1};R.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ki(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ki(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}R.regexp_eatPatternCharacters=function(e){for(var t=e.pos,i=0;(i=e.current())!==-1&&!Ki(i);)e.advance();return e.pos!==t};R.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};R.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise("Duplicate capture group name"),e.groupNames.push(e.lastStringValue);return}e.raise("Invalid group")}};R.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};R.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Le(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Le(e.lastIntValue);return!0}return!1};R.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,u=e.current(i);return e.advance(i),u===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(u=e.lastIntValue),Nu(u)?(e.lastIntValue=u,!0):(e.pos=t,!1)};function Nu(e){return Ie(e,!0)||e===36||e===95}R.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,u=e.current(i);return e.advance(i),u===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(u=e.lastIntValue),Tu(u)?(e.lastIntValue=u,!0):(e.pos=t,!1)};function Tu(e){return je(e,!0)||e===36||e===95||e===8204||e===8205}R.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)};R.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var i=e.lastIntValue;if(e.switchU)return i>e.maxBackReference&&(e.maxBackReference=i),!0;if(i<=e.numCapturingParens)return!0;e.pos=t}return!1};R.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};R.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)};R.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1};R.regexp_eatZero=function(e){return e.current()===48&&!Ct(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1};R.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};R.regexp_eatControlLetter=function(e){var t=e.current();return Yi(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Yi(e){return e>=65&&e<=90||e>=97&&e<=122}R.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var i=e.pos,u=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(u&&n>=55296&&n<=56319){var c=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(a>=56320&&a<=57343)return e.lastIntValue=(n-55296)*1024+(a-56320)+65536,!0}e.pos=c,e.lastIntValue=n}return!0}if(u&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Mu(e.lastIntValue))return!0;u&&e.raise("Invalid unicode escape"),e.pos=i}return!1};function Mu(e){return e>=0&&e<=1114111}R.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};R.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};R.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Ru(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1};function Ru(e){return e===100||e===68||e===115||e===83||e===119||e===87}R.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var i=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var u=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,i,u),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n),!0}return!1};R.regexp_validateUnicodePropertyNameAndValue=function(e,t,i){et(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(i)||e.raise("Invalid property value")};R.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")};R.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Xi(t=e.current());)e.lastStringValue+=Le(t),e.advance();return e.lastStringValue!==""};function Xi(e){return Yi(e)||e===95}R.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ou(t=e.current());)e.lastStringValue+=Le(t),e.advance();return e.lastStringValue!==""};function Ou(e){return Xi(e)||Ct(e)}R.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)};R.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1};R.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var i=e.lastIntValue;e.switchU&&(t===-1||i===-1)&&e.raise("Invalid character class"),t!==-1&&i!==-1&&t>i&&e.raise("Range out of order in character class")}}};R.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var i=e.current();(i===99||Ji(i))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var u=e.current();return u!==93?(e.lastIntValue=u,e.advance(),!0):!1};R.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)};R.regexp_eatClassControlLetter=function(e){var t=e.current();return Ct(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1};R.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};R.regexp_eatDecimalDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;Ct(i=e.current());)e.lastIntValue=10*e.lastIntValue+(i-48),e.advance();return e.pos!==t};function Ct(e){return e>=48&&e<=57}R.regexp_eatHexDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;Zi(i=e.current());)e.lastIntValue=16*e.lastIntValue+$i(i),e.advance();return e.pos!==t};function Zi(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function $i(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}R.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var i=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+i*8+e.lastIntValue:e.lastIntValue=t*8+i}else e.lastIntValue=t;return!0}return!1};R.regexp_eatOctalDigit=function(e){var t=e.current();return Ji(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Ji(e){return e>=48&&e<=55}R.regexp_eatFixedHexDigits=function(e,t){var i=e.pos;e.lastIntValue=0;for(var u=0;u=this.input.length)return this.finishToken(h.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())};z.readToken=function(e){return Ie(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)};z.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888};z.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(i===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(var u=void 0,n=t;(u=bi(this.input,n,this.pos))>-1;)++this.curLine,n=this.lineStart=u;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,i),t,this.pos,e,this.curPosition())};z.skipLineComment=function(e){for(var t=this.pos,i=this.options.onComment&&this.curPosition(),u=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&Si.test(String.fromCharCode(e)))++this.pos;else break e}}};z.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=e,this.value=t,this.updateContext(i)};z.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(h.ellipsis)):(++this.pos,this.finishToken(h.dot))};z.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(h.assign,2):this.finishOp(h.slash,1)};z.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),i=1,u=e===42?h.star:h.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++i,u=h.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(h.assign,i+1):this.finishOp(u,i)};z.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(h.assign,3)}return this.finishOp(e===124?h.logicalOR:h.logicalAND,2)}return t===61?this.finishOp(h.assign,2):this.finishOp(e===124?h.bitwiseOR:h.bitwiseAND,1)};z.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(h.assign,2):this.finishOp(h.bitwiseXOR,1)};z.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||Fe.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(h.incDec,2):t===61?this.finishOp(h.assign,2):this.finishOp(h.plusMin,1)};z.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),i=1;return t===e?(i=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+i)===61?this.finishOp(h.assign,i+1):this.finishOp(h.bitShift,i)):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&&(i=2),this.finishOp(h.relational,i))};z.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(h.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(h.arrow)):this.finishOp(e===61?h.eq:h.prefix,1)};z.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(h.questionDot,2)}if(t===63){if(e>=12){var u=this.input.charCodeAt(this.pos+2);if(u===61)return this.finishOp(h.assign,3)}return this.finishOp(h.coalesce,2)}}return this.finishOp(h.question,1)};z.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),Ie(t,!0)||t===92))return this.finishToken(h.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+Le(t)+"'")};z.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(h.parenL);case 41:return++this.pos,this.finishToken(h.parenR);case 59:return++this.pos,this.finishToken(h.semi);case 44:return++this.pos,this.finishToken(h.comma);case 91:return++this.pos,this.finishToken(h.bracketL);case 93:return++this.pos,this.finishToken(h.bracketR);case 123:return++this.pos,this.finishToken(h.braceL);case 125:return++this.pos,this.finishToken(h.braceR);case 58:return++this.pos,this.finishToken(h.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(h.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(h.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+Le(e)+"'")};z.finishOp=function(e,t){var i=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,i)};z.readRegexp=function(){for(var e,t,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,"Unterminated regular expression");var u=this.input.charAt(this.pos);if(Fe.test(u)&&this.raise(i,"Unterminated regular expression"),e)e=!1;else{if(u==="[")t=!0;else if(u==="]"&&t)t=!1;else if(u==="/"&&!t)break;e=u==="\\"}++this.pos}var n=this.input.slice(i,this.pos);++this.pos;var c=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(c);var f=this.regexpState||(this.regexpState=new Pe(this));f.reset(i,n,a),this.validateRegExpFlags(f),this.validateRegExpPattern(f);var p=null;try{p=new RegExp(n,a)}catch{}return this.finishToken(h.regexp,{pattern:n,flags:a,value:p})};z.readInt=function(e,t,i){for(var u=this.options.ecmaVersion>=12&&t===void 0,n=i&&this.input.charCodeAt(this.pos)===48,c=this.pos,a=0,f=0,p=0,D=t??1/0;p=97?F=g-97+10:g>=65?F=g-65+10:g>=48&&g<=57?F=g-48:F=1/0,F>=e)break;f=g,a=a*e+F}return u&&f===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===c||t!=null&&this.pos-c!==t?null:a};function Vu(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,""))}function er(e){return typeof BigInt!="function"?null:BigInt(e.replace(/_/g,""))}z.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var i=this.readInt(e);return i==null&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(i=er(this.input.slice(t,this.pos)),++this.pos):Ie(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(h.num,i)};z.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,"Invalid number");var i=this.pos-t>=2&&this.input.charCodeAt(t)===48;i&&this.strict&&this.raise(t,"Invalid number");var u=this.input.charCodeAt(this.pos);if(!i&&!e&&this.options.ecmaVersion>=11&&u===110){var n=er(this.input.slice(t,this.pos));return++this.pos,Ie(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(h.num,n)}i&&/[89]/.test(this.input.slice(t,this.pos))&&(i=!1),u===46&&!i&&(++this.pos,this.readInt(10),u=this.input.charCodeAt(this.pos)),(u===69||u===101)&&!i&&(u=this.input.charCodeAt(++this.pos),(u===43||u===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,"Invalid number")),Ie(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var c=Vu(this.input.slice(t,this.pos),i);return this.finishToken(h.num,c)};z.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var i=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(i,"Code point out of bounds")}else t=this.readHexChar(4);return t};z.readString=function(e){for(var t="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var u=this.input.charCodeAt(this.pos);if(u===e)break;u===92?(t+=this.input.slice(i,this.pos),t+=this.readEscapedChar(!1),i=this.pos):u===8232||u===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Ue(u)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(i,this.pos++),this.finishToken(h.string,t)};var tr={};z.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===tr)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1};z.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw tr;this.raise(e,t)};z.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(i===96||i===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===h.template||this.type===h.invalidTemplate)?i===36?(this.pos+=2,this.finishToken(h.dollarBraceL)):(++this.pos,this.finishToken(h.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(h.template,e));if(i===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Ue(i)){switch(e+=this.input.slice(t,this.pos),++this.pos,i){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=` +`;break;default:e+=String.fromCharCode(i);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};z.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var u=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(u,8);return n>255&&(u=u.slice(0,-1),n=parseInt(u,8)),this.pos+=u.length-1,t=this.input.charCodeAt(this.pos),(u!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-u.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return Ue(t)?"":String.fromCharCode(t)}};z.readHexChar=function(e){var t=this.pos,i=this.readInt(16,e);return i===null&&this.invalidStringToken(t,"Bad character escape sequence"),i};z.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,i=this.pos,u=this.options.ecmaVersion>=6;this.posthis.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t}}replace(t,i,u,n){t&&(u!==null?t[i][u]=n:t[i]=n)}remove(t,i,u){t&&(u!==null?t[i].splice(u,1):delete t[i])}}class Wu extends Uu{constructor(t,i){super(),this.enter=t,this.leave=i}visit(t,i,u,n){if(t){if(this.enter){const c=this.should_skip,a=this.should_remove,f=this.replacement;this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.enter.call(this.context,t,i,u,n),this.replacement&&(t=this.replacement,this.replace(i,u,n,t)),this.should_remove&&this.remove(i,u,n);const p=this.should_skip,D=this.should_remove;if(this.should_skip=c,this.should_remove=a,this.replacement=f,p)return t;if(D)return null}for(const c in t){const a=t[c];if(typeof a=="object")if(Array.isArray(a))for(let f=0;f{${f}})()`:f}function Hu(e,t,i){const{raw:u,type:n}=e;return n!=="Literal"?!1:u[0]==='"'}function Qu(e,t){return e.type==="TemplateLiteral"&&t.type!=="TaggedTemplateExpression"}function pi(e,t,i){let u;const{start:n,end:c}=t;if(i)u=[{type:"Literal",value:n},{type:"Literal",value:c}];else{const{loc:{start:{line:a,column:f},end:{line:p,column:D}}}=t;u=[{type:"ArrayExpression",elements:[a,f,n].map(g=>({type:"Literal",value:g}))},{type:"ArrayExpression",elements:[p,D,c].map(g=>({type:"Literal",value:g}))}]}return{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"CallExpression",callee:{type:"Identifier",name:"mini"},arguments:[{type:"Literal",value:e}],optional:!1},property:{type:"Identifier",name:"withMiniLocation"}},arguments:u,optional:!1}}function Ku({defaultOutput:e,interval:t,getTime:i,code:u,evalOnMount:n=!1}){const[c,a]=ie.useState(),[f,p]=ie.useState(),[D,g]=ie.useState(u),[F,m]=ie.useState(),[A,v]=ie.useState(!1),C=u!==D,{scheduler:x,evaluate:P}=ie.useMemo(()=>Vr({interval:t,defaultOutput:e,onSchedulerError:a,onEvalError:p,getTime:i,transpiler:zu,onEval:({pattern:E,code:S})=>{g(S),m(E),p()},onToggle:E=>v(E),onEvalError:p}),[e,t,i]),I=ie.useCallback(()=>P(u),[P,u]),O=ie.useRef();return ie.useEffect(()=>{!O.current&&n&&u&&(console.log("eval on mount"),O.current=!0,I())},[I,n,u]),{schedulerError:c,scheduler:x,evalError:f,evaluate:I,activeCode:D,isDirty:C,pattern:F,started:A,togglePlay:async()=>{A?x.pause():await I()}}}const Yu=e=>ie.useLayoutEffect(()=>(window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)),[e]);function Xu(e){const{ready:t,connected:i,disconnected:u}=e,[n,c]=ie.useState(!0),[a,f]=ie.useState(Se.WebMidi?.outputs||[]);return ie.useEffect(()=>{Se.enableWebMidi().then(()=>{Se.WebMidi.addListener("connected",D=>{f([...Se.WebMidi.outputs]),i?.(Se.WebMidi,D)}),Se.WebMidi.addListener("disconnected",D=>{f([...Se.WebMidi.outputs]),u?.(Se.WebMidi,D)}),t?.(Se.WebMidi),c(!1)}).catch(D=>{if(D){console.error(D),console.warn("Web Midi could not be enabled..");return}})},[t,i,u,a]),{loading:n,outputs:a,outputByName:D=>Se.WebMidi.getOutputByName(D)}}exports.CodeMirror=Br;exports.MiniRepl=kr;exports.cx=_r;exports.flash=yr;exports.useHighlighting=wr;exports.useKeydown=Yu;exports.usePostMessage=Ir;exports.useStrudel=Ku;exports.useWebMidi=Xu; diff --git a/packages/react/dist/index.es.js b/packages/react/dist/index.es.js index deebffc2..2b4511c1 100644 --- a/packages/react/dist/index.es.js +++ b/packages/react/dist/index.es.js @@ -1,17 +1,16 @@ -import y, { useCallback as T, useState as w, useEffect as q, useMemo as R, useRef as I, useLayoutEffect as j } from "react"; -import Y from "@uiw/react-codemirror"; -import { Decoration as A, EditorView as K } from "@codemirror/view"; -import { StateEffect as U, StateField as Q } from "@codemirror/state"; -import { javascript as Z } from "@codemirror/lang-javascript"; -import { tags as m } from "@lezer/highlight"; -import { createTheme as ee } from "@uiw/codemirror-themes"; -import { useInView as te } from "react-hook-inview"; -import { evaluate as G } from "@strudel.cycles/eval"; -import { Tone as M } from "@strudel.cycles/tone"; -import { TimeSpan as oe, State as re } from "@strudel.cycles/core"; -import { webaudioOutputTrigger as ne } from "@strudel.cycles/webaudio"; -import { WebMidi as N, enableWebMidi as se } from "@strudel.cycles/midi"; -const ae = ee({ +import lt, { useCallback as Xe, useRef as kt, useEffect as Dt, useState as Me, useMemo as Ar, useLayoutEffect as Er } from "react"; +import Fr from "@uiw/react-codemirror"; +import { Decoration as Ie, EditorView as mi } from "@codemirror/view"; +import { StateEffect as gi, StateField as Ci } from "@codemirror/state"; +import { javascript as vr } from "@codemirror/lang-javascript"; +import { tags as ie } from "@lezer/highlight"; +import { createTheme as xr } from "@uiw/codemirror-themes"; +import "react-hook-inview"; +import "@strudel.cycles/webaudio"; +import * as yr from "@strudel.cycles/core"; +import { isNote as br } from "@strudel.cycles/core"; +import { WebMidi as Be, enableWebMidi as Sr } from "@strudel.cycles/midi"; +const Br = xr({ theme: "dark", settings: { background: "#222", @@ -24,445 +23,5576 @@ const ae = ee({ gutterForeground: "#676e95" }, styles: [ - { tag: m.keyword, color: "#c792ea" }, - { tag: m.operator, color: "#89ddff" }, - { tag: m.special(m.variableName), color: "#eeffff" }, - { tag: m.typeName, color: "#f07178" }, - { tag: m.atom, color: "#f78c6c" }, - { tag: m.number, color: "#ff5370" }, - { tag: m.definition(m.variableName), color: "#82aaff" }, - { tag: m.string, color: "#c3e88d" }, - { tag: m.special(m.string), color: "#f07178" }, - { tag: m.comment, color: "#7d8799" }, - { tag: m.variableName, color: "#f07178" }, - { tag: m.tagName, color: "#ff5370" }, - { tag: m.bracket, color: "#a2a1a4" }, - { tag: m.meta, color: "#ffcb6b" }, - { tag: m.attributeName, color: "#c792ea" }, - { tag: m.propertyName, color: "#c792ea" }, - { tag: m.className, color: "#decb6b" }, - { tag: m.invalid, color: "#ffffff" } + { tag: ie.keyword, color: "#c792ea" }, + { tag: ie.operator, color: "#89ddff" }, + { tag: ie.special(ie.variableName), color: "#eeffff" }, + { tag: ie.typeName, color: "#f07178" }, + { tag: ie.atom, color: "#f78c6c" }, + { tag: ie.number, color: "#ff5370" }, + { tag: ie.definition(ie.variableName), color: "#82aaff" }, + { tag: ie.string, color: "#c3e88d" }, + { tag: ie.special(ie.string), color: "#f07178" }, + { tag: ie.comment, color: "#7d8799" }, + { tag: ie.variableName, color: "#f07178" }, + { tag: ie.tagName, color: "#ff5370" }, + { tag: ie.bracket, color: "#a2a1a4" }, + { tag: ie.meta, color: "#ffcb6b" }, + { tag: ie.attributeName, color: "#c792ea" }, + { tag: ie.propertyName, color: "#c792ea" }, + { tag: ie.className, color: "#decb6b" }, + { tag: ie.invalid, color: "#ffffff" } ] }); -const z = U.define(), ce = Q.define({ +const It = gi.define(), _r = Ci.define({ create() { - return A.none; + return Ie.none; }, - update(e, o) { + update(e, t) { try { - for (let r of o.effects) - if (r.is(z)) - if (r.value) { - const n = A.mark({ attributes: { style: "background-color: #FFCA2880" } }); - e = A.set([n.range(0, o.newDoc.length)]); + for (let i of t.effects) + if (i.is(It)) + if (i.value) { + const u = Ie.mark({ attributes: { style: "background-color: #FFCA2880" } }); + e = Ie.set([u.range(0, t.newDoc.length)]); } else - e = A.set([]); + e = Ie.set([]); return e; - } catch (r) { - return console.warn("flash error", r), e; + } catch (i) { + return console.warn("flash error", i), e; } }, - provide: (e) => K.decorations.from(e) -}), ie = (e) => { - e.dispatch({ effects: z.of(!0) }), setTimeout(() => { - e.dispatch({ effects: z.of(!1) }); + provide: (e) => mi.decorations.from(e) +}), nn = (e) => { + e.dispatch({ effects: It.of(!0) }), setTimeout(() => { + e.dispatch({ effects: It.of(!1) }); }, 200); -}, O = U.define(), le = Q.define({ +}, ct = gi.define(), wr = Ci.define({ create() { - return A.none; + return Ie.none; }, - update(e, o) { + update(e, t) { try { - for (let r of o.effects) - if (r.is(O)) { - const n = r.value.map( - (s) => (s.context.locations || []).map(({ start: i, end: a }) => { - const t = s.context.color || "#FFCA28"; - let l = o.newDoc.line(i.line).from + i.column, c = o.newDoc.line(a.line).from + a.column; - const f = o.newDoc.length; - return l > f || c > f ? void 0 : A.mark({ attributes: { style: `outline: 1.5px solid ${t};` } }).range(l, c); + for (let i of t.effects) + if (i.is(ct)) { + const u = i.value.map( + (n) => (n.context.locations || []).map(({ start: c, end: a }) => { + const f = n.context.color || "#FFCA28"; + let p = t.newDoc.line(c.line).from + c.column, D = t.newDoc.line(a.line).from + a.column; + const m = t.newDoc.length; + return p > m || D > m ? void 0 : Ie.mark({ attributes: { style: `outline: 1.5px solid ${f};` } }).range(p, D); }) ).flat().filter(Boolean) || []; - e = A.set(n, !0); + e = Ie.set(u, !0); } return e; } catch { - return A.set([]); + return Ie.set([]); } }, - provide: (e) => K.decorations.from(e) -}), ue = [Z(), ae, le, ce]; -function de({ value: e, onChange: o, onViewChanged: r, onSelectionChange: n, options: s, editorDidMount: i }) { - const a = T( - (c) => { - o?.(c); + provide: (e) => mi.decorations.from(e) +}), kr = [vr(), Br, wr, _r]; +function sn({ value: e, onChange: t, onViewChanged: i, onSelectionChange: u, options: n, editorDidMount: c }) { + const a = Xe( + (D) => { + t?.(D); }, - [o] - ), t = T( - (c) => { - r?.(c); + [t] + ), f = Xe( + (D) => { + i?.(D); }, - [r] - ), l = T( - (c) => { - c.selectionSet && n && n?.(c.state.selection); + [i] + ), p = Xe( + (D) => { + D.selectionSet && u && u?.(D.state.selection); }, - [n] + [u] ); - return /* @__PURE__ */ y.createElement(y.Fragment, null, /* @__PURE__ */ y.createElement(Y, { + return /* @__PURE__ */ lt.createElement(lt.Fragment, null, /* @__PURE__ */ lt.createElement(Fr, { value: e, onChange: a, - onCreateEditor: t, - onUpdate: l, - extensions: ue + onCreateEditor: f, + onUpdate: p, + extensions: kr })); } -function fe(e) { - const { onEvent: o, onQuery: r, onSchedule: n, ready: s = !0, onDraw: i } = e, [a, t] = w(!1), l = 1, c = () => Math.floor(M.getTransport().seconds / l), f = (g = c()) => { - const C = new oe(g, g + 1), v = r?.(new re(C)) || []; - n?.(v, g); - const h = C.begin.valueOf(); - M.getTransport().cancel(h); - const D = (g + 1) * l - 0.5, _ = Math.max(M.getTransport().seconds, D) + 0.1; - M.getTransport().schedule(() => { - f(g + 1); - }, _), v?.filter((E) => E.part.begin.equals(E.whole?.begin)).forEach((E) => { - M.getTransport().schedule((L) => { - o(L, E, M.getContext().currentTime), M.Draw.schedule(() => { - i?.(L, E); - }, L); - }, E.part.begin.valueOf()); - }); - }; - q(() => { - s && f(); - }, [o, n, r, i, s]); - const p = async () => { - t(!0), await M.start(), M.getTransport().start("+0.1"); - }, d = () => { - M.getTransport().pause(), t(!1); - }; - return { - start: p, - stop: d, - onEvent: o, - started: a, - setStarted: t, - toggle: () => a ? d() : p(), - query: f, - activeCycle: c - }; -} -function ge(e) { - return q(() => (window.addEventListener("message", e), () => window.removeEventListener("message", e)), [e]), T((o) => window.postMessage(o, "*"), []); -} -let he = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1); -const me = (e) => encodeURIComponent(btoa(e)); -function pe({ tune: e, autolink: o = !0, onEvent: r, onDraw: n }) { - const s = R(() => he(), []), [i, a] = w(e), [t, l] = w(), [c, f] = w(""), [p, d] = w(), [k, g] = w(!1), [C, v] = w(""), [h, D] = w(), _ = R(() => i !== t || p, [i, t, p]), E = T((b) => f((u) => u + `${u ? ` - -` : ""}${b}`), []), L = R(() => { - if (t && !t.includes("strudel disable-highlighting")) - return (b, u) => n?.(b, u, t); - }, [t, n]), H = R(() => t && t.includes("strudel hide-header"), [t]), x = R(() => t && t.includes("strudel hide-console"), [t]), P = fe({ - onDraw: L, - onEvent: T( - (b, u, X) => { - try { - r?.(u), u.context.logs?.length && u.context.logs.forEach(E); - const { onTrigger: S = ne } = u.context; - S(b, u, X, 1); - } catch (S) { - console.warn(S), S.message = "unplayable event: " + S?.message, E(S.message); - } - }, - [r, E] - ), - onQuery: T( - (b) => { - try { - return h?.query(b) || []; - } catch (u) { - return console.warn(u), u.message = "query error: " + u.message, d(u), []; - } - }, - [h] - ), - onSchedule: T((b, u) => J(b), []), - ready: !!h && !!t - }), B = ge(({ data: { from: b, type: u } }) => { - u === "start" && b !== s && (P.setStarted(!1), l(void 0)); - }), V = T( - async (b = i) => { - if (t && !_) { - d(void 0), P.start(); - return; - } - try { - g(!0); - const u = await G(b); - P.start(), B({ type: "start", from: s }), D(() => u.pattern), o && (window.location.hash = "#" + encodeURIComponent(btoa(i))), v(me(i)), d(void 0), l(b), g(!1); - } catch (u) { - u.message = "evaluation error: " + u.message, console.warn(u), d(u); - } - }, - [t, _, i, P, o, s, B] - ), J = (b, u) => { - b.length; - }; - return { - hideHeader: H, - hideConsole: x, - pending: k, - code: i, - setCode: a, - pattern: h, - error: p, - cycle: P, - setPattern: D, - dirty: _, - log: c, - togglePlay: () => { - P.started ? P.stop() : V(); - }, - setActiveCode: l, - activateCode: V, - activeCode: t, - pushLog: E, - hash: C - }; -} -function $(...e) { +function an(...e) { return e.filter(Boolean).join(" "); } -function ye({ view: e, pattern: o, active: r, getTime: n }) { - const s = I([]), i = I(); - q(() => { +function on({ view: e, pattern: t, active: i, getTime: u }) { + const n = kt([]), c = kt(); + Dt(() => { if (e) - if (o && r) { - let t = function() { + if (t && i) { + let f = function() { try { - const l = n(), f = [Math.max(i.current || l, l - 1 / 10), l + 1 / 60]; - i.current = l + 1 / 60, s.current = s.current.filter((d) => d.whole.end > l); - const p = o.queryArc(...f).filter((d) => d.hasOnset()); - s.current = s.current.concat(p), e.dispatch({ effects: O.of(s.current) }); + const p = u(), m = [Math.max(c.current || p, p - 1 / 10), p + 1 / 60]; + c.current = p + 1 / 60, n.current = n.current.filter((g) => g.whole.end > p); + const F = t.queryArc(...m).filter((g) => g.hasOnset()); + n.current = n.current.concat(F), e.dispatch({ effects: ct.of(n.current) }); } catch { - e.dispatch({ effects: O.of([]) }); + e.dispatch({ effects: ct.of([]) }); } - a = requestAnimationFrame(t); - }, a = requestAnimationFrame(t); + a = requestAnimationFrame(f); + }, a = requestAnimationFrame(f); return () => { cancelAnimationFrame(a); }; } else - s.current = [], e.dispatch({ effects: O.of([]) }); - }, [o, r, e]); + n.current = [], e.dispatch({ effects: ct.of([]) }); + }, [t, i, e]); } -const be = "_container_3i85k_1", we = "_header_3i85k_5", ve = "_buttons_3i85k_9", Ee = "_button_3i85k_9", ke = "_buttonDisabled_3i85k_17", Ce = "_error_3i85k_21", Me = "_body_3i85k_25", F = { - container: be, - header: we, - buttons: ve, - button: Ee, - buttonDisabled: ke, - error: Ce, - body: Me -}; -function W({ type: e }) { - return /* @__PURE__ */ y.createElement("svg", { - xmlns: "http://www.w3.org/2000/svg", - className: "sc-h-5 sc-w-5", - viewBox: "0 0 20 20", - fill: "currentColor" - }, { - refresh: /* @__PURE__ */ y.createElement("path", { - fillRule: "evenodd", - d: "M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z", - clipRule: "evenodd" - }), - play: /* @__PURE__ */ y.createElement("path", { - fillRule: "evenodd", - d: "M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z", - clipRule: "evenodd" - }), - pause: /* @__PURE__ */ y.createElement("path", { - fillRule: "evenodd", - d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z", - clipRule: "evenodd" - }) - }[e]); +function ln({ tune: e, hideOutsideView: t = !1, init: i, onEvent: u, enableKeyboard: n }) { + return /* @__PURE__ */ lt.createElement("p", null, "TODO"); } -function Be({ tune: e, hideOutsideView: o = !1, init: r, onEvent: n, enableKeyboard: s }) { - const { code: i, setCode: a, pattern: t, activeCode: l, activateCode: c, evaluateOnly: f, error: p, cycle: d, dirty: k, togglePlay: g, stop: C } = pe({ - tune: e, - autolink: !1, - onEvent: n - }); - q(() => { - r && f(); - }, [e, r]); - const [v, h] = w(), [D, _] = te({ - threshold: 0.01 - }), E = I(), L = R(() => ((_ || !o) && (E.current = !0), _ || E.current), [_, o]); - return ye({ - view: v, - pattern: t, - active: d.started && !l?.includes("strudel disable-highlighting"), - getTime: () => M.getTransport().seconds - }), j(() => { - if (s) { - const H = async (x) => { - (x.ctrlKey || x.altKey) && (x.code === "Enter" ? (x.preventDefault(), ie(v), await c()) : x.code === "Period" && (d.stop(), x.preventDefault())); - }; - return window.addEventListener("keydown", H, !0), () => window.removeEventListener("keydown", H, !0); - } - }, [s, t, i, c, d, v]), /* @__PURE__ */ y.createElement("div", { - className: F.container, - ref: D - }, /* @__PURE__ */ y.createElement("div", { - className: F.header - }, /* @__PURE__ */ y.createElement("div", { - className: F.buttons - }, /* @__PURE__ */ y.createElement("button", { - className: $(F.button, d.started ? "sc-animate-pulse" : ""), - onClick: () => g() - }, /* @__PURE__ */ y.createElement(W, { - type: d.started ? "pause" : "play" - })), /* @__PURE__ */ y.createElement("button", { - className: $(k ? F.button : F.buttonDisabled), - onClick: () => c() - }, /* @__PURE__ */ y.createElement(W, { - type: "refresh" - }))), p && /* @__PURE__ */ y.createElement("div", { - className: F.error - }, p.message)), /* @__PURE__ */ y.createElement("div", { - className: F.body - }, L && /* @__PURE__ */ y.createElement(de, { - value: i, - onChange: a, - onViewChanged: h - }))); +function cn(e) { + return Dt(() => (window.addEventListener("message", e), () => window.removeEventListener("message", e)), [e]), Xe((t) => window.postMessage(t, "*"), []); } -function Te(e, o, r = 0.05, n = 0.1, s = 0.1) { - let i = 0, a = 0, t = 10 ** 4, l = 0.01; - const c = (h) => r = h(r); - s = s || n / 2; - const f = () => { - const h = e(), D = h + n + s; - for (a === 0 && (a = h + l); a < D; ) - a = Math.round(a * t) / t, a >= h && o(a, r, i), a < h && console.log("TOO LATE", a), a += r, i++; +function Ir(e, t, i = 0.05, u = 0.1, n = 0.1) { + let c = 0, a = 0, f = 10 ** 4, p = 0.01; + const D = (P) => i = P(i); + n = n || u / 2; + const m = () => { + const P = e(), I = P + u + n; + for (a === 0 && (a = P + p); a < I; ) + a = Math.round(a * f) / f, a >= P && t(a, i, c), a < P && console.log("TOO LATE", a), a += i, c++; }; - let p; - const d = () => { - f(), p = setInterval(f, n * 1e3); - }, k = () => clearInterval(p); - return { setDuration: c, start: d, stop: () => { - i = 0, a = 0, k(); - }, pause: () => k(), duration: r, getPhase: () => a }; + let F; + const g = () => { + A(), m(), F = setInterval(m, u * 1e3); + }, A = () => F !== void 0 && clearInterval(F); + return { setDuration: D, start: g, stop: () => { + c = 0, a = 0, A(); + }, pause: () => A(), duration: i, getPhase: () => a }; } -class _e { +class Pr { worker; pattern; started = !1; cps = 1; getTime; phase = 0; - constructor({ interval: o, onTrigger: r, onError: n, getTime: s, latency: i = 0.1 }) { - this.getTime = s; - const a = (t) => Math.round(t * 1e3) / 1e3; - this.clock = Te( - s, - (t, l, c) => { - c === 0 && (this.origin = t); - const f = a(t - this.origin); - this.phase = f - i; - const p = a(f + l), d = s(); + constructor({ interval: t, onTrigger: i, onToggle: u, onError: n, getTime: c, latency: a = 0.1 }) { + this.getTime = c, this.onToggle = u; + const f = (p) => Math.round(p * 1e3) / 1e3; + this.clock = Ir( + c, + (p, D, m) => { + m === 0 && (this.origin = p); + const F = f(p - this.origin); + this.phase = F - a; + const g = f(F + D), A = c(); try { - this.pattern.queryArc(f, p).forEach((g) => { - if (g.part.begin.equals(g.whole.begin)) { - const C = g.whole.begin + this.origin - d + i, v = g.duration * 1; - r?.(g, C, v); + this.pattern.queryArc(F, g).forEach((C) => { + if (C.part.begin.equals(C.whole.begin)) { + const x = C.whole.begin + this.origin - A + a, P = C.duration * 1; + i?.(C, x, P); } }); - } catch (k) { - console.warn("scheduler error", k), n?.(k); + } catch (v) { + console.warn("scheduler error", v), n?.(v); } }, - o + t ); } getPhase() { return this.phase; } + setStarted(t) { + this.started = t, this.onToggle?.(t); + } start() { if (!this.pattern) throw new Error("Scheduler: no pattern set! call .setPattern first."); - this.clock.start(), this.started = !0; + this.clock.start(), this.setStarted(!0); } pause() { - this.clock.stop(), delete this.origin, this.started = !1; + this.clock.stop(), this.setStarted(!1); } stop() { - delete this.origin, this.clock.stop(), this.started = !1; + delete this.origin, this.clock.stop(), this.setStarted(!1); } - setPattern(o) { - this.pattern = o; + setPattern(t, i = !1) { + this.pattern = t, i && !this.started && this.start(); } - setCps(o = 1) { - this.cps = o; + setCps(t = 1) { + this.cps = t; } - log(o, r, n) { - const s = n.filter((i) => i.hasOnset()); - console.log(`${o.toFixed(4)} - ${r.toFixed(4)} ${Array(s.length).fill("I").join("")}`); + log(t, i, u) { + const n = u.filter((c) => c.hasOnset()); + console.log(`${t.toFixed(4)} - ${i.toFixed(4)} ${Array(n.length).fill("I").join("")}`); } } -function Ve({ defaultOutput: e, interval: o, getTime: r, code: n, evalOnMount: s = !1 }) { - const [i, a] = w(), [t, l] = w(), [c, f] = w(n), [p, d] = w(), k = n !== c, g = R( - () => new _e({ interval: o, onTrigger: e, onError: a, getTime: r }), - [e, o] - ), C = T(async () => { - if (!n) { - console.log("no code.."); +const { isPattern: Lr, Pattern: Nr } = yr; +let Pt = !1; +const Tr = async (...e) => { + Pt && console.warn("evalScope was called more than once."), Pt = !0; + const t = await Promise.allSettled(e), i = t.filter((u) => u.status === "fulfilled").map((u) => u.value); + t.forEach((u, n) => { + u.status === "rejected" && console.warn(`evalScope: module with index ${n} could not be loaded:`, u.reason); + }), Object.assign(globalThis, ...i, Nr.prototype.bootstrap()); +}; +function Rr(e, t = {}) { + const { wrapExpression: i = !0, wrapAsync: u = !0 } = t; + i && (e = `{${e}}`), u && (e = `(async ()=>${e})()`); + const n = `"use strict";return (${e})`; + return Function(n)(); +} +const Mr = async (e, t) => { + Pt || await Tr(), t && (e = t(e)); + let u = await Rr(e, { wrapExpression: !!t }); + if (!Lr(u)) { + console.log("evaluated", u); + const n = `got "${typeof u}" instead of pattern`; + throw new Error(n + (typeof u == "function" ? ", did you forget to call a function?" : ".")); + } + return { mode: "javascript", pattern: u }; +}; +function Or({ + interval: e, + defaultOutput: t, + onSchedulerError: i, + onEvalError: u, + onEval: n, + getTime: c, + transpiler: a, + onToggle: f +}) { + const p = new Pr({ interval: e, onTrigger: t, onError: i, getTime: c, onToggle: f }); + return { scheduler: p, evaluate: async (m) => { + if (!m) + throw new Error("no code to evaluate"); + try { + const { pattern: F } = await Mr(m, a); + p.setPattern(F, !0), n?.({ + pattern: F, + code: m + }); + } catch (F) { + console.warn(`eval error: ${F.message}`), u?.(F); + } + } }; +} +var Vr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, Ai = {}, Ei = {}; +(function(e) { + (function t(i) { + var u, n, c, a, f, p; + function D(E) { + var S = {}, B, w; + for (B in E) + E.hasOwnProperty(B) && (w = E[B], typeof w == "object" && w !== null ? S[B] = D(w) : S[B] = w); + return S; + } + function m(E, S) { + var B, w, j, T; + for (w = E.length, j = 0; w; ) + B = w >>> 1, T = j + B, S(E[T]) ? w = B : (j = T + 1, w -= B + 1); + return j; + } + u = { + AssignmentExpression: "AssignmentExpression", + AssignmentPattern: "AssignmentPattern", + ArrayExpression: "ArrayExpression", + ArrayPattern: "ArrayPattern", + ArrowFunctionExpression: "ArrowFunctionExpression", + AwaitExpression: "AwaitExpression", + BlockStatement: "BlockStatement", + BinaryExpression: "BinaryExpression", + BreakStatement: "BreakStatement", + CallExpression: "CallExpression", + CatchClause: "CatchClause", + ChainExpression: "ChainExpression", + ClassBody: "ClassBody", + ClassDeclaration: "ClassDeclaration", + ClassExpression: "ClassExpression", + ComprehensionBlock: "ComprehensionBlock", + ComprehensionExpression: "ComprehensionExpression", + ConditionalExpression: "ConditionalExpression", + ContinueStatement: "ContinueStatement", + DebuggerStatement: "DebuggerStatement", + DirectiveStatement: "DirectiveStatement", + DoWhileStatement: "DoWhileStatement", + EmptyStatement: "EmptyStatement", + ExportAllDeclaration: "ExportAllDeclaration", + ExportDefaultDeclaration: "ExportDefaultDeclaration", + ExportNamedDeclaration: "ExportNamedDeclaration", + ExportSpecifier: "ExportSpecifier", + ExpressionStatement: "ExpressionStatement", + ForStatement: "ForStatement", + ForInStatement: "ForInStatement", + ForOfStatement: "ForOfStatement", + FunctionDeclaration: "FunctionDeclaration", + FunctionExpression: "FunctionExpression", + GeneratorExpression: "GeneratorExpression", + Identifier: "Identifier", + IfStatement: "IfStatement", + ImportExpression: "ImportExpression", + ImportDeclaration: "ImportDeclaration", + ImportDefaultSpecifier: "ImportDefaultSpecifier", + ImportNamespaceSpecifier: "ImportNamespaceSpecifier", + ImportSpecifier: "ImportSpecifier", + Literal: "Literal", + LabeledStatement: "LabeledStatement", + LogicalExpression: "LogicalExpression", + MemberExpression: "MemberExpression", + MetaProperty: "MetaProperty", + MethodDefinition: "MethodDefinition", + ModuleSpecifier: "ModuleSpecifier", + NewExpression: "NewExpression", + ObjectExpression: "ObjectExpression", + ObjectPattern: "ObjectPattern", + PrivateIdentifier: "PrivateIdentifier", + Program: "Program", + Property: "Property", + PropertyDefinition: "PropertyDefinition", + RestElement: "RestElement", + ReturnStatement: "ReturnStatement", + SequenceExpression: "SequenceExpression", + SpreadElement: "SpreadElement", + Super: "Super", + SwitchStatement: "SwitchStatement", + SwitchCase: "SwitchCase", + TaggedTemplateExpression: "TaggedTemplateExpression", + TemplateElement: "TemplateElement", + TemplateLiteral: "TemplateLiteral", + ThisExpression: "ThisExpression", + ThrowStatement: "ThrowStatement", + TryStatement: "TryStatement", + UnaryExpression: "UnaryExpression", + UpdateExpression: "UpdateExpression", + VariableDeclaration: "VariableDeclaration", + VariableDeclarator: "VariableDeclarator", + WhileStatement: "WhileStatement", + WithStatement: "WithStatement", + YieldExpression: "YieldExpression" + }, c = { + AssignmentExpression: ["left", "right"], + AssignmentPattern: ["left", "right"], + ArrayExpression: ["elements"], + ArrayPattern: ["elements"], + ArrowFunctionExpression: ["params", "body"], + AwaitExpression: ["argument"], + BlockStatement: ["body"], + BinaryExpression: ["left", "right"], + BreakStatement: ["label"], + CallExpression: ["callee", "arguments"], + CatchClause: ["param", "body"], + ChainExpression: ["expression"], + ClassBody: ["body"], + ClassDeclaration: ["id", "superClass", "body"], + ClassExpression: ["id", "superClass", "body"], + ComprehensionBlock: ["left", "right"], + ComprehensionExpression: ["blocks", "filter", "body"], + ConditionalExpression: ["test", "consequent", "alternate"], + ContinueStatement: ["label"], + DebuggerStatement: [], + DirectiveStatement: [], + DoWhileStatement: ["body", "test"], + EmptyStatement: [], + ExportAllDeclaration: ["source"], + ExportDefaultDeclaration: ["declaration"], + ExportNamedDeclaration: ["declaration", "specifiers", "source"], + ExportSpecifier: ["exported", "local"], + ExpressionStatement: ["expression"], + ForStatement: ["init", "test", "update", "body"], + ForInStatement: ["left", "right", "body"], + ForOfStatement: ["left", "right", "body"], + FunctionDeclaration: ["id", "params", "body"], + FunctionExpression: ["id", "params", "body"], + GeneratorExpression: ["blocks", "filter", "body"], + Identifier: [], + IfStatement: ["test", "consequent", "alternate"], + ImportExpression: ["source"], + ImportDeclaration: ["specifiers", "source"], + ImportDefaultSpecifier: ["local"], + ImportNamespaceSpecifier: ["local"], + ImportSpecifier: ["imported", "local"], + Literal: [], + LabeledStatement: ["label", "body"], + LogicalExpression: ["left", "right"], + MemberExpression: ["object", "property"], + MetaProperty: ["meta", "property"], + MethodDefinition: ["key", "value"], + ModuleSpecifier: [], + NewExpression: ["callee", "arguments"], + ObjectExpression: ["properties"], + ObjectPattern: ["properties"], + PrivateIdentifier: [], + Program: ["body"], + Property: ["key", "value"], + PropertyDefinition: ["key", "value"], + RestElement: ["argument"], + ReturnStatement: ["argument"], + SequenceExpression: ["expressions"], + SpreadElement: ["argument"], + Super: [], + SwitchStatement: ["discriminant", "cases"], + SwitchCase: ["test", "consequent"], + TaggedTemplateExpression: ["tag", "quasi"], + TemplateElement: [], + TemplateLiteral: ["quasis", "expressions"], + ThisExpression: [], + ThrowStatement: ["argument"], + TryStatement: ["block", "handler", "finalizer"], + UnaryExpression: ["argument"], + UpdateExpression: ["argument"], + VariableDeclaration: ["declarations"], + VariableDeclarator: ["id", "init"], + WhileStatement: ["test", "body"], + WithStatement: ["object", "body"], + YieldExpression: ["argument"] + }, a = {}, f = {}, p = {}, n = { + Break: a, + Skip: f, + Remove: p + }; + function F(E, S) { + this.parent = E, this.key = S; + } + F.prototype.replace = function(S) { + this.parent[this.key] = S; + }, F.prototype.remove = function() { + return Array.isArray(this.parent) ? (this.parent.splice(this.key, 1), !0) : (this.replace(null), !1); + }; + function g(E, S, B, w) { + this.node = E, this.path = S, this.wrap = B, this.ref = w; + } + function A() { + } + A.prototype.path = function() { + var S, B, w, j, T, G; + function q(R, K) { + if (Array.isArray(K)) + for (w = 0, j = K.length; w < j; ++w) + R.push(K[w]); + else + R.push(K); + } + if (!this.__current.path) + return null; + for (T = [], S = 2, B = this.__leavelist.length; S < B; ++S) + G = this.__leavelist[S], q(T, G.path); + return q(T, this.__current.path), T; + }, A.prototype.type = function() { + var E = this.current(); + return E.type || this.__current.wrap; + }, A.prototype.parents = function() { + var S, B, w; + for (w = [], S = 1, B = this.__leavelist.length; S < B; ++S) + w.push(this.__leavelist[S].node); + return w; + }, A.prototype.current = function() { + return this.__current.node; + }, A.prototype.__execute = function(S, B) { + var w, j; + return j = void 0, w = this.__current, this.__current = B, this.__state = null, S && (j = S.call(this, B.node, this.__leavelist[this.__leavelist.length - 1].node)), this.__current = w, j; + }, A.prototype.notify = function(S) { + this.__state = S; + }, A.prototype.skip = function() { + this.notify(f); + }, A.prototype.break = function() { + this.notify(a); + }, A.prototype.remove = function() { + this.notify(p); + }, A.prototype.__initialize = function(E, S) { + this.visitor = S, this.root = E, this.__worklist = [], this.__leavelist = [], this.__current = null, this.__state = null, this.__fallback = null, S.fallback === "iteration" ? this.__fallback = Object.keys : typeof S.fallback == "function" && (this.__fallback = S.fallback), this.__keys = c, S.keys && (this.__keys = Object.assign(Object.create(this.__keys), S.keys)); + }; + function v(E) { + return E == null ? !1 : typeof E == "object" && typeof E.type == "string"; + } + function C(E, S) { + return (E === u.ObjectExpression || E === u.ObjectPattern) && S === "properties"; + } + function x(E, S) { + for (var B = E.length - 1; B >= 0; --B) + if (E[B].node === S) + return !0; + return !1; + } + A.prototype.traverse = function(S, B) { + var w, j, T, G, q, R, K, te, ne, ee, Y, me; + for (this.__initialize(S, B), me = {}, w = this.__worklist, j = this.__leavelist, w.push(new g(S, null, null, null)), j.push(new g(null, null, null, null)); w.length; ) { + if (T = w.pop(), T === me) { + if (T = j.pop(), R = this.__execute(B.leave, T), this.__state === a || R === a) + return; + continue; + } + if (T.node) { + if (R = this.__execute(B.enter, T), this.__state === a || R === a) + return; + if (w.push(me), j.push(T), this.__state === f || R === f) + continue; + if (G = T.node, q = G.type || T.wrap, ee = this.__keys[q], !ee) + if (this.__fallback) + ee = this.__fallback(G); + else + throw new Error("Unknown node type " + q + "."); + for (te = ee.length; (te -= 1) >= 0; ) + if (K = ee[te], Y = G[K], !!Y) { + if (Array.isArray(Y)) { + for (ne = Y.length; (ne -= 1) >= 0; ) + if (!!Y[ne] && !x(j, Y[ne])) { + if (C(q, ee[te])) + T = new g(Y[ne], [K, ne], "Property", null); + else if (v(Y[ne])) + T = new g(Y[ne], [K, ne], null, null); + else + continue; + w.push(T); + } + } else if (v(Y)) { + if (x(j, Y)) + continue; + w.push(new g(Y, K, null, null)); + } + } + } + } + }, A.prototype.replace = function(S, B) { + var w, j, T, G, q, R, K, te, ne, ee, Y, me, xe; + function N(Ne) { + var ze, He, Z, de; + if (Ne.ref.remove()) { + for (He = Ne.ref.key, de = Ne.ref.parent, ze = w.length; ze--; ) + if (Z = w[ze], Z.ref && Z.ref.parent === de) { + if (Z.ref.key < He) + break; + --Z.ref.key; + } + } + } + for (this.__initialize(S, B), Y = {}, w = this.__worklist, j = this.__leavelist, me = { + root: S + }, R = new g(S, null, null, new F(me, "root")), w.push(R), j.push(R); w.length; ) { + if (R = w.pop(), R === Y) { + if (R = j.pop(), q = this.__execute(B.leave, R), q !== void 0 && q !== a && q !== f && q !== p && R.ref.replace(q), (this.__state === p || q === p) && N(R), this.__state === a || q === a) + return me.root; + continue; + } + if (q = this.__execute(B.enter, R), q !== void 0 && q !== a && q !== f && q !== p && (R.ref.replace(q), R.node = q), (this.__state === p || q === p) && (N(R), R.node = null), this.__state === a || q === a) + return me.root; + if (T = R.node, !!T && (w.push(Y), j.push(R), !(this.__state === f || q === f))) { + if (G = T.type || R.wrap, ne = this.__keys[G], !ne) + if (this.__fallback) + ne = this.__fallback(T); + else + throw new Error("Unknown node type " + G + "."); + for (K = ne.length; (K -= 1) >= 0; ) + if (xe = ne[K], ee = T[xe], !!ee) + if (Array.isArray(ee)) { + for (te = ee.length; (te -= 1) >= 0; ) + if (!!ee[te]) { + if (C(G, ne[K])) + R = new g(ee[te], [xe, te], "Property", new F(ee, te)); + else if (v(ee[te])) + R = new g(ee[te], [xe, te], null, new F(ee, te)); + else + continue; + w.push(R); + } + } else + v(ee) && w.push(new g(ee, xe, null, new F(T, xe))); + } + } + return me.root; + }; + function P(E, S) { + var B = new A(); + return B.traverse(E, S); + } + function I(E, S) { + var B = new A(); + return B.replace(E, S); + } + function O(E, S) { + var B; + return B = m(S, function(j) { + return j.range[0] > E.range[0]; + }), E.extendedRange = [E.range[0], E.range[1]], B !== S.length && (E.extendedRange[1] = S[B].range[0]), B -= 1, B >= 0 && (E.extendedRange[0] = S[B].range[1]), E; + } + function y(E, S, B) { + var w = [], j, T, G, q; + if (!E.range) + throw new Error("attachComments needs range information"); + if (!B.length) { + if (S.length) { + for (G = 0, T = S.length; G < T; G += 1) + j = D(S[G]), j.extendedRange = [0, E.range[0]], w.push(j); + E.leadingComments = w; + } + return E; + } + for (G = 0, T = S.length; G < T; G += 1) + w.push(O(D(S[G]), B)); + return q = 0, P(E, { + enter: function(R) { + for (var K; q < w.length && (K = w[q], !(K.extendedRange[1] > R.range[0])); ) + K.extendedRange[1] === R.range[0] ? (R.leadingComments || (R.leadingComments = []), R.leadingComments.push(K), w.splice(q, 1)) : q += 1; + if (q === w.length) + return n.Break; + if (w[q].extendedRange[0] > R.range[1]) + return n.Skip; + } + }), q = 0, P(E, { + leave: function(R) { + for (var K; q < w.length && (K = w[q], !(R.range[1] < K.extendedRange[0])); ) + R.range[1] === K.extendedRange[0] ? (R.trailingComments || (R.trailingComments = []), R.trailingComments.push(K), w.splice(q, 1)) : q += 1; + if (q === w.length) + return n.Break; + if (w[q].extendedRange[0] > R.range[1]) + return n.Skip; + } + }), E; + } + return i.Syntax = u, i.traverse = P, i.replace = I, i.attachComments = y, i.VisitorKeys = c, i.VisitorOption = n, i.Controller = A, i.cloneEnvironment = function() { + return t({}); + }, i; + })(e); +})(Ei); +var ht = {}, Fi = { exports: {} }; +(function() { + function e(a) { + if (a == null) + return !1; + switch (a.type) { + case "ArrayExpression": + case "AssignmentExpression": + case "BinaryExpression": + case "CallExpression": + case "ConditionalExpression": + case "FunctionExpression": + case "Identifier": + case "Literal": + case "LogicalExpression": + case "MemberExpression": + case "NewExpression": + case "ObjectExpression": + case "SequenceExpression": + case "ThisExpression": + case "UnaryExpression": + case "UpdateExpression": + return !0; + } + return !1; + } + function t(a) { + if (a == null) + return !1; + switch (a.type) { + case "DoWhileStatement": + case "ForInStatement": + case "ForStatement": + case "WhileStatement": + return !0; + } + return !1; + } + function i(a) { + if (a == null) + return !1; + switch (a.type) { + case "BlockStatement": + case "BreakStatement": + case "ContinueStatement": + case "DebuggerStatement": + case "DoWhileStatement": + case "EmptyStatement": + case "ExpressionStatement": + case "ForInStatement": + case "ForStatement": + case "IfStatement": + case "LabeledStatement": + case "ReturnStatement": + case "SwitchStatement": + case "ThrowStatement": + case "TryStatement": + case "VariableDeclaration": + case "WhileStatement": + case "WithStatement": + return !0; + } + return !1; + } + function u(a) { + return i(a) || a != null && a.type === "FunctionDeclaration"; + } + function n(a) { + switch (a.type) { + case "IfStatement": + return a.alternate != null ? a.alternate : a.consequent; + case "LabeledStatement": + case "ForStatement": + case "ForInStatement": + case "WhileStatement": + case "WithStatement": + return a.body; + } + return null; + } + function c(a) { + var f; + if (a.type !== "IfStatement" || a.alternate == null) + return !1; + f = a.consequent; + do { + if (f.type === "IfStatement" && f.alternate == null) + return !0; + f = n(f); + } while (f); + return !1; + } + Fi.exports = { + isExpression: e, + isStatement: i, + isIterationStatement: t, + isSourceElement: u, + isProblematicIfStatement: c, + trailingStatement: n + }; +})(); +var Rt = { exports: {} }; +(function() { + var e, t, i, u, n, c; + t = { + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, + NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/ + }, e = { + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, + NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ + }; + function a(x) { + return 48 <= x && x <= 57; + } + function f(x) { + return 48 <= x && x <= 57 || 97 <= x && x <= 102 || 65 <= x && x <= 70; + } + function p(x) { + return x >= 48 && x <= 55; + } + i = [ + 5760, + 8192, + 8193, + 8194, + 8195, + 8196, + 8197, + 8198, + 8199, + 8200, + 8201, + 8202, + 8239, + 8287, + 12288, + 65279 + ]; + function D(x) { + return x === 32 || x === 9 || x === 11 || x === 12 || x === 160 || x >= 5760 && i.indexOf(x) >= 0; + } + function m(x) { + return x === 10 || x === 13 || x === 8232 || x === 8233; + } + function F(x) { + if (x <= 65535) + return String.fromCharCode(x); + var P = String.fromCharCode(Math.floor((x - 65536) / 1024) + 55296), I = String.fromCharCode((x - 65536) % 1024 + 56320); + return P + I; + } + for (u = new Array(128), c = 0; c < 128; ++c) + u[c] = c >= 97 && c <= 122 || c >= 65 && c <= 90 || c === 36 || c === 95; + for (n = new Array(128), c = 0; c < 128; ++c) + n[c] = c >= 97 && c <= 122 || c >= 65 && c <= 90 || c >= 48 && c <= 57 || c === 36 || c === 95; + function g(x) { + return x < 128 ? u[x] : t.NonAsciiIdentifierStart.test(F(x)); + } + function A(x) { + return x < 128 ? n[x] : t.NonAsciiIdentifierPart.test(F(x)); + } + function v(x) { + return x < 128 ? u[x] : e.NonAsciiIdentifierStart.test(F(x)); + } + function C(x) { + return x < 128 ? n[x] : e.NonAsciiIdentifierPart.test(F(x)); + } + Rt.exports = { + isDecimalDigit: a, + isHexDigit: f, + isOctalDigit: p, + isWhiteSpace: D, + isLineTerminator: m, + isIdentifierStartES5: g, + isIdentifierPartES5: A, + isIdentifierStartES6: v, + isIdentifierPartES6: C + }; +})(); +var vi = { exports: {} }; +(function() { + var e = Rt.exports; + function t(g) { + switch (g) { + case "implements": + case "interface": + case "package": + case "private": + case "protected": + case "public": + case "static": + case "let": + return !0; + default: + return !1; + } + } + function i(g, A) { + return !A && g === "yield" ? !1 : u(g, A); + } + function u(g, A) { + if (A && t(g)) + return !0; + switch (g.length) { + case 2: + return g === "if" || g === "in" || g === "do"; + case 3: + return g === "var" || g === "for" || g === "new" || g === "try"; + case 4: + return g === "this" || g === "else" || g === "case" || g === "void" || g === "with" || g === "enum"; + case 5: + return g === "while" || g === "break" || g === "catch" || g === "throw" || g === "const" || g === "yield" || g === "class" || g === "super"; + case 6: + return g === "return" || g === "typeof" || g === "delete" || g === "switch" || g === "export" || g === "import"; + case 7: + return g === "default" || g === "finally" || g === "extends"; + case 8: + return g === "function" || g === "continue" || g === "debugger"; + case 10: + return g === "instanceof"; + default: + return !1; + } + } + function n(g, A) { + return g === "null" || g === "true" || g === "false" || i(g, A); + } + function c(g, A) { + return g === "null" || g === "true" || g === "false" || u(g, A); + } + function a(g) { + return g === "eval" || g === "arguments"; + } + function f(g) { + var A, v, C; + if (g.length === 0 || (C = g.charCodeAt(0), !e.isIdentifierStartES5(C))) + return !1; + for (A = 1, v = g.length; A < v; ++A) + if (C = g.charCodeAt(A), !e.isIdentifierPartES5(C)) + return !1; + return !0; + } + function p(g, A) { + return (g - 55296) * 1024 + (A - 56320) + 65536; + } + function D(g) { + var A, v, C, x, P; + if (g.length === 0) + return !1; + for (P = e.isIdentifierStartES6, A = 0, v = g.length; A < v; ++A) { + if (C = g.charCodeAt(A), 55296 <= C && C <= 56319) { + if (++A, A >= v || (x = g.charCodeAt(A), !(56320 <= x && x <= 57343))) + return !1; + C = p(C, x); + } + if (!P(C)) + return !1; + P = e.isIdentifierPartES6; + } + return !0; + } + function m(g, A) { + return f(g) && !n(g, A); + } + function F(g, A) { + return D(g) && !c(g, A); + } + vi.exports = { + isKeywordES5: i, + isKeywordES6: u, + isReservedWordES5: n, + isReservedWordES6: c, + isRestrictedWord: a, + isIdentifierNameES5: f, + isIdentifierNameES6: D, + isIdentifierES5: m, + isIdentifierES6: F + }; +})(); +(function() { + ht.ast = Fi.exports, ht.code = Rt.exports, ht.keyword = vi.exports; +})(); +var Ke = {}, Et = {}, at = {}, ot = {}, ei; +function qr() { + if (ei) + return ot; + ei = 1; + var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); + return ot.encode = function(t) { + if (0 <= t && t < e.length) + return e[t]; + throw new TypeError("Must be between 0 and 63: " + t); + }, ot.decode = function(t) { + var i = 65, u = 90, n = 97, c = 122, a = 48, f = 57, p = 43, D = 47, m = 26, F = 52; + return i <= t && t <= u ? t - i : n <= t && t <= c ? t - n + m : a <= t && t <= f ? t - a + F : t == p ? 62 : t == D ? 63 : -1; + }, ot; +} +var ti; +function xi() { + if (ti) + return at; + ti = 1; + var e = qr(), t = 5, i = 1 << t, u = i - 1, n = i; + function c(f) { + return f < 0 ? (-f << 1) + 1 : (f << 1) + 0; + } + function a(f) { + var p = (f & 1) === 1, D = f >> 1; + return p ? -D : D; + } + return at.encode = function(p) { + var D = "", m, F = c(p); + do + m = F & u, F >>>= t, F > 0 && (m |= n), D += e.encode(m); + while (F > 0); + return D; + }, at.decode = function(p, D, m) { + var F = p.length, g = 0, A = 0, v, C; + do { + if (D >= F) + throw new Error("Expected more digits in base 64 VLQ value."); + if (C = e.decode(p.charCodeAt(D++)), C === -1) + throw new Error("Invalid base64 digit: " + p.charAt(D - 1)); + v = !!(C & n), C &= u, g = g + (C << A), A += t; + } while (v); + m.value = a(g), m.rest = D; + }, at; +} +var Ft = {}, ii; +function et() { + return ii || (ii = 1, function(e) { + function t(y, E, S) { + if (E in y) + return y[E]; + if (arguments.length === 3) + return S; + throw new Error('"' + E + '" is a required argument.'); + } + e.getArg = t; + var i = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/, u = /^data:.+\,.+$/; + function n(y) { + var E = y.match(i); + return E ? { + scheme: E[1], + auth: E[2], + host: E[3], + port: E[4], + path: E[5] + } : null; + } + e.urlParse = n; + function c(y) { + var E = ""; + return y.scheme && (E += y.scheme + ":"), E += "//", y.auth && (E += y.auth + "@"), y.host && (E += y.host), y.port && (E += ":" + y.port), y.path && (E += y.path), E; + } + e.urlGenerate = c; + function a(y) { + var E = y, S = n(y); + if (S) { + if (!S.path) + return y; + E = S.path; + } + for (var B = e.isAbsolute(E), w = E.split(/\/+/), j, T = 0, G = w.length - 1; G >= 0; G--) + j = w[G], j === "." ? w.splice(G, 1) : j === ".." ? T++ : T > 0 && (j === "" ? (w.splice(G + 1, T), T = 0) : (w.splice(G, 2), T--)); + return E = w.join("/"), E === "" && (E = B ? "/" : "."), S ? (S.path = E, c(S)) : E; + } + e.normalize = a; + function f(y, E) { + y === "" && (y = "."), E === "" && (E = "."); + var S = n(E), B = n(y); + if (B && (y = B.path || "/"), S && !S.scheme) + return B && (S.scheme = B.scheme), c(S); + if (S || E.match(u)) + return E; + if (B && !B.host && !B.path) + return B.host = E, c(B); + var w = E.charAt(0) === "/" ? E : a(y.replace(/\/+$/, "") + "/" + E); + return B ? (B.path = w, c(B)) : w; + } + e.join = f, e.isAbsolute = function(y) { + return y.charAt(0) === "/" || i.test(y); + }; + function p(y, E) { + y === "" && (y = "."), y = y.replace(/\/$/, ""); + for (var S = 0; E.indexOf(y + "/") !== 0; ) { + var B = y.lastIndexOf("/"); + if (B < 0 || (y = y.slice(0, B), y.match(/^([^\/]+:\/)?\/*$/))) + return E; + ++S; + } + return Array(S + 1).join("../") + E.substr(y.length + 1); + } + e.relative = p; + var D = function() { + var y = /* @__PURE__ */ Object.create(null); + return !("__proto__" in y); + }(); + function m(y) { + return y; + } + function F(y) { + return A(y) ? "$" + y : y; + } + e.toSetString = D ? m : F; + function g(y) { + return A(y) ? y.slice(1) : y; + } + e.fromSetString = D ? m : g; + function A(y) { + if (!y) + return !1; + var E = y.length; + if (E < 9 || y.charCodeAt(E - 1) !== 95 || y.charCodeAt(E - 2) !== 95 || y.charCodeAt(E - 3) !== 111 || y.charCodeAt(E - 4) !== 116 || y.charCodeAt(E - 5) !== 111 || y.charCodeAt(E - 6) !== 114 || y.charCodeAt(E - 7) !== 112 || y.charCodeAt(E - 8) !== 95 || y.charCodeAt(E - 9) !== 95) + return !1; + for (var S = E - 10; S >= 0; S--) + if (y.charCodeAt(S) !== 36) + return !1; + return !0; + } + function v(y, E, S) { + var B = x(y.source, E.source); + return B !== 0 || (B = y.originalLine - E.originalLine, B !== 0) || (B = y.originalColumn - E.originalColumn, B !== 0 || S) || (B = y.generatedColumn - E.generatedColumn, B !== 0) || (B = y.generatedLine - E.generatedLine, B !== 0) ? B : x(y.name, E.name); + } + e.compareByOriginalPositions = v; + function C(y, E, S) { + var B = y.generatedLine - E.generatedLine; + return B !== 0 || (B = y.generatedColumn - E.generatedColumn, B !== 0 || S) || (B = x(y.source, E.source), B !== 0) || (B = y.originalLine - E.originalLine, B !== 0) || (B = y.originalColumn - E.originalColumn, B !== 0) ? B : x(y.name, E.name); + } + e.compareByGeneratedPositionsDeflated = C; + function x(y, E) { + return y === E ? 0 : y === null ? 1 : E === null ? -1 : y > E ? 1 : -1; + } + function P(y, E) { + var S = y.generatedLine - E.generatedLine; + return S !== 0 || (S = y.generatedColumn - E.generatedColumn, S !== 0) || (S = x(y.source, E.source), S !== 0) || (S = y.originalLine - E.originalLine, S !== 0) || (S = y.originalColumn - E.originalColumn, S !== 0) ? S : x(y.name, E.name); + } + e.compareByGeneratedPositionsInflated = P; + function I(y) { + return JSON.parse(y.replace(/^\)]}'[^\n]*\n/, "")); + } + e.parseSourceMapInput = I; + function O(y, E, S) { + if (E = E || "", y && (y[y.length - 1] !== "/" && E[0] !== "/" && (y += "/"), E = y + E), S) { + var B = n(S); + if (!B) + throw new Error("sourceMapURL could not be parsed"); + if (B.path) { + var w = B.path.lastIndexOf("/"); + w >= 0 && (B.path = B.path.substring(0, w + 1)); + } + E = f(c(B), E); + } + return a(E); + } + e.computeSourceURL = O; + }(Ft)), Ft; +} +var vt = {}, ri; +function yi() { + if (ri) + return vt; + ri = 1; + var e = et(), t = Object.prototype.hasOwnProperty, i = typeof Map < "u"; + function u() { + this._array = [], this._set = i ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null); + } + return u.fromArray = function(c, a) { + for (var f = new u(), p = 0, D = c.length; p < D; p++) + f.add(c[p], a); + return f; + }, u.prototype.size = function() { + return i ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }, u.prototype.add = function(c, a) { + var f = i ? c : e.toSetString(c), p = i ? this.has(c) : t.call(this._set, f), D = this._array.length; + (!p || a) && this._array.push(c), p || (i ? this._set.set(c, D) : this._set[f] = D); + }, u.prototype.has = function(c) { + if (i) + return this._set.has(c); + var a = e.toSetString(c); + return t.call(this._set, a); + }, u.prototype.indexOf = function(c) { + if (i) { + var a = this._set.get(c); + if (a >= 0) + return a; + } else { + var f = e.toSetString(c); + if (t.call(this._set, f)) + return this._set[f]; + } + throw new Error('"' + c + '" is not in the set.'); + }, u.prototype.at = function(c) { + if (c >= 0 && c < this._array.length) + return this._array[c]; + throw new Error("No element indexed by " + c); + }, u.prototype.toArray = function() { + return this._array.slice(); + }, vt.ArraySet = u, vt; +} +var xt = {}, ui; +function Ur() { + if (ui) + return xt; + ui = 1; + var e = et(); + function t(u, n) { + var c = u.generatedLine, a = n.generatedLine, f = u.generatedColumn, p = n.generatedColumn; + return a > c || a == c && p >= f || e.compareByGeneratedPositionsInflated(u, n) <= 0; + } + function i() { + this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 }; + } + return i.prototype.unsortedForEach = function(n, c) { + this._array.forEach(n, c); + }, i.prototype.add = function(n) { + t(this._last, n) ? (this._last = n, this._array.push(n)) : (this._sorted = !1, this._array.push(n)); + }, i.prototype.toArray = function() { + return this._sorted || (this._array.sort(e.compareByGeneratedPositionsInflated), this._sorted = !0), this._array; + }, xt.MappingList = i, xt; +} +var ni; +function bi() { + if (ni) + return Et; + ni = 1; + var e = xi(), t = et(), i = yi().ArraySet, u = Ur().MappingList; + function n(c) { + c || (c = {}), this._file = t.getArg(c, "file", null), this._sourceRoot = t.getArg(c, "sourceRoot", null), this._skipValidation = t.getArg(c, "skipValidation", !1), this._sources = new i(), this._names = new i(), this._mappings = new u(), this._sourcesContents = null; + } + return n.prototype._version = 3, n.fromSourceMap = function(a) { + var f = a.sourceRoot, p = new n({ + file: a.file, + sourceRoot: f + }); + return a.eachMapping(function(D) { + var m = { + generated: { + line: D.generatedLine, + column: D.generatedColumn + } + }; + D.source != null && (m.source = D.source, f != null && (m.source = t.relative(f, m.source)), m.original = { + line: D.originalLine, + column: D.originalColumn + }, D.name != null && (m.name = D.name)), p.addMapping(m); + }), a.sources.forEach(function(D) { + var m = D; + f !== null && (m = t.relative(f, D)), p._sources.has(m) || p._sources.add(m); + var F = a.sourceContentFor(D); + F != null && p.setSourceContent(D, F); + }), p; + }, n.prototype.addMapping = function(a) { + var f = t.getArg(a, "generated"), p = t.getArg(a, "original", null), D = t.getArg(a, "source", null), m = t.getArg(a, "name", null); + this._skipValidation || this._validateMapping(f, p, D, m), D != null && (D = String(D), this._sources.has(D) || this._sources.add(D)), m != null && (m = String(m), this._names.has(m) || this._names.add(m)), this._mappings.add({ + generatedLine: f.line, + generatedColumn: f.column, + originalLine: p != null && p.line, + originalColumn: p != null && p.column, + source: D, + name: m + }); + }, n.prototype.setSourceContent = function(a, f) { + var p = a; + this._sourceRoot != null && (p = t.relative(this._sourceRoot, p)), f != null ? (this._sourcesContents || (this._sourcesContents = /* @__PURE__ */ Object.create(null)), this._sourcesContents[t.toSetString(p)] = f) : this._sourcesContents && (delete this._sourcesContents[t.toSetString(p)], Object.keys(this._sourcesContents).length === 0 && (this._sourcesContents = null)); + }, n.prototype.applySourceMap = function(a, f, p) { + var D = f; + if (f == null) { + if (a.file == null) + throw new Error( + `SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.` + ); + D = a.file; + } + var m = this._sourceRoot; + m != null && (D = t.relative(m, D)); + var F = new i(), g = new i(); + this._mappings.unsortedForEach(function(A) { + if (A.source === D && A.originalLine != null) { + var v = a.originalPositionFor({ + line: A.originalLine, + column: A.originalColumn + }); + v.source != null && (A.source = v.source, p != null && (A.source = t.join(p, A.source)), m != null && (A.source = t.relative(m, A.source)), A.originalLine = v.line, A.originalColumn = v.column, v.name != null && (A.name = v.name)); + } + var C = A.source; + C != null && !F.has(C) && F.add(C); + var x = A.name; + x != null && !g.has(x) && g.add(x); + }, this), this._sources = F, this._names = g, a.sources.forEach(function(A) { + var v = a.sourceContentFor(A); + v != null && (p != null && (A = t.join(p, A)), m != null && (A = t.relative(m, A)), this.setSourceContent(A, v)); + }, this); + }, n.prototype._validateMapping = function(a, f, p, D) { + if (f && typeof f.line != "number" && typeof f.column != "number") + throw new Error( + "original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values." + ); + if (!(a && "line" in a && "column" in a && a.line > 0 && a.column >= 0 && !f && !p && !D)) { + if (a && "line" in a && "column" in a && f && "line" in f && "column" in f && a.line > 0 && a.column >= 0 && f.line > 0 && f.column >= 0 && p) + return; + throw new Error("Invalid mapping: " + JSON.stringify({ + generated: a, + source: p, + original: f, + name: D + })); + } + }, n.prototype._serializeMappings = function() { + for (var a = 0, f = 1, p = 0, D = 0, m = 0, F = 0, g = "", A, v, C, x, P = this._mappings.toArray(), I = 0, O = P.length; I < O; I++) { + if (v = P[I], A = "", v.generatedLine !== f) + for (a = 0; v.generatedLine !== f; ) + A += ";", f++; + else if (I > 0) { + if (!t.compareByGeneratedPositionsInflated(v, P[I - 1])) + continue; + A += ","; + } + A += e.encode(v.generatedColumn - a), a = v.generatedColumn, v.source != null && (x = this._sources.indexOf(v.source), A += e.encode(x - F), F = x, A += e.encode(v.originalLine - 1 - D), D = v.originalLine - 1, A += e.encode(v.originalColumn - p), p = v.originalColumn, v.name != null && (C = this._names.indexOf(v.name), A += e.encode(C - m), m = C)), g += A; + } + return g; + }, n.prototype._generateSourcesContent = function(a, f) { + return a.map(function(p) { + if (!this._sourcesContents) + return null; + f != null && (p = t.relative(f, p)); + var D = t.toSetString(p); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, D) ? this._sourcesContents[D] : null; + }, this); + }, n.prototype.toJSON = function() { + var a = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + return this._file != null && (a.file = this._file), this._sourceRoot != null && (a.sourceRoot = this._sourceRoot), this._sourcesContents && (a.sourcesContent = this._generateSourcesContent(a.sources, a.sourceRoot)), a; + }, n.prototype.toString = function() { + return JSON.stringify(this.toJSON()); + }, Et.SourceMapGenerator = n, Et; +} +var Ye = {}, yt = {}, si; +function jr() { + return si || (si = 1, function(e) { + e.GREATEST_LOWER_BOUND = 1, e.LEAST_UPPER_BOUND = 2; + function t(i, u, n, c, a, f) { + var p = Math.floor((u - i) / 2) + i, D = a(n, c[p], !0); + return D === 0 ? p : D > 0 ? u - p > 1 ? t(p, u, n, c, a, f) : f == e.LEAST_UPPER_BOUND ? u < c.length ? u : -1 : p : p - i > 1 ? t(i, p, n, c, a, f) : f == e.LEAST_UPPER_BOUND ? p : i < 0 ? -1 : i; + } + e.search = function(u, n, c, a) { + if (n.length === 0) + return -1; + var f = t( + -1, + n.length, + u, + n, + c, + a || e.GREATEST_LOWER_BOUND + ); + if (f < 0) + return -1; + for (; f - 1 >= 0 && c(n[f], n[f - 1], !0) === 0; ) + --f; + return f; + }; + }(yt)), yt; +} +var bt = {}, ai; +function Wr() { + if (ai) + return bt; + ai = 1; + function e(u, n, c) { + var a = u[n]; + u[n] = u[c], u[c] = a; + } + function t(u, n) { + return Math.round(u + Math.random() * (n - u)); + } + function i(u, n, c, a) { + if (c < a) { + var f = t(c, a), p = c - 1; + e(u, f, a); + for (var D = u[a], m = c; m < a; m++) + n(u[m], D) <= 0 && (p += 1, e(u, p, m)); + e(u, p + 1, m); + var F = p + 1; + i(u, n, c, F - 1), i(u, n, F + 1, a); + } + } + return bt.quickSort = function(u, n) { + i(u, n, 0, u.length - 1); + }, bt; +} +var oi; +function Gr() { + if (oi) + return Ye; + oi = 1; + var e = et(), t = jr(), i = yi().ArraySet, u = xi(), n = Wr().quickSort; + function c(D, m) { + var F = D; + return typeof D == "string" && (F = e.parseSourceMapInput(D)), F.sections != null ? new p(F, m) : new a(F, m); + } + c.fromSourceMap = function(D, m) { + return a.fromSourceMap(D, m); + }, c.prototype._version = 3, c.prototype.__generatedMappings = null, Object.defineProperty(c.prototype, "_generatedMappings", { + configurable: !0, + enumerable: !0, + get: function() { + return this.__generatedMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__generatedMappings; + } + }), c.prototype.__originalMappings = null, Object.defineProperty(c.prototype, "_originalMappings", { + configurable: !0, + enumerable: !0, + get: function() { + return this.__originalMappings || this._parseMappings(this._mappings, this.sourceRoot), this.__originalMappings; + } + }), c.prototype._charIsMappingSeparator = function(m, F) { + var g = m.charAt(F); + return g === ";" || g === ","; + }, c.prototype._parseMappings = function(m, F) { + throw new Error("Subclasses must implement _parseMappings"); + }, c.GENERATED_ORDER = 1, c.ORIGINAL_ORDER = 2, c.GREATEST_LOWER_BOUND = 1, c.LEAST_UPPER_BOUND = 2, c.prototype.eachMapping = function(m, F, g) { + var A = F || null, v = g || c.GENERATED_ORDER, C; + switch (v) { + case c.GENERATED_ORDER: + C = this._generatedMappings; + break; + case c.ORIGINAL_ORDER: + C = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + var x = this.sourceRoot; + C.map(function(P) { + var I = P.source === null ? null : this._sources.at(P.source); + return I = e.computeSourceURL(x, I, this._sourceMapURL), { + source: I, + generatedLine: P.generatedLine, + generatedColumn: P.generatedColumn, + originalLine: P.originalLine, + originalColumn: P.originalColumn, + name: P.name === null ? null : this._names.at(P.name) + }; + }, this).forEach(m, A); + }, c.prototype.allGeneratedPositionsFor = function(m) { + var F = e.getArg(m, "line"), g = { + source: e.getArg(m, "source"), + originalLine: F, + originalColumn: e.getArg(m, "column", 0) + }; + if (g.source = this._findSourceIndex(g.source), g.source < 0) + return []; + var A = [], v = this._findMapping( + g, + this._originalMappings, + "originalLine", + "originalColumn", + e.compareByOriginalPositions, + t.LEAST_UPPER_BOUND + ); + if (v >= 0) { + var C = this._originalMappings[v]; + if (m.column === void 0) + for (var x = C.originalLine; C && C.originalLine === x; ) + A.push({ + line: e.getArg(C, "generatedLine", null), + column: e.getArg(C, "generatedColumn", null), + lastColumn: e.getArg(C, "lastGeneratedColumn", null) + }), C = this._originalMappings[++v]; + else + for (var P = C.originalColumn; C && C.originalLine === F && C.originalColumn == P; ) + A.push({ + line: e.getArg(C, "generatedLine", null), + column: e.getArg(C, "generatedColumn", null), + lastColumn: e.getArg(C, "lastGeneratedColumn", null) + }), C = this._originalMappings[++v]; + } + return A; + }, Ye.SourceMapConsumer = c; + function a(D, m) { + var F = D; + typeof D == "string" && (F = e.parseSourceMapInput(D)); + var g = e.getArg(F, "version"), A = e.getArg(F, "sources"), v = e.getArg(F, "names", []), C = e.getArg(F, "sourceRoot", null), x = e.getArg(F, "sourcesContent", null), P = e.getArg(F, "mappings"), I = e.getArg(F, "file", null); + if (g != this._version) + throw new Error("Unsupported version: " + g); + C && (C = e.normalize(C)), A = A.map(String).map(e.normalize).map(function(O) { + return C && e.isAbsolute(C) && e.isAbsolute(O) ? e.relative(C, O) : O; + }), this._names = i.fromArray(v.map(String), !0), this._sources = i.fromArray(A, !0), this._absoluteSources = this._sources.toArray().map(function(O) { + return e.computeSourceURL(C, O, m); + }), this.sourceRoot = C, this.sourcesContent = x, this._mappings = P, this._sourceMapURL = m, this.file = I; + } + a.prototype = Object.create(c.prototype), a.prototype.consumer = c, a.prototype._findSourceIndex = function(D) { + var m = D; + if (this.sourceRoot != null && (m = e.relative(this.sourceRoot, m)), this._sources.has(m)) + return this._sources.indexOf(m); + var F; + for (F = 0; F < this._absoluteSources.length; ++F) + if (this._absoluteSources[F] == D) + return F; + return -1; + }, a.fromSourceMap = function(m, F) { + var g = Object.create(a.prototype), A = g._names = i.fromArray(m._names.toArray(), !0), v = g._sources = i.fromArray(m._sources.toArray(), !0); + g.sourceRoot = m._sourceRoot, g.sourcesContent = m._generateSourcesContent( + g._sources.toArray(), + g.sourceRoot + ), g.file = m._file, g._sourceMapURL = F, g._absoluteSources = g._sources.toArray().map(function(S) { + return e.computeSourceURL(g.sourceRoot, S, F); + }); + for (var C = m._mappings.toArray().slice(), x = g.__generatedMappings = [], P = g.__originalMappings = [], I = 0, O = C.length; I < O; I++) { + var y = C[I], E = new f(); + E.generatedLine = y.generatedLine, E.generatedColumn = y.generatedColumn, y.source && (E.source = v.indexOf(y.source), E.originalLine = y.originalLine, E.originalColumn = y.originalColumn, y.name && (E.name = A.indexOf(y.name)), P.push(E)), x.push(E); + } + return n(g.__originalMappings, e.compareByOriginalPositions), g; + }, a.prototype._version = 3, Object.defineProperty(a.prototype, "sources", { + get: function() { + return this._absoluteSources.slice(); + } + }); + function f() { + this.generatedLine = 0, this.generatedColumn = 0, this.source = null, this.originalLine = null, this.originalColumn = null, this.name = null; + } + a.prototype._parseMappings = function(m, F) { + for (var g = 1, A = 0, v = 0, C = 0, x = 0, P = 0, I = m.length, O = 0, y = {}, E = {}, S = [], B = [], w, j, T, G, q; O < I; ) + if (m.charAt(O) === ";") + g++, O++, A = 0; + else if (m.charAt(O) === ",") + O++; + else { + for (w = new f(), w.generatedLine = g, G = O; G < I && !this._charIsMappingSeparator(m, G); G++) + ; + if (j = m.slice(O, G), T = y[j], T) + O += j.length; + else { + for (T = []; O < G; ) + u.decode(m, O, E), q = E.value, O = E.rest, T.push(q); + if (T.length === 2) + throw new Error("Found a source, but no line and column"); + if (T.length === 3) + throw new Error("Found a source and line, but no column"); + y[j] = T; + } + w.generatedColumn = A + T[0], A = w.generatedColumn, T.length > 1 && (w.source = x + T[1], x += T[1], w.originalLine = v + T[2], v = w.originalLine, w.originalLine += 1, w.originalColumn = C + T[3], C = w.originalColumn, T.length > 4 && (w.name = P + T[4], P += T[4])), B.push(w), typeof w.originalLine == "number" && S.push(w); + } + n(B, e.compareByGeneratedPositionsDeflated), this.__generatedMappings = B, n(S, e.compareByOriginalPositions), this.__originalMappings = S; + }, a.prototype._findMapping = function(m, F, g, A, v, C) { + if (m[g] <= 0) + throw new TypeError("Line must be greater than or equal to 1, got " + m[g]); + if (m[A] < 0) + throw new TypeError("Column must be greater than or equal to 0, got " + m[A]); + return t.search(m, F, v, C); + }, a.prototype.computeColumnSpans = function() { + for (var m = 0; m < this._generatedMappings.length; ++m) { + var F = this._generatedMappings[m]; + if (m + 1 < this._generatedMappings.length) { + var g = this._generatedMappings[m + 1]; + if (F.generatedLine === g.generatedLine) { + F.lastGeneratedColumn = g.generatedColumn - 1; + continue; + } + } + F.lastGeneratedColumn = 1 / 0; + } + }, a.prototype.originalPositionFor = function(m) { + var F = { + generatedLine: e.getArg(m, "line"), + generatedColumn: e.getArg(m, "column") + }, g = this._findMapping( + F, + this._generatedMappings, + "generatedLine", + "generatedColumn", + e.compareByGeneratedPositionsDeflated, + e.getArg(m, "bias", c.GREATEST_LOWER_BOUND) + ); + if (g >= 0) { + var A = this._generatedMappings[g]; + if (A.generatedLine === F.generatedLine) { + var v = e.getArg(A, "source", null); + v !== null && (v = this._sources.at(v), v = e.computeSourceURL(this.sourceRoot, v, this._sourceMapURL)); + var C = e.getArg(A, "name", null); + return C !== null && (C = this._names.at(C)), { + source: v, + line: e.getArg(A, "originalLine", null), + column: e.getArg(A, "originalColumn", null), + name: C + }; + } + } + return { + source: null, + line: null, + column: null, + name: null + }; + }, a.prototype.hasContentsOfAllSources = function() { + return this.sourcesContent ? this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(m) { + return m == null; + }) : !1; + }, a.prototype.sourceContentFor = function(m, F) { + if (!this.sourcesContent) + return null; + var g = this._findSourceIndex(m); + if (g >= 0) + return this.sourcesContent[g]; + var A = m; + this.sourceRoot != null && (A = e.relative(this.sourceRoot, A)); + var v; + if (this.sourceRoot != null && (v = e.urlParse(this.sourceRoot))) { + var C = A.replace(/^file:\/\//, ""); + if (v.scheme == "file" && this._sources.has(C)) + return this.sourcesContent[this._sources.indexOf(C)]; + if ((!v.path || v.path == "/") && this._sources.has("/" + A)) + return this.sourcesContent[this._sources.indexOf("/" + A)]; + } + if (F) + return null; + throw new Error('"' + A + '" is not in the SourceMap.'); + }, a.prototype.generatedPositionFor = function(m) { + var F = e.getArg(m, "source"); + if (F = this._findSourceIndex(F), F < 0) + return { + line: null, + column: null, + lastColumn: null + }; + var g = { + source: F, + originalLine: e.getArg(m, "line"), + originalColumn: e.getArg(m, "column") + }, A = this._findMapping( + g, + this._originalMappings, + "originalLine", + "originalColumn", + e.compareByOriginalPositions, + e.getArg(m, "bias", c.GREATEST_LOWER_BOUND) + ); + if (A >= 0) { + var v = this._originalMappings[A]; + if (v.source === g.source) + return { + line: e.getArg(v, "generatedLine", null), + column: e.getArg(v, "generatedColumn", null), + lastColumn: e.getArg(v, "lastGeneratedColumn", null) + }; + } + return { + line: null, + column: null, + lastColumn: null + }; + }, Ye.BasicSourceMapConsumer = a; + function p(D, m) { + var F = D; + typeof D == "string" && (F = e.parseSourceMapInput(D)); + var g = e.getArg(F, "version"), A = e.getArg(F, "sections"); + if (g != this._version) + throw new Error("Unsupported version: " + g); + this._sources = new i(), this._names = new i(); + var v = { + line: -1, + column: 0 + }; + this._sections = A.map(function(C) { + if (C.url) + throw new Error("Support for url field in sections not implemented."); + var x = e.getArg(C, "offset"), P = e.getArg(x, "line"), I = e.getArg(x, "column"); + if (P < v.line || P === v.line && I < v.column) + throw new Error("Section offsets must be ordered and non-overlapping."); + return v = x, { + generatedOffset: { + generatedLine: P + 1, + generatedColumn: I + 1 + }, + consumer: new c(e.getArg(C, "map"), m) + }; + }); + } + return p.prototype = Object.create(c.prototype), p.prototype.constructor = c, p.prototype._version = 3, Object.defineProperty(p.prototype, "sources", { + get: function() { + for (var D = [], m = 0; m < this._sections.length; m++) + for (var F = 0; F < this._sections[m].consumer.sources.length; F++) + D.push(this._sections[m].consumer.sources[F]); + return D; + } + }), p.prototype.originalPositionFor = function(m) { + var F = { + generatedLine: e.getArg(m, "line"), + generatedColumn: e.getArg(m, "column") + }, g = t.search( + F, + this._sections, + function(v, C) { + var x = v.generatedLine - C.generatedOffset.generatedLine; + return x || v.generatedColumn - C.generatedOffset.generatedColumn; + } + ), A = this._sections[g]; + return A ? A.consumer.originalPositionFor({ + line: F.generatedLine - (A.generatedOffset.generatedLine - 1), + column: F.generatedColumn - (A.generatedOffset.generatedLine === F.generatedLine ? A.generatedOffset.generatedColumn - 1 : 0), + bias: m.bias + }) : { + source: null, + line: null, + column: null, + name: null + }; + }, p.prototype.hasContentsOfAllSources = function() { + return this._sections.every(function(m) { + return m.consumer.hasContentsOfAllSources(); + }); + }, p.prototype.sourceContentFor = function(m, F) { + for (var g = 0; g < this._sections.length; g++) { + var A = this._sections[g], v = A.consumer.sourceContentFor(m, !0); + if (v) + return v; + } + if (F) + return null; + throw new Error('"' + m + '" is not in the SourceMap.'); + }, p.prototype.generatedPositionFor = function(m) { + for (var F = 0; F < this._sections.length; F++) { + var g = this._sections[F]; + if (g.consumer._findSourceIndex(e.getArg(m, "source")) !== -1) { + var A = g.consumer.generatedPositionFor(m); + if (A) { + var v = { + line: A.line + (g.generatedOffset.generatedLine - 1), + column: A.column + (g.generatedOffset.generatedLine === A.line ? g.generatedOffset.generatedColumn - 1 : 0) + }; + return v; + } + } + } + return { + line: null, + column: null + }; + }, p.prototype._parseMappings = function(m, F) { + this.__generatedMappings = [], this.__originalMappings = []; + for (var g = 0; g < this._sections.length; g++) + for (var A = this._sections[g], v = A.consumer._generatedMappings, C = 0; C < v.length; C++) { + var x = v[C], P = A.consumer._sources.at(x.source); + P = e.computeSourceURL(A.consumer.sourceRoot, P, this._sourceMapURL), this._sources.add(P), P = this._sources.indexOf(P); + var I = null; + x.name && (I = A.consumer._names.at(x.name), this._names.add(I), I = this._names.indexOf(I)); + var O = { + source: P, + generatedLine: x.generatedLine + (A.generatedOffset.generatedLine - 1), + generatedColumn: x.generatedColumn + (A.generatedOffset.generatedLine === x.generatedLine ? A.generatedOffset.generatedColumn - 1 : 0), + originalLine: x.originalLine, + originalColumn: x.originalColumn, + name: I + }; + this.__generatedMappings.push(O), typeof O.originalLine == "number" && this.__originalMappings.push(O); + } + n(this.__generatedMappings, e.compareByGeneratedPositionsDeflated), n(this.__originalMappings, e.compareByOriginalPositions); + }, Ye.IndexedSourceMapConsumer = p, Ye; +} +var St = {}, li; +function zr() { + if (li) + return St; + li = 1; + var e = bi().SourceMapGenerator, t = et(), i = /(\r?\n)/, u = 10, n = "$$$isSourceNode$$$"; + function c(a, f, p, D, m) { + this.children = [], this.sourceContents = {}, this.line = a ?? null, this.column = f ?? null, this.source = p ?? null, this.name = m ?? null, this[n] = !0, D != null && this.add(D); + } + return c.fromStringWithSourceMap = function(f, p, D) { + var m = new c(), F = f.split(i), g = 0, A = function() { + var I = y(), O = y() || ""; + return I + O; + function y() { + return g < F.length ? F[g++] : void 0; + } + }, v = 1, C = 0, x = null; + return p.eachMapping(function(I) { + if (x !== null) + if (v < I.generatedLine) + P(x, A()), v++, C = 0; + else { + var O = F[g] || "", y = O.substr(0, I.generatedColumn - C); + F[g] = O.substr(I.generatedColumn - C), C = I.generatedColumn, P(x, y), x = I; + return; + } + for (; v < I.generatedLine; ) + m.add(A()), v++; + if (C < I.generatedColumn) { + var O = F[g] || ""; + m.add(O.substr(0, I.generatedColumn)), F[g] = O.substr(I.generatedColumn), C = I.generatedColumn; + } + x = I; + }, this), g < F.length && (x && P(x, A()), m.add(F.splice(g).join(""))), p.sources.forEach(function(I) { + var O = p.sourceContentFor(I); + O != null && (D != null && (I = t.join(D, I)), m.setSourceContent(I, O)); + }), m; + function P(I, O) { + if (I === null || I.source === void 0) + m.add(O); + else { + var y = D ? t.join(D, I.source) : I.source; + m.add(new c( + I.originalLine, + I.originalColumn, + y, + O, + I.name + )); + } + } + }, c.prototype.add = function(f) { + if (Array.isArray(f)) + f.forEach(function(p) { + this.add(p); + }, this); + else if (f[n] || typeof f == "string") + f && this.children.push(f); + else + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + f + ); + return this; + }, c.prototype.prepend = function(f) { + if (Array.isArray(f)) + for (var p = f.length - 1; p >= 0; p--) + this.prepend(f[p]); + else if (f[n] || typeof f == "string") + this.children.unshift(f); + else + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + f + ); + return this; + }, c.prototype.walk = function(f) { + for (var p, D = 0, m = this.children.length; D < m; D++) + p = this.children[D], p[n] ? p.walk(f) : p !== "" && f(p, { + source: this.source, + line: this.line, + column: this.column, + name: this.name + }); + }, c.prototype.join = function(f) { + var p, D, m = this.children.length; + if (m > 0) { + for (p = [], D = 0; D < m - 1; D++) + p.push(this.children[D]), p.push(f); + p.push(this.children[D]), this.children = p; + } + return this; + }, c.prototype.replaceRight = function(f, p) { + var D = this.children[this.children.length - 1]; + return D[n] ? D.replaceRight(f, p) : typeof D == "string" ? this.children[this.children.length - 1] = D.replace(f, p) : this.children.push("".replace(f, p)), this; + }, c.prototype.setSourceContent = function(f, p) { + this.sourceContents[t.toSetString(f)] = p; + }, c.prototype.walkSourceContents = function(f) { + for (var p = 0, D = this.children.length; p < D; p++) + this.children[p][n] && this.children[p].walkSourceContents(f); + for (var m = Object.keys(this.sourceContents), p = 0, D = m.length; p < D; p++) + f(t.fromSetString(m[p]), this.sourceContents[m[p]]); + }, c.prototype.toString = function() { + var f = ""; + return this.walk(function(p) { + f += p; + }), f; + }, c.prototype.toStringWithSourceMap = function(f) { + var p = { + code: "", + line: 1, + column: 0 + }, D = new e(f), m = !1, F = null, g = null, A = null, v = null; + return this.walk(function(C, x) { + p.code += C, x.source !== null && x.line !== null && x.column !== null ? ((F !== x.source || g !== x.line || A !== x.column || v !== x.name) && D.addMapping({ + source: x.source, + original: { + line: x.line, + column: x.column + }, + generated: { + line: p.line, + column: p.column + }, + name: x.name + }), F = x.source, g = x.line, A = x.column, v = x.name, m = !0) : m && (D.addMapping({ + generated: { + line: p.line, + column: p.column + } + }), F = null, m = !1); + for (var P = 0, I = C.length; P < I; P++) + C.charCodeAt(P) === u ? (p.line++, p.column = 0, P + 1 === I ? (F = null, m = !1) : m && D.addMapping({ + source: x.source, + original: { + line: x.line, + column: x.column + }, + generated: { + line: p.line, + column: p.column + }, + name: x.name + })) : p.column++; + }), this.walkSourceContents(function(C, x) { + D.setSourceContent(C, x); + }), { code: p.code, map: D }; + }, St.SourceNode = c, St; +} +var ci; +function Hr() { + return ci || (ci = 1, Ke.SourceMapGenerator = bi().SourceMapGenerator, Ke.SourceMapConsumer = Gr().SourceMapConsumer, Ke.SourceNode = zr().SourceNode), Ke; +} +const Qr = "escodegen", Kr = "ECMAScript code generator", Yr = "http://github.com/estools/escodegen", Xr = "escodegen.js", Zr = { + esgenerate: "./bin/esgenerate.js", + escodegen: "./bin/escodegen.js" +}, $r = [ + "LICENSE.BSD", + "README.md", + "bin", + "escodegen.js", + "package.json" +], Jr = "2.0.0", eu = { + node: ">=6.0" +}, tu = [ + { + name: "Yusuke Suzuki", + email: "utatane.tea@gmail.com", + web: "http://github.com/Constellation" + } +], iu = { + type: "git", + url: "http://github.com/estools/escodegen.git" +}, ru = { + estraverse: "^5.2.0", + esutils: "^2.0.2", + esprima: "^4.0.1", + optionator: "^0.8.1" +}, uu = { + "source-map": "~0.6.1" +}, nu = { + acorn: "^7.3.1", + bluebird: "^3.4.7", + "bower-registry-client": "^1.0.0", + chai: "^4.2.0", + "chai-exclude": "^2.0.2", + "commonjs-everywhere": "^0.9.7", + gulp: "^3.8.10", + "gulp-eslint": "^3.0.1", + "gulp-mocha": "^3.0.1", + semver: "^5.1.0" +}, su = "BSD-2-Clause", au = { + test: "gulp travis", + "unit-test": "gulp test", + lint: "gulp lint", + release: "node tools/release.js", + "build-min": "./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js", + build: "./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js" +}, ou = { + name: Qr, + description: Kr, + homepage: Yr, + main: Xr, + bin: Zr, + files: $r, + version: Jr, + engines: eu, + maintainers: tu, + repository: iu, + dependencies: ru, + optionalDependencies: uu, + devDependencies: nu, + license: su, + scripts: au +}; +(function(e) { + (function() { + var t, i, u, n, c, a, f, p, D, m, F, g, A, v, C, x, P, I, O, y, E, S, B, w, j, T; + c = Ei, a = ht, t = c.Syntax; + function G(r) { + return ue.Expression.hasOwnProperty(r.type); + } + function q(r) { + return ue.Statement.hasOwnProperty(r.type); + } + i = { + Sequence: 0, + Yield: 1, + Assignment: 1, + Conditional: 2, + ArrowFunction: 2, + LogicalOR: 3, + LogicalAND: 4, + BitwiseOR: 5, + BitwiseXOR: 6, + BitwiseAND: 7, + Equality: 8, + Relational: 9, + BitwiseSHIFT: 10, + Additive: 11, + Multiplicative: 12, + Exponentiation: 13, + Await: 14, + Unary: 14, + Postfix: 15, + OptionalChaining: 16, + Call: 17, + New: 18, + TaggedTemplate: 19, + Member: 20, + Primary: 21 + }, u = { + "||": i.LogicalOR, + "&&": i.LogicalAND, + "|": i.BitwiseOR, + "^": i.BitwiseXOR, + "&": i.BitwiseAND, + "==": i.Equality, + "!=": i.Equality, + "===": i.Equality, + "!==": i.Equality, + is: i.Equality, + isnt: i.Equality, + "<": i.Relational, + ">": i.Relational, + "<=": i.Relational, + ">=": i.Relational, + in: i.Relational, + instanceof: i.Relational, + "<<": i.BitwiseSHIFT, + ">>": i.BitwiseSHIFT, + ">>>": i.BitwiseSHIFT, + "+": i.Additive, + "-": i.Additive, + "*": i.Multiplicative, + "%": i.Multiplicative, + "/": i.Multiplicative, + "**": i.Exponentiation + }; + var R = 1, K = 1 << 1, te = 1 << 2, ne = 1 << 3, ee = 1 << 4, Y = 1 << 5, me = K | te, xe = R | K, N = R | K | te, Ne = R, ze = te, He = R | te, Z = R, de = R | Y, ut = 0, nr = R | ee, sr = R | ne; + function zt() { + return { + indent: null, + base: null, + parse: null, + comment: !1, + format: { + indent: { + style: " ", + base: 0, + adjustMultilineComment: !1 + }, + newline: ` +`, + space: " ", + json: !1, + renumber: !1, + hexadecimal: !1, + quotes: "single", + escapeless: !1, + compact: !1, + parentheses: !0, + semicolons: !0, + safeConcatenation: !1, + preserveBlankLines: !1 + }, + moz: { + comprehensionExpressionStartsWithAssignment: !1, + starlessGenerator: !1 + }, + sourceMap: null, + sourceMapRoot: null, + sourceMapWithCode: !1, + directive: !1, + raw: !0, + verbatim: null, + sourceCode: null + }; + } + function Te(r, o) { + var s = ""; + for (o |= 0; o > 0; o >>>= 1, r += r) + o & 1 && (s += r); + return s; + } + function ar(r) { + return /[\r\n]/g.test(r); + } + function le(r) { + var o = r.length; + return o && a.code.isLineTerminator(r.charCodeAt(o - 1)); + } + function Ht(r, o) { + var s; + for (s in o) + o.hasOwnProperty(s) && (r[s] = o[s]); + return r; + } + function nt(r, o) { + var s, l; + function d(b) { + return typeof b == "object" && b instanceof Object && !(b instanceof RegExp); + } + for (s in o) + o.hasOwnProperty(s) && (l = o[s], d(l) ? d(r[s]) ? nt(r[s], l) : r[s] = nt({}, l) : r[s] = l); + return r; + } + function or(r) { + var o, s, l, d, b; + if (r !== r) + throw new Error("Numeric literal whose value is NaN"); + if (r < 0 || r === 0 && 1 / r < 0) + throw new Error("Numeric literal whose value is negative"); + if (r === 1 / 0) + return D ? "null" : m ? "1e400" : "1e+400"; + if (o = "" + r, !m || o.length < 3) + return o; + for (s = o.indexOf("."), !D && o.charCodeAt(0) === 48 && s === 1 && (s = 0, o = o.slice(1)), l = o, o = o.replace("e+", "e"), d = 0, (b = l.indexOf("e")) > 0 && (d = +l.slice(b + 1), l = l.slice(0, b)), s >= 0 && (d -= l.length - s - 1, l = +(l.slice(0, s) + l.slice(s + 1)) + ""), b = 0; l.charCodeAt(l.length + b - 1) === 48; ) + --b; + return b !== 0 && (d -= b, l = l.slice(0, b)), d !== 0 && (l += "e" + d), (l.length < o.length || F && r > 1e12 && Math.floor(r) === r && (l = "0x" + r.toString(16)).length < o.length) && +l === r && (o = l), o; + } + function Qt(r, o) { + return (r & -2) === 8232 ? (o ? "u" : "\\u") + (r === 8232 ? "2028" : "2029") : r === 10 || r === 13 ? (o ? "" : "\\") + (r === 10 ? "n" : "r") : String.fromCharCode(r); + } + function lr(r) { + var o, s, l, d, b, _, k, L; + if (s = r.toString(), r.source) { + if (o = s.match(/\/([^/]*)$/), !o) + return s; + for (l = o[1], s = "", k = !1, L = !1, d = 0, b = r.source.length; d < b; ++d) + _ = r.source.charCodeAt(d), L ? (s += Qt(_, L), L = !1) : (k ? _ === 93 && (k = !1) : _ === 47 ? s += "\\" : _ === 91 && (k = !0), s += Qt(_, L), L = _ === 92); + return "/" + s + "/" + l; + } + return s; + } + function cr(r, o) { + var s; + return r === 8 ? "\\b" : r === 12 ? "\\f" : r === 9 ? "\\t" : (s = r.toString(16).toUpperCase(), D || r > 255 ? "\\u" + "0000".slice(s.length) + s : r === 0 && !a.code.isDecimalDigit(o) ? "\\0" : r === 11 ? "\\x0B" : "\\x" + "00".slice(s.length) + s); + } + function hr(r) { + if (r === 92) + return "\\\\"; + if (r === 10) + return "\\n"; + if (r === 13) + return "\\r"; + if (r === 8232) + return "\\u2028"; + if (r === 8233) + return "\\u2029"; + throw new Error("Incorrectly classified character"); + } + function fr(r) { + var o, s, l, d; + for (d = g === "double" ? '"' : "'", o = 0, s = r.length; o < s; ++o) + if (l = r.charCodeAt(o), l === 39) { + d = '"'; + break; + } else if (l === 34) { + d = "'"; + break; + } else + l === 92 && ++o; + return d + r + d; + } + function pr(r) { + var o = "", s, l, d, b = 0, _ = 0, k, L; + for (s = 0, l = r.length; s < l; ++s) { + if (d = r.charCodeAt(s), d === 39) + ++b; + else if (d === 34) + ++_; + else if (d === 47 && D) + o += "\\"; + else if (a.code.isLineTerminator(d) || d === 92) { + o += hr(d); + continue; + } else if (!a.code.isIdentifierPartES5(d) && (D && d < 32 || !D && !A && (d < 32 || d > 126))) { + o += cr(d, r.charCodeAt(s + 1)); + continue; + } + o += String.fromCharCode(d); + } + if (k = !(g === "double" || g === "auto" && _ < b), L = k ? "'" : '"', !(k ? b : _)) + return L + o + L; + for (r = o, o = L, s = 0, l = r.length; s < l; ++s) + d = r.charCodeAt(s), (d === 39 && k || d === 34 && !k) && (o += "\\"), o += String.fromCharCode(d); + return o + L; + } + function Kt(r) { + var o, s, l, d = ""; + for (o = 0, s = r.length; o < s; ++o) + l = r[o], d += Array.isArray(l) ? Kt(l) : l; + return d; + } + function $(r, o) { + if (!S) + return Array.isArray(r) ? Kt(r) : r; + if (o == null) { + if (r instanceof n) + return r; + o = {}; + } + return o.loc == null ? new n(null, null, S, r, o.name || null) : new n(o.loc.start.line, o.loc.start.column, S === !0 ? o.loc.source || null : S, r, o.name || null); + } + function ce() { + return C || " "; + } + function U(r, o) { + var s, l, d, b; + return s = $(r).toString(), s.length === 0 ? [o] : (l = $(o).toString(), l.length === 0 ? [r] : (d = s.charCodeAt(s.length - 1), b = l.charCodeAt(0), (d === 43 || d === 45) && d === b || a.code.isIdentifierPartES5(d) && a.code.isIdentifierPartES5(b) || d === 47 && b === 105 ? [r, ce(), o] : a.code.isWhiteSpace(d) || a.code.isLineTerminator(d) || a.code.isWhiteSpace(b) || a.code.isLineTerminator(b) ? [r, o] : [r, C, o])); + } + function he(r) { + return [f, r]; + } + function re(r) { + var o; + o = f, f += p, r(f), f = o; + } + function dr(r) { + var o; + for (o = r.length - 1; o >= 0 && !a.code.isLineTerminator(r.charCodeAt(o)); --o) + ; + return r.length - 1 - o; + } + function Dr(r, o) { + var s, l, d, b, _, k, L, H; + for (s = r.split(/\r\n|[\r\n]/), k = Number.MAX_VALUE, l = 1, d = s.length; l < d; ++l) { + for (b = s[l], _ = 0; _ < b.length && a.code.isWhiteSpace(b.charCodeAt(_)); ) + ++_; + k > _ && (k = _); + } + for (typeof o < "u" ? (L = f, s[1][k] === "*" && (o += " "), f = o) : (k & 1 && --k, L = f), l = 1, d = s.length; l < d; ++l) + H = $(he(s[l].slice(k))), s[l] = S ? H.join("") : H; + return f = L, s.join(` +`); + } + function Se(r, o) { + if (r.type === "Line") { + if (le(r.value)) + return "//" + r.value; + var s = "//" + r.value; + return w || (s += ` +`), s; + } + return y.format.indent.adjustMultilineComment && /[\n\r]/.test(r.value) ? Dr("/*" + r.value + "*/", o) : "/*" + r.value + "*/"; + } + function Yt(r, o) { + var s, l, d, b, _, k, L, H, ae, Re, qe, $t, Jt, ye; + if (r.leadingComments && r.leadingComments.length > 0) { + if (b = o, w) { + for (d = r.leadingComments[0], o = [], H = d.extendedRange, ae = d.range, qe = B.substring(H[0], ae[0]), ye = (qe.match(/\n/g) || []).length, ye > 0 ? (o.push(Te(` +`, ye)), o.push(he(Se(d)))) : (o.push(qe), o.push(Se(d))), Re = ae, s = 1, l = r.leadingComments.length; s < l; s++) + d = r.leadingComments[s], ae = d.range, $t = B.substring(Re[1], ae[0]), ye = ($t.match(/\n/g) || []).length, o.push(Te(` +`, ye)), o.push(he(Se(d))), Re = ae; + Jt = B.substring(ae[1], H[1]), ye = (Jt.match(/\n/g) || []).length, o.push(Te(` +`, ye)); + } else + for (d = r.leadingComments[0], o = [], I && r.type === t.Program && r.body.length === 0 && o.push(` +`), o.push(Se(d)), le($(o).toString()) || o.push(` +`), s = 1, l = r.leadingComments.length; s < l; ++s) + d = r.leadingComments[s], L = [Se(d)], le($(L).toString()) || L.push(` +`), o.push(he(L)); + o.push(he(b)); + } + if (r.trailingComments) + if (w) + d = r.trailingComments[0], H = d.extendedRange, ae = d.range, qe = B.substring(H[0], ae[0]), ye = (qe.match(/\n/g) || []).length, ye > 0 ? (o.push(Te(` +`, ye)), o.push(he(Se(d)))) : (o.push(qe), o.push(Se(d))); + else + for (_ = !le($(o).toString()), k = Te(" ", dr($([f, o, p]).toString())), s = 0, l = r.trailingComments.length; s < l; ++s) + d = r.trailingComments[s], _ ? (s === 0 ? o = [o, p] : o = [o, k], o.push(Se(d, k))) : o = [o, he(Se(d))], s !== l - 1 && !le($(o).toString()) && (o = [o, ` +`]); + return o; + } + function Ve(r, o, s) { + var l, d = 0; + for (l = r; l < o; l++) + B[l] === ` +` && d++; + for (l = 1; l < d; l++) + s.push(v); + } + function se(r, o, s) { + return o < s ? ["(", r, ")"] : r; + } + function Xt(r) { + var o, s, l; + for (l = r.split(/\r\n|\n/), o = 1, s = l.length; o < s; o++) + l[o] = v + f + l[o]; + return l; + } + function mr(r, o) { + var s, l, d; + return s = r[y.verbatim], typeof s == "string" ? l = se(Xt(s), i.Sequence, o) : (l = Xt(s.content), d = s.precedence != null ? s.precedence : i.Sequence, l = se(l, d, o)), $(l, r); + } + function ue() { + } + ue.prototype.maybeBlock = function(r, o) { + var s, l, d = this; + return l = !y.comment || !r.leadingComments, r.type === t.BlockStatement && l ? [C, this.generateStatement(r, o)] : r.type === t.EmptyStatement && l ? ";" : (re(function() { + s = [ + v, + he(d.generateStatement(r, o)) + ]; + }), s); + }, ue.prototype.maybeBlockSuffix = function(r, o) { + var s = le($(o).toString()); + return r.type === t.BlockStatement && (!y.comment || !r.leadingComments) && !s ? [o, C] : s ? [o, f] : [o, v, f]; + }; + function De(r) { + return $(r.name, r); + } + function Qe(r, o) { + return r.async ? "async" + (o ? ce() : C) : ""; + } + function st(r) { + var o = r.generator && !y.moz.starlessGenerator; + return o ? "*" + C : ""; + } + function Zt(r) { + var o = r.value, s = ""; + return o.async && (s += Qe(o, !r.computed)), o.generator && (s += st(o) ? "*" : ""), s; + } + ue.prototype.generatePattern = function(r, o, s) { + return r.type === t.Identifier ? De(r) : this.generateExpression(r, o, s); + }, ue.prototype.generateFunctionParams = function(r) { + var o, s, l, d; + if (d = !1, r.type === t.ArrowFunctionExpression && !r.rest && (!r.defaults || r.defaults.length === 0) && r.params.length === 1 && r.params[0].type === t.Identifier) + l = [Qe(r, !0), De(r.params[0])]; + else { + for (l = r.type === t.ArrowFunctionExpression ? [Qe(r, !1)] : [], l.push("("), r.defaults && (d = !0), o = 0, s = r.params.length; o < s; ++o) + d && r.defaults[o] ? l.push(this.generateAssignment(r.params[o], r.defaults[o], "=", i.Assignment, N)) : l.push(this.generatePattern(r.params[o], i.Assignment, N)), o + 1 < s && l.push("," + C); + r.rest && (r.params.length && l.push("," + C), l.push("..."), l.push(De(r.rest))), l.push(")"); + } + return l; + }, ue.prototype.generateFunctionBody = function(r) { + var o, s; + return o = this.generateFunctionParams(r), r.type === t.ArrowFunctionExpression && (o.push(C), o.push("=>")), r.expression ? (o.push(C), s = this.generateExpression(r.body, i.Assignment, N), s.toString().charAt(0) === "{" && (s = ["(", s, ")"]), o.push(s)) : o.push(this.maybeBlock(r.body, sr)), o; + }, ue.prototype.generateIterationForStatement = function(r, o, s) { + var l = ["for" + (o.await ? ce() + "await" : "") + C + "("], d = this; + return re(function() { + o.left.type === t.VariableDeclaration ? re(function() { + l.push(o.left.kind + ce()), l.push(d.generateStatement(o.left.declarations[0], ut)); + }) : l.push(d.generateExpression(o.left, i.Call, N)), l = U(l, r), l = [U( + l, + d.generateExpression(o.right, i.Assignment, N) + ), ")"]; + }), l.push(this.maybeBlock(o.body, s)), l; + }, ue.prototype.generatePropertyKey = function(r, o) { + var s = []; + return o && s.push("["), s.push(this.generateExpression(r, i.Assignment, N)), o && s.push("]"), s; + }, ue.prototype.generateAssignment = function(r, o, s, l, d) { + return i.Assignment < l && (d |= R), se( + [ + this.generateExpression(r, i.Call, d), + C + s + C, + this.generateExpression(o, i.Assignment, d) + ], + i.Assignment, + l + ); + }, ue.prototype.semicolon = function(r) { + return !P && r & Y ? "" : ";"; + }, ue.Statement = { + BlockStatement: function(r, o) { + var s, l, d = ["{", v], b = this; + return re(function() { + r.body.length === 0 && w && (s = r.range, s[1] - s[0] > 2 && (l = B.substring(s[0] + 1, s[1] - 1), l[0] === ` +` && (d = ["{"]), d.push(l))); + var _, k, L, H; + for (H = Z, o & ne && (H |= ee), _ = 0, k = r.body.length; _ < k; ++_) + w && (_ === 0 && (r.body[0].leadingComments && (s = r.body[0].leadingComments[0].extendedRange, l = B.substring(s[0], s[1]), l[0] === ` +` && (d = ["{"])), r.body[0].leadingComments || Ve(r.range[0], r.body[0].range[0], d)), _ > 0 && !r.body[_ - 1].trailingComments && !r.body[_].leadingComments && Ve(r.body[_ - 1].range[1], r.body[_].range[0], d)), _ === k - 1 && (H |= Y), r.body[_].leadingComments && w ? L = b.generateStatement(r.body[_], H) : L = he(b.generateStatement(r.body[_], H)), d.push(L), le($(L).toString()) || w && _ < k - 1 && r.body[_ + 1].leadingComments || d.push(v), w && _ === k - 1 && (r.body[_].trailingComments || Ve(r.body[_].range[1], r.range[1], d)); + }), d.push(he("}")), d; + }, + BreakStatement: function(r, o) { + return r.label ? "break " + r.label.name + this.semicolon(o) : "break" + this.semicolon(o); + }, + ContinueStatement: function(r, o) { + return r.label ? "continue " + r.label.name + this.semicolon(o) : "continue" + this.semicolon(o); + }, + ClassBody: function(r, o) { + var s = ["{", v], l = this; + return re(function(d) { + var b, _; + for (b = 0, _ = r.body.length; b < _; ++b) + s.push(d), s.push(l.generateExpression(r.body[b], i.Sequence, N)), b + 1 < _ && s.push(v); + }), le($(s).toString()) || s.push(v), s.push(f), s.push("}"), s; + }, + ClassDeclaration: function(r, o) { + var s, l; + return s = ["class"], r.id && (s = U(s, this.generateExpression(r.id, i.Sequence, N))), r.superClass && (l = U("extends", this.generateExpression(r.superClass, i.Unary, N)), s = U(s, l)), s.push(C), s.push(this.generateStatement(r.body, de)), s; + }, + DirectiveStatement: function(r, o) { + return y.raw && r.raw ? r.raw + this.semicolon(o) : fr(r.directive) + this.semicolon(o); + }, + DoWhileStatement: function(r, o) { + var s = U("do", this.maybeBlock(r.body, Z)); + return s = this.maybeBlockSuffix(r.body, s), U(s, [ + "while" + C + "(", + this.generateExpression(r.test, i.Sequence, N), + ")" + this.semicolon(o) + ]); + }, + CatchClause: function(r, o) { + var s, l = this; + return re(function() { + var d; + r.param ? (s = [ + "catch" + C + "(", + l.generateExpression(r.param, i.Sequence, N), + ")" + ], r.guard && (d = l.generateExpression(r.guard, i.Sequence, N), s.splice(2, 0, " if ", d))) : s = ["catch"]; + }), s.push(this.maybeBlock(r.body, Z)), s; + }, + DebuggerStatement: function(r, o) { + return "debugger" + this.semicolon(o); + }, + EmptyStatement: function(r, o) { + return ";"; + }, + ExportDefaultDeclaration: function(r, o) { + var s = ["export"], l; + return l = o & Y ? de : Z, s = U(s, "default"), q(r.declaration) ? s = U(s, this.generateStatement(r.declaration, l)) : s = U(s, this.generateExpression(r.declaration, i.Assignment, N) + this.semicolon(o)), s; + }, + ExportNamedDeclaration: function(r, o) { + var s = ["export"], l, d = this; + return l = o & Y ? de : Z, r.declaration ? U(s, this.generateStatement(r.declaration, l)) : (r.specifiers && (r.specifiers.length === 0 ? s = U(s, "{" + C + "}") : r.specifiers[0].type === t.ExportBatchSpecifier ? s = U(s, this.generateExpression(r.specifiers[0], i.Sequence, N)) : (s = U(s, "{"), re(function(b) { + var _, k; + for (s.push(v), _ = 0, k = r.specifiers.length; _ < k; ++_) + s.push(b), s.push(d.generateExpression(r.specifiers[_], i.Sequence, N)), _ + 1 < k && s.push("," + v); + }), le($(s).toString()) || s.push(v), s.push(f + "}")), r.source ? s = U(s, [ + "from" + C, + this.generateExpression(r.source, i.Sequence, N), + this.semicolon(o) + ]) : s.push(this.semicolon(o))), s); + }, + ExportAllDeclaration: function(r, o) { + return [ + "export" + C, + "*" + C, + "from" + C, + this.generateExpression(r.source, i.Sequence, N), + this.semicolon(o) + ]; + }, + ExpressionStatement: function(r, o) { + var s, l; + function d(k) { + var L; + return k.slice(0, 5) !== "class" ? !1 : (L = k.charCodeAt(5), L === 123 || a.code.isWhiteSpace(L) || a.code.isLineTerminator(L)); + } + function b(k) { + var L; + return k.slice(0, 8) !== "function" ? !1 : (L = k.charCodeAt(8), L === 40 || a.code.isWhiteSpace(L) || L === 42 || a.code.isLineTerminator(L)); + } + function _(k) { + var L, H, ae; + if (k.slice(0, 5) !== "async" || !a.code.isWhiteSpace(k.charCodeAt(5))) + return !1; + for (H = 6, ae = k.length; H < ae && a.code.isWhiteSpace(k.charCodeAt(H)); ++H) + ; + return H === ae || k.slice(H, H + 8) !== "function" ? !1 : (L = k.charCodeAt(H + 8), L === 40 || a.code.isWhiteSpace(L) || L === 42 || a.code.isLineTerminator(L)); + } + return s = [this.generateExpression(r.expression, i.Sequence, N)], l = $(s).toString(), l.charCodeAt(0) === 123 || d(l) || b(l) || _(l) || O && o & ee && r.expression.type === t.Literal && typeof r.expression.value == "string" ? s = ["(", s, ")" + this.semicolon(o)] : s.push(this.semicolon(o)), s; + }, + ImportDeclaration: function(r, o) { + var s, l, d = this; + return r.specifiers.length === 0 ? [ + "import", + C, + this.generateExpression(r.source, i.Sequence, N), + this.semicolon(o) + ] : (s = [ + "import" + ], l = 0, r.specifiers[l].type === t.ImportDefaultSpecifier && (s = U(s, [ + this.generateExpression(r.specifiers[l], i.Sequence, N) + ]), ++l), r.specifiers[l] && (l !== 0 && s.push(","), r.specifiers[l].type === t.ImportNamespaceSpecifier ? s = U(s, [ + C, + this.generateExpression(r.specifiers[l], i.Sequence, N) + ]) : (s.push(C + "{"), r.specifiers.length - l === 1 ? (s.push(C), s.push(this.generateExpression(r.specifiers[l], i.Sequence, N)), s.push(C + "}" + C)) : (re(function(b) { + var _, k; + for (s.push(v), _ = l, k = r.specifiers.length; _ < k; ++_) + s.push(b), s.push(d.generateExpression(r.specifiers[_], i.Sequence, N)), _ + 1 < k && s.push("," + v); + }), le($(s).toString()) || s.push(v), s.push(f + "}" + C)))), s = U(s, [ + "from" + C, + this.generateExpression(r.source, i.Sequence, N), + this.semicolon(o) + ]), s); + }, + VariableDeclarator: function(r, o) { + var s = o & R ? N : me; + return r.init ? [ + this.generateExpression(r.id, i.Assignment, s), + C, + "=", + C, + this.generateExpression(r.init, i.Assignment, s) + ] : this.generatePattern(r.id, i.Assignment, s); + }, + VariableDeclaration: function(r, o) { + var s, l, d, b, _, k = this; + s = [r.kind], _ = o & R ? Z : ut; + function L() { + for (b = r.declarations[0], y.comment && b.leadingComments ? (s.push(` +`), s.push(he(k.generateStatement(b, _)))) : (s.push(ce()), s.push(k.generateStatement(b, _))), l = 1, d = r.declarations.length; l < d; ++l) + b = r.declarations[l], y.comment && b.leadingComments ? (s.push("," + v), s.push(he(k.generateStatement(b, _)))) : (s.push("," + C), s.push(k.generateStatement(b, _))); + } + return r.declarations.length > 1 ? re(L) : L(), s.push(this.semicolon(o)), s; + }, + ThrowStatement: function(r, o) { + return [U( + "throw", + this.generateExpression(r.argument, i.Sequence, N) + ), this.semicolon(o)]; + }, + TryStatement: function(r, o) { + var s, l, d, b; + if (s = ["try", this.maybeBlock(r.block, Z)], s = this.maybeBlockSuffix(r.block, s), r.handlers) + for (l = 0, d = r.handlers.length; l < d; ++l) + s = U(s, this.generateStatement(r.handlers[l], Z)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(r.handlers[l].body, s)); + else { + for (b = r.guardedHandlers || [], l = 0, d = b.length; l < d; ++l) + s = U(s, this.generateStatement(b[l], Z)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(b[l].body, s)); + if (r.handler) + if (Array.isArray(r.handler)) + for (l = 0, d = r.handler.length; l < d; ++l) + s = U(s, this.generateStatement(r.handler[l], Z)), (r.finalizer || l + 1 !== d) && (s = this.maybeBlockSuffix(r.handler[l].body, s)); + else + s = U(s, this.generateStatement(r.handler, Z)), r.finalizer && (s = this.maybeBlockSuffix(r.handler.body, s)); + } + return r.finalizer && (s = U(s, ["finally", this.maybeBlock(r.finalizer, Z)])), s; + }, + SwitchStatement: function(r, o) { + var s, l, d, b, _, k = this; + if (re(function() { + s = [ + "switch" + C + "(", + k.generateExpression(r.discriminant, i.Sequence, N), + ")" + C + "{" + v + ]; + }), r.cases) + for (_ = Z, d = 0, b = r.cases.length; d < b; ++d) + d === b - 1 && (_ |= Y), l = he(this.generateStatement(r.cases[d], _)), s.push(l), le($(l).toString()) || s.push(v); + return s.push(he("}")), s; + }, + SwitchCase: function(r, o) { + var s, l, d, b, _, k = this; + return re(function() { + for (r.test ? s = [ + U("case", k.generateExpression(r.test, i.Sequence, N)), + ":" + ] : s = ["default:"], d = 0, b = r.consequent.length, b && r.consequent[0].type === t.BlockStatement && (l = k.maybeBlock(r.consequent[0], Z), s.push(l), d = 1), d !== b && !le($(s).toString()) && s.push(v), _ = Z; d < b; ++d) + d === b - 1 && o & Y && (_ |= Y), l = he(k.generateStatement(r.consequent[d], _)), s.push(l), d + 1 !== b && !le($(l).toString()) && s.push(v); + }), s; + }, + IfStatement: function(r, o) { + var s, l, d, b = this; + return re(function() { + s = [ + "if" + C + "(", + b.generateExpression(r.test, i.Sequence, N), + ")" + ]; + }), d = o & Y, l = Z, d && (l |= Y), r.alternate ? (s.push(this.maybeBlock(r.consequent, Z)), s = this.maybeBlockSuffix(r.consequent, s), r.alternate.type === t.IfStatement ? s = U(s, ["else ", this.generateStatement(r.alternate, l)]) : s = U(s, U("else", this.maybeBlock(r.alternate, l)))) : s.push(this.maybeBlock(r.consequent, l)), s; + }, + ForStatement: function(r, o) { + var s, l = this; + return re(function() { + s = ["for" + C + "("], r.init ? r.init.type === t.VariableDeclaration ? s.push(l.generateStatement(r.init, ut)) : (s.push(l.generateExpression(r.init, i.Sequence, me)), s.push(";")) : s.push(";"), r.test && (s.push(C), s.push(l.generateExpression(r.test, i.Sequence, N))), s.push(";"), r.update && (s.push(C), s.push(l.generateExpression(r.update, i.Sequence, N))), s.push(")"); + }), s.push(this.maybeBlock(r.body, o & Y ? de : Z)), s; + }, + ForInStatement: function(r, o) { + return this.generateIterationForStatement("in", r, o & Y ? de : Z); + }, + ForOfStatement: function(r, o) { + return this.generateIterationForStatement("of", r, o & Y ? de : Z); + }, + LabeledStatement: function(r, o) { + return [r.label.name + ":", this.maybeBlock(r.body, o & Y ? de : Z)]; + }, + Program: function(r, o) { + var s, l, d, b, _; + for (b = r.body.length, s = [I && b > 0 ? ` +` : ""], _ = nr, d = 0; d < b; ++d) + !I && d === b - 1 && (_ |= Y), w && (d === 0 && (r.body[0].leadingComments || Ve(r.range[0], r.body[d].range[0], s)), d > 0 && !r.body[d - 1].trailingComments && !r.body[d].leadingComments && Ve(r.body[d - 1].range[1], r.body[d].range[0], s)), l = he(this.generateStatement(r.body[d], _)), s.push(l), d + 1 < b && !le($(l).toString()) && (w && r.body[d + 1].leadingComments || s.push(v)), w && d === b - 1 && (r.body[d].trailingComments || Ve(r.body[d].range[1], r.range[1], s)); + return s; + }, + FunctionDeclaration: function(r, o) { + return [ + Qe(r, !0), + "function", + st(r) || ce(), + r.id ? De(r.id) : "", + this.generateFunctionBody(r) + ]; + }, + ReturnStatement: function(r, o) { + return r.argument ? [U( + "return", + this.generateExpression(r.argument, i.Sequence, N) + ), this.semicolon(o)] : ["return" + this.semicolon(o)]; + }, + WhileStatement: function(r, o) { + var s, l = this; + return re(function() { + s = [ + "while" + C + "(", + l.generateExpression(r.test, i.Sequence, N), + ")" + ]; + }), s.push(this.maybeBlock(r.body, o & Y ? de : Z)), s; + }, + WithStatement: function(r, o) { + var s, l = this; + return re(function() { + s = [ + "with" + C + "(", + l.generateExpression(r.object, i.Sequence, N), + ")" + ]; + }), s.push(this.maybeBlock(r.body, o & Y ? de : Z)), s; + } + }, Ht(ue.prototype, ue.Statement), ue.Expression = { + SequenceExpression: function(r, o, s) { + var l, d, b; + for (i.Sequence < o && (s |= R), l = [], d = 0, b = r.expressions.length; d < b; ++d) + l.push(this.generateExpression(r.expressions[d], i.Assignment, s)), d + 1 < b && l.push("," + C); + return se(l, i.Sequence, o); + }, + AssignmentExpression: function(r, o, s) { + return this.generateAssignment(r.left, r.right, r.operator, o, s); + }, + ArrowFunctionExpression: function(r, o, s) { + return se(this.generateFunctionBody(r), i.ArrowFunction, o); + }, + ConditionalExpression: function(r, o, s) { + return i.Conditional < o && (s |= R), se( + [ + this.generateExpression(r.test, i.LogicalOR, s), + C + "?" + C, + this.generateExpression(r.consequent, i.Assignment, s), + C + ":" + C, + this.generateExpression(r.alternate, i.Assignment, s) + ], + i.Conditional, + o + ); + }, + LogicalExpression: function(r, o, s) { + return this.BinaryExpression(r, o, s); + }, + BinaryExpression: function(r, o, s) { + var l, d, b, _, k, L; + return _ = u[r.operator], d = r.operator === "**" ? i.Postfix : _, b = r.operator === "**" ? _ : _ + 1, _ < o && (s |= R), k = this.generateExpression(r.left, d, s), L = k.toString(), L.charCodeAt(L.length - 1) === 47 && a.code.isIdentifierPartES5(r.operator.charCodeAt(0)) ? l = [k, ce(), r.operator] : l = U(k, r.operator), k = this.generateExpression(r.right, b, s), r.operator === "/" && k.toString().charAt(0) === "/" || r.operator.slice(-1) === "<" && k.toString().slice(0, 3) === "!--" ? (l.push(ce()), l.push(k)) : l = U(l, k), r.operator === "in" && !(s & R) ? ["(", l, ")"] : se(l, _, o); + }, + CallExpression: function(r, o, s) { + var l, d, b; + for (l = [this.generateExpression(r.callee, i.Call, xe)], r.optional && l.push("?."), l.push("("), d = 0, b = r.arguments.length; d < b; ++d) + l.push(this.generateExpression(r.arguments[d], i.Assignment, N)), d + 1 < b && l.push("," + C); + return l.push(")"), s & K ? se(l, i.Call, o) : ["(", l, ")"]; + }, + ChainExpression: function(r, o, s) { + i.OptionalChaining < o && (s |= K); + var l = this.generateExpression(r.expression, i.OptionalChaining, s); + return se(l, i.OptionalChaining, o); + }, + NewExpression: function(r, o, s) { + var l, d, b, _, k; + if (d = r.arguments.length, k = s & te && !x && d === 0 ? He : Ne, l = U( + "new", + this.generateExpression(r.callee, i.New, k) + ), !(s & te) || x || d > 0) { + for (l.push("("), b = 0, _ = d; b < _; ++b) + l.push(this.generateExpression(r.arguments[b], i.Assignment, N)), b + 1 < _ && l.push("," + C); + l.push(")"); + } + return se(l, i.New, o); + }, + MemberExpression: function(r, o, s) { + var l, d; + return l = [this.generateExpression(r.object, i.Call, s & K ? xe : Ne)], r.computed ? (r.optional && l.push("?."), l.push("["), l.push(this.generateExpression(r.property, i.Sequence, s & K ? N : He)), l.push("]")) : (!r.optional && r.object.type === t.Literal && typeof r.object.value == "number" && (d = $(l).toString(), d.indexOf(".") < 0 && !/[eExX]/.test(d) && a.code.isDecimalDigit(d.charCodeAt(d.length - 1)) && !(d.length >= 2 && d.charCodeAt(0) === 48) && l.push(" ")), l.push(r.optional ? "?." : "."), l.push(De(r.property))), se(l, i.Member, o); + }, + MetaProperty: function(r, o, s) { + var l; + return l = [], l.push(typeof r.meta == "string" ? r.meta : De(r.meta)), l.push("."), l.push(typeof r.property == "string" ? r.property : De(r.property)), se(l, i.Member, o); + }, + UnaryExpression: function(r, o, s) { + var l, d, b, _, k; + return d = this.generateExpression(r.argument, i.Unary, N), C === "" ? l = U(r.operator, d) : (l = [r.operator], r.operator.length > 2 ? l = U(l, d) : (_ = $(l).toString(), k = _.charCodeAt(_.length - 1), b = d.toString().charCodeAt(0), ((k === 43 || k === 45) && k === b || a.code.isIdentifierPartES5(k) && a.code.isIdentifierPartES5(b)) && l.push(ce()), l.push(d))), se(l, i.Unary, o); + }, + YieldExpression: function(r, o, s) { + var l; + return r.delegate ? l = "yield*" : l = "yield", r.argument && (l = U( + l, + this.generateExpression(r.argument, i.Yield, N) + )), se(l, i.Yield, o); + }, + AwaitExpression: function(r, o, s) { + var l = U( + r.all ? "await*" : "await", + this.generateExpression(r.argument, i.Await, N) + ); + return se(l, i.Await, o); + }, + UpdateExpression: function(r, o, s) { + return r.prefix ? se( + [ + r.operator, + this.generateExpression(r.argument, i.Unary, N) + ], + i.Unary, + o + ) : se( + [ + this.generateExpression(r.argument, i.Postfix, N), + r.operator + ], + i.Postfix, + o + ); + }, + FunctionExpression: function(r, o, s) { + var l = [ + Qe(r, !0), + "function" + ]; + return r.id ? (l.push(st(r) || ce()), l.push(De(r.id))) : l.push(st(r) || C), l.push(this.generateFunctionBody(r)), l; + }, + ArrayPattern: function(r, o, s) { + return this.ArrayExpression(r, o, s, !0); + }, + ArrayExpression: function(r, o, s, l) { + var d, b, _ = this; + return r.elements.length ? (b = l ? !1 : r.elements.length > 1, d = ["[", b ? v : ""], re(function(k) { + var L, H; + for (L = 0, H = r.elements.length; L < H; ++L) + r.elements[L] ? (d.push(b ? k : ""), d.push(_.generateExpression(r.elements[L], i.Assignment, N))) : (b && d.push(k), L + 1 === H && d.push(",")), L + 1 < H && d.push("," + (b ? v : C)); + }), b && !le($(d).toString()) && d.push(v), d.push(b ? f : ""), d.push("]"), d) : "[]"; + }, + RestElement: function(r, o, s) { + return "..." + this.generatePattern(r.argument); + }, + ClassExpression: function(r, o, s) { + var l, d; + return l = ["class"], r.id && (l = U(l, this.generateExpression(r.id, i.Sequence, N))), r.superClass && (d = U("extends", this.generateExpression(r.superClass, i.Unary, N)), l = U(l, d)), l.push(C), l.push(this.generateStatement(r.body, de)), l; + }, + MethodDefinition: function(r, o, s) { + var l, d; + return r.static ? l = ["static" + C] : l = [], r.kind === "get" || r.kind === "set" ? d = [ + U(r.kind, this.generatePropertyKey(r.key, r.computed)), + this.generateFunctionBody(r.value) + ] : d = [ + Zt(r), + this.generatePropertyKey(r.key, r.computed), + this.generateFunctionBody(r.value) + ], U(l, d); + }, + Property: function(r, o, s) { + return r.kind === "get" || r.kind === "set" ? [ + r.kind, + ce(), + this.generatePropertyKey(r.key, r.computed), + this.generateFunctionBody(r.value) + ] : r.shorthand ? r.value.type === "AssignmentPattern" ? this.AssignmentPattern(r.value, i.Sequence, N) : this.generatePropertyKey(r.key, r.computed) : r.method ? [ + Zt(r), + this.generatePropertyKey(r.key, r.computed), + this.generateFunctionBody(r.value) + ] : [ + this.generatePropertyKey(r.key, r.computed), + ":" + C, + this.generateExpression(r.value, i.Assignment, N) + ]; + }, + ObjectExpression: function(r, o, s) { + var l, d, b, _ = this; + return r.properties.length ? (l = r.properties.length > 1, re(function() { + b = _.generateExpression(r.properties[0], i.Sequence, N); + }), !l && !ar($(b).toString()) ? ["{", C, b, C, "}"] : (re(function(k) { + var L, H; + if (d = ["{", v, k, b], l) + for (d.push("," + v), L = 1, H = r.properties.length; L < H; ++L) + d.push(k), d.push(_.generateExpression(r.properties[L], i.Sequence, N)), L + 1 < H && d.push("," + v); + }), le($(d).toString()) || d.push(v), d.push(f), d.push("}"), d)) : "{}"; + }, + AssignmentPattern: function(r, o, s) { + return this.generateAssignment(r.left, r.right, "=", o, s); + }, + ObjectPattern: function(r, o, s) { + var l, d, b, _, k, L = this; + if (!r.properties.length) + return "{}"; + if (_ = !1, r.properties.length === 1) + k = r.properties[0], k.type === t.Property && k.value.type !== t.Identifier && (_ = !0); + else + for (d = 0, b = r.properties.length; d < b; ++d) + if (k = r.properties[d], k.type === t.Property && !k.shorthand) { + _ = !0; + break; + } + return l = ["{", _ ? v : ""], re(function(H) { + var ae, Re; + for (ae = 0, Re = r.properties.length; ae < Re; ++ae) + l.push(_ ? H : ""), l.push(L.generateExpression(r.properties[ae], i.Sequence, N)), ae + 1 < Re && l.push("," + (_ ? v : C)); + }), _ && !le($(l).toString()) && l.push(v), l.push(_ ? f : ""), l.push("}"), l; + }, + ThisExpression: function(r, o, s) { + return "this"; + }, + Super: function(r, o, s) { + return "super"; + }, + Identifier: function(r, o, s) { + return De(r); + }, + ImportDefaultSpecifier: function(r, o, s) { + return De(r.id || r.local); + }, + ImportNamespaceSpecifier: function(r, o, s) { + var l = ["*"], d = r.id || r.local; + return d && l.push(C + "as" + ce() + De(d)), l; + }, + ImportSpecifier: function(r, o, s) { + var l = r.imported, d = [l.name], b = r.local; + return b && b.name !== l.name && d.push(ce() + "as" + ce() + De(b)), d; + }, + ExportSpecifier: function(r, o, s) { + var l = r.local, d = [l.name], b = r.exported; + return b && b.name !== l.name && d.push(ce() + "as" + ce() + De(b)), d; + }, + Literal: function(r, o, s) { + var l; + if (r.hasOwnProperty("raw") && E && y.raw) + try { + if (l = E(r.raw).body[0].expression, l.type === t.Literal && l.value === r.value) + return r.raw; + } catch { + } + return r.regex ? "/" + r.regex.pattern + "/" + r.regex.flags : r.value === null ? "null" : typeof r.value == "string" ? pr(r.value) : typeof r.value == "number" ? or(r.value) : typeof r.value == "boolean" ? r.value ? "true" : "false" : lr(r.value); + }, + GeneratorExpression: function(r, o, s) { + return this.ComprehensionExpression(r, o, s); + }, + ComprehensionExpression: function(r, o, s) { + var l, d, b, _, k = this; + return l = r.type === t.GeneratorExpression ? ["("] : ["["], y.moz.comprehensionExpressionStartsWithAssignment && (_ = this.generateExpression(r.body, i.Assignment, N), l.push(_)), r.blocks && re(function() { + for (d = 0, b = r.blocks.length; d < b; ++d) + _ = k.generateExpression(r.blocks[d], i.Sequence, N), d > 0 || y.moz.comprehensionExpressionStartsWithAssignment ? l = U(l, _) : l.push(_); + }), r.filter && (l = U(l, "if" + C), _ = this.generateExpression(r.filter, i.Sequence, N), l = U(l, ["(", _, ")"])), y.moz.comprehensionExpressionStartsWithAssignment || (_ = this.generateExpression(r.body, i.Assignment, N), l = U(l, _)), l.push(r.type === t.GeneratorExpression ? ")" : "]"), l; + }, + ComprehensionBlock: function(r, o, s) { + var l; + return r.left.type === t.VariableDeclaration ? l = [ + r.left.kind, + ce(), + this.generateStatement(r.left.declarations[0], ut) + ] : l = this.generateExpression(r.left, i.Call, N), l = U(l, r.of ? "of" : "in"), l = U(l, this.generateExpression(r.right, i.Sequence, N)), ["for" + C + "(", l, ")"]; + }, + SpreadElement: function(r, o, s) { + return [ + "...", + this.generateExpression(r.argument, i.Assignment, N) + ]; + }, + TaggedTemplateExpression: function(r, o, s) { + var l = xe; + s & K || (l = Ne); + var d = [ + this.generateExpression(r.tag, i.Call, l), + this.generateExpression(r.quasi, i.Primary, ze) + ]; + return se(d, i.TaggedTemplate, o); + }, + TemplateElement: function(r, o, s) { + return r.value.raw; + }, + TemplateLiteral: function(r, o, s) { + var l, d, b; + for (l = ["`"], d = 0, b = r.quasis.length; d < b; ++d) + l.push(this.generateExpression(r.quasis[d], i.Primary, N)), d + 1 < b && (l.push("${" + C), l.push(this.generateExpression(r.expressions[d], i.Sequence, N)), l.push(C + "}")); + return l.push("`"), l; + }, + ModuleSpecifier: function(r, o, s) { + return this.Literal(r, o, s); + }, + ImportExpression: function(r, o, s) { + return se([ + "import(", + this.generateExpression(r.source, i.Assignment, N), + ")" + ], i.Call, o); + } + }, Ht(ue.prototype, ue.Expression), ue.prototype.generateExpression = function(r, o, s) { + var l, d; + return d = r.type || t.Property, y.verbatim && r.hasOwnProperty(y.verbatim) ? mr(r, o) : (l = this[d](r, o, s), y.comment && (l = Yt(r, l)), $(l, r)); + }, ue.prototype.generateStatement = function(r, o) { + var s, l; + return s = this[r.type](r, o), y.comment && (s = Yt(r, s)), l = $(s).toString(), r.type === t.Program && !I && v === "" && l.charAt(l.length - 1) === ` +` && (s = S ? $(s).replaceRight(/\s+$/, "") : l.replace(/\s+$/, "")), $(s, r); + }; + function gr(r) { + var o; + if (o = new ue(), q(r)) + return o.generateStatement(r, Z); + if (G(r)) + return o.generateExpression(r, i.Sequence, N); + throw new Error("Unknown node type: " + r.type); + } + function Cr(r, o) { + var s = zt(), l, d; + return o != null ? (typeof o.indent == "string" && (s.format.indent.style = o.indent), typeof o.base == "number" && (s.format.indent.base = o.base), o = nt(s, o), p = o.format.indent.style, typeof o.base == "string" ? f = o.base : f = Te(p, o.format.indent.base)) : (o = s, p = o.format.indent.style, f = Te(p, o.format.indent.base)), D = o.format.json, m = o.format.renumber, F = D ? !1 : o.format.hexadecimal, g = D ? "double" : o.format.quotes, A = o.format.escapeless, v = o.format.newline, C = o.format.space, o.format.compact && (v = C = p = f = ""), x = o.format.parentheses, P = o.format.semicolons, I = o.format.safeConcatenation, O = o.directive, E = D ? null : o.parse, S = o.sourceMap, B = o.sourceCode, w = o.format.preserveBlankLines && B !== null, y = o, S && (e.browser ? n = Vr.sourceMap.SourceNode : n = Hr().SourceNode), l = gr(r), S ? (d = l.toStringWithSourceMap({ + file: o.file, + sourceRoot: o.sourceMapRoot + }), o.sourceContent && d.map.setSourceContent( + o.sourceMap, + o.sourceContent + ), o.sourceMapWithCode ? d : d.map.toString()) : (d = { code: l.toString(), map: null }, o.sourceMapWithCode ? d : d.code); + } + j = { + indent: { + style: "", + base: 0 + }, + renumber: !0, + hexadecimal: !0, + quotes: "auto", + escapeless: !0, + compact: !0, + parentheses: !1, + semicolons: !1 + }, T = zt().format, e.version = ou.version, e.generate = Cr, e.attachComments = c.attachComments, e.Precedence = nt({}, i), e.browser = !1, e.FORMAT_MINIFY = j, e.FORMAT_DEFAULTS = T; + })(); +})(Ai); +var lu = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 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, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 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, 406, 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, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239], Si = [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, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 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, 349, 41, 7, 1, 79, 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, 85, 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, 159, 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, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 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, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 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, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938], cu = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F", Bi = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC", Bt = { + 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" +}, _t = "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", hu = { + 5: _t, + "5module": _t + " export import", + 6: _t + " const class extends export import super" +}, fu = /^in(stanceof)?$/, pu = new RegExp("[" + Bi + "]"), du = new RegExp("[" + Bi + cu + "]"); +function Lt(e, t) { + for (var i = 65536, u = 0; u < t.length; u += 2) { + if (i += t[u], i > e) + return !1; + if (i += t[u + 1], i >= e) + return !0; + } +} +function we(e, t) { + return e < 65 ? e === 36 : e < 91 ? !0 : e < 97 ? e === 95 : e < 123 ? !0 : e <= 65535 ? e >= 170 && pu.test(String.fromCharCode(e)) : t === !1 ? !1 : Lt(e, Si); +} +function Ue(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 && du.test(String.fromCharCode(e)) : t === !1 ? !1 : Lt(e, Si) || Lt(e, lu); +} +var X = function(t, i) { + i === void 0 && (i = {}), this.label = t, this.keyword = i.keyword, this.beforeExpr = !!i.beforeExpr, this.startsExpr = !!i.startsExpr, this.isLoop = !!i.isLoop, this.isAssign = !!i.isAssign, this.prefix = !!i.prefix, this.postfix = !!i.postfix, this.binop = i.binop || null, this.updateContext = null; +}; +function ge(e, t) { + return new X(e, { beforeExpr: !0, binop: t }); +} +var Ce = { beforeExpr: !0 }, pe = { startsExpr: !0 }, Mt = {}; +function Q(e, t) { + return t === void 0 && (t = {}), t.keyword = e, Mt[e] = new X(e, t); +} +var h = { + num: new X("num", pe), + regexp: new X("regexp", pe), + string: new X("string", pe), + name: new X("name", pe), + privateId: new X("privateId", pe), + eof: new X("eof"), + bracketL: new X("[", { beforeExpr: !0, startsExpr: !0 }), + bracketR: new X("]"), + braceL: new X("{", { beforeExpr: !0, startsExpr: !0 }), + braceR: new X("}"), + parenL: new X("(", { beforeExpr: !0, startsExpr: !0 }), + parenR: new X(")"), + comma: new X(",", Ce), + semi: new X(";", Ce), + colon: new X(":", Ce), + dot: new X("."), + question: new X("?", Ce), + questionDot: new X("?."), + arrow: new X("=>", Ce), + template: new X("template"), + invalidTemplate: new X("invalidTemplate"), + ellipsis: new X("...", Ce), + backQuote: new X("`", pe), + dollarBraceL: new X("${", { beforeExpr: !0, startsExpr: !0 }), + eq: new X("=", { beforeExpr: !0, isAssign: !0 }), + assign: new X("_=", { beforeExpr: !0, isAssign: !0 }), + incDec: new X("++/--", { prefix: !0, postfix: !0, startsExpr: !0 }), + prefix: new X("!/~", { beforeExpr: !0, prefix: !0, startsExpr: !0 }), + logicalOR: ge("||", 1), + logicalAND: ge("&&", 2), + bitwiseOR: ge("|", 3), + bitwiseXOR: ge("^", 4), + bitwiseAND: ge("&", 5), + equality: ge("==/!=/===/!==", 6), + relational: ge("/<=/>=", 7), + bitShift: ge("<>/>>>", 8), + plusMin: new X("+/-", { beforeExpr: !0, binop: 9, prefix: !0, startsExpr: !0 }), + modulo: ge("%", 10), + star: ge("*", 10), + slash: ge("/", 10), + starstar: new X("**", { beforeExpr: !0 }), + coalesce: ge("??", 1), + _break: Q("break"), + _case: Q("case", Ce), + _catch: Q("catch"), + _continue: Q("continue"), + _debugger: Q("debugger"), + _default: Q("default", Ce), + _do: Q("do", { isLoop: !0, beforeExpr: !0 }), + _else: Q("else", Ce), + _finally: Q("finally"), + _for: Q("for", { isLoop: !0 }), + _function: Q("function", pe), + _if: Q("if"), + _return: Q("return", Ce), + _switch: Q("switch"), + _throw: Q("throw", Ce), + _try: Q("try"), + _var: Q("var"), + _const: Q("const"), + _while: Q("while", { isLoop: !0 }), + _with: Q("with"), + _new: Q("new", { beforeExpr: !0, startsExpr: !0 }), + _this: Q("this", pe), + _super: Q("super", pe), + _class: Q("class", pe), + _extends: Q("extends", Ce), + _export: Q("export"), + _import: Q("import", pe), + _null: Q("null", pe), + _true: Q("true", pe), + _false: Q("false", pe), + _in: Q("in", { beforeExpr: !0, binop: 7 }), + _instanceof: Q("instanceof", { beforeExpr: !0, binop: 7 }), + _typeof: Q("typeof", { beforeExpr: !0, prefix: !0, startsExpr: !0 }), + _void: Q("void", { beforeExpr: !0, prefix: !0, startsExpr: !0 }), + _delete: Q("delete", { beforeExpr: !0, prefix: !0, startsExpr: !0 }) +}, Ee = /\r\n?|\n|\u2028|\u2029/, Du = new RegExp(Ee.source, "g"); +function je(e) { + return e === 10 || e === 13 || e === 8232 || e === 8233; +} +function _i(e, t, i) { + i === void 0 && (i = e.length); + for (var u = t; u < i; u++) { + var n = e.charCodeAt(u); + if (je(n)) + return u < i - 1 && n === 13 && e.charCodeAt(u + 1) === 10 ? u + 2 : u + 1; + } + return -1; +} +var wi = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/, Ae = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g, ki = Object.prototype, mu = ki.hasOwnProperty, gu = ki.toString, tt = Object.hasOwn || function(e, t) { + return mu.call(e, t); +}, hi = Array.isArray || function(e) { + return gu.call(e) === "[object Array]"; +}; +function Oe(e) { + return new RegExp("^(?:" + e.replace(/ /g, "|") + ")$"); +} +function Pe(e) { + return e <= 65535 ? String.fromCharCode(e) : (e -= 65536, String.fromCharCode((e >> 10) + 55296, (e & 1023) + 56320)); +} +var Cu = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/, $e = function(t, i) { + this.line = t, this.column = i; +}; +$e.prototype.offset = function(t) { + return new $e(this.line, this.column + t); +}; +var mt = function(t, i, u) { + this.start = i, this.end = u, t.sourceFile !== null && (this.source = t.sourceFile); +}; +function Ii(e, t) { + for (var i = 1, u = 0; ; ) { + var n = _i(e, u, t); + if (n < 0) + return new $e(i, t - u); + ++i, u = n; + } +} +var Nt = { + ecmaVersion: null, + sourceType: "script", + onInsertedSemicolon: null, + onTrailingComma: null, + allowReserved: null, + allowReturnOutsideFunction: !1, + allowImportExportEverywhere: !1, + allowAwaitOutsideFunction: null, + allowSuperOutsideMethod: null, + allowHashBang: !1, + locations: !1, + onToken: null, + onComment: null, + ranges: !1, + program: null, + sourceFile: null, + directSourceFile: null, + preserveParens: !1 +}, fi = !1; +function Au(e) { + var t = {}; + for (var i in Nt) + t[i] = e && tt(e, i) ? e[i] : Nt[i]; + if (t.ecmaVersion === "latest" ? t.ecmaVersion = 1e8 : t.ecmaVersion == null ? (!fi && typeof console == "object" && console.warn && (fi = !0, console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required. +Defaulting to 2020, but this will stop working in the future.`)), t.ecmaVersion = 11) : t.ecmaVersion >= 2015 && (t.ecmaVersion -= 2009), t.allowReserved == null && (t.allowReserved = t.ecmaVersion < 5), e.allowHashBang == null && (t.allowHashBang = t.ecmaVersion >= 14), hi(t.onToken)) { + var u = t.onToken; + t.onToken = function(n) { + return u.push(n); + }; + } + return hi(t.onComment) && (t.onComment = Eu(t, t.onComment)), t; +} +function Eu(e, t) { + return function(i, u, n, c, a, f) { + var p = { + type: i ? "Block" : "Line", + value: u, + start: n, + end: c + }; + e.locations && (p.loc = new mt(this, a, f)), e.ranges && (p.range = [n, c]), t.push(p); + }; +} +var Je = 1, We = 2, Ot = 4, Pi = 8, Li = 16, Ni = 32, Vt = 64, Ti = 128, it = 256, qt = Je | We | it; +function Ut(e, t) { + return We | (e ? Ot : 0) | (t ? Pi : 0); +} +var ft = 0, jt = 1, _e = 2, Ri = 3, Mi = 4, Oi = 5, oe = function(t, i, u) { + this.options = t = Au(t), this.sourceFile = t.sourceFile, this.keywords = Oe(hu[t.ecmaVersion >= 6 ? 6 : t.sourceType === "module" ? "5module" : 5]); + var n = ""; + t.allowReserved !== !0 && (n = Bt[t.ecmaVersion >= 6 ? 6 : t.ecmaVersion === 5 ? 5 : 3], t.sourceType === "module" && (n += " await")), this.reservedWords = Oe(n); + var c = (n ? n + " " : "") + Bt.strict; + this.reservedWordsStrict = Oe(c), this.reservedWordsStrictBind = Oe(c + " " + Bt.strictBind), this.input = String(i), this.containsEsc = !1, u ? (this.pos = u, this.lineStart = this.input.lastIndexOf(` +`, u - 1) + 1, this.curLine = this.input.slice(0, this.lineStart).split(Ee).length) : (this.pos = this.lineStart = 0, this.curLine = 1), this.type = h.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 = t.sourceType === "module", this.strict = this.inModule || this.strictDirective(this.pos), this.potentialArrowAt = -1, this.potentialArrowInForAwait = !1, this.yieldPos = this.awaitPos = this.awaitIdentPos = 0, this.labels = [], this.undefinedExports = /* @__PURE__ */ Object.create(null), this.pos === 0 && t.allowHashBang && this.input.slice(0, 2) === "#!" && this.skipLineComment(2), this.scopeStack = [], this.enterScope(Je), this.regexpState = null, this.privateNameStack = []; +}, be = { inFunction: { configurable: !0 }, inGenerator: { configurable: !0 }, inAsync: { configurable: !0 }, canAwait: { configurable: !0 }, allowSuper: { configurable: !0 }, allowDirectSuper: { configurable: !0 }, treatFunctionsAsVar: { configurable: !0 }, allowNewDotTarget: { configurable: !0 }, inClassStaticBlock: { configurable: !0 } }; +oe.prototype.parse = function() { + var t = this.options.program || this.startNode(); + return this.nextToken(), this.parseTopLevel(t); +}; +be.inFunction.get = function() { + return (this.currentVarScope().flags & We) > 0; +}; +be.inGenerator.get = function() { + return (this.currentVarScope().flags & Pi) > 0 && !this.currentVarScope().inClassFieldInit; +}; +be.inAsync.get = function() { + return (this.currentVarScope().flags & Ot) > 0 && !this.currentVarScope().inClassFieldInit; +}; +be.canAwait.get = function() { + for (var e = this.scopeStack.length - 1; e >= 0; e--) { + var t = this.scopeStack[e]; + if (t.inClassFieldInit || t.flags & it) + return !1; + if (t.flags & We) + return (t.flags & Ot) > 0; + } + return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction; +}; +be.allowSuper.get = function() { + var e = this.currentThisScope(), t = e.flags, i = e.inClassFieldInit; + return (t & Vt) > 0 || i || this.options.allowSuperOutsideMethod; +}; +be.allowDirectSuper.get = function() { + return (this.currentThisScope().flags & Ti) > 0; +}; +be.treatFunctionsAsVar.get = function() { + return this.treatFunctionsAsVarInScope(this.currentScope()); +}; +be.allowNewDotTarget.get = function() { + var e = this.currentThisScope(), t = e.flags, i = e.inClassFieldInit; + return (t & (We | it)) > 0 || i; +}; +be.inClassStaticBlock.get = function() { + return (this.currentVarScope().flags & it) > 0; +}; +oe.extend = function() { + for (var t = [], i = arguments.length; i--; ) + t[i] = arguments[i]; + for (var u = this, n = 0; n < t.length; n++) + u = t[n](u); + return u; +}; +oe.parse = function(t, i) { + return new this(i, t).parse(); +}; +oe.parseExpressionAt = function(t, i, u) { + var n = new this(u, t, i); + return n.nextToken(), n.parseExpression(); +}; +oe.tokenizer = function(t, i) { + return new this(i, t); +}; +Object.defineProperties(oe.prototype, be); +var fe = oe.prototype, Fu = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; +fe.strictDirective = function(e) { + if (this.options.ecmaVersion < 5) + return !1; + for (; ; ) { + Ae.lastIndex = e, e += Ae.exec(this.input)[0].length; + var t = Fu.exec(this.input.slice(e)); + if (!t) + return !1; + if ((t[1] || t[2]) === "use strict") { + Ae.lastIndex = e + t[0].length; + var i = Ae.exec(this.input), u = i.index + i[0].length, n = this.input.charAt(u); + return n === ";" || n === "}" || Ee.test(i[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(n) || n === "!" && this.input.charAt(u + 1) === "="); + } + e += t[0].length, Ae.lastIndex = e, e += Ae.exec(this.input)[0].length, this.input[e] === ";" && e++; + } +}; +fe.eat = function(e) { + return this.type === e ? (this.next(), !0) : !1; +}; +fe.isContextual = function(e) { + return this.type === h.name && this.value === e && !this.containsEsc; +}; +fe.eatContextual = function(e) { + return this.isContextual(e) ? (this.next(), !0) : !1; +}; +fe.expectContextual = function(e) { + this.eatContextual(e) || this.unexpected(); +}; +fe.canInsertSemicolon = function() { + return this.type === h.eof || this.type === h.braceR || Ee.test(this.input.slice(this.lastTokEnd, this.start)); +}; +fe.insertSemicolon = function() { + if (this.canInsertSemicolon()) + return this.options.onInsertedSemicolon && this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc), !0; +}; +fe.semicolon = function() { + !this.eat(h.semi) && !this.insertSemicolon() && this.unexpected(); +}; +fe.afterTrailingComma = function(e, t) { + if (this.type === e) + return this.options.onTrailingComma && this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc), t || this.next(), !0; +}; +fe.expect = function(e) { + this.eat(e) || this.unexpected(); +}; +fe.unexpected = function(e) { + this.raise(e ?? this.start, "Unexpected token"); +}; +var gt = function() { + this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; +}; +fe.checkPatternErrors = function(e, t) { + if (!!e) { + e.trailingComma > -1 && this.raiseRecoverable(e.trailingComma, "Comma is not permitted after the rest element"); + var i = t ? e.parenthesizedAssign : e.parenthesizedBind; + i > -1 && this.raiseRecoverable(i, t ? "Assigning to rvalue" : "Parenthesized pattern"); + } +}; +fe.checkExpressionErrors = function(e, t) { + if (!e) + return !1; + var i = e.shorthandAssign, u = e.doubleProto; + if (!t) + return i >= 0 || u >= 0; + i >= 0 && this.raise(i, "Shorthand property assignments are valid only in destructuring patterns"), u >= 0 && this.raiseRecoverable(u, "Redefinition of __proto__ property"); +}; +fe.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"); +}; +fe.isSimpleAssignTarget = function(e) { + return e.type === "ParenthesizedExpression" ? this.isSimpleAssignTarget(e.expression) : e.type === "Identifier" || e.type === "MemberExpression"; +}; +var V = oe.prototype; +V.parseTopLevel = function(e) { + var t = /* @__PURE__ */ Object.create(null); + for (e.body || (e.body = []); this.type !== h.eof; ) { + var i = this.parseStatement(null, !0, t); + e.body.push(i); + } + if (this.inModule) + for (var u = 0, n = Object.keys(this.undefinedExports); u < n.length; u += 1) { + var c = n[u]; + this.raiseRecoverable(this.undefinedExports[c].start, "Export '" + c + "' is not defined"); + } + return this.adaptDirectivePrologue(e.body), this.next(), e.sourceType = this.options.sourceType, this.finishNode(e, "Program"); +}; +var Wt = { kind: "loop" }, vu = { kind: "switch" }; +V.isLet = function(e) { + if (this.options.ecmaVersion < 6 || !this.isContextual("let")) + return !1; + Ae.lastIndex = this.pos; + var t = Ae.exec(this.input), i = this.pos + t[0].length, u = this.input.charCodeAt(i); + if (u === 91 || u === 92 || u > 55295 && u < 56320) + return !0; + if (e) + return !1; + if (u === 123) + return !0; + if (we(u, !0)) { + for (var n = i + 1; Ue(u = this.input.charCodeAt(n), !0); ) + ++n; + if (u === 92 || u > 55295 && u < 56320) + return !0; + var c = this.input.slice(i, n); + if (!fu.test(c)) + return !0; + } + return !1; +}; +V.isAsyncFunction = function() { + if (this.options.ecmaVersion < 8 || !this.isContextual("async")) + return !1; + Ae.lastIndex = this.pos; + var e = Ae.exec(this.input), t = this.pos + e[0].length, i; + return !Ee.test(this.input.slice(this.pos, t)) && this.input.slice(t, t + 8) === "function" && (t + 8 === this.input.length || !(Ue(i = this.input.charCodeAt(t + 8)) || i > 55295 && i < 56320)); +}; +V.parseStatement = function(e, t, i) { + var u = this.type, n = this.startNode(), c; + switch (this.isLet(e) && (u = h._var, c = "let"), u) { + case h._break: + case h._continue: + return this.parseBreakContinueStatement(n, u.keyword); + case h._debugger: + return this.parseDebuggerStatement(n); + case h._do: + return this.parseDoStatement(n); + case h._for: + return this.parseForStatement(n); + case h._function: + return e && (this.strict || e !== "if" && e !== "label") && this.options.ecmaVersion >= 6 && this.unexpected(), this.parseFunctionStatement(n, !1, !e); + case h._class: + return e && this.unexpected(), this.parseClass(n, !0); + case h._if: + return this.parseIfStatement(n); + case h._return: + return this.parseReturnStatement(n); + case h._switch: + return this.parseSwitchStatement(n); + case h._throw: + return this.parseThrowStatement(n); + case h._try: + return this.parseTryStatement(n); + case h._const: + case h._var: + return c = c || this.value, e && c !== "var" && this.unexpected(), this.parseVarStatement(n, c); + case h._while: + return this.parseWhileStatement(n); + case h._with: + return this.parseWithStatement(n); + case h.braceL: + return this.parseBlock(!0, n); + case h.semi: + return this.parseEmptyStatement(n); + case h._export: + case h._import: + if (this.options.ecmaVersion > 10 && u === h._import) { + Ae.lastIndex = this.pos; + var a = Ae.exec(this.input), f = this.pos + a[0].length, p = this.input.charCodeAt(f); + if (p === 40 || p === 46) + return this.parseExpressionStatement(n, 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'")), u === h._import ? this.parseImport(n) : this.parseExport(n, i); + default: + if (this.isAsyncFunction()) + return e && this.unexpected(), this.next(), this.parseFunctionStatement(n, !0, !e); + var D = this.value, m = this.parseExpression(); + return u === h.name && m.type === "Identifier" && this.eat(h.colon) ? this.parseLabeledStatement(n, D, m, e) : this.parseExpressionStatement(n, m); + } +}; +V.parseBreakContinueStatement = function(e, t) { + var i = t === "break"; + this.next(), this.eat(h.semi) || this.insertSemicolon() ? e.label = null : this.type !== h.name ? this.unexpected() : (e.label = this.parseIdent(), this.semicolon()); + for (var u = 0; u < this.labels.length; ++u) { + var n = this.labels[u]; + if ((e.label == null || n.name === e.label.name) && (n.kind != null && (i || n.kind === "loop") || e.label && i)) + break; + } + return u === this.labels.length && this.raise(e.start, "Unsyntactic " + t), this.finishNode(e, i ? "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(Wt), e.body = this.parseStatement("do"), this.labels.pop(), this.expect(h._while), e.test = this.parseParenExpression(), this.options.ecmaVersion >= 6 ? this.eat(h.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(Wt), this.enterScope(0), this.expect(h.parenL), this.type === h.semi) + return t > -1 && this.unexpected(t), this.parseFor(e, null); + var i = this.isLet(); + if (this.type === h._var || this.type === h._const || i) { + var u = this.startNode(), n = i ? "let" : this.value; + return this.next(), this.parseVar(u, !0, n), this.finishNode(u, "VariableDeclaration"), (this.type === h._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && u.declarations.length === 1 ? (this.options.ecmaVersion >= 9 && (this.type === h._in ? t > -1 && this.unexpected(t) : e.await = t > -1), this.parseForIn(e, u)) : (t > -1 && this.unexpected(t), this.parseFor(e, u)); + } + var c = this.isContextual("let"), a = !1, f = new gt(), p = this.parseExpression(t > -1 ? "await" : !0, f); + return this.type === h._in || (a = this.options.ecmaVersion >= 6 && this.isContextual("of")) ? (this.options.ecmaVersion >= 9 && (this.type === h._in ? t > -1 && this.unexpected(t) : e.await = t > -1), c && a && this.raise(p.start, "The left-hand side of a for-of loop may not start with 'let'."), this.toAssignable(p, !1, f), this.checkLValPattern(p), this.parseForIn(e, p)) : (this.checkExpressionErrors(f, !0), t > -1 && this.unexpected(t), this.parseFor(e, p)); +}; +V.parseFunctionStatement = function(e, t, i) { + return this.next(), this.parseFunction(e, Ze | (i ? 0 : Tt), !1, t); +}; +V.parseIfStatement = function(e) { + return this.next(), e.test = this.parseParenExpression(), e.consequent = this.parseStatement("if"), e.alternate = this.eat(h._else) ? this.parseStatement("if") : null, this.finishNode(e, "IfStatement"); +}; +V.parseReturnStatement = function(e) { + return !this.inFunction && !this.options.allowReturnOutsideFunction && this.raise(this.start, "'return' outside of function"), this.next(), this.eat(h.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(h.braceL), this.labels.push(vu), this.enterScope(0); + for (var t, i = !1; this.type !== h.braceR; ) + if (this.type === h._case || this.type === h._default) { + var u = this.type === h._case; + t && this.finishNode(t, "SwitchCase"), e.cases.push(t = this.startNode()), t.consequent = [], this.next(), u ? t.test = this.parseExpression() : (i && this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"), i = !0, t.test = null), this.expect(h.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(), Ee.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 xu = []; +V.parseTryStatement = function(e) { + if (this.next(), e.block = this.parseBlock(), e.handler = null, this.type === h._catch) { + var t = this.startNode(); + if (this.next(), this.eat(h.parenL)) { + t.param = this.parseBindingAtom(); + var i = t.param.type === "Identifier"; + this.enterScope(i ? Ni : 0), this.checkLValPattern(t.param, i ? Mi : _e), this.expect(h.parenR); + } else + 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(h._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) { + return this.next(), this.parseVar(e, !1, t), this.semicolon(), this.finishNode(e, "VariableDeclaration"); +}; +V.parseWhileStatement = function(e) { + return this.next(), e.test = this.parseParenExpression(), this.labels.push(Wt), 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, i, u) { + for (var n = 0, c = this.labels; n < c.length; n += 1) { + var a = c[n]; + a.name === t && this.raise(i.start, "Label '" + t + "' is already declared"); + } + for (var f = this.type.isLoop ? "loop" : this.type === h._switch ? "switch" : null, p = this.labels.length - 1; p >= 0; p--) { + var D = this.labels[p]; + if (D.statementStart === e.start) + D.statementStart = this.start, D.kind = f; + else + break; + } + return this.labels.push({ name: t, kind: f, statementStart: this.start }), e.body = this.parseStatement(u ? u.indexOf("label") === -1 ? u + "label" : u : "label"), this.labels.pop(), e.label = i, this.finishNode(e, "LabeledStatement"); +}; +V.parseExpressionStatement = function(e, t) { + return e.expression = t, this.semicolon(), this.finishNode(e, "ExpressionStatement"); +}; +V.parseBlock = function(e, t, i) { + for (e === void 0 && (e = !0), t === void 0 && (t = this.startNode()), t.body = [], this.expect(h.braceL), e && this.enterScope(0); this.type !== h.braceR; ) { + var u = this.parseStatement(null); + t.body.push(u); + } + return i && (this.strict = !1), this.next(), e && this.exitScope(), this.finishNode(t, "BlockStatement"); +}; +V.parseFor = function(e, t) { + return e.init = t, this.expect(h.semi), e.test = this.type === h.semi ? null : this.parseExpression(), this.expect(h.semi), e.update = this.type === h.parenR ? null : this.parseExpression(), this.expect(h.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, "ForStatement"); +}; +V.parseForIn = function(e, t) { + var i = this.type === h._in; + return this.next(), t.type === "VariableDeclaration" && t.declarations[0].init != null && (!i || this.options.ecmaVersion < 8 || this.strict || t.kind !== "var" || t.declarations[0].id.type !== "Identifier") && this.raise( + t.start, + (i ? "for-in" : "for-of") + " loop variable declaration may not have an initializer" + ), e.left = t, e.right = i ? this.parseExpression() : this.parseMaybeAssign(), this.expect(h.parenR), e.body = this.parseStatement("for"), this.exitScope(), this.labels.pop(), this.finishNode(e, i ? "ForInStatement" : "ForOfStatement"); +}; +V.parseVar = function(e, t, i) { + for (e.declarations = [], e.kind = i; ; ) { + var u = this.startNode(); + if (this.parseVarId(u, i), this.eat(h.eq) ? u.init = this.parseMaybeAssign(t) : i === "const" && !(this.type === h._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) ? this.unexpected() : u.id.type !== "Identifier" && !(t && (this.type === h._in || this.isContextual("of"))) ? this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value") : u.init = null, e.declarations.push(this.finishNode(u, "VariableDeclarator")), !this.eat(h.comma)) + break; + } + return e; +}; +V.parseVarId = function(e, t) { + e.id = this.parseBindingAtom(), this.checkLValPattern(e.id, t === "var" ? jt : _e, !1); +}; +var Ze = 1, Tt = 2, Vi = 4; +V.parseFunction = function(e, t, i, u, n) { + this.initFunction(e), (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !u) && (this.type === h.star && t & Tt && this.unexpected(), e.generator = this.eat(h.star)), this.options.ecmaVersion >= 8 && (e.async = !!u), t & Ze && (e.id = t & Vi && this.type !== h.name ? null : this.parseIdent(), e.id && !(t & Tt) && this.checkLValSimple(e.id, this.strict || e.generator || e.async ? this.treatFunctionsAsVar ? jt : _e : Ri)); + var c = this.yieldPos, a = this.awaitPos, f = this.awaitIdentPos; + return this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(Ut(e.async, e.generator)), t & Ze || (e.id = this.type === h.name ? this.parseIdent() : null), this.parseFunctionParams(e), this.parseFunctionBody(e, i, !1, n), this.yieldPos = c, this.awaitPos = a, this.awaitIdentPos = f, this.finishNode(e, t & Ze ? "FunctionDeclaration" : "FunctionExpression"); +}; +V.parseFunctionParams = function(e) { + this.expect(h.parenL), e.params = this.parseBindingList(h.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(); +}; +V.parseClass = function(e, t) { + this.next(); + var i = this.strict; + this.strict = !0, this.parseClassId(e, t), this.parseClassSuper(e); + var u = this.enterClassBody(), n = this.startNode(), c = !1; + for (n.body = [], this.expect(h.braceL); this.type !== h.braceR; ) { + var a = this.parseClassElement(e.superClass !== null); + a && (n.body.push(a), a.type === "MethodDefinition" && a.kind === "constructor" ? (c && this.raise(a.start, "Duplicate constructor in the same class"), c = !0) : a.key && a.key.type === "PrivateIdentifier" && yu(u, a) && this.raiseRecoverable(a.key.start, "Identifier '#" + a.key.name + "' has already been declared")); + } + return this.strict = i, this.next(), e.body = this.finishNode(n, "ClassBody"), this.exitClassBody(), this.finishNode(e, t ? "ClassDeclaration" : "ClassExpression"); +}; +V.parseClassElement = function(e) { + if (this.eat(h.semi)) + return null; + var t = this.options.ecmaVersion, i = this.startNode(), u = "", n = !1, c = !1, a = "method", f = !1; + if (this.eatContextual("static")) { + if (t >= 13 && this.eat(h.braceL)) + return this.parseClassStaticBlock(i), i; + this.isClassElementNameStart() || this.type === h.star ? f = !0 : u = "static"; + } + if (i.static = f, !u && t >= 8 && this.eatContextual("async") && ((this.isClassElementNameStart() || this.type === h.star) && !this.canInsertSemicolon() ? c = !0 : u = "async"), !u && (t >= 9 || !c) && this.eat(h.star) && (n = !0), !u && !c && !n) { + var p = this.value; + (this.eatContextual("get") || this.eatContextual("set")) && (this.isClassElementNameStart() ? a = p : u = p); + } + if (u ? (i.computed = !1, i.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc), i.key.name = u, this.finishNode(i.key, "Identifier")) : this.parseClassElementName(i), t < 13 || this.type === h.parenL || a !== "method" || n || c) { + var D = !i.static && pt(i, "constructor"), m = D && e; + D && a !== "method" && this.raise(i.key.start, "Constructor can't have get/set modifier"), i.kind = D ? "constructor" : a, this.parseClassMethod(i, n, c, m); + } else + this.parseClassField(i); + return i; +}; +V.isClassElementNameStart = function() { + return this.type === h.name || this.type === h.privateId || this.type === h.num || this.type === h.string || this.type === h.bracketL || this.type.keyword; +}; +V.parseClassElementName = function(e) { + this.type === h.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, i, u) { + var n = e.key; + e.kind === "constructor" ? (t && this.raise(n.start, "Constructor can't be a generator"), i && this.raise(n.start, "Constructor can't be an async method")) : e.static && pt(e, "prototype") && this.raise(n.start, "Classes may not have a static property named prototype"); + var c = e.value = this.parseMethod(t, i, u); + return e.kind === "get" && c.params.length !== 0 && this.raiseRecoverable(c.start, "getter should have no params"), e.kind === "set" && c.params.length !== 1 && this.raiseRecoverable(c.start, "setter should have exactly one param"), e.kind === "set" && c.params[0].type === "RestElement" && this.raiseRecoverable(c.params[0].start, "Setter cannot use rest params"), this.finishNode(e, "MethodDefinition"); +}; +V.parseClassField = function(e) { + if (pt(e, "constructor") ? this.raise(e.key.start, "Classes can't have a field named 'constructor'") : e.static && pt(e, "prototype") && this.raise(e.key.start, "Classes can't have a static field named 'prototype'"), this.eat(h.eq)) { + var t = this.currentThisScope(), i = t.inClassFieldInit; + t.inClassFieldInit = !0, e.value = this.parseMaybeAssign(), t.inClassFieldInit = i; + } else + e.value = null; + return this.semicolon(), this.finishNode(e, "PropertyDefinition"); +}; +V.parseClassStaticBlock = function(e) { + e.body = []; + var t = this.labels; + for (this.labels = [], this.enterScope(it | Vt); this.type !== h.braceR; ) { + var i = this.parseStatement(null); + e.body.push(i); + } + return this.next(), this.exitScope(), this.labels = t, this.finishNode(e, "StaticBlock"); +}; +V.parseClassId = function(e, t) { + this.type === h.name ? (e.id = this.parseIdent(), t && this.checkLValSimple(e.id, _e, !1)) : (t === !0 && this.unexpected(), e.id = null); +}; +V.parseClassSuper = function(e) { + e.superClass = this.eat(h._extends) ? this.parseExprSubscripts(!1) : null; +}; +V.enterClassBody = function() { + var e = { declared: /* @__PURE__ */ Object.create(null), used: [] }; + return this.privateNameStack.push(e), e.declared; +}; +V.exitClassBody = function() { + for (var e = this.privateNameStack.pop(), t = e.declared, i = e.used, u = this.privateNameStack.length, n = u === 0 ? null : this.privateNameStack[u - 1], c = 0; c < i.length; ++c) { + var a = i[c]; + tt(t, a.name) || (n ? n.used.push(a) : this.raiseRecoverable(a.start, "Private field '#" + a.name + "' must be declared in an enclosing class")); + } +}; +function yu(e, t) { + var i = t.key.name, u = e[i], n = "true"; + return t.type === "MethodDefinition" && (t.kind === "get" || t.kind === "set") && (n = (t.static ? "s" : "i") + t.kind), u === "iget" && n === "iset" || u === "iset" && n === "iget" || u === "sget" && n === "sset" || u === "sset" && n === "sget" ? (e[i] = "true", !1) : u ? !0 : (e[i] = n, !1); +} +function pt(e, t) { + var i = e.computed, u = e.key; + return !i && (u.type === "Identifier" && u.name === t || u.type === "Literal" && u.value === t); +} +V.parseExport = function(e, t) { + if (this.next(), this.eat(h.star)) + 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 !== h.string && this.unexpected(), e.source = this.parseExprAtom(), this.semicolon(), this.finishNode(e, "ExportAllDeclaration"); + if (this.eat(h._default)) { + this.checkExport(t, "default", this.lastTokStart); + var i; + if (this.type === h._function || (i = this.isAsyncFunction())) { + var u = this.startNode(); + this.next(), i && this.next(), e.declaration = this.parseFunction(u, Ze | Vi, !1, i); + } else if (this.type === h._class) { + var n = this.startNode(); + e.declaration = this.parseClass(n, "nullableID"); + } else + e.declaration = this.parseMaybeAssign(), this.semicolon(); + return this.finishNode(e, "ExportDefaultDeclaration"); + } + if (this.shouldParseExportStatement()) + e.declaration = this.parseStatement(null), 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; + else { + if (e.declaration = null, e.specifiers = this.parseExportSpecifiers(t), this.eatContextual("from")) + this.type !== h.string && this.unexpected(), e.source = this.parseExprAtom(); + else { + for (var c = 0, a = e.specifiers; c < a.length; c += 1) { + var f = a[c]; + this.checkUnreserved(f.local), this.checkLocalExport(f.local), f.local.type === "Literal" && this.raise(f.local.start, "A string literal cannot be used as an exported binding without `from`."); + } + e.source = null; + } + this.semicolon(); + } + return this.finishNode(e, "ExportNamedDeclaration"); +}; +V.checkExport = function(e, t, i) { + !e || (typeof t != "string" && (t = t.type === "Identifier" ? t.name : t.value), tt(e, t) && this.raiseRecoverable(i, "Duplicate export '" + t + "'"), e[t] = !0); +}; +V.checkPatternExport = function(e, t) { + var i = t.type; + if (i === "Identifier") + this.checkExport(e, t, t.start); + else if (i === "ObjectPattern") + for (var u = 0, n = t.properties; u < n.length; u += 1) { + var c = n[u]; + this.checkPatternExport(e, c); + } + else if (i === "ArrayPattern") + for (var a = 0, f = t.elements; a < f.length; a += 1) { + var p = f[a]; + p && this.checkPatternExport(e, p); + } + else + i === "Property" ? this.checkPatternExport(e, t.value) : i === "AssignmentPattern" ? this.checkPatternExport(e, t.left) : i === "RestElement" ? this.checkPatternExport(e, t.argument) : i === "ParenthesizedExpression" && this.checkPatternExport(e, t.expression); +}; +V.checkVariableExport = function(e, t) { + if (!!e) + for (var i = 0, u = t; i < u.length; i += 1) { + var n = u[i]; + this.checkPatternExport(e, n.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.parseExportSpecifiers = function(e) { + var t = [], i = !0; + for (this.expect(h.braceL); !this.eat(h.braceR); ) { + if (i) + i = !1; + else if (this.expect(h.comma), this.afterTrailingComma(h.braceR)) + break; + var u = this.startNode(); + u.local = this.parseModuleExportName(), u.exported = this.eatContextual("as") ? this.parseModuleExportName() : u.local, this.checkExport( + e, + u.exported, + u.exported.start + ), t.push(this.finishNode(u, "ExportSpecifier")); + } + return t; +}; +V.parseImport = function(e) { + return this.next(), this.type === h.string ? (e.specifiers = xu, e.source = this.parseExprAtom()) : (e.specifiers = this.parseImportSpecifiers(), this.expectContextual("from"), e.source = this.type === h.string ? this.parseExprAtom() : this.unexpected()), this.semicolon(), this.finishNode(e, "ImportDeclaration"); +}; +V.parseImportSpecifiers = function() { + var e = [], t = !0; + if (this.type === h.name) { + var i = this.startNode(); + if (i.local = this.parseIdent(), this.checkLValSimple(i.local, _e), e.push(this.finishNode(i, "ImportDefaultSpecifier")), !this.eat(h.comma)) + return e; + } + if (this.type === h.star) { + var u = this.startNode(); + return this.next(), this.expectContextual("as"), u.local = this.parseIdent(), this.checkLValSimple(u.local, _e), e.push(this.finishNode(u, "ImportNamespaceSpecifier")), e; + } + for (this.expect(h.braceL); !this.eat(h.braceR); ) { + if (t) + t = !1; + else if (this.expect(h.comma), this.afterTrailingComma(h.braceR)) + break; + var n = this.startNode(); + n.imported = this.parseModuleExportName(), this.eatContextual("as") ? n.local = this.parseIdent() : (this.checkUnreserved(n.imported), n.local = n.imported), this.checkLValSimple(n.local, _e), e.push(this.finishNode(n, "ImportSpecifier")); + } + return e; +}; +V.parseModuleExportName = function() { + if (this.options.ecmaVersion >= 13 && this.type === h.string) { + var e = this.parseLiteral(this.value); + return Cu.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 ve = oe.prototype; +ve.toAssignable = function(e, t, i) { + 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", i && this.checkPatternErrors(i, !0); + for (var u = 0, n = e.properties; u < n.length; u += 1) { + var c = n[u]; + this.toAssignable(c, t), c.type === "RestElement" && (c.argument.type === "ArrayPattern" || c.argument.type === "ObjectPattern") && this.raise(c.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", i && this.checkPatternErrors(i, !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, i); + 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 + i && this.checkPatternErrors(i, !0); + return e; +}; +ve.toAssignableList = function(e, t) { + for (var i = e.length, u = 0; u < i; u++) { + var n = e[u]; + n && this.toAssignable(n, t); + } + if (i) { + var c = e[i - 1]; + this.options.ecmaVersion === 6 && t && c && c.type === "RestElement" && c.argument.type !== "Identifier" && this.unexpected(c.argument.start); + } + return e; +}; +ve.parseSpread = function(e) { + var t = this.startNode(); + return this.next(), t.argument = this.parseMaybeAssign(!1, e), this.finishNode(t, "SpreadElement"); +}; +ve.parseRestBinding = function() { + var e = this.startNode(); + return this.next(), this.options.ecmaVersion === 6 && this.type !== h.name && this.unexpected(), e.argument = this.parseBindingAtom(), this.finishNode(e, "RestElement"); +}; +ve.parseBindingAtom = function() { + if (this.options.ecmaVersion >= 6) + switch (this.type) { + case h.bracketL: + var e = this.startNode(); + return this.next(), e.elements = this.parseBindingList(h.bracketR, !0, !0), this.finishNode(e, "ArrayPattern"); + case h.braceL: + return this.parseObj(!0); + } + return this.parseIdent(); +}; +ve.parseBindingList = function(e, t, i) { + for (var u = [], n = !0; !this.eat(e); ) + if (n ? n = !1 : this.expect(h.comma), t && this.type === h.comma) + u.push(null); + else { + if (i && this.afterTrailingComma(e)) + break; + if (this.type === h.ellipsis) { + var c = this.parseRestBinding(); + this.parseBindingListItem(c), u.push(c), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.expect(e); + break; + } else { + var a = this.parseMaybeDefault(this.start, this.startLoc); + this.parseBindingListItem(a), u.push(a); + } + } + return u; +}; +ve.parseBindingListItem = function(e) { + return e; +}; +ve.parseMaybeDefault = function(e, t, i) { + if (i = i || this.parseBindingAtom(), this.options.ecmaVersion < 6 || !this.eat(h.eq)) + return i; + var u = this.startNodeAt(e, t); + return u.left = i, u.right = this.parseMaybeAssign(), this.finishNode(u, "AssignmentPattern"); +}; +ve.checkLValSimple = function(e, t, i) { + t === void 0 && (t = ft); + var u = t !== ft; + switch (e.type) { + case "Identifier": + this.strict && this.reservedWordsStrictBind.test(e.name) && this.raiseRecoverable(e.start, (u ? "Binding " : "Assigning to ") + e.name + " in strict mode"), u && (t === _e && e.name === "let" && this.raiseRecoverable(e.start, "let is disallowed as a lexically bound name"), i && (tt(i, e.name) && this.raiseRecoverable(e.start, "Argument name clash"), i[e.name] = !0), t !== Oi && 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": + u && this.raiseRecoverable(e.start, "Binding member expression"); + break; + case "ParenthesizedExpression": + return u && this.raiseRecoverable(e.start, "Binding parenthesized expression"), this.checkLValSimple(e.expression, t, i); + default: + this.raise(e.start, (u ? "Binding" : "Assigning to") + " rvalue"); + } +}; +ve.checkLValPattern = function(e, t, i) { + switch (t === void 0 && (t = ft), e.type) { + case "ObjectPattern": + for (var u = 0, n = e.properties; u < n.length; u += 1) { + var c = n[u]; + this.checkLValInnerPattern(c, t, i); + } + break; + case "ArrayPattern": + for (var a = 0, f = e.elements; a < f.length; a += 1) { + var p = f[a]; + p && this.checkLValInnerPattern(p, t, i); + } + break; + default: + this.checkLValSimple(e, t, i); + } +}; +ve.checkLValInnerPattern = function(e, t, i) { + switch (t === void 0 && (t = ft), e.type) { + case "Property": + this.checkLValInnerPattern(e.value, t, i); + break; + case "AssignmentPattern": + this.checkLValPattern(e.left, t, i); + break; + case "RestElement": + this.checkLValPattern(e.argument, t, i); + break; + default: + this.checkLValPattern(e, t, i); + } +}; +var Fe = function(t, i, u, n, c) { + this.token = t, this.isExpr = !!i, this.preserveSpace = !!u, this.override = n, this.generator = !!c; +}, J = { + b_stat: new Fe("{", !1), + b_expr: new Fe("{", !0), + b_tmpl: new Fe("${", !1), + p_stat: new Fe("(", !1), + p_expr: new Fe("(", !0), + q_tmpl: new Fe("`", !0, !0, function(e) { + return e.tryReadTemplateToken(); + }), + f_stat: new Fe("function", !1), + f_expr: new Fe("function", !0), + f_expr_gen: new Fe("function", !0, !1, null, !0), + f_gen: new Fe("function", !1, !1, null, !0) +}, Ge = oe.prototype; +Ge.initialContext = function() { + return [J.b_stat]; +}; +Ge.curContext = function() { + return this.context[this.context.length - 1]; +}; +Ge.braceIsBlock = function(e) { + var t = this.curContext(); + return t === J.f_expr || t === J.f_stat ? !0 : e === h.colon && (t === J.b_stat || t === J.b_expr) ? !t.isExpr : e === h._return || e === h.name && this.exprAllowed ? Ee.test(this.input.slice(this.lastTokEnd, this.start)) : e === h._else || e === h.semi || e === h.eof || e === h.parenR || e === h.arrow ? !0 : e === h.braceL ? t === J.b_stat : e === h._var || e === h._const || e === h.name ? !1 : !this.exprAllowed; +}; +Ge.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; +}; +Ge.updateContext = function(e) { + var t, i = this.type; + i.keyword && e === h.dot ? this.exprAllowed = !1 : (t = i.updateContext) ? t.call(this, e) : this.exprAllowed = i.beforeExpr; +}; +Ge.overrideContext = function(e) { + this.curContext() !== e && (this.context[this.context.length - 1] = e); +}; +h.parenR.updateContext = h.braceR.updateContext = function() { + if (this.context.length === 1) { + this.exprAllowed = !0; + return; + } + var e = this.context.pop(); + e === J.b_stat && this.curContext().token === "function" && (e = this.context.pop()), this.exprAllowed = !e.isExpr; +}; +h.braceL.updateContext = function(e) { + this.context.push(this.braceIsBlock(e) ? J.b_stat : J.b_expr), this.exprAllowed = !0; +}; +h.dollarBraceL.updateContext = function() { + this.context.push(J.b_tmpl), this.exprAllowed = !0; +}; +h.parenL.updateContext = function(e) { + var t = e === h._if || e === h._for || e === h._with || e === h._while; + this.context.push(t ? J.p_stat : J.p_expr), this.exprAllowed = !0; +}; +h.incDec.updateContext = function() { +}; +h._function.updateContext = h._class.updateContext = function(e) { + e.beforeExpr && e !== h._else && !(e === h.semi && this.curContext() !== J.p_stat) && !(e === h._return && Ee.test(this.input.slice(this.lastTokEnd, this.start))) && !((e === h.colon || e === h.braceL) && this.curContext() === J.b_stat) ? this.context.push(J.f_expr) : this.context.push(J.f_stat), this.exprAllowed = !1; +}; +h.backQuote.updateContext = function() { + this.curContext() === J.q_tmpl ? this.context.pop() : this.context.push(J.q_tmpl), this.exprAllowed = !1; +}; +h.star.updateContext = function(e) { + if (e === h._function) { + var t = this.context.length - 1; + this.context[t] === J.f_expr ? this.context[t] = J.f_expr_gen : this.context[t] = J.f_gen; + } + this.exprAllowed = !0; +}; +h.name.updateContext = function(e) { + var t = !1; + this.options.ecmaVersion >= 6 && e !== h.dot && (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) && (t = !0), this.exprAllowed = t; +}; +var W = oe.prototype; +W.checkPropClash = function(e, t, i) { + if (!(this.options.ecmaVersion >= 9 && e.type === "SpreadElement") && !(this.options.ecmaVersion >= 6 && (e.computed || e.method || e.shorthand))) { + var u = e.key, n; + switch (u.type) { + case "Identifier": + n = u.name; + break; + case "Literal": + n = String(u.value); + break; + default: + return; + } + var c = e.kind; + if (this.options.ecmaVersion >= 6) { + n === "__proto__" && c === "init" && (t.proto && (i ? i.doubleProto < 0 && (i.doubleProto = u.start) : this.raiseRecoverable(u.start, "Redefinition of __proto__ property")), t.proto = !0); return; } - try { - const { pattern: h } = await G(n); - f(n), g?.setPattern(h), d(h), l(); - } catch (h) { - l(h), console.warn("eval error", h); + n = "$" + n; + var a = t[n]; + if (a) { + var f; + c === "init" ? f = this.strict && a.init || a.get || a.set : f = a.init || a[c], f && this.raiseRecoverable(u.start, "Redefinition of property"); + } else + a = t[n] = { + init: !1, + get: !1, + set: !1 + }; + a[c] = !0; + } +}; +W.parseExpression = function(e, t) { + var i = this.start, u = this.startLoc, n = this.parseMaybeAssign(e, t); + if (this.type === h.comma) { + var c = this.startNodeAt(i, u); + for (c.expressions = [n]; this.eat(h.comma); ) + c.expressions.push(this.parseMaybeAssign(e, t)); + return this.finishNode(c, "SequenceExpression"); + } + return n; +}; +W.parseMaybeAssign = function(e, t, i) { + if (this.isContextual("yield")) { + if (this.inGenerator) + return this.parseYield(e); + this.exprAllowed = !1; + } + var u = !1, n = -1, c = -1, a = -1; + t ? (n = t.parenthesizedAssign, c = t.trailingComma, a = t.doubleProto, t.parenthesizedAssign = t.trailingComma = -1) : (t = new gt(), u = !0); + var f = this.start, p = this.startLoc; + (this.type === h.parenL || this.type === h.name) && (this.potentialArrowAt = this.start, this.potentialArrowInForAwait = e === "await"); + var D = this.parseMaybeConditional(e, t); + if (i && (D = i.call(this, D, f, p)), this.type.isAssign) { + var m = this.startNodeAt(f, p); + return m.operator = this.value, this.type === h.eq && (D = this.toAssignable(D, !1, t)), u || (t.parenthesizedAssign = t.trailingComma = t.doubleProto = -1), t.shorthandAssign >= D.start && (t.shorthandAssign = -1), this.type === h.eq ? this.checkLValPattern(D) : this.checkLValSimple(D), m.left = D, this.next(), m.right = this.parseMaybeAssign(e), a > -1 && (t.doubleProto = a), this.finishNode(m, "AssignmentExpression"); + } else + u && this.checkExpressionErrors(t, !0); + return n > -1 && (t.parenthesizedAssign = n), c > -1 && (t.trailingComma = c), D; +}; +W.parseMaybeConditional = function(e, t) { + var i = this.start, u = this.startLoc, n = this.parseExprOps(e, t); + if (this.checkExpressionErrors(t)) + return n; + if (this.eat(h.question)) { + var c = this.startNodeAt(i, u); + return c.test = n, c.consequent = this.parseMaybeAssign(), this.expect(h.colon), c.alternate = this.parseMaybeAssign(e), this.finishNode(c, "ConditionalExpression"); + } + return n; +}; +W.parseExprOps = function(e, t) { + var i = this.start, u = this.startLoc, n = this.parseMaybeUnary(t, !1, !1, e); + return this.checkExpressionErrors(t) || n.start === i && n.type === "ArrowFunctionExpression" ? n : this.parseExprOp(n, i, u, -1, e); +}; +W.parseExprOp = function(e, t, i, u, n) { + var c = this.type.binop; + if (c != null && (!n || this.type !== h._in) && c > u) { + var a = this.type === h.logicalOR || this.type === h.logicalAND, f = this.type === h.coalesce; + f && (c = h.logicalAND.binop); + var p = this.value; + this.next(); + var D = this.start, m = this.startLoc, F = this.parseExprOp(this.parseMaybeUnary(null, !1, !1, n), D, m, c, n), g = this.buildBinary(t, i, e, F, p, a || f); + return (a && this.type === h.coalesce || f && (this.type === h.logicalOR || this.type === h.logicalAND)) && this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"), this.parseExprOp(g, t, i, u, n); + } + return e; +}; +W.buildBinary = function(e, t, i, u, n, c) { + u.type === "PrivateIdentifier" && this.raise(u.start, "Private identifier can only be left side of binary expression"); + var a = this.startNodeAt(e, t); + return a.left = i, a.operator = n, a.right = u, this.finishNode(a, c ? "LogicalExpression" : "BinaryExpression"); +}; +W.parseMaybeUnary = function(e, t, i, u) { + var n = this.start, c = this.startLoc, a; + if (this.isContextual("await") && this.canAwait) + a = this.parseAwait(u), t = !0; + else if (this.type.prefix) { + var f = this.startNode(), p = this.type === h.incDec; + f.operator = this.value, f.prefix = !0, this.next(), f.argument = this.parseMaybeUnary(null, !0, p, u), this.checkExpressionErrors(e, !0), p ? this.checkLValSimple(f.argument) : this.strict && f.operator === "delete" && f.argument.type === "Identifier" ? this.raiseRecoverable(f.start, "Deleting local variable in strict mode") : f.operator === "delete" && qi(f.argument) ? this.raiseRecoverable(f.start, "Private fields can not be deleted") : t = !0, a = this.finishNode(f, p ? "UpdateExpression" : "UnaryExpression"); + } else if (!t && this.type === h.privateId) + (u || this.privateNameStack.length === 0) && this.unexpected(), a = this.parsePrivateIdent(), this.type !== h._in && this.unexpected(); + else { + if (a = this.parseExprSubscripts(e, u), this.checkExpressionErrors(e)) + return a; + for (; this.type.postfix && !this.canInsertSemicolon(); ) { + var D = this.startNodeAt(n, c); + D.operator = this.value, D.prefix = !1, D.argument = a, this.checkLValSimple(a), this.next(), a = this.finishNode(D, "UpdateExpression"); } - }, [n, g]), v = I(); - return q(() => { - !v.current && s && (v.current = !0, C()); - }, [C, s]), { schedulerError: i, scheduler: g, evalError: t, evaluate: C, activeCode: c, isDirty: k, pattern: p }; + } + if (!i && this.eat(h.starstar)) + if (t) + this.unexpected(this.lastTokStart); + else + return this.buildBinary(n, c, a, this.parseMaybeUnary(null, !1, !1, u), "**", !1); + else + return a; +}; +function qi(e) { + return e.type === "MemberExpression" && e.property.type === "PrivateIdentifier" || e.type === "ChainExpression" && qi(e.expression); } -const $e = (e) => j(() => (window.addEventListener("keydown", e, !0), () => window.removeEventListener("keydown", e, !0)), [e]); -function We(e) { - const { ready: o, connected: r, disconnected: n } = e, [s, i] = w(!0), [a, t] = w(N?.outputs || []); - return q(() => { - se().then(() => { - N.addListener("connected", (c) => { - t([...N.outputs]), r?.(N, c); - }), N.addListener("disconnected", (c) => { - t([...N.outputs]), n?.(N, c); - }), o?.(N), i(!1); - }).catch((c) => { - if (c) { - console.error(c), console.warn("Web Midi could not be enabled.."); +W.parseExprSubscripts = function(e, t) { + var i = this.start, u = this.startLoc, n = this.parseExprAtom(e, t); + if (n.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") + return n; + var c = this.parseSubscripts(n, i, u, !1, t); + return e && c.type === "MemberExpression" && (e.parenthesizedAssign >= c.start && (e.parenthesizedAssign = -1), e.parenthesizedBind >= c.start && (e.parenthesizedBind = -1), e.trailingComma >= c.start && (e.trailingComma = -1)), c; +}; +W.parseSubscripts = function(e, t, i, u, n) { + for (var c = 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, a = !1; ; ) { + var f = this.parseSubscript(e, t, i, u, c, a, n); + if (f.optional && (a = !0), f === e || f.type === "ArrowFunctionExpression") { + if (a) { + var p = this.startNodeAt(t, i); + p.expression = f, f = this.finishNode(p, "ChainExpression"); + } + return f; + } + e = f; + } +}; +W.parseSubscript = function(e, t, i, u, n, c, a) { + var f = this.options.ecmaVersion >= 11, p = f && this.eat(h.questionDot); + u && p && this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); + var D = this.eat(h.bracketL); + if (D || p && this.type !== h.parenL && this.type !== h.backQuote || this.eat(h.dot)) { + var m = this.startNodeAt(t, i); + m.object = e, D ? (m.property = this.parseExpression(), this.expect(h.bracketR)) : this.type === h.privateId && e.type !== "Super" ? m.property = this.parsePrivateIdent() : m.property = this.parseIdent(this.options.allowReserved !== "never"), m.computed = !!D, f && (m.optional = p), e = this.finishNode(m, "MemberExpression"); + } else if (!u && this.eat(h.parenL)) { + var F = new gt(), g = this.yieldPos, A = this.awaitPos, v = this.awaitIdentPos; + this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0; + var C = this.parseExprList(h.parenR, this.options.ecmaVersion >= 8, !1, F); + if (n && !p && !this.canInsertSemicolon() && this.eat(h.arrow)) + return this.checkPatternErrors(F, !1), this.checkYieldAwaitInDefaultParams(), this.awaitIdentPos > 0 && this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"), this.yieldPos = g, this.awaitPos = A, this.awaitIdentPos = v, this.parseArrowExpression(this.startNodeAt(t, i), C, !0, a); + this.checkExpressionErrors(F, !0), this.yieldPos = g || this.yieldPos, this.awaitPos = A || this.awaitPos, this.awaitIdentPos = v || this.awaitIdentPos; + var x = this.startNodeAt(t, i); + x.callee = e, x.arguments = C, f && (x.optional = p), e = this.finishNode(x, "CallExpression"); + } else if (this.type === h.backQuote) { + (p || c) && this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); + var P = this.startNodeAt(t, i); + P.tag = e, P.quasi = this.parseTemplate({ isTagged: !0 }), e = this.finishNode(P, "TaggedTemplateExpression"); + } + return e; +}; +W.parseExprAtom = function(e, t) { + this.type === h.slash && this.readRegexp(); + var i, u = this.potentialArrowAt === this.start; + switch (this.type) { + case h._super: + return this.allowSuper || this.raise(this.start, "'super' keyword outside a method"), i = this.startNode(), this.next(), this.type === h.parenL && !this.allowDirectSuper && this.raise(i.start, "super() call outside constructor of a subclass"), this.type !== h.dot && this.type !== h.bracketL && this.type !== h.parenL && this.unexpected(), this.finishNode(i, "Super"); + case h._this: + return i = this.startNode(), this.next(), this.finishNode(i, "ThisExpression"); + case h.name: + var n = this.start, c = this.startLoc, a = this.containsEsc, f = this.parseIdent(!1); + if (this.options.ecmaVersion >= 8 && !a && f.name === "async" && !this.canInsertSemicolon() && this.eat(h._function)) + return this.overrideContext(J.f_expr), this.parseFunction(this.startNodeAt(n, c), 0, !1, !0, t); + if (u && !this.canInsertSemicolon()) { + if (this.eat(h.arrow)) + return this.parseArrowExpression(this.startNodeAt(n, c), [f], !1, t); + if (this.options.ecmaVersion >= 8 && f.name === "async" && this.type === h.name && !a && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) + return f = this.parseIdent(!1), (this.canInsertSemicolon() || !this.eat(h.arrow)) && this.unexpected(), this.parseArrowExpression(this.startNodeAt(n, c), [f], !0, t); + } + return f; + case h.regexp: + var p = this.value; + return i = this.parseLiteral(p.value), i.regex = { pattern: p.pattern, flags: p.flags }, i; + case h.num: + case h.string: + return this.parseLiteral(this.value); + case h._null: + case h._true: + case h._false: + return i = this.startNode(), i.value = this.type === h._null ? null : this.type === h._true, i.raw = this.type.keyword, this.next(), this.finishNode(i, "Literal"); + case h.parenL: + var D = this.start, m = this.parseParenAndDistinguishExpression(u, t); + return e && (e.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(m) && (e.parenthesizedAssign = D), e.parenthesizedBind < 0 && (e.parenthesizedBind = D)), m; + case h.bracketL: + return i = this.startNode(), this.next(), i.elements = this.parseExprList(h.bracketR, !0, !0, e), this.finishNode(i, "ArrayExpression"); + case h.braceL: + return this.overrideContext(J.b_expr), this.parseObj(!1, e); + case h._function: + return i = this.startNode(), this.next(), this.parseFunction(i, 0); + case h._class: + return this.parseClass(this.startNode(), !1); + case h._new: + return this.parseNew(); + case h.backQuote: + return this.parseTemplate(); + case h._import: + return this.options.ecmaVersion >= 11 ? this.parseExprImport() : this.unexpected(); + default: + this.unexpected(); + } +}; +W.parseExprImport = function() { + var e = this.startNode(); + this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword import"); + var t = this.parseIdent(!0); + switch (this.type) { + case h.parenL: + return this.parseDynamicImport(e); + case h.dot: + return e.meta = t, this.parseImportMeta(e); + default: + this.unexpected(); + } +}; +W.parseDynamicImport = function(e) { + if (this.next(), e.source = this.parseMaybeAssign(), !this.eat(h.parenR)) { + var t = this.start; + this.eat(h.comma) && this.eat(h.parenR) ? this.raiseRecoverable(t, "Trailing comma is not allowed in import()") : this.unexpected(t); + } + return this.finishNode(e, "ImportExpression"); +}; +W.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"); +}; +W.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.raw.slice(0, -1).replace(/_/g, "")), this.next(), this.finishNode(t, "Literal"); +}; +W.parseParenExpression = function() { + this.expect(h.parenL); + var e = this.parseExpression(); + return this.expect(h.parenR), e; +}; +W.parseParenAndDistinguishExpression = function(e, t) { + var i = this.start, u = this.startLoc, n, c = this.options.ecmaVersion >= 8; + if (this.options.ecmaVersion >= 6) { + this.next(); + var a = this.start, f = this.startLoc, p = [], D = !0, m = !1, F = new gt(), g = this.yieldPos, A = this.awaitPos, v; + for (this.yieldPos = 0, this.awaitPos = 0; this.type !== h.parenR; ) + if (D ? D = !1 : this.expect(h.comma), c && this.afterTrailingComma(h.parenR, !0)) { + m = !0; + break; + } else if (this.type === h.ellipsis) { + v = this.start, p.push(this.parseParenItem(this.parseRestBinding())), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element"); + break; + } else + p.push(this.parseMaybeAssign(!1, F, this.parseParenItem)); + var C = this.lastTokEnd, x = this.lastTokEndLoc; + if (this.expect(h.parenR), e && !this.canInsertSemicolon() && this.eat(h.arrow)) + return this.checkPatternErrors(F, !1), this.checkYieldAwaitInDefaultParams(), this.yieldPos = g, this.awaitPos = A, this.parseParenArrowList(i, u, p, t); + (!p.length || m) && this.unexpected(this.lastTokStart), v && this.unexpected(v), this.checkExpressionErrors(F, !0), this.yieldPos = g || this.yieldPos, this.awaitPos = A || this.awaitPos, p.length > 1 ? (n = this.startNodeAt(a, f), n.expressions = p, this.finishNodeAt(n, "SequenceExpression", C, x)) : n = p[0]; + } else + n = this.parseParenExpression(); + if (this.options.preserveParens) { + var P = this.startNodeAt(i, u); + return P.expression = n, this.finishNode(P, "ParenthesizedExpression"); + } else + return n; +}; +W.parseParenItem = function(e) { + return e; +}; +W.parseParenArrowList = function(e, t, i, u) { + return this.parseArrowExpression(this.startNodeAt(e, t), i, !1, u); +}; +var bu = []; +W.parseNew = function() { + this.containsEsc && this.raiseRecoverable(this.start, "Escape sequence in keyword new"); + var e = this.startNode(), t = this.parseIdent(!0); + if (this.options.ecmaVersion >= 6 && this.eat(h.dot)) { + e.meta = t; + var i = 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'"), i && 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 u = this.start, n = this.startLoc, c = this.type === h._import; + return e.callee = this.parseSubscripts(this.parseExprAtom(), u, n, !0, !1), c && e.callee.type === "ImportExpression" && this.raise(u, "Cannot use new with import()"), this.eat(h.parenL) ? e.arguments = this.parseExprList(h.parenR, this.options.ecmaVersion >= 8, !1) : e.arguments = bu, this.finishNode(e, "NewExpression"); +}; +W.parseTemplateElement = function(e) { + var t = e.isTagged, i = this.startNode(); + return this.type === h.invalidTemplate ? (t || this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"), i.value = { + raw: this.value, + cooked: null + }) : i.value = { + raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, ` +`), + cooked: this.value + }, this.next(), i.tail = this.type === h.backQuote, this.finishNode(i, "TemplateElement"); +}; +W.parseTemplate = function(e) { + e === void 0 && (e = {}); + var t = e.isTagged; + t === void 0 && (t = !1); + var i = this.startNode(); + this.next(), i.expressions = []; + var u = this.parseTemplateElement({ isTagged: t }); + for (i.quasis = [u]; !u.tail; ) + this.type === h.eof && this.raise(this.pos, "Unterminated template literal"), this.expect(h.dollarBraceL), i.expressions.push(this.parseExpression()), this.expect(h.braceR), i.quasis.push(u = this.parseTemplateElement({ isTagged: t })); + return this.next(), this.finishNode(i, "TemplateLiteral"); +}; +W.isAsyncProp = function(e) { + return !e.computed && e.key.type === "Identifier" && e.key.name === "async" && (this.type === h.name || this.type === h.num || this.type === h.string || this.type === h.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === h.star) && !Ee.test(this.input.slice(this.lastTokEnd, this.start)); +}; +W.parseObj = function(e, t) { + var i = this.startNode(), u = !0, n = {}; + for (i.properties = [], this.next(); !this.eat(h.braceR); ) { + if (u) + u = !1; + else if (this.expect(h.comma), this.options.ecmaVersion >= 5 && this.afterTrailingComma(h.braceR)) + break; + var c = this.parseProperty(e, t); + e || this.checkPropClash(c, n, t), i.properties.push(c); + } + return this.finishNode(i, e ? "ObjectPattern" : "ObjectExpression"); +}; +W.parseProperty = function(e, t) { + var i = this.startNode(), u, n, c, a; + if (this.options.ecmaVersion >= 9 && this.eat(h.ellipsis)) + return e ? (i.argument = this.parseIdent(!1), this.type === h.comma && this.raise(this.start, "Comma is not permitted after the rest element"), this.finishNode(i, "RestElement")) : (i.argument = this.parseMaybeAssign(!1, t), this.type === h.comma && t && t.trailingComma < 0 && (t.trailingComma = this.start), this.finishNode(i, "SpreadElement")); + this.options.ecmaVersion >= 6 && (i.method = !1, i.shorthand = !1, (e || t) && (c = this.start, a = this.startLoc), e || (u = this.eat(h.star))); + var f = this.containsEsc; + return this.parsePropertyName(i), !e && !f && this.options.ecmaVersion >= 8 && !u && this.isAsyncProp(i) ? (n = !0, u = this.options.ecmaVersion >= 9 && this.eat(h.star), this.parsePropertyName(i, t)) : n = !1, this.parsePropertyValue(i, e, u, n, c, a, t, f), this.finishNode(i, "Property"); +}; +W.parsePropertyValue = function(e, t, i, u, n, c, a, f) { + if ((i || u) && this.type === h.colon && this.unexpected(), this.eat(h.colon)) + e.value = t ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(!1, a), e.kind = "init"; + else if (this.options.ecmaVersion >= 6 && this.type === h.parenL) + t && this.unexpected(), e.kind = "init", e.method = !0, e.value = this.parseMethod(i, u); + else if (!t && !f && this.options.ecmaVersion >= 5 && !e.computed && e.key.type === "Identifier" && (e.key.name === "get" || e.key.name === "set") && this.type !== h.comma && this.type !== h.braceR && this.type !== h.eq) { + (i || u) && this.unexpected(), e.kind = e.key.name, this.parsePropertyName(e), e.value = this.parseMethod(!1); + var p = e.kind === "get" ? 0 : 1; + if (e.value.params.length !== p) { + var D = e.value.start; + e.kind === "get" ? this.raiseRecoverable(D, "getter should have no params") : this.raiseRecoverable(D, "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"); + } else + this.options.ecmaVersion >= 6 && !e.computed && e.key.type === "Identifier" ? ((i || u) && this.unexpected(), this.checkUnreserved(e.key), e.key.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = n), e.kind = "init", t ? e.value = this.parseMaybeDefault(n, c, this.copyNode(e.key)) : this.type === h.eq && a ? (a.shorthandAssign < 0 && (a.shorthandAssign = this.start), e.value = this.parseMaybeDefault(n, c, this.copyNode(e.key))) : e.value = this.copyNode(e.key), e.shorthand = !0) : this.unexpected(); +}; +W.parsePropertyName = function(e) { + if (this.options.ecmaVersion >= 6) { + if (this.eat(h.bracketL)) + return e.computed = !0, e.key = this.parseMaybeAssign(), this.expect(h.bracketR), e.key; + e.computed = !1; + } + return e.key = this.type === h.num || this.type === h.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); +}; +W.initFunction = function(e) { + e.id = null, this.options.ecmaVersion >= 6 && (e.generator = e.expression = !1), this.options.ecmaVersion >= 8 && (e.async = !1); +}; +W.parseMethod = function(e, t, i) { + var u = this.startNode(), n = this.yieldPos, c = this.awaitPos, a = this.awaitIdentPos; + return this.initFunction(u), this.options.ecmaVersion >= 6 && (u.generator = e), this.options.ecmaVersion >= 8 && (u.async = !!t), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, this.enterScope(Ut(t, u.generator) | Vt | (i ? Ti : 0)), this.expect(h.parenL), u.params = this.parseBindingList(h.parenR, !1, this.options.ecmaVersion >= 8), this.checkYieldAwaitInDefaultParams(), this.parseFunctionBody(u, !1, !0, !1), this.yieldPos = n, this.awaitPos = c, this.awaitIdentPos = a, this.finishNode(u, "FunctionExpression"); +}; +W.parseArrowExpression = function(e, t, i, u) { + var n = this.yieldPos, c = this.awaitPos, a = this.awaitIdentPos; + return this.enterScope(Ut(i, !1) | Li), this.initFunction(e), this.options.ecmaVersion >= 8 && (e.async = !!i), this.yieldPos = 0, this.awaitPos = 0, this.awaitIdentPos = 0, e.params = this.toAssignableList(t, !0), this.parseFunctionBody(e, !0, !1, u), this.yieldPos = n, this.awaitPos = c, this.awaitIdentPos = a, this.finishNode(e, "ArrowFunctionExpression"); +}; +W.parseFunctionBody = function(e, t, i, u) { + var n = t && this.type !== h.braceL, c = this.strict, a = !1; + if (n) + e.body = this.parseMaybeAssign(u), e.expression = !0, this.checkParams(e, !1); + else { + var f = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(e.params); + (!c || f) && (a = this.strictDirective(this.end), a && f && this.raiseRecoverable(e.start, "Illegal 'use strict' directive in function with non-simple parameter list")); + var p = this.labels; + this.labels = [], a && (this.strict = !0), this.checkParams(e, !c && !a && !t && !i && this.isSimpleParamList(e.params)), this.strict && e.id && this.checkLValSimple(e.id, Oi), e.body = this.parseBlock(!1, void 0, a && !c), e.expression = !1, this.adaptDirectivePrologue(e.body.body), this.labels = p; + } + this.exitScope(); +}; +W.isSimpleParamList = function(e) { + for (var t = 0, i = e; t < i.length; t += 1) { + var u = i[t]; + if (u.type !== "Identifier") + return !1; + } + return !0; +}; +W.checkParams = function(e, t) { + for (var i = /* @__PURE__ */ Object.create(null), u = 0, n = e.params; u < n.length; u += 1) { + var c = n[u]; + this.checkLValInnerPattern(c, jt, t ? null : i); + } +}; +W.parseExprList = function(e, t, i, u) { + for (var n = [], c = !0; !this.eat(e); ) { + if (c) + c = !1; + else if (this.expect(h.comma), t && this.afterTrailingComma(e)) + break; + var a = void 0; + i && this.type === h.comma ? a = null : this.type === h.ellipsis ? (a = this.parseSpread(u), u && this.type === h.comma && u.trailingComma < 0 && (u.trailingComma = this.start)) : a = this.parseMaybeAssign(!1, u), n.push(a); + } + return n; +}; +W.checkUnreserved = function(e) { + var t = e.start, i = e.end, u = e.name; + if (this.inGenerator && u === "yield" && this.raiseRecoverable(t, "Cannot use 'yield' as identifier inside a generator"), this.inAsync && u === "await" && this.raiseRecoverable(t, "Cannot use 'await' as identifier inside an async function"), this.currentThisScope().inClassFieldInit && u === "arguments" && this.raiseRecoverable(t, "Cannot use 'arguments' in class field initializer"), this.inClassStaticBlock && (u === "arguments" || u === "await") && this.raise(t, "Cannot use " + u + " in class static initialization block"), this.keywords.test(u) && this.raise(t, "Unexpected keyword '" + u + "'"), !(this.options.ecmaVersion < 6 && this.input.slice(t, i).indexOf("\\") !== -1)) { + var n = this.strict ? this.reservedWordsStrict : this.reservedWords; + n.test(u) && (!this.inAsync && u === "await" && this.raiseRecoverable(t, "Cannot use keyword 'await' outside an async function"), this.raiseRecoverable(t, "The keyword '" + u + "' is reserved")); + } +}; +W.parseIdent = function(e, t) { + var i = this.startNode(); + return this.type === h.name ? i.name = this.value : this.type.keyword ? (i.name = this.type.keyword, (i.name === "class" || i.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46) && this.context.pop()) : this.unexpected(), this.next(!!e), this.finishNode(i, "Identifier"), e || (this.checkUnreserved(i), i.name === "await" && !this.awaitIdentPos && (this.awaitIdentPos = i.start)), i; +}; +W.parsePrivateIdent = function() { + var e = this.startNode(); + return this.type === h.privateId ? e.name = this.value : this.unexpected(), this.next(), this.finishNode(e, "PrivateIdentifier"), 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; +}; +W.parseYield = function(e) { + this.yieldPos || (this.yieldPos = this.start); + var t = this.startNode(); + return this.next(), this.type === h.semi || this.canInsertSemicolon() || this.type !== h.star && !this.type.startsExpr ? (t.delegate = !1, t.argument = null) : (t.delegate = this.eat(h.star), t.argument = this.parseMaybeAssign(e)), this.finishNode(t, "YieldExpression"); +}; +W.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 dt = oe.prototype; +dt.raise = function(e, t) { + var i = Ii(this.input, e); + t += " (" + i.line + ":" + i.column + ")"; + var u = new SyntaxError(t); + throw u.pos = e, u.loc = i, u.raisedAt = this.pos, u; +}; +dt.raiseRecoverable = dt.raise; +dt.curPosition = function() { + if (this.options.locations) + return new $e(this.curLine, this.pos - this.lineStart); +}; +var Le = oe.prototype, Su = function(t) { + this.flags = t, this.var = [], this.lexical = [], this.functions = [], this.inClassFieldInit = !1; +}; +Le.enterScope = function(e) { + this.scopeStack.push(new Su(e)); +}; +Le.exitScope = function() { + this.scopeStack.pop(); +}; +Le.treatFunctionsAsVarInScope = function(e) { + return e.flags & We || !this.inModule && e.flags & Je; +}; +Le.declareName = function(e, t, i) { + var u = !1; + if (t === _e) { + var n = this.currentScope(); + u = n.lexical.indexOf(e) > -1 || n.functions.indexOf(e) > -1 || n.var.indexOf(e) > -1, n.lexical.push(e), this.inModule && n.flags & Je && delete this.undefinedExports[e]; + } else if (t === Mi) { + var c = this.currentScope(); + c.lexical.push(e); + } else if (t === Ri) { + var a = this.currentScope(); + this.treatFunctionsAsVar ? u = a.lexical.indexOf(e) > -1 : u = a.lexical.indexOf(e) > -1 || a.var.indexOf(e) > -1, a.functions.push(e); + } else + for (var f = this.scopeStack.length - 1; f >= 0; --f) { + var p = this.scopeStack[f]; + if (p.lexical.indexOf(e) > -1 && !(p.flags & Ni && p.lexical[0] === e) || !this.treatFunctionsAsVarInScope(p) && p.functions.indexOf(e) > -1) { + u = !0; + break; + } + if (p.var.push(e), this.inModule && p.flags & Je && delete this.undefinedExports[e], p.flags & qt) + break; + } + u && this.raiseRecoverable(i, "Identifier '" + e + "' has already been declared"); +}; +Le.checkLocalExport = function(e) { + this.scopeStack[0].lexical.indexOf(e.name) === -1 && this.scopeStack[0].var.indexOf(e.name) === -1 && (this.undefinedExports[e.name] = e); +}; +Le.currentScope = function() { + return this.scopeStack[this.scopeStack.length - 1]; +}; +Le.currentVarScope = function() { + for (var e = this.scopeStack.length - 1; ; e--) { + var t = this.scopeStack[e]; + if (t.flags & qt) + return t; + } +}; +Le.currentThisScope = function() { + for (var e = this.scopeStack.length - 1; ; e--) { + var t = this.scopeStack[e]; + if (t.flags & qt && !(t.flags & Li)) + return t; + } +}; +var Ct = function(t, i, u) { + this.type = "", this.start = i, this.end = 0, t.options.locations && (this.loc = new mt(t, u)), t.options.directSourceFile && (this.sourceFile = t.options.directSourceFile), t.options.ranges && (this.range = [i, 0]); +}, rt = oe.prototype; +rt.startNode = function() { + return new Ct(this, this.start, this.startLoc); +}; +rt.startNodeAt = function(e, t) { + return new Ct(this, e, t); +}; +function Ui(e, t, i, u) { + return e.type = t, e.end = i, this.options.locations && (e.loc.end = u), this.options.ranges && (e.range[1] = i), e; +} +rt.finishNode = function(e, t) { + return Ui.call(this, e, t, this.lastTokEnd, this.lastTokEndLoc); +}; +rt.finishNodeAt = function(e, t, i, u) { + return Ui.call(this, e, t, i, u); +}; +rt.copyNode = function(e) { + var t = new Ct(this, e.start, this.startLoc); + for (var i in e) + t[i] = e[i]; + return t; +}; +var ji = "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", Wi = ji + " Extended_Pictographic", Gi = Wi, zi = Gi + " EBase EComp EMod EPres ExtPict", Bu = zi, _u = { + 9: ji, + 10: Wi, + 11: Gi, + 12: zi, + 13: Bu +}, pi = "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", Hi = "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", Qi = Hi + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd", Ki = Qi + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho", Yi = Ki + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", wu = Yi + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith", ku = { + 9: Hi, + 10: Qi, + 11: Ki, + 12: Yi, + 13: wu +}, Xi = {}; +function Iu(e) { + var t = Xi[e] = { + binary: Oe(_u[e] + " " + pi), + nonBinary: { + General_Category: Oe(pi), + Script: Oe(ku[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 wt = 0, di = [9, 10, 11, 12, 13]; wt < di.length; wt += 1) { + var Pu = di[wt]; + Iu(Pu); +} +var M = oe.prototype, ke = function(t) { + this.parser = t, this.validFlags = "gim" + (t.options.ecmaVersion >= 6 ? "uy" : "") + (t.options.ecmaVersion >= 9 ? "s" : "") + (t.options.ecmaVersion >= 13 ? "d" : ""), this.unicodeProperties = Xi[t.options.ecmaVersion >= 13 ? 13 : t.options.ecmaVersion], this.source = "", this.flags = "", this.start = 0, this.switchU = !1, this.switchN = !1, this.pos = 0, this.lastIntValue = 0, this.lastStringValue = "", this.lastAssertionIsQuantifiable = !1, this.numCapturingParens = 0, this.maxBackReference = 0, this.groupNames = [], this.backReferenceNames = []; +}; +ke.prototype.reset = function(t, i, u) { + var n = u.indexOf("u") !== -1; + this.start = t | 0, this.source = i + "", this.flags = u, this.switchU = n && this.parser.options.ecmaVersion >= 6, this.switchN = n && this.parser.options.ecmaVersion >= 9; +}; +ke.prototype.raise = function(t) { + this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + t); +}; +ke.prototype.at = function(t, i) { + i === void 0 && (i = !1); + var u = this.source, n = u.length; + if (t >= n) + return -1; + var c = u.charCodeAt(t); + if (!(i || this.switchU) || c <= 55295 || c >= 57344 || t + 1 >= n) + return c; + var a = u.charCodeAt(t + 1); + return a >= 56320 && a <= 57343 ? (c << 10) + a - 56613888 : c; +}; +ke.prototype.nextIndex = function(t, i) { + i === void 0 && (i = !1); + var u = this.source, n = u.length; + if (t >= n) + return n; + var c = u.charCodeAt(t), a; + return !(i || this.switchU) || c <= 55295 || c >= 57344 || t + 1 >= n || (a = u.charCodeAt(t + 1)) < 56320 || a > 57343 ? t + 1 : t + 2; +}; +ke.prototype.current = function(t) { + return t === void 0 && (t = !1), this.at(this.pos, t); +}; +ke.prototype.lookahead = function(t) { + return t === void 0 && (t = !1), this.at(this.nextIndex(this.pos, t), t); +}; +ke.prototype.advance = function(t) { + t === void 0 && (t = !1), this.pos = this.nextIndex(this.pos, t); +}; +ke.prototype.eat = function(t, i) { + return i === void 0 && (i = !1), this.current(i) === t ? (this.advance(i), !0) : !1; +}; +M.validateRegExpFlags = function(e) { + for (var t = e.validFlags, i = e.flags, u = 0; u < i.length; u++) { + var n = i.charAt(u); + t.indexOf(n) === -1 && this.raise(e.start, "Invalid regular expression flag"), i.indexOf(n, u + 1) > -1 && this.raise(e.start, "Duplicate regular expression flag"); + } +}; +M.validateRegExpPattern = function(e) { + this.regexp_pattern(e), !e.switchN && this.options.ecmaVersion >= 9 && e.groupNames.length > 0 && (e.switchN = !0, this.regexp_pattern(e)); +}; +M.regexp_pattern = function(e) { + e.pos = 0, e.lastIntValue = 0, e.lastStringValue = "", e.lastAssertionIsQuantifiable = !1, e.numCapturingParens = 0, e.maxBackReference = 0, e.groupNames.length = 0, e.backReferenceNames.length = 0, 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, i = e.backReferenceNames; t < i.length; t += 1) { + var u = i[t]; + e.groupNames.indexOf(u) === -1 && e.raise("Invalid named capture referenced"); + } +}; +M.regexp_disjunction = function(e) { + for (this.regexp_alternative(e); e.eat(124); ) + this.regexp_alternative(e); + this.regexp_eatQuantifier(e, !0) && e.raise("Nothing to repeat"), e.eat(123) && e.raise("Lone quantifier brackets"); +}; +M.regexp_alternative = function(e) { + for (; e.pos < e.source.length && this.regexp_eatTerm(e); ) + ; +}; +M.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; +}; +M.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 i = !1; + if (this.options.ecmaVersion >= 9 && (i = e.eat(60)), e.eat(61) || e.eat(33)) + return this.regexp_disjunction(e), e.eat(41) || e.raise("Unterminated group"), e.lastAssertionIsQuantifiable = !i, !0; + } + return e.pos = t, !1; +}; +M.regexp_eatQuantifier = function(e, t) { + return t === void 0 && (t = !1), this.regexp_eatQuantifierPrefix(e, t) ? (e.eat(63), !0) : !1; +}; +M.regexp_eatQuantifierPrefix = function(e, t) { + return e.eat(42) || e.eat(43) || e.eat(63) || this.regexp_eatBracedQuantifier(e, t); +}; +M.regexp_eatBracedQuantifier = function(e, t) { + var i = e.pos; + if (e.eat(123)) { + var u = 0, n = -1; + if (this.regexp_eatDecimalDigits(e) && (u = e.lastIntValue, e.eat(44) && this.regexp_eatDecimalDigits(e) && (n = e.lastIntValue), e.eat(125))) + return n !== -1 && n < u && !t && e.raise("numbers out of order in {} quantifier"), !0; + e.switchU && !t && e.raise("Incomplete quantifier"), e.pos = i; + } + return !1; +}; +M.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); +}; +M.regexp_eatReverseSolidusAtomEscape = function(e) { + var t = e.pos; + if (e.eat(92)) { + if (this.regexp_eatAtomEscape(e)) + return !0; + e.pos = t; + } + return !1; +}; +M.regexp_eatUncapturingGroup = function(e) { + var t = e.pos; + if (e.eat(40)) { + if (e.eat(63) && e.eat(58)) { + if (this.regexp_disjunction(e), e.eat(41)) + return !0; + e.raise("Unterminated group"); + } + e.pos = t; + } + return !1; +}; +M.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; +}; +M.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); +}; +M.regexp_eatInvalidBracedQuantifier = function(e) { + return this.regexp_eatBracedQuantifier(e, !0) && e.raise("Nothing to repeat"), !1; +}; +M.regexp_eatSyntaxCharacter = function(e) { + var t = e.current(); + return Zi(t) ? (e.lastIntValue = t, e.advance(), !0) : !1; +}; +function Zi(e) { + return e === 36 || e >= 40 && e <= 43 || e === 46 || e === 63 || e >= 91 && e <= 94 || e >= 123 && e <= 125; +} +M.regexp_eatPatternCharacters = function(e) { + for (var t = e.pos, i = 0; (i = e.current()) !== -1 && !Zi(i); ) + e.advance(); + return e.pos !== t; +}; +M.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; +}; +M.regexp_groupSpecifier = function(e) { + if (e.eat(63)) { + if (this.regexp_eatGroupName(e)) { + e.groupNames.indexOf(e.lastStringValue) !== -1 && e.raise("Duplicate capture group name"), e.groupNames.push(e.lastStringValue); + return; + } + e.raise("Invalid group"); + } +}; +M.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; +}; +M.regexp_eatRegExpIdentifierName = function(e) { + if (e.lastStringValue = "", this.regexp_eatRegExpIdentifierStart(e)) { + for (e.lastStringValue += Pe(e.lastIntValue); this.regexp_eatRegExpIdentifierPart(e); ) + e.lastStringValue += Pe(e.lastIntValue); + return !0; + } + return !1; +}; +M.regexp_eatRegExpIdentifierStart = function(e) { + var t = e.pos, i = this.options.ecmaVersion >= 11, u = e.current(i); + return e.advance(i), u === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, i) && (u = e.lastIntValue), Lu(u) ? (e.lastIntValue = u, !0) : (e.pos = t, !1); +}; +function Lu(e) { + return we(e, !0) || e === 36 || e === 95; +} +M.regexp_eatRegExpIdentifierPart = function(e) { + var t = e.pos, i = this.options.ecmaVersion >= 11, u = e.current(i); + return e.advance(i), u === 92 && this.regexp_eatRegExpUnicodeEscapeSequence(e, i) && (u = e.lastIntValue), Nu(u) ? (e.lastIntValue = u, !0) : (e.pos = t, !1); +}; +function Nu(e) { + return Ue(e, !0) || e === 36 || e === 95 || e === 8204 || e === 8205; +} +M.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); +}; +M.regexp_eatBackReference = function(e) { + var t = e.pos; + if (this.regexp_eatDecimalEscape(e)) { + var i = e.lastIntValue; + if (e.switchU) + return i > e.maxBackReference && (e.maxBackReference = i), !0; + if (i <= e.numCapturingParens) + return !0; + e.pos = t; + } + return !1; +}; +M.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; +}; +M.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); +}; +M.regexp_eatCControlLetter = function(e) { + var t = e.pos; + if (e.eat(99)) { + if (this.regexp_eatControlLetter(e)) + return !0; + e.pos = t; + } + return !1; +}; +M.regexp_eatZero = function(e) { + return e.current() === 48 && !At(e.lookahead()) ? (e.lastIntValue = 0, e.advance(), !0) : !1; +}; +M.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; +}; +M.regexp_eatControlLetter = function(e) { + var t = e.current(); + return $i(t) ? (e.lastIntValue = t % 32, e.advance(), !0) : !1; +}; +function $i(e) { + return e >= 65 && e <= 90 || e >= 97 && e <= 122; +} +M.regexp_eatRegExpUnicodeEscapeSequence = function(e, t) { + t === void 0 && (t = !1); + var i = e.pos, u = t || e.switchU; + if (e.eat(117)) { + if (this.regexp_eatFixedHexDigits(e, 4)) { + var n = e.lastIntValue; + if (u && n >= 55296 && n <= 56319) { + var c = e.pos; + if (e.eat(92) && e.eat(117) && this.regexp_eatFixedHexDigits(e, 4)) { + var a = e.lastIntValue; + if (a >= 56320 && a <= 57343) + return e.lastIntValue = (n - 55296) * 1024 + (a - 56320) + 65536, !0; + } + e.pos = c, e.lastIntValue = n; + } + return !0; + } + if (u && e.eat(123) && this.regexp_eatHexDigits(e) && e.eat(125) && Tu(e.lastIntValue)) + return !0; + u && e.raise("Invalid unicode escape"), e.pos = i; + } + return !1; +}; +function Tu(e) { + return e >= 0 && e <= 1114111; +} +M.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; +}; +M.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; +}; +M.regexp_eatCharacterClassEscape = function(e) { + var t = e.current(); + if (Ru(t)) + return e.lastIntValue = -1, e.advance(), !0; + if (e.switchU && this.options.ecmaVersion >= 9 && (t === 80 || t === 112)) { + if (e.lastIntValue = -1, e.advance(), e.eat(123) && this.regexp_eatUnicodePropertyValueExpression(e) && e.eat(125)) + return !0; + e.raise("Invalid property name"); + } + return !1; +}; +function Ru(e) { + return e === 100 || e === 68 || e === 115 || e === 83 || e === 119 || e === 87; +} +M.regexp_eatUnicodePropertyValueExpression = function(e) { + var t = e.pos; + if (this.regexp_eatUnicodePropertyName(e) && e.eat(61)) { + var i = e.lastStringValue; + if (this.regexp_eatUnicodePropertyValue(e)) { + var u = e.lastStringValue; + return this.regexp_validateUnicodePropertyNameAndValue(e, i, u), !0; + } + } + if (e.pos = t, this.regexp_eatLoneUnicodePropertyNameOrValue(e)) { + var n = e.lastStringValue; + return this.regexp_validateUnicodePropertyNameOrValue(e, n), !0; + } + return !1; +}; +M.regexp_validateUnicodePropertyNameAndValue = function(e, t, i) { + tt(e.unicodeProperties.nonBinary, t) || e.raise("Invalid property name"), e.unicodeProperties.nonBinary[t].test(i) || e.raise("Invalid property value"); +}; +M.regexp_validateUnicodePropertyNameOrValue = function(e, t) { + e.unicodeProperties.binary.test(t) || e.raise("Invalid property name"); +}; +M.regexp_eatUnicodePropertyName = function(e) { + var t = 0; + for (e.lastStringValue = ""; Ji(t = e.current()); ) + e.lastStringValue += Pe(t), e.advance(); + return e.lastStringValue !== ""; +}; +function Ji(e) { + return $i(e) || e === 95; +} +M.regexp_eatUnicodePropertyValue = function(e) { + var t = 0; + for (e.lastStringValue = ""; Mu(t = e.current()); ) + e.lastStringValue += Pe(t), e.advance(); + return e.lastStringValue !== ""; +}; +function Mu(e) { + return Ji(e) || At(e); +} +M.regexp_eatLoneUnicodePropertyNameOrValue = function(e) { + return this.regexp_eatUnicodePropertyValue(e); +}; +M.regexp_eatCharacterClass = function(e) { + if (e.eat(91)) { + if (e.eat(94), this.regexp_classRanges(e), e.eat(93)) + return !0; + e.raise("Unterminated character class"); + } + return !1; +}; +M.regexp_classRanges = function(e) { + for (; this.regexp_eatClassAtom(e); ) { + var t = e.lastIntValue; + if (e.eat(45) && this.regexp_eatClassAtom(e)) { + var i = e.lastIntValue; + e.switchU && (t === -1 || i === -1) && e.raise("Invalid character class"), t !== -1 && i !== -1 && t > i && e.raise("Range out of order in character class"); + } + } +}; +M.regexp_eatClassAtom = function(e) { + var t = e.pos; + if (e.eat(92)) { + if (this.regexp_eatClassEscape(e)) + return !0; + if (e.switchU) { + var i = e.current(); + (i === 99 || ir(i)) && e.raise("Invalid class escape"), e.raise("Invalid escape"); + } + e.pos = t; + } + var u = e.current(); + return u !== 93 ? (e.lastIntValue = u, e.advance(), !0) : !1; +}; +M.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); +}; +M.regexp_eatClassControlLetter = function(e) { + var t = e.current(); + return At(t) || t === 95 ? (e.lastIntValue = t % 32, e.advance(), !0) : !1; +}; +M.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; +}; +M.regexp_eatDecimalDigits = function(e) { + var t = e.pos, i = 0; + for (e.lastIntValue = 0; At(i = e.current()); ) + e.lastIntValue = 10 * e.lastIntValue + (i - 48), e.advance(); + return e.pos !== t; +}; +function At(e) { + return e >= 48 && e <= 57; +} +M.regexp_eatHexDigits = function(e) { + var t = e.pos, i = 0; + for (e.lastIntValue = 0; er(i = e.current()); ) + e.lastIntValue = 16 * e.lastIntValue + tr(i), e.advance(); + return e.pos !== t; +}; +function er(e) { + return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102; +} +function tr(e) { + return e >= 65 && e <= 70 ? 10 + (e - 65) : e >= 97 && e <= 102 ? 10 + (e - 97) : e - 48; +} +M.regexp_eatLegacyOctalEscapeSequence = function(e) { + if (this.regexp_eatOctalDigit(e)) { + var t = e.lastIntValue; + if (this.regexp_eatOctalDigit(e)) { + var i = e.lastIntValue; + t <= 3 && this.regexp_eatOctalDigit(e) ? e.lastIntValue = t * 64 + i * 8 + e.lastIntValue : e.lastIntValue = t * 8 + i; + } else + e.lastIntValue = t; + return !0; + } + return !1; +}; +M.regexp_eatOctalDigit = function(e) { + var t = e.current(); + return ir(t) ? (e.lastIntValue = t - 48, e.advance(), !0) : (e.lastIntValue = 0, !1); +}; +function ir(e) { + return e >= 48 && e <= 55; +} +M.regexp_eatFixedHexDigits = function(e, t) { + var i = e.pos; + e.lastIntValue = 0; + for (var u = 0; u < t; ++u) { + var n = e.current(); + if (!er(n)) + return e.pos = i, !1; + e.lastIntValue = 16 * e.lastIntValue + tr(n), e.advance(); + } + return !0; +}; +var Gt = function(t) { + this.type = t.type, this.value = t.value, this.start = t.start, this.end = t.end, t.options.locations && (this.loc = new mt(t, t.startLoc, t.endLoc)), t.options.ranges && (this.range = [t.start, t.end]); +}, z = oe.prototype; +z.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 Gt(this)), this.lastTokEnd = this.end, this.lastTokStart = this.start, this.lastTokEndLoc = this.endLoc, this.lastTokStartLoc = this.startLoc, this.nextToken(); +}; +z.getToken = function() { + return this.next(), new Gt(this); +}; +typeof Symbol < "u" && (z[Symbol.iterator] = function() { + var e = this; + return { + next: function() { + var t = e.getToken(); + return { + done: t.type === h.eof, + value: t + }; + } + }; +}); +z.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(h.eof); + if (e.override) + return e.override(this); + this.readToken(this.fullCharCodeAtPos()); +}; +z.readToken = function(e) { + return we(e, this.options.ecmaVersion >= 6) || e === 92 ? this.readWord() : this.getTokenFromCode(e); +}; +z.fullCharCodeAtPos = function() { + var e = this.input.charCodeAt(this.pos); + if (e <= 55295 || e >= 56320) + return e; + var t = this.input.charCodeAt(this.pos + 1); + return t <= 56319 || t >= 57344 ? e : (e << 10) + t - 56613888; +}; +z.skipBlockComment = function() { + var e = this.options.onComment && this.curPosition(), t = this.pos, i = this.input.indexOf("*/", this.pos += 2); + if (i === -1 && this.raise(this.pos - 2, "Unterminated comment"), this.pos = i + 2, this.options.locations) + for (var u = void 0, n = t; (u = _i(this.input, n, this.pos)) > -1; ) + ++this.curLine, n = this.lineStart = u; + this.options.onComment && this.options.onComment( + !0, + this.input.slice(t + 2, i), + t, + this.pos, + e, + this.curPosition() + ); +}; +z.skipLineComment = function(e) { + for (var t = this.pos, i = this.options.onComment && this.curPosition(), u = this.input.charCodeAt(this.pos += e); this.pos < this.input.length && !je(u); ) + u = this.input.charCodeAt(++this.pos); + this.options.onComment && this.options.onComment( + !1, + this.input.slice(t + e, this.pos), + t, + this.pos, + i, + this.curPosition() + ); +}; +z.skipSpace = function() { + e: + 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 e; + } + break; + default: + if (e > 8 && e < 14 || e >= 5760 && wi.test(String.fromCharCode(e))) + ++this.pos; + else + break e; + } + } +}; +z.finishToken = function(e, t) { + this.end = this.pos, this.options.locations && (this.endLoc = this.curPosition()); + var i = this.type; + this.type = e, this.value = t, this.updateContext(i); +}; +z.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(h.ellipsis)) : (++this.pos, this.finishToken(h.dot)); +}; +z.readToken_slash = function() { + var e = this.input.charCodeAt(this.pos + 1); + return this.exprAllowed ? (++this.pos, this.readRegexp()) : e === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.slash, 1); +}; +z.readToken_mult_modulo_exp = function(e) { + var t = this.input.charCodeAt(this.pos + 1), i = 1, u = e === 42 ? h.star : h.modulo; + return this.options.ecmaVersion >= 7 && e === 42 && t === 42 && (++i, u = h.starstar, t = this.input.charCodeAt(this.pos + 2)), t === 61 ? this.finishOp(h.assign, i + 1) : this.finishOp(u, i); +}; +z.readToken_pipe_amp = function(e) { + var t = this.input.charCodeAt(this.pos + 1); + if (t === e) { + if (this.options.ecmaVersion >= 12) { + var i = this.input.charCodeAt(this.pos + 2); + if (i === 61) + return this.finishOp(h.assign, 3); + } + return this.finishOp(e === 124 ? h.logicalOR : h.logicalAND, 2); + } + return t === 61 ? this.finishOp(h.assign, 2) : this.finishOp(e === 124 ? h.bitwiseOR : h.bitwiseAND, 1); +}; +z.readToken_caret = function() { + var e = this.input.charCodeAt(this.pos + 1); + return e === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.bitwiseXOR, 1); +}; +z.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 || Ee.test(this.input.slice(this.lastTokEnd, this.pos))) ? (this.skipLineComment(3), this.skipSpace(), this.nextToken()) : this.finishOp(h.incDec, 2) : t === 61 ? this.finishOp(h.assign, 2) : this.finishOp(h.plusMin, 1); +}; +z.readToken_lt_gt = function(e) { + var t = this.input.charCodeAt(this.pos + 1), i = 1; + return t === e ? (i = e === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2, this.input.charCodeAt(this.pos + i) === 61 ? this.finishOp(h.assign, i + 1) : this.finishOp(h.bitShift, i)) : 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 && (i = 2), this.finishOp(h.relational, i)); +}; +z.readToken_eq_excl = function(e) { + var t = this.input.charCodeAt(this.pos + 1); + return t === 61 ? this.finishOp(h.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) : e === 61 && t === 62 && this.options.ecmaVersion >= 6 ? (this.pos += 2, this.finishToken(h.arrow)) : this.finishOp(e === 61 ? h.eq : h.prefix, 1); +}; +z.readToken_question = function() { + var e = this.options.ecmaVersion; + if (e >= 11) { + var t = this.input.charCodeAt(this.pos + 1); + if (t === 46) { + var i = this.input.charCodeAt(this.pos + 2); + if (i < 48 || i > 57) + return this.finishOp(h.questionDot, 2); + } + if (t === 63) { + if (e >= 12) { + var u = this.input.charCodeAt(this.pos + 2); + if (u === 61) + return this.finishOp(h.assign, 3); + } + return this.finishOp(h.coalesce, 2); + } + } + return this.finishOp(h.question, 1); +}; +z.readToken_numberSign = function() { + var e = this.options.ecmaVersion, t = 35; + if (e >= 13 && (++this.pos, t = this.fullCharCodeAtPos(), we(t, !0) || t === 92)) + return this.finishToken(h.privateId, this.readWord1()); + this.raise(this.pos, "Unexpected character '" + Pe(t) + "'"); +}; +z.getTokenFromCode = function(e) { + switch (e) { + case 46: + return this.readToken_dot(); + case 40: + return ++this.pos, this.finishToken(h.parenL); + case 41: + return ++this.pos, this.finishToken(h.parenR); + case 59: + return ++this.pos, this.finishToken(h.semi); + case 44: + return ++this.pos, this.finishToken(h.comma); + case 91: + return ++this.pos, this.finishToken(h.bracketL); + case 93: + return ++this.pos, this.finishToken(h.bracketR); + case 123: + return ++this.pos, this.finishToken(h.braceL); + case 125: + return ++this.pos, this.finishToken(h.braceR); + case 58: + return ++this.pos, this.finishToken(h.colon); + case 96: + if (this.options.ecmaVersion < 6) + break; + return ++this.pos, this.finishToken(h.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(h.prefix, 1); + case 35: + return this.readToken_numberSign(); + } + this.raise(this.pos, "Unexpected character '" + Pe(e) + "'"); +}; +z.finishOp = function(e, t) { + var i = this.input.slice(this.pos, this.pos + t); + return this.pos += t, this.finishToken(e, i); +}; +z.readRegexp = function() { + for (var e, t, i = this.pos; ; ) { + this.pos >= this.input.length && this.raise(i, "Unterminated regular expression"); + var u = this.input.charAt(this.pos); + if (Ee.test(u) && this.raise(i, "Unterminated regular expression"), e) + e = !1; + else { + if (u === "[") + t = !0; + else if (u === "]" && t) + t = !1; + else if (u === "/" && !t) + break; + e = u === "\\"; + } + ++this.pos; + } + var n = this.input.slice(i, this.pos); + ++this.pos; + var c = this.pos, a = this.readWord1(); + this.containsEsc && this.unexpected(c); + var f = this.regexpState || (this.regexpState = new ke(this)); + f.reset(i, n, a), this.validateRegExpFlags(f), this.validateRegExpPattern(f); + var p = null; + try { + p = new RegExp(n, a); + } catch { + } + return this.finishToken(h.regexp, { pattern: n, flags: a, value: p }); +}; +z.readInt = function(e, t, i) { + for (var u = this.options.ecmaVersion >= 12 && t === void 0, n = i && this.input.charCodeAt(this.pos) === 48, c = this.pos, a = 0, f = 0, p = 0, D = t ?? 1 / 0; p < D; ++p, ++this.pos) { + var m = this.input.charCodeAt(this.pos), F = void 0; + if (u && m === 95) { + n && this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"), f === 95 && this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"), p === 0 && this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"), f = m; + continue; + } + if (m >= 97 ? F = m - 97 + 10 : m >= 65 ? F = m - 65 + 10 : m >= 48 && m <= 57 ? F = m - 48 : F = 1 / 0, F >= e) + break; + f = m, a = a * e + F; + } + return u && f === 95 && this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"), this.pos === c || t != null && this.pos - c !== t ? null : a; +}; +function Ou(e, t) { + return t ? parseInt(e, 8) : parseFloat(e.replace(/_/g, "")); +} +function rr(e) { + return typeof BigInt != "function" ? null : BigInt(e.replace(/_/g, "")); +} +z.readRadixNumber = function(e) { + var t = this.pos; + this.pos += 2; + var i = this.readInt(e); + return i == null && this.raise(this.start + 2, "Expected number in radix " + e), this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110 ? (i = rr(this.input.slice(t, this.pos)), ++this.pos) : we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(h.num, i); +}; +z.readNumber = function(e) { + var t = this.pos; + !e && this.readInt(10, void 0, !0) === null && this.raise(t, "Invalid number"); + var i = this.pos - t >= 2 && this.input.charCodeAt(t) === 48; + i && this.strict && this.raise(t, "Invalid number"); + var u = this.input.charCodeAt(this.pos); + if (!i && !e && this.options.ecmaVersion >= 11 && u === 110) { + var n = rr(this.input.slice(t, this.pos)); + return ++this.pos, we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"), this.finishToken(h.num, n); + } + i && /[89]/.test(this.input.slice(t, this.pos)) && (i = !1), u === 46 && !i && (++this.pos, this.readInt(10), u = this.input.charCodeAt(this.pos)), (u === 69 || u === 101) && !i && (u = this.input.charCodeAt(++this.pos), (u === 43 || u === 45) && ++this.pos, this.readInt(10) === null && this.raise(t, "Invalid number")), we(this.fullCharCodeAtPos()) && this.raise(this.pos, "Identifier directly after number"); + var c = Ou(this.input.slice(t, this.pos), i); + return this.finishToken(h.num, c); +}; +z.readCodePoint = function() { + var e = this.input.charCodeAt(this.pos), t; + if (e === 123) { + this.options.ecmaVersion < 6 && this.unexpected(); + var i = ++this.pos; + t = this.readHexChar(this.input.indexOf("}", this.pos) - this.pos), ++this.pos, t > 1114111 && this.invalidStringToken(i, "Code point out of bounds"); + } else + t = this.readHexChar(4); + return t; +}; +z.readString = function(e) { + for (var t = "", i = ++this.pos; ; ) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated string constant"); + var u = this.input.charCodeAt(this.pos); + if (u === e) + break; + u === 92 ? (t += this.input.slice(i, this.pos), t += this.readEscapedChar(!1), i = this.pos) : u === 8232 || u === 8233 ? (this.options.ecmaVersion < 10 && this.raise(this.start, "Unterminated string constant"), ++this.pos, this.options.locations && (this.curLine++, this.lineStart = this.pos)) : (je(u) && this.raise(this.start, "Unterminated string constant"), ++this.pos); + } + return t += this.input.slice(i, this.pos++), this.finishToken(h.string, t); +}; +var ur = {}; +z.tryReadTemplateToken = function() { + this.inTemplateElement = !0; + try { + this.readTmplToken(); + } catch (e) { + if (e === ur) + this.readInvalidTemplateToken(); + else + throw e; + } + this.inTemplateElement = !1; +}; +z.invalidStringToken = function(e, t) { + if (this.inTemplateElement && this.options.ecmaVersion >= 9) + throw ur; + this.raise(e, t); +}; +z.readTmplToken = function() { + for (var e = "", t = this.pos; ; ) { + this.pos >= this.input.length && this.raise(this.start, "Unterminated template"); + var i = this.input.charCodeAt(this.pos); + if (i === 96 || i === 36 && this.input.charCodeAt(this.pos + 1) === 123) + return this.pos === this.start && (this.type === h.template || this.type === h.invalidTemplate) ? i === 36 ? (this.pos += 2, this.finishToken(h.dollarBraceL)) : (++this.pos, this.finishToken(h.backQuote)) : (e += this.input.slice(t, this.pos), this.finishToken(h.template, e)); + if (i === 92) + e += this.input.slice(t, this.pos), e += this.readEscapedChar(!0), t = this.pos; + else if (je(i)) { + switch (e += this.input.slice(t, this.pos), ++this.pos, i) { + case 13: + this.input.charCodeAt(this.pos) === 10 && ++this.pos; + case 10: + e += ` +`; + break; + default: + e += String.fromCharCode(i); + break; + } + this.options.locations && (++this.curLine, this.lineStart = this.pos), t = this.pos; + } else + ++this.pos; + } +}; +z.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(h.invalidTemplate, this.input.slice(this.start, this.pos)); + } + this.raise(this.start, "Unterminated template"); +}; +z.readEscapedChar = function(e) { + var t = this.input.charCodeAt(++this.pos); + switch (++this.pos, t) { + case 110: + return ` +`; + case 114: + return "\r"; + case 120: + return String.fromCharCode(this.readHexChar(2)); + case 117: + return Pe(this.readCodePoint()); + case 116: + return " "; + 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 i = this.pos - 1; + return this.invalidStringToken( + i, + "Invalid escape sequence in template string" + ), null; + } + default: + if (t >= 48 && t <= 55) { + var u = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0], n = parseInt(u, 8); + return n > 255 && (u = u.slice(0, -1), n = parseInt(u, 8)), this.pos += u.length - 1, t = this.input.charCodeAt(this.pos), (u !== "0" || t === 56 || t === 57) && (this.strict || e) && this.invalidStringToken( + this.pos - 1 - u.length, + e ? "Octal literal in template string" : "Octal literal in strict mode" + ), String.fromCharCode(n); + } + return je(t) ? "" : String.fromCharCode(t); + } +}; +z.readHexChar = function(e) { + var t = this.pos, i = this.readInt(16, e); + return i === null && this.invalidStringToken(t, "Bad character escape sequence"), i; +}; +z.readWord1 = function() { + this.containsEsc = !1; + for (var e = "", t = !0, i = this.pos, u = this.options.ecmaVersion >= 6; this.pos < this.input.length; ) { + var n = this.fullCharCodeAtPos(); + if (Ue(n, u)) + this.pos += n <= 65535 ? 1 : 2; + else if (n === 92) { + this.containsEsc = !0, e += this.input.slice(i, this.pos); + var c = this.pos; + this.input.charCodeAt(++this.pos) !== 117 && this.invalidStringToken(this.pos, "Expecting Unicode escape sequence \\uXXXX"), ++this.pos; + var a = this.readCodePoint(); + (t ? we : Ue)(a, u) || this.invalidStringToken(c, "Invalid Unicode escape"), e += Pe(a), i = this.pos; + } else + break; + t = !1; + } + return e + this.input.slice(i, this.pos); +}; +z.readWord = function() { + var e = this.readWord1(), t = h.name; + return this.keywords.test(e) && (t = Mt[e]), this.finishToken(t, e); +}; +var Vu = "8.8.1"; +oe.acorn = { + Parser: oe, + version: Vu, + defaultOptions: Nt, + Position: $e, + SourceLocation: mt, + getLineInfo: Ii, + Node: Ct, + TokenType: X, + tokTypes: h, + keywordTypes: Mt, + TokContext: Fe, + tokContexts: J, + isIdentifierChar: Ue, + isIdentifierStart: we, + Token: Gt, + isNewLine: je, + lineBreak: Ee, + lineBreakG: Du, + nonASCIIwhitespace: wi +}; +function qu(e, t) { + return oe.parse(e, t); +} +class Uu { + constructor() { + this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.context = { + skip: () => this.should_skip = !0, + remove: () => this.should_remove = !0, + replace: (t) => this.replacement = t + }; + } + replace(t, i, u, n) { + t && (u !== null ? t[i][u] = n : t[i] = n); + } + remove(t, i, u) { + t && (u !== null ? t[i].splice(u, 1) : delete t[i]); + } +} +class ju extends Uu { + constructor(t, i) { + super(), this.enter = t, this.leave = i; + } + visit(t, i, u, n) { + if (t) { + if (this.enter) { + const c = this.should_skip, a = this.should_remove, f = this.replacement; + this.should_skip = !1, this.should_remove = !1, this.replacement = null, this.enter.call(this.context, t, i, u, n), this.replacement && (t = this.replacement, this.replace(i, u, n, t)), this.should_remove && this.remove(i, u, n); + const p = this.should_skip, D = this.should_remove; + if (this.should_skip = c, this.should_remove = a, this.replacement = f, p) + return t; + if (D) + return null; + } + for (const c in t) { + const a = t[c]; + if (typeof a == "object") + if (Array.isArray(a)) + for (let f = 0; f < a.length; f += 1) + a[f] !== null && typeof a[f].type == "string" && (this.visit(a[f], t, c, f) || f--); + else + a !== null && typeof a.type == "string" && this.visit(a, t, c, null); + } + if (this.leave) { + const c = this.replacement, a = this.should_remove; + this.replacement = null, this.should_remove = !1, this.leave.call(this.context, t, i, u, n), this.replacement && (t = this.replacement, this.replace(i, u, n, t)), this.should_remove && this.remove(i, u, n); + const f = this.should_remove; + if (this.replacement = c, this.should_remove = a, f) + return null; + } + } + return t; + } +} +function Wu(e, { enter: t, leave: i }) { + return new ju(t, i).visit(e, null); +} +function Gu(e, t = {}) { + const { wrapAsync: i = !1, addReturn: u = !0, simpleLocs: n = !1 } = t; + let c = qu(e, { + ecmaVersion: 2022, + allowAwaitOutsideFunction: !0, + locations: !0 + }); + Wu(c, { + enter(p, D, m, F) { + if (Hu(p, D)) { + const { quasis: g, start: A, end: v } = p, { raw: C } = g[0].value; + return this.skip(), this.replace(Di(C, p, n)); + } + if (zu(p)) { + const { value: g, start: A, end: v } = p; + return this.skip(), this.replace(Di(g, p, n)); + } + if (p.type === "Identifier" && br(p.name)) + return this.skip(), this.replace({ type: "Literal", value: p.name }); + }, + leave(p, D, m, F) { + } + }); + const { body: a } = c; + if (!a?.[a.length - 1]?.expression) + throw new Error("unexpected ast format without body expression"); + if (u) { + const { expression: p } = a[a.length - 1]; + a[a.length - 1] = { + type: "ReturnStatement", + argument: p + }; + } + const f = Ai.generate(c); + return i ? `(async ()=>{${f}})()` : f; +} +function zu(e, t, i) { + const { raw: u, type: n } = e; + return n !== "Literal" ? !1 : u[0] === '"'; +} +function Hu(e, t) { + return e.type === "TemplateLiteral" && t.type !== "TaggedTemplateExpression"; +} +function Di(e, t, i) { + let u; + const { start: n, end: c } = t; + if (i) + u = [ + { + type: "Literal", + value: n + }, + { + type: "Literal", + value: c + } + ]; + else { + const { + loc: { + start: { line: a, column: f }, + end: { line: p, column: D } + } + } = t; + u = [ + { + type: "ArrayExpression", + elements: [a, f, n].map((m) => ({ + type: "Literal", + value: m + })) + }, + { + type: "ArrayExpression", + elements: [p, D, c].map((m) => ({ + type: "Literal", + value: m + })) + } + ]; + } + return { + type: "CallExpression", + callee: { + type: "MemberExpression", + object: { + type: "CallExpression", + callee: { + type: "Identifier", + name: "mini" + }, + arguments: [{ type: "Literal", value: e }], + optional: !1 + }, + property: { + type: "Identifier", + name: "withMiniLocation" + } + }, + arguments: u, + optional: !1 + }; +} +function hn({ defaultOutput: e, interval: t, getTime: i, code: u, evalOnMount: n = !1 }) { + const [c, a] = Me(), [f, p] = Me(), [D, m] = Me(u), [F, g] = Me(), [A, v] = Me(!1), C = u !== D, { scheduler: x, evaluate: P } = Ar( + () => Or({ + interval: t, + defaultOutput: e, + onSchedulerError: a, + onEvalError: p, + getTime: i, + transpiler: Gu, + onEval: ({ pattern: E, code: S }) => { + m(S), g(E), p(); + }, + onToggle: (E) => v(E), + onEvalError: p + }), + [e, t, i] + ), I = Xe(() => P(u), [P, u]), O = kt(); + return Dt(() => { + !O.current && n && u && (console.log("eval on mount"), O.current = !0, I()); + }, [I, n, u]), { schedulerError: c, scheduler: x, evalError: f, evaluate: I, activeCode: D, isDirty: C, pattern: F, started: A, togglePlay: async () => { + A ? x.pause() : await I(); + } }; +} +const fn = (e) => Er(() => (window.addEventListener("keydown", e, !0), () => window.removeEventListener("keydown", e, !0)), [e]); +function pn(e) { + const { ready: t, connected: i, disconnected: u } = e, [n, c] = Me(!0), [a, f] = Me(Be?.outputs || []); + return Dt(() => { + Sr().then(() => { + Be.addListener("connected", (D) => { + f([...Be.outputs]), i?.(Be, D); + }), Be.addListener("disconnected", (D) => { + f([...Be.outputs]), u?.(Be, D); + }), t?.(Be), c(!1); + }).catch((D) => { + if (D) { + console.error(D), console.warn("Web Midi could not be enabled.."); return; } }); - }, [o, r, n, a]), { loading: s, outputs: a, outputByName: (c) => N.getOutputByName(c) }; + }, [t, i, u, a]), { loading: n, outputs: a, outputByName: (D) => Be.getOutputByName(D) }; } export { - de as CodeMirror, - Be as MiniRepl, - $ as cx, - ie as flash, - fe as useCycle, - ye as useHighlighting, - $e as useKeydown, - ge as usePostMessage, - pe as useRepl, - Ve as useStrudel, - We as useWebMidi + sn as CodeMirror, + ln as MiniRepl, + an as cx, + nn as flash, + on as useHighlighting, + fn as useKeydown, + cn as usePostMessage, + hn as useStrudel, + pn as useWebMidi }; diff --git a/packages/react/package.json b/packages/react/package.json index 8c6568a0..ae198fe6 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -17,6 +17,7 @@ "scripts": { "dev": "vite", "build": "vite build", + "watch": "vite build --watch", "preview": "vite preview" }, "repository": { diff --git a/packages/react/src/App.jsx b/packages/react/src/App.jsx index b22516da..911fca0b 100644 --- a/packages/react/src/App.jsx +++ b/packages/react/src/App.jsx @@ -6,7 +6,7 @@ import { controls, evalScope } from '@strudel.cycles/core'; evalScope( controls, import('@strudel.cycles/core'), - import('@strudel.cycles/tone'), + // import('@strudel.cycles/tone'), import('@strudel.cycles/tonal'), import('@strudel.cycles/mini'), import('@strudel.cycles/midi'), diff --git a/packages/react/src/components/MiniRepl.jsx b/packages/react/src/components/MiniRepl.jsx index 0fd6d8c0..ea94fc89 100644 --- a/packages/react/src/components/MiniRepl.jsx +++ b/packages/react/src/components/MiniRepl.jsx @@ -1,6 +1,5 @@ import React, { useState, useMemo, useRef, useEffect, useLayoutEffect } from 'react'; import { useInView } from 'react-hook-inview'; -import useRepl from '../hooks/useRepl.mjs'; import cx from '../cx'; import useHighlighting from '../hooks/useHighlighting.mjs'; import CodeMirror6, { flash } from './CodeMirror6'; @@ -8,10 +7,12 @@ import 'tailwindcss/tailwind.css'; import './style.css'; import styles from './MiniRepl.module.css'; import { Icon } from './Icon'; -import { Tone } from '@strudel.cycles/tone'; +import { getAudioContext } from '@strudel.cycles/webaudio'; +// import { Tone } from '@strudel.cycles/tone'; export function MiniRepl({ tune, hideOutsideView = false, init, onEvent, enableKeyboard }) { - const { code, setCode, pattern, activeCode, activateCode, evaluateOnly, error, cycle, dirty, togglePlay, stop } = + return

TODO

; + /* const { code, setCode, pattern, activeCode, activateCode, evaluateOnly, error, cycle, dirty, togglePlay, stop } = useRepl({ tune, autolink: false, @@ -35,7 +36,7 @@ export function MiniRepl({ tune, hideOutsideView = false, init, onEvent, enableK view, pattern, active: cycle.started && !activeCode?.includes('strudel disable-highlighting'), - getTime: () => Tone.getTransport().seconds, + getTime: () => getAudioContext().seconds, }); // set active pattern on ctrl+enter @@ -75,5 +76,5 @@ export function MiniRepl({ tune, hideOutsideView = false, init, onEvent, enableK {show && } - ); + ); */ } diff --git a/packages/react/src/hooks/useCycle.mjs b/packages/react/src/hooks/useCycle.mjs deleted file mode 100644 index 5a68c9da..00000000 --- a/packages/react/src/hooks/useCycle.mjs +++ /dev/null @@ -1,86 +0,0 @@ -/* -useCycle.mjs - -Copyright (C) 2022 Strudel contributors - see -This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -*/ - -import { useEffect, useState } from 'react'; -import { Tone } from '@strudel.cycles/tone'; -import { State, TimeSpan } from '@strudel.cycles/core'; - -/* export declare interface UseCycleProps { - onEvent: ToneEventCallback; - onQuery?: (state: State) => Hap[]; - onSchedule?: (events: Hap[], cycle: number) => void; - onDraw?: ToneEventCallback; - ready?: boolean; // if false, query will not be called on change props -} */ - -// function useCycle(props: UseCycleProps) { -function useCycle(props) { - // onX must use useCallback! - const { onEvent, onQuery, onSchedule, ready = true, onDraw } = props; - const [started, setStarted] = useState(false); - const cycleDuration = 1; - const activeCycle = () => Math.floor(Tone.getTransport().seconds / cycleDuration); - - // pull events with onQuery + count up to next cycle - const query = (cycle = activeCycle()) => { - const timespan = new TimeSpan(cycle, cycle + 1); - const events = onQuery?.(new State(timespan)) || []; - onSchedule?.(events, cycle); - // cancel events after current query. makes sure no old events are player for rescheduled cycles - // console.log('schedule', cycle); - // query next cycle in the middle of the current - const cancelFrom = timespan.begin.valueOf(); - Tone.getTransport().cancel(cancelFrom); - // const queryNextTime = (cycle + 1) * cycleDuration - 0.1; - const queryNextTime = (cycle + 1) * cycleDuration - 0.5; - - // if queryNextTime would be before current time, execute directly (+0.1 for safety that it won't miss) - const t = Math.max(Tone.getTransport().seconds, queryNextTime) + 0.1; - Tone.getTransport().schedule(() => { - query(cycle + 1); - }, t); - - // schedule events for next cycle - events - ?.filter((event) => event.part.begin.equals(event.whole?.begin)) - .forEach((event) => { - Tone.getTransport().schedule((time) => { - onEvent(time, event, Tone.getContext().currentTime); - Tone.Draw.schedule(() => { - // do drawing or DOM manipulation here - onDraw?.(time, event); - }, time); - }, event.part.begin.valueOf()); - }); - }; - - useEffect(() => { - ready && query(); - }, [onEvent, onSchedule, onQuery, onDraw, ready]); - - const start = async () => { - setStarted(true); - await Tone.start(); - Tone.getTransport().start('+0.1'); - }; - const stop = () => { - Tone.getTransport().pause(); - setStarted(false); - }; - const toggle = () => (started ? stop() : start()); - return { - start, - stop, - onEvent, - started, - setStarted, - toggle, - query, - activeCycle, - }; -} - -export default useCycle; diff --git a/packages/react/src/hooks/useRepl.mjs b/packages/react/src/hooks/useRepl.mjs deleted file mode 100644 index 6da1b887..00000000 --- a/packages/react/src/hooks/useRepl.mjs +++ /dev/null @@ -1,150 +0,0 @@ -/* -useRepl.mjs - -Copyright (C) 2022 Strudel contributors - see -This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . -*/ - -import { useCallback, useState, useMemo } from 'react'; -import { evaluate } from '@strudel.cycles/eval'; -import useCycle from './useCycle.mjs'; -import usePostMessage from './usePostMessage.mjs'; -import { webaudioOutputTrigger } from '@strudel.cycles/webaudio'; - -let s4 = () => { - return Math.floor((1 + Math.random()) * 0x10000) - .toString(16) - .substring(1); -}; -const generateHash = (code) => encodeURIComponent(btoa(code)); - -function useRepl({ tune, autolink = true, onEvent, onDraw: onDrawProp }) { - const id = useMemo(() => s4(), []); - const [code, setCode] = useState(tune); - const [activeCode, setActiveCode] = useState(); - const [log, setLog] = useState(''); - const [error, setError] = useState(); - const [pending, setPending] = useState(false); - const [hash, setHash] = useState(''); - const [pattern, setPattern] = useState(); - const dirty = useMemo(() => code !== activeCode || error, [code, activeCode, error]); - const pushLog = useCallback((message) => setLog((log) => log + `${log ? '\n\n' : ''}${message}`), []); - - // below block allows disabling the highlighting by including "strudel disable-highlighting" in the code (as comment) - const onDraw = useMemo(() => { - if (activeCode && !activeCode.includes('strudel disable-highlighting')) { - return (time, event) => onDrawProp?.(time, event, activeCode); - } - }, [activeCode, onDrawProp]); - - const hideHeader = useMemo(() => activeCode && activeCode.includes('strudel hide-header'), [activeCode]); - const hideConsole = useMemo(() => activeCode && activeCode.includes('strudel hide-console'), [activeCode]); - // cycle hook to control scheduling - const cycle = useCycle({ - onDraw, - onEvent: useCallback( - (time, event, currentTime) => { - try { - onEvent?.(event); - if (event.context.logs?.length) { - event.context.logs.forEach(pushLog); - } - const { onTrigger = webaudioOutputTrigger } = event.context; - onTrigger(time, event, currentTime, 1 /* cps */); - } catch (err) { - console.warn(err); - err.message = 'unplayable event: ' + err?.message; - pushLog(err.message); // not with setError, because then we would have to setError(undefined) on next playable event - } - }, - [onEvent, pushLog], - ), - onQuery: useCallback( - (state) => { - try { - return pattern?.query(state) || []; - } catch (err) { - console.warn(err); - err.message = 'query error: ' + err.message; - setError(err); - return []; - } - }, - [pattern], - ), - onSchedule: useCallback((_events, cycle) => logCycle(_events, cycle), []), - ready: !!pattern && !!activeCode, - }); - - const broadcast = usePostMessage(({ data: { from, type } }) => { - if (type === 'start' && from !== id) { - // console.log('message', from, type); - cycle.setStarted(false); - setActiveCode(undefined); - } - }); - - const activateCode = useCallback( - async (_code = code) => { - if (activeCode && !dirty) { - setError(undefined); - cycle.start(); - return; - } - try { - setPending(true); - const parsed = await evaluate(_code); - cycle.start(); - broadcast({ type: 'start', from: id }); - setPattern(() => parsed.pattern); - if (autolink) { - window.location.hash = '#' + encodeURIComponent(btoa(code)); - } - setHash(generateHash(code)); - setError(undefined); - setActiveCode(_code); - setPending(false); - } catch (err) { - err.message = 'evaluation error: ' + err.message; - console.warn(err); - setError(err); - } - }, - [activeCode, dirty, code, cycle, autolink, id, broadcast], - ); - // logs events of cycle - const logCycle = (_events, cycle) => { - if (_events.length) { - // pushLog(`# cycle ${cycle}\n` + _events.map((e: any) => e.show()).join('\n')); - } - }; - - const togglePlay = () => { - if (!cycle.started) { - activateCode(); - } else { - cycle.stop(); - } - }; - - return { - hideHeader, - hideConsole, - pending, - code, - setCode, - pattern, - error, - cycle, - setPattern, - dirty, - log, - togglePlay, - setActiveCode, - activateCode, - activeCode, - pushLog, - hash, - }; -} - -export default useRepl; diff --git a/packages/react/src/hooks/useStrudel.mjs b/packages/react/src/hooks/useStrudel.mjs index 81569f65..25db8039 100644 --- a/packages/react/src/hooks/useStrudel.mjs +++ b/packages/react/src/hooks/useStrudel.mjs @@ -8,7 +8,9 @@ function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = fals const [evalError, setEvalError] = useState(); const [activeCode, setActiveCode] = useState(code); const [pattern, setPattern] = useState(); + const [started, setStarted] = useState(false); const isDirty = code !== activeCode; + // TODO: make sure this hook reruns when scheduler.started changes const { scheduler, evaluate: _evaluate } = useMemo( () => repl({ @@ -23,6 +25,7 @@ function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = fals setPattern(_pattern); setEvalError(); }, + onToggle: (v) => setStarted(v), onEvalError: setEvalError, }), [defaultOutput, interval, getTime], @@ -32,12 +35,22 @@ function useStrudel({ defaultOutput, interval, getTime, code, evalOnMount = fals const inited = useRef(); useEffect(() => { if (!inited.current && evalOnMount && code) { + console.log('eval on mount'); inited.current = true; evaluate(); } }, [evaluate, evalOnMount, code]); - return { schedulerError, scheduler, evalError, evaluate, activeCode, isDirty, pattern }; + const togglePlay = async () => { + if (started) { + scheduler.pause(); + // scheduler.stop(); + } else { + await evaluate(); + } + }; + + return { schedulerError, scheduler, evalError, evaluate, activeCode, isDirty, pattern, started, togglePlay }; } export default useStrudel; diff --git a/packages/react/src/index.js b/packages/react/src/index.js index e1b0fe0a..e53aac5e 100644 --- a/packages/react/src/index.js +++ b/packages/react/src/index.js @@ -2,10 +2,8 @@ export { default as CodeMirror, flash } from './components/CodeMirror6'; export * from './components/MiniRepl'; -export { default as useCycle } from './hooks/useCycle'; export { default as useHighlighting } from './hooks/useHighlighting'; export { default as usePostMessage } from './hooks/usePostMessage'; -export { default as useRepl } from './hooks/useRepl'; export { default as useStrudel } from './hooks/useStrudel'; export { default as useKeydown } from './hooks/useKeydown'; export { default as cx } from './cx'; diff --git a/repl/README.md b/repl/README.md index de8f9bf9..e9b69ce5 100644 --- a/repl/README.md +++ b/repl/README.md @@ -24,3 +24,17 @@ cd repl npm run build # <- builds repl + tutorial to ../docs npm run static # <- test static build ``` + +## Refactoring Notes + +currently broken / buggy: + +- MiniREPL +- repl log section +- hideHeader flag +- pending flag +- web midi +- draw / pianoroll +- pause does stop +- random button triggers start +- highlighting seems too late (off by latency ?) diff --git a/repl/src/App.jsx b/repl/src/App.jsx index b91f43dc..1e7aab34 100644 --- a/repl/src/App.jsx +++ b/repl/src/App.jsx @@ -4,9 +4,9 @@ Copyright (C) 2022 Strudel contributors - see . */ -import { evaluate } from '@strudel.cycles/eval'; -import { CodeMirror, cx, flash, useHighlighting, useRepl, useWebMidi } from '@strudel.cycles/react'; -import { cleanupDraw, cleanupUi, Tone } from '@strudel.cycles/tone'; +// import { evaluate } from '@strudel.cycles/eval'; +import { CodeMirror, cx, flash, useHighlighting, useWebMidi } from '@strudel.cycles/react'; +// import { cleanupDraw, cleanupUi, Tone } from '@strudel.cycles/tone'; import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'; import './App.css'; import logo from './logo.svg'; @@ -17,6 +17,8 @@ import { resetLoadedSamples, getAudioContext } from '@strudel.cycles/webaudio'; import { controls, evalScope } from '@strudel.cycles/core'; import { createClient } from '@supabase/supabase-js'; import { nanoid } from 'nanoid'; +import { useStrudel } from '@strudel.cycles/react'; +import { webaudioOutput } from '@strudel.cycles/webaudio'; // Create a single supabase client for interacting with your database const supabase = createClient( @@ -25,11 +27,11 @@ const supabase = createClient( ); evalScope( - Tone, + // Tone, controls, // sadly, this cannot be exported from core direclty { WebDirt }, import('@strudel.cycles/core'), - import('@strudel.cycles/tone'), + // import('@strudel.cycles/tone'), import('@strudel.cycles/tonal'), import('@strudel.cycles/mini'), import('@strudel.cycles/midi'), @@ -42,6 +44,11 @@ evalScope( prebake(); +const pushLog = console.log; +const hideHeader = false; +const pending = false; +const getTime = () => getAudioContext().currentTime; + async function initCode() { // load code from url hash (either short hash from database or decode long hash) try { @@ -83,38 +90,28 @@ const randomTune = getRandomTune(); const isEmbedded = window.location !== window.parent.location; function App() { // const [editor, setEditor] = useState(); + const [code, setCode] = useState('// LOADING'); const [view, setView] = useState(); const [lastShared, setLastShared] = useState(); - const { - setCode, - setPattern, - error, - code, - cycle, - dirty, - log, - togglePlay, - activeCode, - setActiveCode, - activateCode, - pattern, - pushLog, - pending, - hideHeader, - hideConsole, - } = useRepl({ - tune: '// LOADING...', - }); + + const { scheduler, evaluate, schedulerError, evalError, isDirty, activeCode, pattern, started, togglePlay } = + useStrudel({ + code, + defaultOutput: webaudioOutput, + getTime, + }); + const error = schedulerError || evalError; useEffect(() => { initCode().then((decoded) => setCode(decoded || randomTune)); }, []); const logBox = useRef(); // scroll log box to bottom when log changes - useLayoutEffect(() => { + + /* useLayoutEffect(() => { if (logBox.current) { logBox.current.scrollTop = logBox.current?.scrollHeight; } - }, [log]); + }, [log]); */ // set active pattern on ctrl+enter useLayoutEffect(() => { @@ -124,25 +121,27 @@ function App() { if (e.code === 'Enter') { e.preventDefault(); flash(view); - await activateCode(); + // await activateCode(); + await evaluate(); } else if (e.code === 'Period') { - cycle.stop(); + scheduler.stop(); e.preventDefault(); } } }; window.addEventListener('keydown', handleKeyPress, true); return () => window.removeEventListener('keydown', handleKeyPress, true); - }, [pattern, code, activateCode, cycle, view]); + }, [pattern /* , code */, /* activateCode, */ scheduler, view]); useHighlighting({ view, pattern, - active: cycle.started && !activeCode?.includes('strudel disable-highlighting'), - getTime: () => Tone.getTransport().seconds, + active: started && !activeCode?.includes('strudel disable-highlighting'), + getTime: () => scheduler.phase, + // getTime: () => Tone.getTransport().seconds, }); - useWebMidi({ + /* useWebMidi({ ready: useCallback( ({ outputs }) => { pushLog(`WebMidi ready! Just add .midi(${outputs.map((o) => `'${o.name}'`).join(' | ')}) to the pattern. `); @@ -161,7 +160,7 @@ function App() { }, [pushLog], ), - }); + }); */ return (
@@ -187,7 +186,7 @@ function App() { > {!pending ? ( - {cycle.started ? ( + {started ? ( )} - {cycle.started ? 'pause' : 'play'} + {started ? 'pause' : 'play'} ) : ( <>loading... @@ -212,13 +211,13 @@ function App() {